A.第1実施例:
A-1: 印刷システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、実施例の印刷システム1000の構成を示すブロック図である。
印刷システム1000は、プリンタ200と、本実施例の画像処理装置としての端末装置300と、を含んでいる。プリンタ200と、端末装置300と、は、有線または無線のネットワークNWを介して、通信可能に接続されている。
端末装置300は、プリンタ200のユーザが使用する計算機であり、例えば、パーソナルコンピュータやスマートフォンである。端末装置300は、端末装置300のコントローラとしてのCPU310と、ハードディスクドライブなどの不揮発性記憶装置320と、RAMなどの揮発性記憶装置330と、マウスやキーボードなどの操作部360と、液晶ディスプレイなどの表示部370と、通信部380と、を備えている。通信部380は、ネットワークNWに接続するための有線または無線のインタフェースを含む。
揮発性記憶装置330は、CPU310のためのバッファ領域331を提供する。不揮発性記憶装置320には、コンピュータプログラムPG1と往路用プロファイルPF1と復路用プロファイルPF2と色評価情報CIとが格納されている。コンピュータプログラムPG1と往路用プロファイルPF1と復路用プロファイルPF2と色評価情報CIは、例えば、サーバからダウンロードされる形態、あるいは、DVD-ROMなどに格納される形態で、プリンタ200の製造者によって提供される。CPU310は、コンピュータプログラムPG2を実行することによって、プリンタ200を制御するプリンタドライバとして機能する。プリンタドライバとしてのCPU310は、例えば、後述する画像処理を実行して、プリンタ200に画像を印刷させる。
往路用プロファイルPF1と復路用プロファイルPF2とは、それぞれ、RGB表色系の色値(RGB値)と、CMYK表色系の色値(CMYK値)と、の対応関係を規定するプロファイルである。往路用プロファイルPF1と復路用プロファイルPF2とは、後述する画像処理において、RGB値をCMYK値に変換する色変換処理のために用いられる。RGB値は、赤(R)、緑(G)、青(B)の3個の成分値を含む色値である。CMYK値は、印刷に用いられる複数種のインクに対応する複数個の成分値、本実施例では、シアン(C)、マゼンタ(M)、イエロ(Y)、黒(K)の成分値を含む色値である。RGB値およびCMYK値は、例えば、256階調の値である。往路用プロファイルPF1と復路用プロファイルPF2とは、例えば、ルックアップテーブルである。往路用プロファイルPF1と復路用プロファイルPF2との違い、および、色評価情報CIについては後述する。
プリンタ200は、例えば、印刷機構100と、プリンタ200のコントローラとしてのCPU210と、ハードディスクドライブなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部260と、液晶ディスプレイなどの表示部270と、通信部280と、を備えている。通信部280は、ネットワークNWに接続するための有線または無線のインタフェースを含む。プリンタ200は、通信部280を介して、外部装置、例えば、端末装置300と通信可能に接続される。
揮発性記憶装置230は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域231を提供する。不揮発性記憶装置220には、コンピュータプログラムPG2が格納されている。コンピュータプログラムPG2は、本実施例では、プリンタ200を制御するための制御プログラムであり、プリンタ200の出荷時に不揮発性記憶装置220に格納されて提供され得る。これに代えて、コンピュータプログラムPG2は、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU210は、コンピュータプログラムPG2を実行することにより、例えば、後述する画像処理によって端末装置300から送信される印刷データや方向情報(後述)に従って印刷機構100を制御して印刷媒体(例えば、用紙)上に画像を印刷する。
印刷機構100は、C、M、Y、Kの各インク(液滴)を吐出して印刷を行う。印刷機構100は、印刷ヘッド110とヘッド駆動部120と主走査部130と搬送部140とを備えている。
図2は、印刷機構100の概略構成を示す図である。図2(A)に示すように、主走査部130は、印刷ヘッド110を搭載するキャリッジ133と、キャリッジ133を主走査方向(図2のX軸方向)に沿って往復動可能に保持する摺動軸134と、を備えている。主走査部130は、図示しない主走査モータの動力を用いて、キャリッジ133を摺動軸134に沿って往復動させる。これによって、用紙Mに対して主走査方向に沿って印刷ヘッド110を往復動させる主走査が実現される。
搬送部140は、用紙Mを保持しつつ、主走査方向と交差する搬送方向(図2の+Y方向)に用紙Mを搬送する。図2に示すように、用紙台145と、上流ローラ対142と、下流ローラ対141と、を備えている。以下では、搬送方向の上流側(-Y側)を、単に、上流側とも呼び、搬送方向の下流側(+Y側)を単に下流側とも呼ぶ。
上流ローラ対142は、印刷ヘッド110よりも上流側(-Y側)で用紙Mを保持し、下流ローラ対141は、印刷ヘッド110よりも下流側(+Y側)で用紙Mを保持する。用紙台145は、上流ローラ対142と、下流ローラ対141と、の間の位置であって、かつ、印刷ヘッド110のノズル形成面111と対向する位置に配置されている。図示しない搬送モータによって下流ローラ対141と上流ローラ対142とが駆動されることによって、用紙Mが搬送される。
ヘッド駆動部120(図1)は、主走査部130が印刷ヘッド110の主走査を行っている最中に、印刷ヘッド110に駆動信号を供給して、印刷ヘッド110を駆動する。印刷ヘッド110は、駆動信号に従って、搬送部140によって搬送される用紙上にインクを吐出してドットを形成する。
図2(B)は、-Z側(図2における下側)から見た印刷ヘッド110の構成が図示されている。図2(B)に示すように、印刷ヘッド110のノズル形成面111には、複数のノズルからなる複数のノズル列、すなわち、上述したC、M、Y、Kの各インクを吐出するノズル列NC、NM、NY、NKが形成されている。各ノズル列は、複数個のノズルNZを含んでいる。複数個のノズルNZは、搬送方向(+Y方向)の位置が互いに異なり、搬送方向に沿って所定のノズル間隔NTで並ぶ。ノズル間隔NTは、複数のノズルNZの中で搬送方向に隣り合う2個のノズルNZ間の搬送方向の長さである。これらのノズル列を構成するノズルのうち、最も上流側(-Y側)に位置するノズルNZを、最上流ノズルNZuとも呼ぶ。また、これらのノズルのうち、最も下流側(+Y側)に位置するノズルNZを、最下流ノズルNZdと呼ぶ。最上流ノズルNZuから最下流ノズルNZdまでの搬送方向の長さに、さらに、ノズル間隔NTを加えた長さを、ノズル長Dとも呼ぶ。
ノズル列NC、NM、NY、NKの主走査方向の位置は、互いに異なり、副走査方向の位置は、互いに重複している。例えば、図3の例では、Yインクを吐出するノズル列NYの+X方向に、ノズル列NMが配置されている。
A-2.印刷の概要
印刷機構100は、主走査部130による主走査を行いつつ印刷ヘッド110によって用紙Mにドットを形成する部分印刷と、搬送部140による副走査(用紙Mの搬送)と、を交互に複数回実行することで、用紙Mに印刷画像OIを印刷する。
図3は、印刷機構100の動作の説明図である。図3には、用紙M1、M2に、それぞれ印刷される印刷画像OI1、OI2が図示されている。印刷画像は、複数個の部分画像PIを含んでいる。図3の例では、印刷画像OI1、OI2は、それぞれ、部分画像PI1~PI5、PI6~PI10を含んでいる。各部分画像PIは、1回の部分印刷によって印刷される画像である。部分印刷の印刷方向は、往路方向と復路方向とのいずれかである。すなわち、部分印刷は、往路方向(図3の+X方向)の主走査を行いつつドットを形成する往路印刷と、復路方向(図3の-X方向)の主走査を行いつつドットを形成する復路印刷と、のいずれかである。図3にて部分画像内には、+X方向または-X方向の実線の矢印が付されている。+X方向の実線の矢印が付された部分画像PI1、PI2、PI3、PI5、PI7、PI8、PI10は、往路印刷によって印刷される往路部分画像である。-X方向の実線の矢印が付された部分画像PI4、PI6、PI9は、復路印刷によって印刷される復路部分画像である。
図3において、1個の部分画像PI(例えば、部分画像PI1)から、-Y方向に隣接する他の部分画像PI(例えば、部分画像PI2)に向かう-Y方向の矢印は、用紙Mの搬送(副走査)に対応している。すなわち、図3において-Y方向の矢印は、用紙Mが搬送されることによって、図3に図示される用紙Mに対して印刷ヘッド110が-Y方向に移動することを示す。図3に示すように、本実施例の印刷は、いわゆる1パス印刷であり、各部分画像の搬送方向の長さ、および、1回の用紙Mの搬送量は、ノズル長Dである。
ここで、図2(B)に示すように、印刷ヘッド110に示すように、CMYKのノズル列NC、NM、NY、NKは、主走査方向の位置が互いに異なっている。このために、用紙M上の同じ位置にCMYKの各ドットを形成する場合に、往路印刷と復路印刷との間で、ドットの形成順序が異なる。例えば、図2(B)の例では、往路印刷では、K、C、M、Yの順番でドットが形成され、復路印刷では、逆に、Y、M、C、Kの順番でドットが形成される。この結果、複数色のドットが重なり合う領域では、往路部分画像と復路部分画像との間でドットが重なる順序が異なる。このために、往路部分画像と復路部分画像との間では、互いに同じドットデータを用いて印刷したとしても、印刷される色味が互いに異なる場合がある。このような往路部分画像と復路部分画像との間で印刷される色の相違(往復間色差とも呼ぶ)が生じる。
ここで、上述した往路用プロファイルPF1は、往路印刷用の部分印刷データ、すなわち、往路部分画像を示す1回の往路印刷分の印刷データを生成する際に、RGB値をCMYK値に変換するために用いられる。復路用プロファイルPF2は、復路印刷用の部分印刷データ、すなわち、復路部分画像を示す1回の復路印刷分の印刷データを生成する際に、RGB値をCMYK値に変換するために用いられる。往路用プロファイルPF1と復路用プロファイルPF2は、上述した往復間色差を小さくするように、互いに色合わせが行われている。具体的には、これらのプロファイルPF1、PF2は、特定のRGB値を、往路用プロファイルPF1を用いて変換して得られるCMYK値に基づいて印刷される往路部分画像の色と、該特定のRGB値を、復路用プロファイルPF2を用いて変換して得られるCMYK値に基づいて印刷される復路部分画像の色と、が近づくように調整されている。
しかしながら、特定の色については、往復間色差が大きいために、往路用プロファイルPF1と復路用プロファイルPF2とを用いても、往復間色差を十分に抑制できない場合がある。色評価情報CI(図1)は、RGB値のそれぞれについて、往復間色差に応じた重みを規定した情報である。
図4は、色評価情報CIの説明図である。図4(A)には、RGB色空間CCが示されている。RGB色空間CCの8つの頂点のそれぞれに、色を示す符号(具体的には、黒頂点Vk(0,0,0)、赤頂点Vr(255,0,0)、緑頂点Vg(0,255,0)、青頂点Vb(0,0,255)、シアン頂点Vc(0,255,255)、マゼンタ頂点Vm(255,0,255)、イエロ頂点Vy(255,255,0)、白頂点Vw(255,255,255))が付されている。括弧内の数字は、(R、G、B)の各色成分の値を示している。各グリッドGDのRの値は、Rの範囲(ここでは、ゼロから255)をQ等分して得られるQ+1個の値のうちのいずれかである。各グリッドGDの緑Gと青Bとのそれぞれの値も同様である。本実施例では、Q=9であるので、RGB色空間CC内には、9の3乗個(729個)のグリッドGDが設定される。
図4(B)には、色評価情報CIの一例が示されている。色評価情報CIには、729個のグリッドGDに対応するRGB値のそれぞれに、重みWtが対応付けられている。例えば、評価者は、特定のグリッドGDのRGB値を、往路用プロファイルPF1を用いて変換して得られるCMYK値に基づいて印刷されるカラーパッチと、該グリッドGDのRGB値を、復路用プロファイルPF2を用いて変換して得られるCMYK値に基づいて印刷されるカラーパッチと、を印刷する。評価者は、2個のカラーパッチを測色して、測色値を取得する。測色値は、例えば、印刷機構100などのデバイスに依存しない色空間の色値、本実施例では、CIELAB色空間の色値(以下、Lab値とも呼ぶ)である。評価者は、取得される2個の測色値の色差を、特定のグリッドGDに対応する往復間色差dMとして算出する。評価者は、往復間色差dMが大きいほど大きな重みWtを、特定のグリッドGDに対応づける重みWtとして決定する。このようにして、729個のグリッドGDに対応付ける重みWtが決定されて、色評価情報CIが作成される。
上述したように、往復間色差は、往路部分画像と復路部分画像との間でドットが重なる順序が異なることに起因する。このために、印刷に用いられるC、M、Y、Kのインクのうち、2種類のインクを用いて表現される特定色(色差発生色とも呼ぶ)にて、往復間色差が大きくなる。色差発生色は、例えば、CインクとYインクとの両方を用いて表現される緑、特に、比較的多量のCインクとYインクとの両方を用いて表現される濃い緑を含む。また、色差発生色は、MインクとYインクとの両方を用いて表現される赤、CインクとMインクとの両方を用いて表現される青、C、M、Yインクを用いて表現されるグレーを含み得る。色評価情報CIにおいて、これらの色差発生色に対応するグリッドGDには、他の色に対応するグリッドGDよりも大きな重みWtが対応付けられる。
A-3.画像処理
図5は、第1実施例の画像処理Aのフローチャートである。端末装置300のCPU310(図1)は、ユーザからの印刷指示に基づいて、図5の画像処理を開始する。印刷指示には、印刷すべき印刷画像OI(図3)に対応する対象画像データの指定が含まれる。本実施例では、対象画像データは、例えば、RGB値で画素ごとの色を表すRGB画像データである。対象画像データがRGB画像データではない場合には、CPU310は、該対象画像データに対して、ラスタライズ処理を実行して、RGB画像データに変換する。
S105では、CPU310は、対象画像データに含まれる複数個の画素データ(RGB値)から1個の注目画素データを取得する。図6は、印刷画像OIの一部を示す図である。図6(A)には、上述した印刷画像OIの3個の部分画像PI1~PI3が図示されている。
対象画像データによって示される対象画像には、複数個の画素が、X方向とY方向とに沿ってマトリクス状に配置されている。X方向に沿って並ぶ1行分の複数個の画素から成るラインをラスタラインと呼ぶ。本実施例では、対象画像内に含まれる複数本のラスタラインは、+Y側から-Y側に向かって順次に処理され、1本のラスタラインを構成する複数個の画素は、-X側から+X側に向かって順次に処理される。このために、図6(A)に示すように、例えば、部分画像PI2に対応する複数個の画素は、図6(A)に矢印で示すように、左上の角の画素から順次に注目画素として選択される。そして、該注目画素の値(RGB値)が注目画素データとして取得される。
S115では、CPU310は、注目印刷方向は直前印刷方向に決定済みであるか否かを判断する。ここで、現在の注目画素に対応する部分画像PIを注目部分画像とも呼ぶ。注目印刷方向は、注目部分画像を印刷する部分印刷の印刷方向(往路方向または復路方向)である。注目印刷方向が、後述するS155にて直前印刷方向に決定されている場合には、注目印刷方向は直前印刷方向に決定済みであると判断される。ここで、直前印刷方向は、注目部分画像を印刷する部分印刷の直前の部分印刷の印刷方向である。
注目印刷方向が直前印刷方向に決定済みである場合には(S115:YES)、S120にて、CPU310は、往路用プロファイルPF1と復路用プロファイルPF2とのうち、直前印刷方向に対応するプロファイルを用いて、注目画素データを色変換する。すなわち、注目画素データ(RGB値)が、CMYK値に変換される。
注目印刷方向が未決定である場合には(S115:NO)、S125にて、CPU310は、往路用プロファイルPF1と復路用プロファイルPF2とのうち、直前印刷方向の逆方向に対応するプロファイルを用いて、注目画素データを色変換する。すなわち、注目画素データ(RGB値)が、CMYK値に変換される。
S130では、CPU310は、色変換済みの注目画素データに対してハーフトーン処理を実行する。ハーフトーン処理は、注目画素について、CMYKの成分ごとに、ドットの形成状態を示すデータ(ドットデータとも呼ぶ)を生成する処理である。ドットの形成状態は、例えば、「ドット有り」と「ドット無し」とのうちのいずれかである。これに代えて、ドットの形成状態は、「大ドット」、「中ドット」、「小ドット」、「ドット無し」のいずれかであってもよい。本実施例では、ハーフトーン処理は、公知の誤差収集法を用いて実行される。
S135では、CPU310は、注目画素に対応するノズルNZを決定する。すなわち、CPU310は、注目画素に対応するドットを形成する場合に該ドットの形成に用いられるノズルNZをCMYKの成分ごとに決定する。バッファ領域331には、注目部分印刷分のドットデータを格納するためのノズルバッファが確保されている。注目画素に対応するドットデータは、ノズルバッファにおいて、決定されたノズルNZに対応するアドレスに格納される。
S140では、CPU310は、注目印刷方向は未決定であり、かつ、注目判定領域の全画素データが注目画素データとして取得されたか否かを判断する。注目印刷方向が、後述するS155にて直前印刷方向に決定されていない場合には、注目印刷方向は未決定であると判断される。図6(A)に示すように、印刷画像OIには、各部分画像PIを複数個に分割して得られる複数個の判定領域BLが設定される。判定領域BLの形状は、矩形状である。複数の判定領域BLは、X方向とY方向とに沿って格子状に隙間無く配置されている。判定領域BLのY方向の画素数BHとX方向の画素数BWとは、予め決められている。注目判定領域は、注目画素に対応する判定領域BLである。例えば、図6(A)の判定領域BLaの右下の角に位置する画素PXaが、注目画素である場合には、判定領域BLaに対応する全ての画素データが、注目画素データとして取得されたと判断される。
注目印刷方向は決定済みである、あるいは、注目判定領域の一部の画素データが未取得である場合には(S140:NO)、CPU310は、S105に処理を戻す。注目印刷方向は未決定あり、かつ、注目判定領域の全画素データが注目画素データとして取得された場合には(S140:YES)、S145にて、CPU310は、注目判定領域の評価値EVを算出する。
具体的には、注目判定領域内の複数個の画素のそれぞれに対応する重みWtが決定される。重みWtは、上述した色評価情報CI(図4)を参照して決定される。すなわち、各画素のRGB値(画素データ)に近接する複数個のグリッドGDに対応する複数個の重みWtに基づく補間演算によって、各画素に対応するWtが算出される。複数個の画素に対応する複数個の重みWtの平均値が、注目判定領域の評価値EVとして算出される。注目判定領域の評価値EVが大きいことは、注目判定領域内の画像の往復間色差が大きいことを意味している。
S150では、CPU310は、注目判定領域の評価値EVが閾値THv以上であるか否かを判断する。評価値EVが閾値THv未満である場合には(S150:NO)、CPU310は、S175に処理を進める。評価値EVが閾値THv以上である場合には(S150:YES)、S155にて、CPU310は、注目印刷方向を直前印刷方向に決定する。
S160では、CPU310は、再色変換処理を実行する。すなわち、CPU310は、現在までに注目画素データとして処理された全ての画素データに対して、再度、色変換を実行する。現在までに処理された画素データは、往路用プロファイルPF1と復路用プロファイルPF2とのうち、直前印刷方向の逆方向に対応するプロファイルを用いて色変換されている(S125)。これに対して、再色変換処理では、往路用プロファイルPF1と復路用プロファイルPF2とのうち、直前印刷方向に対応するプロファイルを用いて色変換が行われる。
S165では、CPU310は、再ハーフトーン処理を実行する。すなわち、CPU310は、S160にて、再度、色変換された全ての画素データに対して、再度、ハーフトーン処理を実行して、これらの画素データに対応するドットデータを、再度、生成する。本実施例のハーフトーン処理は、誤差収集法である。このために、再度、ハーフトーン処理を実行するためには、注目部分画像の+Y側に隣接する所定本数(例えば、1~2本)分のラスタラインについてハーフトーン処理が実行された際に算出された誤差値が必要である。例えば、図6(A)の部分画像PI2が注目部分画像である場合には、部分画像PI1の-Y側の端部に位置する所定本数分のラスタラインRL1分の誤差値が必要である。この誤差値は、後述するS185にて、バッファ領域331に保存されている。
S170では、CPU310は、生成されたドットデータに対応するノズルNZを決定する。再度生成されたドットデータは、ノズルバッファにおいて、決定されたノズルNZに対応するアドレスに格納される。これによって、上述したS135にてノズルバッファに注目画素ごとに格納されてきたドットデータは、S165にて再度生成されたドットデータに上書きされて、消去される。
S175では、CPU310は、注目部分画像データの全ての画素データが注目画素データとして処理されたか否かを判断する。注目部分画像データは、対象画像データのうち、注目部分画像に対応するデータである。注目部分画像データに未処理の画素データが含まれる場合には(S175:NO)、CPU310は、S105に処理を戻す。注目部分画像データの全ての画素データが注目画素データとして処理された場合には(S175:YES)、この時点で、ノズルバッファに注目部分画像に対応する全てのドットデータが格納されている。すなわち、この時点で、ノズルバッファにおいて、注目部分画像を印刷するための部分印刷データが完成している。この場合には、CPU310は、S180に処理を進める。
S180では、CPU310は、注目印刷方向は直前印刷方向に決定済みであるか否かを判断する。注目印刷方向が直前印刷方向に決定済みである場合には(S180:YES)、CPU310は、S190に処理を進める。注目印刷方向が未決定である場合には(S180:NO)、S185にて、CPU310は、注目印刷方向を、直前印刷方向の逆方向に決定する。すなわち、注目印刷方向がS155にて直前印刷方向に決定されることなく、部分印刷データが完成した場合には、注目印刷方向は、直前印刷方向の逆方向に決定される。
S190では、CPU310は、CPU310は、生成された部分印刷データと、決定された注目印刷方向を示す方向情報と、をプリンタ200に送信する。プリンタ200が該部分印刷データと方向情報とを受信すると、プリンタ200のCPU210は、該部分印刷データと方向情報とに従って、部分印刷を実行する。例えば、CPU210は、方向情報が往路方向を示す場合には、往路印刷を実行して、注目部分画像を印刷し、方向情報が復路方向を示す場合には、復路印刷を実行して、注目部分画像を印刷する。
S195では、CPU310は、次の部分画像を注目部分画像として処理でS165の再ハーフトーン処理が実行される場合のための誤差値をバッファ領域331に保存する。例えば、図6(A)の部分画像PI2が注目部分画像である場合には、部分画像PI2の-Y側の端部に位置する所定本数分のラスタラインRL2分の誤差値が、バッファ領域331に保存される。
S198では、CPU310は、印刷すべき印刷画像OIの全ての部分画像データを処理したか否かを判断する。未処理の部分画像データがある場合には(S198:NO)、CPU310は、S105に処理を戻す。全ての部分画像データが処理された場合には(S198:YES)、CPU310は、画像処理Aを終了する。
以上説明した画像処理Aによって印刷される印刷画像OIについて説明する。図4に示すように、本実施例の印刷では、原則として、往路印刷と復路印刷とが交互に実行される(図5のS125)。これによって、印刷に要する印刷時間を短縮できる。
さらに、画像処理Aによれば、CPU310は、注目部分画像データを用いて、注目印刷方向を、往路方向と復路方向とのうちのいずれかに決定する(図5のS150、S155、S180、S185)。この結果、印刷される注目部分画像にとって適切な印刷方向で注目部分画像が印刷される。これにより印刷方向が異なることによる色ムラの発生を抑えることができる。
例えば、第1の部分印刷データを用いて印刷される注目部分画像(すなわち、往路部分画像と復路部分画像とのうちの一方)と、第2の部分印刷データを用いて印刷される注目部分画像(すなわち、往路部分画像と復路部分画像とうちの他方)との間で生じる色の相違(すなわち、往復間色差)が基準未満であると判断される場合に、注目印刷方向は、直前印刷方向の逆方向に決定される。具体的には、上述したように、注目部分画像内の全ての判定領域BLの評価値EVが閾値未満である場合に(図5のS180にてNO)、注目印刷方向は、直前印刷方向の逆方向に決定される(図5のS185)。また、当該色の相違が基準以上であると判断される場合に、注目印刷方向は、直前印刷方向に決定される。具体的には、上述したように、注目部分画像内の少なくとも1個の判定領域BLの評価値EVが閾値以上である場合に(図5のS150にてYES)、注目印刷方向は、直前印刷方向に決定される(図5のS155)。この結果、色の相違が基準未満である場合には、印刷速度を向上でき、色の相違が基準以上である場合には、色の相違に起因する画質の低下を抑制できる。
例えば、図3の例では、ハッチングされた部分画像PI2、PI3、PI8は、色の相違が基準以上であると判断される部分画像であり、残りのハッチングされていない部分画像PI1、PI4~PI7、PI9、PI10は、色の相違が基準未満であると判断される部分画像であるとする。図3に示すように、ハッチングされた部分画像PI2、PI3、PI8は、直前に印刷される部分画像PI1、PI2、PI7の印刷方向と同じ印刷方向で印刷される。この場合には、図3に破線の矢印で示すように、その部分画像を印刷する部分印刷と、直前の部分印刷と、の間に、ドットを形成することなく主走査が行われる。このように、ドットを形成することなく(すなわち、部分画像を印刷することなく)行われる主走査を、無印刷主走査とも呼ぶ。
無印刷主走査が行われることで、無印刷主走査が行われない場合と比較して、印刷に要する印刷時間が長くなるが、上述した往復間色差が目立つことを抑制して、印刷画像の画質の低下を抑制できる。例えば、図3の2個の部分画像PI2、PI3は、互いに隣接しており、かつ、色の相違が基準以上であるので、仮に、互いに異なる印刷方向で印刷されるとすれば、往復間色差が目立ち得る。本実施例では、図3に示すように、2個の部分画像PI2、PI3は、互いに同じ印刷方向で印刷されるので、2個の部分画像PI2、PI3間では往復間色差は発生しない。
ここで、上述したように、色評価情報CIにおいて、色差発生色には、他の色よりも大きな重みWtが対応付けられる。このため、少なくとも1個の判定領域BLの評価値EVが閾値以上であることは、注目部分画像に基準以上の色差発生色画素が含まれることを意味し、全ての判定領域BLの評価値EVが閾値未満であることは、注目部分画像に基準以上の色差発生色画素が含まれないことを意味する。色差発生色画素は、上述した色差発生色を有する画素である。このように、本実施例では、注目部分画像に基準以上の色差発生色画素が含まれる場合に、色の相違(往復間色差)が基準以上であると判断される、と言うことができる。この結果、2種類以上のインクの重なりによる色の相違に起因する画質の低下を適切に抑制できる。
ここで、画像処理Aでは、CPU310は、注目部分画像データに対して第1の色変換処理(図5のS125)を含む第1の生成処理(図5のS125、S130、S135)を実行し得る。この第1の色変換処理は、プロファイルPF1、PF2のうち、直前印刷方向の逆方向に対応するプロファイルを用いて行われる。このように、第1の生成処理は、直前印刷方向の逆方向で部分印刷を行うための第1の部分印刷データを生成する処理である。また、CPU310は、注目部分画像データに対して第2の色変換処理(図5のS160、S120)を含む第2の生成処理(図5のS160、S165、S170、S120、S130、S135)を実行し得る。この第2の色変換処理は、プロファイルPF1、PF2のうち、直前印刷方向に対応するプロファイルを用いて行われる。このように、第2の生成処理は、直前印刷方向で部分印刷を行うための第2の部分印刷データを生成する処理である。そして、CPU310は、注目印刷方向が直前印刷方向の逆方向に決定される場合に、第1の部分印刷データをプリンタ200に出力し、注目印刷方向が直前印刷方向に決定される場合に、第2の部分印刷データをプリンタ200に出力する(図5のS190)。
画像処理Aによれば、第1の色変換処理および第2の色変換処理で用いられるプロファイルPF1、PF2は、上述したように、特定のRGB値を、往路用プロファイルPF1を用いて変換して得られるCMYK値に基づいて印刷される往路部分画像の色と、該特定のRGB値を、復路用プロファイルPF2を用いて変換して得られるCMYK値に基づいて印刷される復路部分画像の色と、が近づくように調整されている。この結果、例えば、往路印刷であっても復路印刷であっても1種類のプロファイルが用いられる場合と比較して、往路印刷で印刷される注目部分画像と復路印刷で印刷される注目部分画像との間で生じる色の相違が基準未満である可能性が高くなる。この結果、注目印刷方向が直前印刷方向の逆方向に決定される可能性が高くなる。この結果、往路印刷と復路印刷とを用いる印刷の印刷速度を向上できる。
さらに、画像処理Aによれば、第1の生成処理は、注目印刷方向が未決定である時点から開始される(図5のS115にてNO)。さらには、この第1の生成処理は、注目印刷方向が、直前印刷方向(直前の部分印刷の印刷方向と同じ方向)に決定される時点で中断される(図5のS115にてYES)。第1の生成処理は、注目印刷方向が直前印刷方向の逆方向に決定される(図5のS185)場合に中断されることなく最後まで実行される(すなわち完了される)。そして、第2の生成処理は、注目印刷方向が直前印刷方向に決定された後に開始される(図5のS150にてYES、S115にてYES)。
このように、第1の生成処理は、注目印刷方向が未決定である時点から開始されるので、注目印刷方向が直前印刷方向の逆方向に決定される場合に、速やかに第1の部分印刷データが生成される。この結果、例えば、注目印刷方向の決定に比較的時間を要する場合であっても、注目印刷方向が直前印刷方向の逆方向に決定される場合には、すなわち、往路印刷と復路印刷とを用いる印刷(双方向印刷)が行われる場合には、速やかに第1の部分印刷データを用いて印刷を開始することができる。したがって、印刷速度の低下を抑制できる。例えば、第1の生成処理と第2の生成処理とを並列して行う場合(例えば、後述する第3実施例)と比較すると、注目印刷方向が直前印刷方向の逆方向に決定される場合には、速やかに第1の部分印刷データを生成できる。以上の説明から解るように、画像処理Aによれば、往路印刷と復路印刷とを用いる印刷において、色ムラの発生を抑えつつ印刷速度の低下を抑制できる。
また、第1の生成処理と第2の生成処理とを並列して行う場合(例えば、後述する第3実施例)では、第1の生成処理で生成されるデータと第2の生成処理で生成されるデータとをそれぞれ格納するためのバッファ領域331を確保する必要がある。これに対して、画像処理Aによれば、第1の生成処理は、注目印刷方向が直前印刷方向に決定された場合に中断され、第2の生成処理は、注目印刷方向が直前印刷方向に決定された後に開始されるので、第1の生成処理で生成されるデータと第2の生成処理で生成されるデータとのいずれか一方を格納するためのバッファ領域331だけを確保すれば良い。したがって、部分印刷データを生成するために必要なバッファ領域331としてのメモリの容量を低減できる。
ここで、注目判定領域の評価値EVが閾値以上であることは、注目印刷方向が直前印刷方向であるべきことを示す特定条件である、と言うことができる。画像処理Aによれば、CPU310は、注目部分画像データのうちの一部のデータ(すなわち、判定領域BLに対応するデータ)を用いて、当該特定条件が満たされるか否かを判断し(図5のS150)、該特定条件が満たされる場合に(図5のS150にてYES)、注目印刷方向を直前印刷方向に決定する(図5のS155)。この結果、例えば、注目部分画像データの全部を用いて、注目印刷方向が決定される場合と比較して、注目印刷方向を直前印刷方向に決定するために要する時間を短縮できる。例えば、注目印刷方向が直前印刷方向に決定される場合には、第1の生成処理を中断して、第2の生成処理を開始するために、その時点までに行われた第1の生成処理が無駄になる。しかしながら、画像処理Aによれば、注目部分画像データの全体を用いて、注目印刷方向が決定される場合と比較して、早期に第1の生成処理を中断でき、第2の生成処理を開始できる。この結果、注目印刷方向が直前印刷方向に決定される場合であっても、第1の生成処理が無駄に実行されることを抑制して、印刷速度を向上できる。
さらに、画像処理Aによれば、少なくとも1個の判定領域BLが特定条件(画像処理Aでは評価値EVが閾値以上であること)を満たす場合に、注目印刷方向を直前印刷方向に決定する(図5のS150、S155)。したがって、注目印刷方向を直前印刷方向に決定するために要する時間をさらに短縮できる。
さらに、画像処理Aによれば、CPU310は、注目部分画像データに含まれる複数個の画素データのうちの複数個の特定の画素データが注目画素データとして取得される度に、取得される特定の画素データを用いて、特定条件が満たされるか否かが判断される(図5のS140~S150)。具体的には、画像処理Aでは、複数個の特定の画素データは、各判定領域BLのうち最後に処理される画素データ(例えば、図6(A)の判定領域BLaの画素PXa)であり、これらの画素が注目画素データとして取得される度に、特定条件が満たされるか否かが判断される。そして、いずれかの特定の画素データが取得される際の判断にて、特定条件が満たされる場合に(図5のS150にてYES)、注目印刷方向は、直前印刷方向に決定される(図5のS155)。そして、特定条件が満たされることなく、複数個の特定の画素データの取得が完了される場合に(図5のS180にてNO)、注目印刷方向は、直前印刷方向の逆方向に決定される(図5のS185)。この結果、注目印刷方向が直前印刷方向に決定される場合に、注目印刷方向の決定に要する時間を短縮できる。
さらに、画像処理Aによれば、注目印刷方向が未決定である時点から、画素ごとに第1の色変換処理(図5のS125)と、第1の色変換処理によって生成される第1の処理済みデータ(CMYK値)を用いた第1のハーフトーン処理(図5のS130)と、を含む単位処理が開始される。この結果、注目部分画像データの全体に対して第1の色変換処理を行った後に、第1のハーフトーン処理を実行する場合(例えば、後述する第2実施例)よりもバッファ領域331として必要なメモリの容量を低減できる。注目部分画像データの全体に対して第1の色変換処理を行った後に、第1のハーフトーン処理を実行する場合には、注目部分画像内の全ての画素のCMYK値を格納するバッファ領域331を確保する必要があるが、画像処理Aによれば、1画素分のCMYK値が保持できれば良いためである。また、図5のS185にて、注目印刷方向が直前印刷方向の逆方向に決定された時点で、注目部分画像を印刷するための第1の部分印刷データが生成されているので、注目印刷方向が直前印刷方向の逆方向に決定される場合には、すぐに注目部分画像の印刷をプリンタ200に開始させることができる。また、注目部分画像データの全体に対して第1の色変換処理を行った後に、第1のハーフトーン処理を実行する場合には、バッファ領域331に格納された注目部分画像分のCMYK値から1画素分ずつCMYK値を取得してハーフトーン処理を行う必要がある。これに対して画像処理Aによれば、1度取得されたRGB値に対して色変換とハーフトーン処理とがセットで実行される。このために、CMYK値を1画素ずつ取得する処理が不要になる分、第1の部分印刷データの生成に要する時間を短縮し得る。したがって、より印刷速度を向上し得る。
B.第2実施例
第2実施例では、第1実施例の画像処理A(図5)に代えて、画像処理Bが実行される。図7は、第2実施例の画像処理Bのフローチャートである。図7のフローチャートにおいて、図5の画像処理Aと同一のステップには、図5と同じ符号が付され、図5の画像処理Aと異なるステップには、符号の末尾に「B」が付されている。
図7の画像処理BのS105Bでは、注目画素データが1個ずつ取得されるが、注目画素データの取得の順序が、図5の画像処理AのS105とは異なる。画像処理BのS105Bでは、図6(B)に示すように、注目判定領域である判定領域BL内の全ての画素に対応する画素データが注目画素データとして取得された後に、+X側に隣接する次の判定領域BL内の画素に対応する画素データが取得される。そして、X方向に並ぶ複数個の判定領域BLの全てが注目判定領域として処理された後に、該複数個の判定領域BLの-Y側に隣接する複数個の判定領域BLが-X側から順次に処理される。このような順序で注目画素データを取得できるのは、後述するように、注目部分画像データの全ての画素データが色変換された後に、誤差収集法を用いたハーフトーン処理が実行されるためである。
図7の画像処理Bでは、図5の画像処理AのS130、S135は、実行されない。このために、画像処理Bでは、S120またはS125にて注目画素データに対して色変換処理が行われた後に、CPU310は、S140に処理を進める。
図7の画像処理Bでは、S155にて、注目印刷方向が直前印刷方向に決定された後に、図5のS160~S170に代えて、S158BとS160Bが実行される。
S158Bでは、CPU310は、処理済みの1個以上の判定領域BLを、再色変換を行う判定領域BLと、再色変換を行わない判定領域BLと、のいずれかに決定する。例えば、図6(B)の判定領域BLbが注目判定領域である場合に、該注目判定領域の評価値EVが閾値THv以上であると判断されたとする(図7のS150にてYES)。この場合には、S158Bにて、CPU310は、図6(B)にてハッチングされた処理済みの判定領域BLのそれぞれを、再色変換を行う判定領域BLと、再色変換を行わない判定領域BLと、のいずれかに決定する。具体的には、処理済みの判定領域BLのうち、対応する評価値EVが閾値THvよりも小さな閾値THs以上である判定領域BLは、再色変換を行う判定領域BLに決定され、対応する評価値EVが閾値THs未満である判定領域BLは、再色変換を行わない判定領域BLに決定される。
S160Bでは、CPU310は、処理済みの判定領域BLのうち、再色変換を行うと決定された判定領域BL内の全ての画素に対応する画素データに対して、再色変換処理を実行する。CPU310は、処理済みの判定領域BLのうち、再色変換を行わないと決定された判定領域BL内の画素に対応する画素データに対しては、再色変換処理を行わない。再色変換処理では、図5のS160と同様に、往路用プロファイルPF1と復路用プロファイルPF2とのうち、直前印刷方向に対応するプロファイルを用いて色変換が行われる。色変換済みの画素データ(CMYK値)が格納されるバッファ領域331において、再色変換を行うと決定された判定領域BL内の画素に対応するCMYK値は、再変換処理によって生成されたCMYK値に上書きされる。該バッファ領域331において、再色変換を行わないと決定された判定領域BL内の画素に対応するCMYK値は、上書きされない。
画像処理Bでは、注目部分画像データの全てについて色変換処理が行われた後、すなわち、S180またはS185の後に、S186Bが実行される。
S186Bでは、CPU310は、色変換処理済みの注目部分画像データの全ての画素データ(CMYK値)に対して、まとめてハーフトーン処理を実行する。これによって、注目部分画像データに対応する全てのドットデータが生成される。すなわち、S185にて注目印刷方向が直前印刷方向の逆方向に決定される場合には、第1のハーフトーン処理が実行され、S155にて注目印刷方向が直前印刷方向に決定される場合には、第2のハーフトーン処理が実行される。第1のハーフトーン処理は、第1の色変換処理(図7のS125)にて生成される処理済みデータ(CMYK値)を用いて実行される。第2のハーフトーン処理は、注目印刷方向の決定後に実行される第2の色変換処理(図7のS160B、S120)にて生成される処理済みデータ(CMYK値)と、第1の色変換処理(図7のS125)にて生成される処理済みデータのうち、再変換処理を行わない判定領域BLに対応するデータと、を用いて実行される。S188Bでは、CPU310は、全てのドットデータについて対応するノズルNZを決定する。この結果、注目部分画像を印刷するための部分印刷データが生成される。すなわち、注目印刷方向が直前印刷方向の逆方向に決定される場合には、第1の部分印刷データが生成され、注目印刷方向が直前印刷方向に決定される場合には、第2の部分印刷データが生成される。
図7の画像処理Bのその他の処理は、図5の画像処理Aと同様である。
以上説明した本実施例の画像処理Bによれば、注目部分画像データに対して、色変換処理が完了した後に、ハーフトーン処理が開始される(図7のS186B)。すなわち、CPU310は、S185にて注目印刷方向が直前印刷方向の逆方向に決定される場合には、注目印刷方向が直前印刷方向の逆方向に決定された後に、第1のハーフトーン処理を実行する。そして、CPU310は、S155にて注目印刷方向が直前印刷方向に決定される場合には、注目印刷方向が直前印刷方向に決定された後に第2のハーフトーン処理を含む第2の生成処理を実行する。この結果、注目印刷方向が、直前印刷方向の逆方向に決定される場合であっても、直前印刷方向に決定される場合であっても、無駄なハーフトーン処理が行われることを抑制できる。換言すれば、注目印刷方向が、直前印刷方向に決定される場合であっても、再度、実行する必要がある処理は、色変換処理だけである。したがって、注目印刷方向が、直前印刷方向に決定される場合に、印刷速度の低下を抑制できる。
さらに、画像処理Bによれば、CPU310は、注目印刷方向が直前印刷方向に決定される場合に(図7のS155)、中断された第1の色変換処理(図7のS125)によって生成された処理済データ(CMYK値)から利用可能なデータを決定し(図7のS158B)、利用可能なデータに対応しないデータに対して第2の色変換処理を実行し(図7のS160B)、利用可能なデータに対応するデータに対して第2の色変換処理を実行しない。そして、CPU310は、注目印刷方向が直前印刷方向に決定される場合に、第2の色変換処理(図7のS120、S160B)によって生成されたCMYK値と、中断された第1の生成処理(第1の色変換処理)によって生成された利用可能なCMYK値と、を用いて第2の部分印刷データを生成する(S186B、S188B)。この結果、画像処理Bによれば、利用可能なデータに対応するデータに対して第2の色変換処理を実行しないので、印刷方向が直前印刷方向に決定される場合に、印刷時間を短縮し得る。
さらに、利用可能なCMYK値は、上述のように、対応する評価値EVが閾値THs未満である判定領域BLに対応するCMYK値である。対応する評価値EVが閾値THs未満である判定領域BLに対応するCMYK値は、往路印刷で印刷された場合と復路印刷で印刷された場合との間の色の相違(往復間色差)が基準以下であると判断される部分に対応するデータである、と言うことができる。この結果、第1の色変換処理によって生成されたCMYK値、すなわち、注目印刷方向とは異なる方向に対応するプロファイルを用いても、色の相違が生じ難いと判断できる領域についてのみ、第2の色変換処理が省略される。したがって、第2の色変換処理の一部を省略するにも関わらずに、印刷される画像の画質が低下することを抑制することができる。
さらに、画像処理Bによれば、図7のS105では、図6(B)に示す順序で、注目画素データが取得される。この結果、例えば、図6(A)に示す順序で、注目画素データが取得される場合と比較して、-X側に位置する判定領域BL、例えば、図6(B)の判定領域BLa、BLbの評価値EVを用いた判断(S150)が、速い段階で実行される。この結果、注目印刷方向が直前印刷方向に決定される(S155)場合に、注目印刷方向の決定に要する時間を短縮し得る。この結果、注目印刷方向が直前印刷方向に決定される場合に、無駄に第1の生成処理が実行される処理量を低減できる。
ここで、注目印刷方向とは異なる方向に対応するプロファイルが用いられる場合には、注目印刷方向に対応するプロファイルが用いられる場合よりも往復間色差が発生しやすい。このために、利用可能なデータを決定する際には、判定領域BL内の画像の色が、往復間色差が発生し難い色であることをより厳密に判断することが好ましい。画像処理Bによれば、S158Bにて、利用可能なデータを決定する際に用いられる閾値THsは、S150にて注目印刷方向を直前印刷方向に決定する際に用いられる閾値THvよりも小さい。この結果、印刷される画像の画質が低下することを適切に抑制することができる。
C.第3実施例
第3実施例では、CPU310は、複数個の論理プロセッサを備え、2個以上のスレッドのそれぞれに論理プロセッサを割り当てて同時に処理することで全体の処理速度を向上する機能(マルチスレッド処理機能とも呼ぶ)を有する。例えば、複数個の論理プロセッサは、複数個の物理コアによって実現されても良く、1個の物理コアが複数個の論理コアを提供することで実現されても良く、これらの組み合わせによって実現されても良い。1個の物理コアが複数個の論理コアを提供する技術としては、例えば、インテル(登録商標)のハイパースレッディングテクノロジが知られている。
第3実施例では、画像処理A(図5)、画像処理B(図7)に代えて、画像処理Cが実行される。図8は、第3実施例の画像処理Cのフローチャートである。図8のフローチャートにおいて、図7の画像処理Bと同一のステップには、図7と同じ符号が付され、図7の画像処理Bと異なるステップには、符号の末尾に「C」が付されている。
図8の画像処理Cでは、S115にて、注目印刷方向が直前印刷方向に決定済みではないと判断される場合に(S115:NO)、図7のS125に代えて、S125CとS127Cとが、マルチスレッド機能によって並列に実行される。
S125Cでは、CPU310は、往路用プロファイルPF1を用いて、注目画素データを色変換する。これによって、往路用のCMYK値が生成される。S127Cでは、CPU310は、復路用プロファイルPF2を用いて、注目画素データを色変換する。これによって、復路用のCMYK値が生成される。これらの2種類のCMYK値は、それぞれ、バッファ領域331の異なる領域に格納される。
図8の画像処理Cでは、S155にて、注目印刷方向が直前印刷方向に決定された後に、図7のS158BとS160Bは実行されない。
このように、画像処理Cでは、S155にて注目印刷方向が直前印刷方向に決定される場合には、注目印刷方向が直前印刷方向に決定されるまでは、S125CとS127Cにおいて、往路用のCMYK値と復路用のCMYK値との両方が生成されて、バッファ領域331に格納される。そして、注目印刷方向が直前印刷方向に決定された後は、S120にて、往路用のCMYK値と復路用のCMYK値とのうち、直前印刷方向に対応するCMYK値だけが生成され、直前印刷方向の逆方向に対応するCMYK値の生成は中断される。
そして、画像処理Cでは、S185にて注目印刷方向が直前印刷方向の逆方向に決定される場合には、S125CとS127Cにおいて、往路用のCMYK値と復路用のCMYK値との両方が、注目部分画像の全体について生成される。
また、図8の画像処理Cでは、図7の画像処理Bと同様に、注目部分画像データの全てについて色変換処理が行われた後、すなわち、S180またはS185の後に、S186Bにて、ハーフトーン処理が実行される。
すなわち、S185にて注目印刷方向が直前印刷方向の逆方向に決定される場合には、S186Bにて、往路用のCMYK値と復路用のCMYK値とのうち、直前印刷方向の逆方向に対応するCMYK値から構成されるCMYK部分画像データに対してハーフトーン処理が実行される。これによって、直前印刷方向の逆方向で注目部分画像を印刷するための第1の部分印刷データが生成される。
S155にて注目印刷方向が直前印刷方向に決定される場合には、S186Bにて、往路用のCMYK値と復路用のCMYK値とのうち、直前印刷方向に対応するCMYK値から構成されるCMYK部分画像データに対してハーフトーン処理が実行される。これによって、直前印刷方向で注目部分画像を印刷するための第2の部分印刷データが生成される。
以上説明した画像処理Cによれば、第1の部分印刷データを生成するための第1の生成処理と、第2の部分画像データを生成するための第2の生成処理と、は、注目印刷方向が未決定である時点から並列して開始される(図8のS125C、S127C)。この結果、注目印刷方向がいずれに決定される場合であっても、比較的早期に部分印刷データが生成できる。例えば、注目印刷方向の決定に比較的時間を要する場合であっても早期に部分印刷データが生成できる。この結果、印刷速度を向上できる。
さらに、画像処理Cによれば、注目部分画像が直前印刷方向に決定された後は(図8のS115:NO)、直前印刷方向に対応するプロファイルを用いる色変換(図8のS120)だけが実行され、他方のプロファイルを用いる色変換は実行されない。すなわち、注目部分画像が直前印刷方向に決定された場合には、その時点で、第1の生成処理は中断され、第2の生成処理だけが完了される。また、注目部分画像が直前印刷方向の逆方向に決定された後は(図8のS185)、直前印刷方向の逆方向に対応するプロファイルを用いる色変換によって生成されるCMYK部分画像データに対してだけハーフトーン処理が実行され(図8のS186B)、他方のプロファイルを用いる色変換によって生成されるCMYK部分画像データに対してハーフトーン処理は実行されない。すなわち、注目部分画像が直前印刷方向の逆方向に決定された場合には、その時点で、第2の生成処理は中断され、第1の生成処理だけが完了される。このように、注目印刷方向が決定された後は、第1の生成処理と第2の生成処理とのいずれか一方だけが実行されるので、部分印刷データの生成のための処理負荷を低減できる。
さらに、画像処理Cによれば、CPU310のマルチスレッド処理機能を利用して、第1の生成処理の一部と第2の生成処理の一部とが並列に処理されるので、部分印刷データの生成を高速化できる。
D.第4実施例
第4実施例では、画像処理A(図5)、画像処理B(図7)、画像処理C(図8)に代えて、画像処理Dが実行される。図9は、第4実施例の画像処理Dのフローチャートである。
S205では、CPU310は、図8のS105と同様に、例えば、図6(B)に示す順序で、注目画素データを取得する。ただし、本実施例では、注目判定領域内の全ての画素を注目画素データとして取得することに代えて、注目判定領域内の一部の画素を選択的に取得する。注目判定領域は、上述したように、複数個の判定領域BL(図6)のうち、注目画素データに対応する領域である。例えば、CPU310は、注目判定領域に対応する複数個の画素データのうち、X座標およびY座標が奇数である画素のデータのみを注目画素データとして取得する。これによって、注目印刷方向の決定に要する処理時間を短縮することができる。
S210では、CPU310は、注目判定領域に対応する複数個の画素データのうち、取得すべき全ての画素データを取得したか否かを判断する。例えば、注目判定領域に対応する数個の画素データのうち、X座標およびY座標が奇数である全ての画素のデータが取得されたか否かが判断される。
取得すべき一部の画素データが未取得である場合には(S210:NO)、CPU310は、S205に処理を戻す。取得すべき全ての画素データが取得された場合には(S210:YES)、S214にて、CPU310は、注目判定領域の評価値EVを算出し、S220にて、評価値EVが閾値THv以上であるか否かを判断する。
評価値EVが閾値THv以上である場合には(S220:YES)、S225にて、CPU310は、注目印刷方向を直前印刷方向に決定して、S245に処理を進める。評価値EVが閾値THv未満である場合には(S220:NO)、S230にて、CPU310は、注目部分画像内の全ての判定領域BLについて処理されたか否かを判断する。未処理の判定領域がある場合には(S230:NO)、CPU310は、S205に処理を戻す。注目部分画像内の全ての判定領域BLについて処理された場合には(S230:YES)、S240にて、CPU310は、注目印刷方向を直前印刷方向の逆方向に決定して、S245に処理を進める。
S245では、CPU310は、図5のS105と同様に、例えば、図6(A)に示す順序で、注目画素データを取得する。S250では、CPU310は、往路用プロファイルPF1と復路用プロファイルPF2とのうち、決定された注目印刷方向に対応するプロファイルを用いて、注目画素データを色変換する。S255では、CPU310は、色変換済みの注目画素データに対してハーフトーン処理を実行する。S260では、CPU310は、注目画素に対応するノズルNZを決定する。
S265では、CPU310は、注目部分画像データの全ての画素データが注目画素データとして処理されたか否かを判断する。注目部分画像データに未処理の画素データが含まれる場合には(S265:NO)、CPU310は、S245に処理を戻す。注目部分画像データの全ての画素データが注目画素データとして処理された場合には(S265:YES)、S270にて、CPU310は、生成された部分印刷データと、決定された注目印刷方向を示す方向情報と、をプリンタ200に送信する。プリンタ200が該部分印刷データと方向情報とを受信すると、プリンタ200のCPU210は、該部分印刷データと方向情報とに従って、部分印刷を実行する。
S275では、CPU310は、印刷すべき印刷画像OIの全ての部分画像データを処理したか否かを判断する。未処理の部分画像データがある場合には(S275:NO)、CPU310は、S205に処理を戻す。全ての部分画像データが処理された場合には(S275:YES)、CPU310は、画像処理Dを終了する。
以上説明した画像処理Dによれば、S205~S240にて注目印刷方向が決定された後に、S245~S265にて、第1の生成処理と第2の生成処理とのうち、決定済みの注目印刷方向に対応する処理が実行される。この結果、注目印刷方向が、直前印刷方向に決定される場合であっても第1の生成処理が無駄に実行されることがない。また、注目方向が、直前印刷方向の逆方向に決定される場合であっても、第2の生成処理が無駄に実行されることがない。この結果、注目印刷方向がいずれに決定される場合であっても、同等の印刷速度を実現し得る。
また、第1の生成処理と第2の生成処理とが並行に実施されることがないので、第1の生成処理によって生成されるデータと、第2の生成処理によって生成されるデータと、の両方を、バッファ領域331に記憶しておく必要がない。このために、例えば、画像処理Cと比較して、バッファ領域331として必要なメモリの容量を低減できる。
E.第5実施例
第5実施例では、上述した画像処理A(図5)、画像処理C(図8)、画像処理D(図9)の3種類の処理が使い分けられる。図10は、第5実施例の処理のフローチャートである。
図10の処理は、例えば、ユーザからの印刷指示に基づいて、開始される。S310では、CPU310は、自身が上述したマルチスレッド処理機能を有しているか否かを判断する。例えば、オペレーティングシステムのシステム情報には、CPU310が同時に処理することができるスレッド数を示す論理プロセッサ数を示す情報が含まれる。CPU310は、該システム情報を参照して、CPU310の論理プロセッサ数を特定する。CPU310は、CPU310の論理プロセッサ数が2以上である場合には、自身が上述したマルチスレッド処理機能を有していると判断する。CPU310は、CPU310の論理プロセッサ数が1である場合には、自身が上述したマルチスレッド処理機能を有していないと判断する。変形例では、CPU310の物理コア数が2以上である場合には、マルチスレッド処理機能を有していると判断され、CPU310の物理コア数が1である場合には、マルチスレッド処理機能を有していないと判断されても良い。
CPU310は、自身がマルチスレッド処理機能を有している場合には(S310:YES)、S320に処理を進める。CPU310は、自身がマルチスレッド処理機能を有していない場合には(S310:NO)、S330に処理を進める。
S320では、CPU310は、プリンタ200に未処理の印刷ジョブがあるか否かを判断する。未処理の印刷ジョブは、プリンタ200で実行されていない部分印刷のための部分印刷データを含んでいる。例えば、CPU310は、プリンタ200に未処理の印刷ジョブがあるか否かを問い合わせる。CPU310は、該問い合わせに応じてプリンタ200から取得される応答に基づいて、プリンタ200に未処理の印刷ジョブがあるか否かを判断する。CPU310は、プリンタ200に未処理の印刷ジョブがある場合には(S320:YES)、S340に処理を進める。CPU310は、プリンタ200に未処理の印刷ジョブがない場合には(S320:NO)、S330に処理を進める。
S330では、CPU310は、印刷指示に基づいて印刷すべき印刷画像OIの主要なオブジェクトは文字であるか写真や描画であるかを判断する。例えば、CPU310は、印刷画像OIに対応する画像データ(画像ファイル)の拡張子に基づいて当該判断を行う。具体的には、CPU310は、当該画像ファイルの拡張子が第1種の拡張子である場合には、主要なオブジェクトは文字であると判断する。CPU310は、当該画像ファイルの拡張子が第2種の拡張子である場合には、主要なオブジェクトは描画または写真であると判断する。第1種の拡張子は、例えば、「.txt」、「.doc」、「.pdf」を含む。第2種の拡張子は、例えば、「.jpg」、「.bmp」を含む。CPU310は、印刷画像OIの主要なオブジェクトが文字である場合には(S330:YES)、S350に処理を進める。CPU310は、印刷画像OIの主要なオブジェクトが写真や描画である場合には(S330:NO)、S340に処理を進める。
S340では、CPU310は、部分印刷データを生成する処理のためにバッファ領域331として利用可能なメモリの容量を取得する。S345では、CPU310は、取得された利用可能なメモリの容量が閾値THm以上であるか否かを判断する。閾値THmは、例えば、1つの部分画像に対応するCMYK画像データの2倍に相当する容量に設定される。CPU310は、利用可能なメモリの容量が閾値THm以上である場合には(S345:YES)、S360に処理を進める。CPU310は、利用可能なメモリの容量が閾値THm未満である場合には(S345:NO)、S370に処理を進める。
S350では、CPU310は、図5の画像処理Aを実行する。S360では、CPU310は、図8の画像処理Cを実行する。S270では、CPU310は、図9の画像処理Dを実行する。
ただし、CPU310がマルチスレッド処理機能を有する場合に、図9の画像処理Dが実行される場合には、CPU310は、マルチスレッド処理機能を利用して画像処理Dを実行する。例えば、CPU310は、1回目の部分印刷について注目印刷方向を決定する処理(図9のS205~S240)を実行する。そして、1回目の部分印刷について注目印刷方向が決定されると、その後に、CPU310は、(n+1)回目(nは1以上の整数)の部分印刷について注目印刷方向を決定する処理(図9のS205~S240)と、n回目の部分印刷について部分印刷データを生成する処理(図9のS245~S275)と、マルチスレッド処理機能を利用して、並列で実行する。
以上説明した第5実施例によれば、利用可能なメモリの容量が閾値THm以上である場合には(図10のS345:YES)、注目印刷方向が未決定である時点から、第1の生成処理と第2の生成処理とが開始される画像処理Cが実行される(図10のS360)。すなわち、この場合には、必要なメモリの容量が比較的大きい画像処理が実行される。利用可能なメモリの容量が基準未満である場合には(図10のS345:NO)、注目印刷方向が決定された後に、第1の生成処理と第2の生成処理とのうち、決定済みの注目印刷方向に対応する処理が開始される画像処理Dが実行される(図10のS370)。すなわち、この場合には、必要なメモリの容量が比較的小さな画像処理が実行される。この結果、利用可能なメモリの容量に応じて、適切な生成処理を実行できる。
さらに、第5実施例によれば、マルチスレッド処理が可能である場合には(図10のS310:YES)、プリンタ200に未処理の印刷ジョブがあることを条件に、画像処理Cと画像処理Dとのうちのいずれかの処理が実行される(図10のS360、S370)。画像処理Cは、注目印刷方向が未決定である時点から、第1の生成処理と第2の生成処理とをマルチスレッド処理を利用して並列で開始する処理である、と言うことができる。画像処理Dは、次の部分印刷の印刷方向を決定する処理と、第1の生成処理と第2の生成処理とのうちの決定済みの注目印刷方向に対応する処理と、を、マルチスレッド処理を利用して並列で実行する処理である、と言うことができる。すなわち、この場合には、マルチスレッド処理が可能である場合には、マルチスレッド処理が可能でない場合と比較して、処理速度を向上できる画像処理が実行される。そして、マルチスレッド処理が可能でない場合には(図10のS310:NO)、主要なオブジェクトが文字であることを条件に、注目印刷方向が未決定である時点では、第1の生成処理を開始し、第2の生成処理を開始しない画像処理Aが実行される(図10のS350)。すなわち、この場合には、マルチスレッド処理を利用しなくても、注目印刷方向が直前印刷方向の逆方向に決定される場合には、他の画像処理よりも高速で部分印刷データを生成できる画像処理が実行される。この結果、マルチスレッド処理が可能であるか否かに応じて、より適切な画像処理を実行できる。
さらに、第5実施例によれば、プリンタ200に未処理の印刷ジョブがある場合には(図10のS320:YES)、画像処理Cと画像処理Dとのうちのいずれかの処理が実行される(図10のS360、S370)。すなわち、この場合には、プリンタ200は、直ちに印刷を開始できる状態ではないので、注目印刷方向が直前印刷方向の逆方向であっても直前印刷方向であっても処理時間に大きな差がなく、安定して部分印刷データを生成できる画像処理が実行される。そして、プリンタ200に未処理の印刷ジョブがない場合には(図10のS320:NO)、画像処理Aが実行される。すなわち、この場合には、プリンタ200は、直ちに印刷を開始できる状態であるので、最も速く部分印刷データを生成できる可能性がある画像処理Aが実行される。画像処理Aは、注目印刷方向が直前印刷方向の逆方向であれば、最も速く部分印刷データを生成できる。この結果、印刷ジョブの有無に応じて、より適切な画像処理を実行できる。
さらに、第5実施例によれば、印刷画像OIに対応する画像データが、主要なオブジェクトが描画または写真である画像データであると特定される場合には(図10のS330:NO)、画像処理Cと画像処理Dとのうちのいずれかの処理が実行される(図10のS360、S370)。描画または写真は、上述した色差発生色を含む可能性が、文字よりも高い。このために、この場合には、注目印刷方向が直前印刷方向に決定される可能性が比較的高くなるので、注目印刷方向が直前印刷方向に決定される場合に発生する無駄が、画像処理Aよりも少ない画像処理Cや画像処理Dが実行される。そして、画像データが、主要なオブジェクトが文字である画像データであると特定される場合には(図10のS330:YES)、画像処理Aが実行される。文字は、上述した色差発生色を含む可能性が、描画や写真よりも低い。このために、この場合には、注目印刷方向が直前印刷方向の逆方向に決定される可能性が比較的高くなるので、注目印刷方向が直前印刷方向の逆方向に決定される場合に最速で部分印刷データを生成できる画像処理Aが実行される。この結果、印刷画像OIに対応する画像データの種類に応じて、より適切な画像処理を実行できる。
F.変形例
(1)上記画像処理A(図5)のS105では、図6(A)に示す順序で注目画素データが取得される。例えば、図5のS130のハーフトーン処理にて、ディザ法が採用される場合には、画像処理AのS105において、図6(B)に示す順序で注目画素データが取得されても良い。この場合には、注目印刷方向の決定に要する時間を短縮し得る。また、図5のS130のハーフトーン処理にて、ディザ法が採用される場合には、図5のS195の処理を省略できる。
(2)上記画像処理B、C(図7、図8)のS105B、および、画像処理D(図9)のS205では、図6(B)に示す順序で注目画素データが取得される。これに代えて、これらの画像処理B~Dにおいて、図6(A)に示す順序で注目画素データが取得されても良い。
(3)上記画像処理B(図7)のS158Bの処理は、省略されても良い。この場合には、図7のS160Bでは、この時点までに、図7のS125において色変換処理が実行済みの全ての画素データについて、再度、色変換処理が実行される。
(4)上記画像処理C(図8)では、注目部分画像データの全てについて色変換処理が行われた後、すなわち、S180またはS185の後に、ハーフトーン処理(S186B)と対応するノズルNZの決定(S188B)とが実行される。これに代えて、図8において、S120、S125C、S127Cのそれぞれの後に、1画素ずつ、ハーフトーン処理と対応するノズルNZの決定とが実行されても良い。
(5)上記第5実施例の図10のS330にて、印刷画像OIの主要なオブジェクトが文字であるか否かを判断する方法は、様々な方法が用いられ得る。例えば、CPU310は、印刷に用いるべき画像データを解析することによって、印刷画像OIの主要なオブジェクトを特定し、該特定結果に基づいて、印刷画像OIの主要なオブジェクトは文字であるか否かを判断しても良い。CPU310は、さらに、ユーザからの印刷指示によって指定される印刷条件に基づいて推定することによって、主要なオブジェクトは文字であるか否かを判断しても良い。例えば、指定される印刷モードが画質重視モードである場合には、主要なオブジェクトは描画や写真であると判断され、指定される印刷モードが速度重視モードである場合には、主要なオブジェクトは文字であると判断されても良い。また、印刷に用いられる用紙が光沢紙である場合に主要なオブジェクトは描画や写真であると判断され、印刷に用いられる用紙が普通紙である場合に主要なオブジェクトは文字であると判断されても良い。また、ユーザが主要なオブジェクトが文字であるか非文字であるかを、印刷時に入力し、CPU310は、該入力に基づいて主要なオブジェクトは文字であるか否かを判断しても良い。
また、例えば、主要なオブジェクトが文字であるか否かは、部分画像ごとに行われても良い。この場合には、例えば、部分画像ごとに、実行される画像処理が切り替えられても良い。
(6)上記第5実施例(図10)において、実行すべき画像処理を選択するための判断処理(S310~S345)は一例であり、これに限られない。例えば、マルチスレッド処理機能を有していない装置が画像処理を実行することが想定されている場合には、S310の判断は省略されても良い。また、S320の判断も省略されても良い。例えば、S310とS320が省略される場合には、例えば、CPU310は、図5のS330の判断を最初に実行し、その後は、図5のフローチャートに示すように判断を行う。
また、図10では、3個の画像処理A、C、Dから実行すべき画像処理が選択されるがこれに限られない。例えば、2個の画像処理A、Cからから実行すべき画像処理が選択されても良い。例えば、プリンタ200に未処理の印刷ジョブがなく、かつ、印刷画像OIの主要なオブジェクトが文字である場合に、画像処理Aが選択され、他の場合に、画像処理Cが選択されても良い。また、図10のS350では、画像処理Aに代えて、図7の画像処理Bが選択されても良い。
(7)図9の画像処理DのS205では、CPU310は、注目判定領域に対応する複数個の画素データのうち、一部の画素データだけを注目画素データとして取得している。これに代えて、CPU310は、注目判定領域に対応する全ての画素データを注目画素として取得しても良い。
また、CPU310は、注目部分画像データを所定のアルゴリズム(例えば、ニアレストネイバー法、バイリニア法)を用いて縮小した縮小部分画像データを生成し、縮小部分画像データから注目画素データを取得しても良い。この場合には、取得すべき画素データの個数を減らすことで注目印刷方向の決定に要する処理時間を短縮することができる。
(9)上記画像処理A~Dでは、注目印刷方向を直前印刷方向に決定するための特定条件は、少なくとも1個の判定領域BLの評価値EVが閾値THv以上であることであるが、これに限られない。例えば、CPU310は、注目画素データを取得する度に、該注目画素データ(RGB値)が予め定められた範囲のRGB値を有する色差発生色を示すか否かを判断し、色差発生色を示す場合には、色差発生色画素の個数をカウントアップする。そして、CPU310は、色差発生色画素の個数が所定の閾値に達した時点で、注目印刷方向を直前印刷方向に決定し、色差発生色画素の個数が所定の閾値に達することなく、注目画素データの取得が完了した場合に、注目印刷方向を直前印刷方向の逆方向に決定しても良い。
また、注目印刷方向を直前印刷方向に決定するか否かは、常に、注目部分画像データに含まれる全ての画素データを用いて判断されても良い。例えば、CPU310は、注目部分画像と、直前の部分印刷で印刷される部分画像と、の両方に跨って、特定色画素を含むオブジェクトが配置されている場合に、注目部分印刷の印刷方向を、直前の部分印刷の印刷方向に決定しても良い。画像内のオブジェクトの配置位置は、例えば、公知のオブジェクト認識処理を用いて特定できる。また、注目部分画像と、直前の部分印刷で印刷される部分画像と、の境界に、ベタ塗りの領域がある場合には、往復間色差が目立ちやすい。このため、該ベタ塗りの領域がある場合に、注目部分印刷の印刷方向を、直前の部分印刷の印刷方向に決定しても良い。これら場合には、例えば、注目印刷方向を決定する処理と、第1の生成処理と、がマルチスレッド処理機能を利用して並列で開始される。そして、画像処理A、Bと同様に、注目印刷方向が直前印刷方向に決定された後に第1の生成処理が中断され、第2の生成処理が開始され、注目印刷方向が直前印刷方向の逆方向に決定される場合に第1の生成処理は完了され、第2の生成処理は開始されない。あるいは、注目印刷方向を決定する処理と、第1の生成処理と、第2の生成処理と、がマルチスレッド処理機能を利用して並列で開始される。そして、画像処理Cと同様に、注目印刷方向が直前印刷方向に決定される場合に第1の生成処理が中断され、第2の生成処理が完了され、注目印刷方向が直前印刷方向の逆方向に決定される場合に第1の生成処理は完了され、第2の生成処理が中断される。
(10)印刷ヘッド110の各ノズル列の配置位置は、図2(B)のX方向の上流側から、ノズル列NC、NM、NY、NKの順番でなくてもよく、他の任意の順番が採用されても良い。印刷方向が異なることによる色差が発生する場合であれば、印刷方向に対し対称となるようにノズル列が配列されても良い。例えば、NC、NM、NY、NK、NY、NM、NCの順番で7個のノズル列が配列されても良い。
(11)上記実施例の各画像処理では、1回の部分印刷に対応する部分画像を1個の注目部分画像として処理している。これに代えて、例えば、複数回の部分印刷に対応する部分画像を1個の注目部分画像として処理しても良い。例えば、3回の部分印刷に対応する部分画像を1個の注目部分画像として処理する場合には、例えば、第1の生成処理では、3回の部分印刷のそれぞれの印刷方向が直前の部分印刷の逆方向になるように、プロファイルを使い分けて色変換処理を実行する。すなわち、第1の生成処理では、3回の部分印刷が往路印刷、復路印刷、往路印刷で印刷されるように、あるいは、復路印刷、往路印刷、復路印刷で印刷されるように、3個の第1の部分印刷データが生成される。また、例えば、第2の生成処理では、3回の部分印刷のそれぞれの印刷方向が直前の部分印刷と同じ方向になるように、色変換処理を実行する。すなわち、第2の生成処理では、3回の部分印刷が往路印刷で印刷されるように、あるいは、復路印刷で印刷されるように、3個の第2の部分印刷データが生成される。そして、注目印刷方向が直前印刷方向の逆方向に決定される場合には、3個の第1の部分印刷データを用いて双方向で3回の部分印刷が実行され、注目印刷方向が直前印刷方向に決定される場合には、3個の第2の部分画像データを用いて片方向で3回の部分印刷が実行される。
(12)印刷媒体として、用紙Mに代えて、他の媒体、例えば、OHP用のフィルム、CD-ROM、DVD-ROMが採用されても良い。
(13)上記実施例の印刷機構100では、搬送部140が用紙Mを搬送することによって、印刷ヘッド110に対して用紙Mを搬送方向に相対的に移動させている。これに代えて、固定された用紙Mに対して、印刷ヘッド110を搬送方向と反対方向に移動させることによって、印刷ヘッド110に対して用紙Mを搬送方向に相対的に移動させても良い。
(14)上記各実施例では、画像処理A~Dを実行する装置は、端末装置300である。これに代えて、プリンタ200のCPU210が画像処理装置として、画像処理A~Dを実行しても良い。この場合には、画像処理装置として機能するCPU210は、図5、図7、図8のS190や図9のS270において、印刷データと方向情報とを、例えば、不揮発性記憶装置220や揮発性記憶装置230の所定のメモリ領域に出力する。プリンタ200の印刷機構100は、該メモリ領域に出力された印刷データと方向情報とに従って部分印刷を実行する。
以上の説明から解るように、上記各実施例では、端末装置300が画像処理装置の例であり、プリンタ200が印刷実行部の例である。本変形例では、プリンタ200のCPU210が画像処理装置の例であり、プリンタ200の印刷機構100が印刷実行部の例である。
また、画像処理A~Dを実行する装置は、例えば、プリンタや端末装置から画像データを取得して該画像データを用いて印刷ジョブを生成するサーバであっても良い。このようなサーバは、ネットワークを介して互いに通信可能な複数個の計算機であっても良い。この場合には、ネットワークを介して互いに通信可能な複数個の計算機の全体が、画像処理装置の例である。
(15)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図5の画像処理がプリンタ200において実行される場合に、色変換処理やハーフトーン処理は、例えば、プリンタ200のCPU210の指示に従って動作する専用のハードウェア回路(例えば、ASIC)によって実現されてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。