A.第1実施例:
A-1.装置構成:
図1は、実施例の画像処理システム1000を示す説明図である。画像処理システム1000は、端末装置100と、端末装置100に接続された複合機200と、を含んでいる。後述するように、複合機200は、原稿等の対象物を読み取るスキャナ部280と、画像を印刷する印刷実行部400と、複合機200の全体を制御する制御装置299と、を有している。
端末装置100は、パーソナルコンピュータである(例えば、デスクトップコンピュータ、タブレットコンピュータなど)。端末装置100は、プロセッサ110と、記憶装置115と、画像を表示する表示部140と、ユーザによる操作を受け入れる操作部150と、通信インタフェース170と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を含んでいる。
プロセッサ110は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置120は、例えば、DRAMであり、不揮発性記憶装置130は、例えば、フラッシュメモリである。不揮発性記憶装置130は、プログラム132を格納している。プロセッサ110は、プログラム132を実行することによって、種々の機能を実現する。プログラム132によって実現される機能の詳細については、後述する。プロセッサ110は、プログラム132の実行に利用される種々の中間データを、記憶装置115(例えば、揮発性記憶装置120、不揮発性記憶装置130のいずれか)に、一時的に格納する。本実施例では、プログラム132は、複合機200の製造者によって提供されたデバイスドライバに含まれている。
表示部140は、画像を表示する装置であり、例えば、液晶ディスプレイである。これに代えて、LEDディスプレイ、有機ELディスプレイなどの、画像を表示する他の種類の装置が採用されてよい。操作部150は、ユーザによる操作を受け取る装置であり、例えば、表示部140上に重ねて配置されたタッチパネルである。これに代えて、ボタン、レバーなどの、ユーザによって操作される他の種類の装置が採用されてよい。ユーザは、操作部150を操作することによって、種々の指示を端末装置100に入力可能である。
通信インタフェース170は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース170には、複合機200が接続されている。
端末装置100は、ユーザの指示に従って複合機200を駆動し、複合機200に画像を印刷させる。
複合機200は、制御装置299と、スキャナ部280と、印刷実行部400と、を有している。制御装置299は、データ処理装置210と、画像を表示する表示部240と、ユーザによる操作を受け入れる操作部250と、通信インタフェース270と、を有している。これらの要素は、バスを介して互いに接続されている。
データ処理装置210は、種々のデータ処理を実行する電気回路である。データ処理装置210は、プロセッサ211と、色変換回路212と、ハーフトーン回路213と、モータコントローラ214と、記憶装置215と、を有している。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。データ処理装置210は、例えば、ASIC(Application Specific Integrated Circuit)を用いて、構成されている。
プロセッサ211は、プログラムに従ってデータ処理を行う装置であり、例えば、CPUである。プロセッサ211は、不揮発性記憶装置230に格納されているプログラム232を実行することによって、種々の機能を実現する(詳細は、後述)。本実施例では、プログラム232は、複合機200の製造者によって、ファームウェアとして、不揮発性記憶装置230に予め格納されている。
色変換回路212は、色変換処理を行う電気回路である。ハーフトーン回路213は、ハーフトーン処理を行う電気回路である。モータコントローラ214は、印刷実行部400(具体的には、モータなど)を制御する電気回路である。これらの電気回路212、213、214の少なくとも1つ(例えば、モータコントローラ214)は、FPGA(field-programmable gate array)を用いて構成されてよい。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。
プロセッサ211と色変換回路212とハーフトーン回路213とモータコントローラ214とは、データ処理に利用される種々の中間データを、記憶装置(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。
表示部240は、画像を表示する装置であり、例えば、液晶ディスプレイである。これに代えて、LEDディスプレイ、有機ELディスプレイなどの、画像を表示する他の種類の装置が採用されてよい。操作部250は、ユーザによる操作を受け取る装置であり、例えば、表示部240上に重ねて配置されたタッチパネルである。これに代えて、ボタン、レバーなどの、ユーザによって操作される他の種類の装置が採用されてよい。ユーザは、操作部250を操作することによって、種々の指示を複合機200に入力可能である。
スキャナ部280は、CCDやCMOSなどの光電変換素子を用いて光学的に原稿等の対象物を読み取ることによって、読み取った画像(「スキャン画像」と呼ぶ)を表すスキャンデータを生成する。スキャンデータは、例えば、カラーのスキャン画像を表すRGBのビットマップデータである。
印刷実行部400は、用紙(印刷媒体の一例)上に画像を印刷する装置である。本実施例では、印刷実行部400は、印刷ヘッド410(単にヘッド410とも呼ぶ)と、ヘッド駆動部420と、主走査部430と、搬送部440と、インク供給部450と、を有している。詳細は後述するが、印刷実行部400は、シアンCとマゼンタMとイエロYとブラックKとのそれぞれのインクを用いるインクジェット式の印刷装置である。なお、利用可能な複数種類のインクの組み合わせとしては、CMYKに限らず、他の種々の組み合わせ(例えば、シアンCとマゼンタMとイエロY)を採用可能である。
通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、端末装置100が接続されている。また、通信インタフェース270には、USBフラッシュドライブ等の携帯記憶装置300など、他の種類の装置も接続され得る。
複合機200は、ユーザによって選択された画像データを用いて印刷データを生成し、生成した印刷データを用いて印刷実行部400に画像を印刷させることができる。ユーザは、スキャンデータや、外部装置(例えば、通信インタフェース270に接続された携帯記憶装置300)に格納された画像データを、選択できる。また、複合機200は、通信インタフェース270を介して通信可能な他の装置(例えば、端末装置100)によって供給された印刷データを用いて、印刷実行部400に画像を印刷させることができる。
図2は、印刷実行部400の概略図である。主走査部430は、キャリッジ433と、摺動軸434と、ベルト435と、複数個のプーリ436、437と、を備えている。キャリッジ433は、印刷ヘッド410を搭載する。摺動軸434は、キャリッジ433を主走査方向(図2のDx軸に平行な方向)に沿って往復動可能に保持する。ベルト435は、プーリ436、437に巻き掛けられ、一部がキャリッジ433に固定されている。プーリ436は、図示しない主走査モータの動力によって回転する。主走査モータがプーリ436を回転させると、キャリッジ433が摺動軸434に沿って移動する。これによって、用紙PMに対して主走査方向に沿って印刷ヘッド410を往復動させる主走査が実現される。
搬送部440は、用紙PMを保持しつつ、印刷ヘッド410に対して主走査方向に垂直な搬送方向Dfに用紙PMを搬送する。搬送方向Dfは、+Dy方向と同じである。ここで、搬送方向Dfの上流側(-Df側)を、単に、上流側とも呼び、搬送方向Dfの下流側(+Df側)を単に下流側とも呼ぶ。搬送部440は、印刷ヘッド410のインクを吐出する面に対向する位置に配置されるとともに、用紙PMを支持するように構成されたプラテンPTと、それぞれがプラテンPT上に配置された用紙PMを保持するように構成された上流ローラ441と下流ローラ442と、ローラ441、442を駆動する図示しないモータと、を備えている。上流ローラ441は、印刷ヘッド410よりも上流側に配置され、下流ローラ442は、印刷ヘッド410よりも下流側に配置されている。用紙PMは、図示しない用紙トレイから、図示しない給紙ローラによって、搬送部440に供給される。搬送部440に供給された用紙PMは、プラテンPTと上流ローラ441との間に挟まれ、上流ローラ441によって下流側に搬送される。搬送された用紙PMは、プラテンPTと下流ローラ442との間に挟まれ、下流ローラ442によって下流側に搬送される。搬送部440は、モータの動力でこれらのローラ441、442を駆動することによって、用紙PMを搬送方向Dfに搬送する。以下、用紙PMを搬送方向Dfに移動させる処理を、副走査、または、搬送処理とも呼ぶ。搬送方向Dfを、副走査方向Dfとも呼ぶ。
インク供給部450は、印刷ヘッド410にインクを供給する。インク供給部450は、カートリッジ装着部451と、チューブ452と、バッファタンク453と、を備えている。カートリッジ装着部451には、内部にインクが収容された容器である複数個のインクカートリッジKC、YC、CC、MCが着脱可能に装着され、これらのインクカートリッジからインクが供給される。バッファタンク453は、キャリッジ433において、印刷ヘッド410の上方に配置され、印刷ヘッド410に供給すべきインクをCMYKのインクごとに一時的に収容する。チューブ452は、カートリッジ装着部451とバッファタンク453との間を接続するインクの流路となる可撓性の管である。各インクカートリッジ内のインクは、カートリッジ装着部451、チューブ452、バッファタンク453を介して、印刷ヘッド410に供給される。バッファタンク453には、インクに混入した異物を除去するためのフィルタ(図示省略)が設けられている。
図3は、-Dz側から見た印刷ヘッド410の構成を示す図である。Dz方向は、図2に示すように、2つの方向Dx、Dyに垂直に、プラテンPTからヘッド410へ向かう方向である。図3に示される印刷ヘッド410のノズル形成面411は、搬送部440(図2)によって搬送される用紙PMと対向する面である。ノズル形成面411には、複数のノズルNZからなる複数のノズル群、すなわち、上述したK、Y、C、Mの各インクを吐出するノズル群NK、NY、NC、NMが形成されている。各ノズル群は、複数個のノズルNZを含んでいる。1つのノズル群の複数個のノズルNZの間では、搬送方向Dfの位置が互いに異なり、複数のノズルNZは、搬送方向Dfに沿って所定のノズル間隔NTで並んでいる。ノズル間隔NTは、複数のノズルNZの中で搬送方向Dfに隣り合う2個のノズルNZ間の搬送方向Dfの距離である。これらのノズル群を構成するノズルのうち、最も上流側(-Dy側)に位置するノズルNZを、最上流ノズルNZuとも呼ぶ。また、これらのノズルのうち、最も下流側(+Dy側)に位置するノズルNZを、最下流ノズルNZdと呼ぶ。最上流ノズルNZuから最下流ノズルNZdまでの搬送方向Dfの長さに、さらに、ノズル間隔NTを加えた長さを、ノズル長Dとも呼ぶ。
ノズル群NK、NY、NC、NMの主走査方向の位置は、互いに異なり、副走査方向の位置は、互いに重複している。図3の例では、ノズル群NK、NY、NC、NMは、+Dx方向に向かって、この順番に並んでいる。
各ノズルNZは、印刷ヘッド410の内部に形成されたインク流路(図示省略)を介してバッファタンク453(図2)に接続されている。各インク流路には、インクを吐出させるためのアクチュエータ(図示省略。例えば、ピエゾ素子、ヒータなど)が設けられている。
ヘッド駆動部420(図1)は、主走査部430による主走査中に印刷ヘッド410内の各アクチュエータを駆動する電気回路を含んでいる。これによって、用紙PM上に印刷ヘッド410のノズルNZからインクが吐出されて、ドットが形成される。このように、印刷ヘッド410とヘッド駆動部420と主走査部430とは、用紙PM上にインクを用いて画像を形成する。以下、印刷ヘッド410とヘッド駆動部420と主走査部430との全体を、画像形成部460と呼ぶ。
A-2.印刷の概要:
本実施例では、複合機200は、主走査部430に主走査を行わせつつ、印刷ヘッド410にインクを吐出させて用紙PMにドットを形成する部分印刷と、搬送部440による副走査(用紙PMの搬送)と、を複数回実行することで、用紙PMに画像を印刷する。
図4(A)は、印刷実行部400の動作の例の説明図である。図4(A)には、用紙PMに印刷される対象画像TIが図示されている。図4(A)において、+Dy方向は、用紙PMの搬送方向Df(すなわち、副走査方向)である。対象画像TI上には、-Dy方向(より一般的には、副走査方向)に並ぶ複数個のバンド領域(バンド領域BI1~BI4を含む)が配置されている。各バンド領域の形状は、主走査方向(ここでは、Dx方向に平行な方向)に延びる矩形状である。本実施例では、各バンド領域は、1回の部分印刷の印刷可能領域を示している。各バンド領域は、対象画像TIの-Dx側の端から+Dx側の端まで延びている。各バンド領域BI1~BI4の左側には、バンド領域の画像を印刷する印刷ヘッド410の簡略化されたノズル群NXが、示されている。ノズル群NXは、図3のノズル群NC、NM、MY、NKを代表して示している。各バンド領域の副走査方向の幅は、予め決められており、本実施例では、ノズル長D(図3)と同じである。また、本実施例では、各バンド領域における印刷の進行方向(すなわち、印刷ヘッド410の移動方向)は、+Dx方向である。以下、1回の部分印刷を、「パス処理」または、単に「パス」とも呼ぶ。なお、各バンド領域における印刷の進行方向としては、+Dx方向と-Dx方向との両方が用いられてもよい。
複数のバンド領域のそれぞれの画像は、対象画像TIの搬送方向Df側の端のバンド領域の画像から、-Df方向に向かって1つずつ順番に、印刷される。これにより、対象画像TIの全体が、印刷される。以下、搬送方向Dfとは反対の方向を、印刷方向Dpとも呼ぶ。
本実施例では、隣合う2個のバンド領域は、互いに重ならずに隣接している。これに代えて、隣合う2個のバンド領域は、互いに一部分が重なっていてもよい。2個のバンド領域が重なる領域は、2回の部分印刷に分散して印刷される。
A-3.印刷の処理:
図5~図7は、印刷処理の例を示すフローチャートである。図6は、図5の続きを示し、図7は、図6の続きを示している。複合機200は、印刷指示に応じて、印刷処理を開始する。印刷指示を複合機200に供給する方法は、任意の方法であってよい。本実施例では、ユーザは、操作部250(図1)を操作することによって、印刷指示を入力する。印刷指示は、印刷用の画像データを指定する情報を含んでいる。印刷用の画像データとしては、種々のデータが指定されてよい。以下、携帯記憶装置300に格納されているJPEGデータが、指定されたこととする。
S60では、複合機200のプロセッサ211は、印刷指示に従って、対象画像データの取得を開始する。対象画像データは、印刷対象の画像である対象画像の画像データである。本実施例では、対象画像データとして、ビットマップデータが用いられる。また、対象画像データの各画素の画素値は、0から255までの256階調のR(赤)G(緑)B(青)の階調値で表されていることとする。以下、対象画像データの色空間を、入力色空間とも呼ぶ。印刷指示によって指定された画像データがJPEGデータである場合、プロセッサ211は、JPEGデータを展開することによって、対象画像データを取得する。印刷指示によって指定された画像データの形式がビットマップ形式とは異なる形式である場合(例えば、EMF(Enhanced Meta File)形式)、プロセッサ211は、データ形式を変換(例えば、ラスタライズ)することによって生成されるビットマップデータを、対象画像データとして用いる。また、ビットマップデータの解像度(すなわち、画素密度)が、印刷用の予め決められた解像度と異なる場合、プロセッサ211は、解像度変換処理を実行して、印刷用の解像度の対象画像データを生成する。以下、印刷用の解像度の画素を、印刷画素とも呼ぶ。
本実施例では、プロセッサ211は、対象画像データの取得が完了する前に、印刷処理の他の処理を開始する。図5の実施例では、プロセッサ211は、対象画像データの取得が完了する前に、S65の処理を開始する。このように、対象画像データの取得は、印刷処理の他の処理と並行して、行われる。
S65では、プロセッサ211は、対象画像中の空白画素ラインを特定する処理を開始する。図8は、空白画素ラインを特定する処理の例を示すフローチャートである。この処理では、プロセッサ211は、対象画像に含まれる複数の画素列を用いて候補画素ラインを特定し、候補画素ラインの複数の画素を用いて候補画素ラインが空白画素ラインであるか否かを判断する。
図9は、対象画像TIと候補画素ラインとの例を示す概略図である。図9の左部には、対象画像TIの例が示されている。対象画像TIは、文字や図形などの種々のオブジェクトObと、背景BGと、を表している。図中では、オブジェクトObにハッチングが付されている。対象画像TIは、Dx方向とDy方向とに沿って格子状に並ぶ複数の画素によって、表される(図示省略)。以下、主走査方向(Dx方向に平行な方向)に並ぶ複数の画素によって形成されている画素ラインを、画素行とも呼ぶ。対象画像TIに含まれる画素行の総数は、U本である。また、副走査方向Dyに並ぶ複数の画素によって形成されている画素ラインを、画素列とも呼ぶ。対象画像TIに含まれる画素列の総数は、T本である。また、対象画像TI内での画素のDx方向の位置を、列番号とも呼ぶ。列番号は、Dx方向に向かって昇順に並ぶように、1から順番に割り当てられている。また、対象画像TI内での画素の-Dy方向の位置を、行番号とも呼ぶ。行番号は、-Dy方向に向かって昇順に並ぶように、1から順番に割り当てられている。
S710(図8)では、プロセッサ211は、対象画像データを参照し、対象画像TIに含まれるT本の画素列のうちの一部であるQ本の画素列の各画素の色値データを取得する(Qは1以上の整数)。以下、Q本の画素列を、対象画素列、または、対象画素ラインとも呼ぶ。本実施例では、予め決められた3本の対象画素列が用いられることとする(Q=3)。図9の画素列C1、C2、C3は、対象画素列を示している。
S720(図8)では、プロセッサ211は、Q本の対象画素列の複数の画素から、空白画素を特定する。空白画素は、インクが吐出されない画素である。本実施例では、プロセッサ211は、画素の色値データが最も明るい白色(最明白色と呼ぶ)を示す場合に、画素が空白画素であると判断する。本実施例では、R=G=B=255によって示される色が、最明白色である。図9の対象画像TIでは、背景BGを示す画素の色値データは最明白色を示し、オブジェクトObを示す画素の色値データは最明白色とは異なる色を示している。以下、最明白色とは異なる色を示す画素を、非空白画素とも呼ぶ。プロセッサ211は、Q本の対象画素列の複数の画素のそれぞれについて、画素が空白画素であるか否かを判断する。そして、プロセッサ211は、各画素の判断結果を示す空白画素フラグデータを生成し、生成した空白画素フラグデータを、記憶装置215(例えば、不揮発性記憶装置230)に一時的に格納する。
図9の右部の表TB1には、行番号jと、空白画素フラグデータによって示される空白画素フラグF1と、の関係の例が示されている。「1」のフラグF1は、「空白画素」を示し、「ゼロ」のフラグF1は、「非空白画素」を示している。表TB1には、3本の対象画素列C1、C2、C3の複数の画素のそれぞれの空白画素フラグF1が、示されている。行番号jは、図中の上から下に向かって1から順番に並んでいる。表TB1における行番号jと空白画素フラグF1との縦方向の記載位置は、左部の対象画像TIにおける同じ行番号jの画素の縦方向の位置(すなわち、搬送方向Dfの位置)に、対応している。なお、図9では、説明のために、対象画像TI中の1本の画素ラインの幅(ひいては、1個の画素の大きさ)が大きく示されている。実際には、対象画像TI中の1個の画素の大きさは、もっと小さい。
表TB1に示すように、3本の対象画素列C1、C2、C3のそれぞれの画素のうち、背景BGを示す画素の空白画素フラグF1は、「1」に設定され、オブジェクトObを示す画素の空白画素フラグF1は、「0」に設定される。
S730(図8)では、プロセッサ211は、空白画素フラグF1を参照し、行番号が同じであるQ個の画素の全てが空白画素である画素行を検索する。例えば、図9の例では、6番の画素行の3個の画素の空白画素フラグF1の全てが「1(空白画素)」である。プロセッサ211は、検出された画素行を、候補画素ラインとして特定する。プロセッサ211は、U本の画素行のそれぞれについて、画素行が候補画素行であるか否かを判断する。そして、プロセッサ211は、各画素行の判断結果を示す候補フラグデータを生成し、候補フラグデータを、記憶装置215(例えば、不揮発性記憶装置230)に一時的に格納する。図9の表TB1の候補フラグFcは、候補フラグデータによって示される判断結果を示している。「1」の候補フラグFcは、候補画素行を示し、「ゼロ」の候補フラグFcは、非候補画素行を示している。以下、候補画素行を、候補ラインとも呼ぶ。
S740(図8)では、プロセッサ211は、対象画像データを参照し、各候補ラインの複数の画素のそれぞれの色値データを取得する。S750では、プロセッサ211は、各候補ラインの複数の画素から、空白画素を特定する。S760では、空白画素のみで構成される候補ラインを、空白画素ラインとして特定する。プロセッサ211は、全ての候補ラインについて、候補ラインが空白画素ラインであるか否かを判断する。そして、プロセッサ211は、各候補ラインの判断結果を示す空白ラインフラグデータを生成し、空白ラインフラグデータを、記憶装置215(例えば、不揮発性記憶装置230)に一時的に格納する。図9の表TB1の空白ラインフラグFrは、空白ラインフラグデータによって示される判断結果を示している。「1」の空白ラインフラグFrは、空白画素ラインを示し、「ゼロ」の空白ラインフラグFrは、非空白画素ラインを示している。非空白画素ラインは、1以上の非空白画素を含む画素ラインである。以上により、図8の処理、すなわち、図5のS65の処理が終了する。
なお、図5のS60で説明したように、S65を実行する段階では、対象画像データのうちの一部が未取得であり得る。プロセッサ211は、対象画像データのうちの取得済の部分を用いて、判断可能な画素行の図8の処理を実行する。例えば、対象画像データが、対象画像TI(図9)の搬送方向Df側の端から印刷方向Dpに向かって一部ずつ徐々に取得される場合、プロセッサ211は、画素行が空白画素ラインであるか否かの判断を、印刷方向Dpに向かって徐々に進行する。
本実施例では、プロセッサ211は、S65において全ての画素行の判断が完了する前に、印刷処理の他の処理を開始する。図5の実施例では、プロセッサ211は、S65が未完了であっても、S70の処理を開始する。このように、画素行が空白画素ラインであるか否かの判断は、印刷処理の他の処理と並行して、行われる。
S70では、プロセッサ211は、処理対象のパスである対象パスの番号Nを、1に初期化する(以下、対象番号Nとも呼ぶ)。続いて、プロセッサ211は、対象パスのバンド領域である対象バンド領域が空白画素ラインを含む場合に、対象バンド領域を印刷する処理を、第1処理と第2処理とから選択する。第1処理は、対象バンド領域の全体を、対象パスで印刷する処理である。第2処理は、対象バンド領域を、対象パスと次のパスとの2回のパスに分けて印刷する処理である。以下、詳細について、説明する。
S80では、プロセッサ211は、対象パスのバンド領域である対象バンド領域の配置を決定する。図4(A)で説明したように、本実施例では、プロセッサ211は、複数のバンド領域を、対象画像TIの搬送方向Df側の端から、印刷方向Dpに向かって、1つずつ順番に並べて配置する。通常は、隣合う2個のバンド領域は、隙間を空けずに、互いに接触している。ただし、本実施例では、バンド領域の搬送方向Df側の端部が空白バンドに重なる場合、プロセッサ211は、空白バンドをスキップする位置にバンド領域を配置する。
図4(B)は、空白バンドのスキップの説明図である。左部には、対象画像TIb上の隣合う2個のバンド領域BIa、BIbの通常の配置が示されている。これらのバンド領域BIa、BIbは、互いに接しており、印刷方向Dpに沿ってこの順番に並んでいる。第1バンド領域BIaは、第1オブジェクトOB1を示し、第2バンド領域BIbは、第2オブジェクトOB2を示している。これらのオブジェクトOB1、OB2は、印刷方向Dpに沿って、互いに離れて配置されている。2個のオブジェクトOB1、OB2の間には、空白バンドBaが形成されている。本実施例では、空白バンドは、1本以上の空白画素ラインが連続する領域であり、ドットが形成されない領域である。第2バンド領域BIbの搬送方向Df側の端部は、空白バンドBaに重なっている。図中の幅Wbは、第2バンド領域BIbと空白バンドBaとの重なる部分の印刷方向Dpの幅である。
プロセッサ211は、第2バンド領域BIbのように通常の配置のバンド領域の搬送方向Df側の端部が空白バンドに重なる場合、バンド領域の搬送方向Df側の端がオブジェクトに重なるまで、バンド領域を印刷方向Dpに移動させる。図4(B)の右部には、移動済の第2バンド領域BIbが示されている。第2バンド領域BIbの搬送方向Df側の端BIbeは、第2オブジェクトOB2の搬送方向Df側の端OB2eを示している。第2バンド領域BIbの移動量は、幅Wbと同じである。
以上のように、本実施例では、プロセッサ211は、S80(図5)で、以下の条件A、Bに従って、バンド領域の配置を決定する。
条件A)隣合う2個のバンド領域を、隙間を設けずに、配置する。
条件B)バンド領域の搬送方向Df側の端部が空白バンドに重なる場合、バンド領域を印刷方向Dpに移動させる。移動量は、バンド領域に重なる空白バンドの幅と同じである。
S90(図5)では、プロセッサ211は、参照番号Lをゼロに初期化する。参照番号Lは、対象パスから後の注目しているパスの番号(N+L)を特定するために用いられる。以下、N+L番のパスを参照パスとも呼ぶ。後述するように、参照番号Lは、参照パスに関する処理が終了する毎に、1加算される。
S110では、プロセッサ211は、対象バンド領域の印刷方向Dp側に非空白領域が接しているか否かを判断する。非空白領域は、空白画素ラインを含まない領域である。対象バンド領域の印刷方向Dp側に空白画素ラインが接している場合、S110の判断結果はNoである。対象バンド領域の印刷方向Dp側に非空白画素ラインが接している場合、S110の判断結果はYesである。
S110の判断結果がNoである場合、プロセッサ211は、S210(図6)で、第1処理を選択し、S310(図7)へ移行する。S310では、N番からN+L番までのL+1個のバンド領域の部分印刷が行われる。
図10は、S310(図7)の部分印刷の例を示すフローチャートである。S405では、プロセッサ211は、図6のS210とS220のいずれかで選択された処理のための各バンド領域の配置と各バンド画像とを特定する。バンド画像は、バンド領域内の印刷すべき画像である。S210(図6)で第1処理が選択された場合、各バンド領域は、1回の部分印刷で印刷される。従って、バンド領域の全体が、バンド画像に対応する。S220(図6)で第2処理が選択された場合については、後述する。
S410では、プロセッサ211は、印刷番号Zを対象番号Nに初期化する。印刷番号Zは、現行の部分印刷(すなわち、パス)の番号である。S420では、プロセッサ211は、対象画像データを参照して、Z回目のパスのバンド画像の画像データを取得する(現行バンドデータとも呼ぶ)。プロセッサ211は、取得した現行バンドデータを、色変換回路212(図1)に供給する。
S430では、色変換回路212(図1)は、現行バンドデータの色変換処理を実行する。色変換処理は、現行バンドデータによって示される各画素の色値(本実施例では、RGB値)を、印刷に利用可能な複数種類のインクの色に対応するインク色空間の色値(本実施例では、CMYK値)に変換する処理である。本実施例では、色変換回路212は、図示しない色変換プロファイルを参照して、色変換処理を実行する。色変換プロファイルは、対象画像データの色空間である入力色空間の色値と、インク色空間の色値と、の対応関係を示すデータである。本実施例では、色変換プロファイルとして、予め決められたルックアップテーブルが、用いられる。色変換回路212は、色変換済の現行バンドデータを、記憶装置215(揮発性記憶装置220と不揮発性記憶装置230とのいずれか)に、格納する。
S440では、ハーフトーン回路213(図1)は、色変換済の現行バンドデータのハーフトーン処理を実行する。本実施例では、ハーフトーン処理は、ディザマトリクスを用いる処理である。ハーフトーン処理によって、色成分ごと、かつ、印刷画素ごとに、ドットの形成状態を示すドットデータが生成される。ハーフトーン回路213は、生成したドットデータを、記憶装置215(揮発性記憶装置220と不揮発性記憶装置230とのいずれか)に、格納する。ドットの形成状態は、印刷によって形成すべきドットの状態であり、本実施例では、「ドット有り」と「ドット無し」とのうちのいずれかである。これに代えて、ドットの形成状態は、互いにドットサイズが異なる2以上のドット有りの状態を含む3以上の状態(例えば、「大ドット」、「中ドット」、「小ドット」、「ドット無し」)から選択されてもよい。いずれの場合も、ドットデータは、ドット形成状態に対応する値を示している。
S450では、プロセッサ211は、ドットデータを用いて、Z番目のバンド画像の印刷のための部分印刷データを生成する。部分印刷データは、1回の部分印刷のための印刷データである。部分印刷データは、インクドットを形成すべき印刷画素を特定する情報と、部分印刷の後の用紙PMの搬送量を示す情報と、を含んでいる。
S460では、プロセッサ211は、部分印刷データをモータコントローラ214に出力する。S470では、モータコントローラ214は、部分印刷データに従って、印刷実行部400の種々のモータ(図示せず)とヘッド駆動部420とを制御する。これにより、1回の部分印刷と用紙PMの搬送とが行われる。以上により、Z回目の部分印刷が完了する。
S480では、プロセッサ211は、印刷番号ZがN+L以上であるか否かを判断する。N+L番の部分印刷が完了済の場合、S480の判断結果はYesである。この場合、プロセッサ211は、図10の処理、すなわち、図7のS310の処理を終了する。未処理の部分印刷が残っている場合、S480の判断結果はNoである。この場合、プロセッサ211は、S490で、印刷番号Zを「Z+1」に更新し、S420へ移行する。そして、プロセッサ211は、次の部分印刷の処理を実行する。
なお、本実施例では、プロセッサ211は、S310(図7)においてN回目からN+L回目の全ての部分印刷が完了する前に、印刷処理の他の処理を開始する。図7の実施例では、プロセッサ211は、S310が未完了であっても、S320の処理を開始する。このように、部分印刷は、印刷処理の他の処理と並行して、行われる。
S320では、プロセッサ211は、対象画像の印刷が完了したか否かを判断する。対象画像の印刷が完了した場合(S320:Yes)、プロセッサ211は、印刷処理を終了する。対象画像の印刷が完了していない場合(S320:No)、プロセッサ211は、S330で対象番号Nを「N+L+1」に更新し、図5のS80へ移行する。そして、新たな対象パスの処理を実行する。
S110(図5)の判断結果がYesである場合、S120で、プロセッサ211は、対象バンド領域内の印刷方向Dp側の所定幅の部分が、空白画素ラインを含むか否かを判断する。対象バンド領域内の空白画素ラインの特定が完了していない場合(S65)、プロセッサ211は、空白画素ラインの特定の完了を待つ。
図11は、N回目以降の部分印刷のそれぞれにおけるノズル群NX(ひいては、バンド領域)の配置の例を示す説明図である。図中には、図4(A)と同様の簡略化されたノズル群NXが示されている。図中の上方向が、搬送方向Dfであり、下方向が印刷方向Dpである。図11には、複数の参照番号L(ここでは、「0」と「1」)に対応する複数のノズル群NXが示されている。複数のノズル群NXは、右に向かって参照番号Lが増大するように、並んで示されている。各ノズル群NXには、複数のノズルNZが示されている。黒丸のノズルNZは、部分印刷においてインクを吐出すべきノズルNZを示している(吐出ノズルとも呼ぶ)。吐出ノズルは、非空白画素ラインに対応している。
各ノズル群NXの右側の符号BImは、バンド領域を示している。符号BImに続く括弧内には、バンド領域の番号が記されている。例えば、符号BIm(N+1)は、N+1回目の部分印刷に対応する第N+1バンド領域を示している。図11では、各バンド領域BIm(N)、BIm(N+1)は、対応するノズル群NXの全てのノズルNZを用いることによって印刷可能な領域である。なお、バンド領域BIm(N)、BIm(N+1)は、上述した第1処理におけるバンド領域を示している。
図示するように、N+1番のノズル群NXの搬送方向Df側の端のノズルNZは、黒丸の吐出ノズルである。すなわち、対象バンド領域BIm(N)の印刷方向Dp側には、非空白画素ラインが接している。従って、S110(図5)の判断結果は、Yesである。
図11中の幅Wpは、S120(図5)の判断で用いられる幅であり、予め決められている。プロセッサ211は、S65で生成された空白ラインフラグデータを参照し、対象バンド領域BIm(N)の印刷方向Dp側の端から幅Wpの範囲内に、空白画素ラインが含まれるか否かを判断する。幅Wpは、ノズル長D(図3)よりも小さい値に、予め決められている。本実施例では、プロセッサ211は、ノズル群NXの複数のノズルNZのうち印刷方向Dp側の端部の予め決められた数のノズルNZ(即ち、幅Wpの範囲内に含まれるノズルNZ)が、空白画素ラインに対応するノズルを含む場合に、幅Wpの範囲内に空白画素ラインが含まれると判断する。図11の例では、幅Wp内の全てのノズルNZが、非空白画素ラインに対応しているので、S120の判断結果は、Noである。
S120の判断結果がNoである場合、プロセッサ211は、S110の判断結果がNoである場合と同じ処理を実行する。
図12は、ノズル群NX(ひいては、バンド領域)の配置の別の例を示す説明図である。図中には、図11と同様に、複数の参照番号L(ここでは、0~3)に対応する複数のノズル群NXが示されている。左部は、第1処理が行われると仮定した場合の配置を示し、右部は、第2処理が行われると仮定した場合の配置を示している。また、白丸のノズルNZは、部分印刷においてインクを吐出すべきではないノズルNZを示している(非吐出ノズルとも呼ぶ)。非吐出ノズルは、空白画素ラインに対応している。左部の「BIm」から始まる符号は、第1処理におけるバンド領域を示している。右部の「BIn」から始まる符号は、第2処理におけるバンド領域を示している。符号BIm、BInに続く括弧内には、バンド領域の番号が記されている。後述する他の図においても、同様である。
左部に示すように、対象バンド領域BIm(N)の印刷方向Dp側には、非空白画素ラインが接しているので、S110(図5)の判断結果はYesである。また、対象バンド領域BIm(N)の幅Wpの範囲内に白丸の非吐出ノズル(すなわち、空白画素ラインPLx)が含まれているので、S120(図5)の判断結果は、Yesである。
S123(図5)では、プロセッサ211は、参照番号Lを「1」に設定する。S126では、プロセッサ211は、第1処理が行われると仮定した場合の第N+Lバンド領域の配置と、第2処理が行われると仮定した場合の第N+Lバンド領域の配置とを、特定する。
図12の左部は、第1処理に対応するバンド領域の配置を示している。各バンド領域の配置は、以下のように特定される。プロセッサ211は、対象バンド領域BIm(N)の全体がN回目の部分印刷で印刷されると仮定し、さらに、上述の条件A、Bに従って、各バンド領域の配置を特定する。例えば、第N+1バンド領域BIm(N+1)は、対象バンド領域BIm(N)の印刷方向Dp側に隣接する位置に、配置される。
図12の右部は、第2処理に対応するバンド領域の配置を示している。各バンド領域の配置は、以下のように特定される。プロセッサ211は、対象バンド領域BIn(N)のうち、幅Wpの範囲内の空白画素ラインPLxよりも搬送方向Df側の部分が、N回目の部分印刷で印刷されると仮定する。また、プロセッサ211は、空白画素ラインPLxよりも印刷方向Dp側の部分が、N+1回目の部分印刷で印刷されると仮定する。プロセッサ211は、これらの仮定の下で、第N+1バンド領域BIn(N+1)の配置を特定する。本実施例では、第N+1バンド領域BIn(N+1)の搬送方向Df側の端の画素ラインが、幅Wpの範囲内の非空白画素ラインのうちの搬送方向Df側の端の画素ラインPL1であるように、第N+1バンド領域BIn(N+1)の配置が決定される。N+2回目以降の部分印刷のバンド領域の配置は、上述の条件A、Bに従って、特定される。
S130(図6)では、プロセッサ211は、第1処理が行われると仮定する場合に、参照パスが対象画像の印刷のための最後のパスであるか否かを判断する。図12の例では、L=1の場合、参照バンド領域BIm(N+1)よりも印刷方向Dp側に黒丸の吐出ノズル(すなわち、非空白画素ライン)が配置されているので、参照パスは最後のパスではない(S130:No)。
参照パスが最後のパスではない場合(S130:No)、S140で、プロセッサ211は、第1処理と第2処理との間で、参照バンド領域BIm(N+L)、BIn(N+L)内の印刷対象部分の範囲が同じであるか否かを判断する。印刷対象部分は、空白画素ラインを除いた残りの部分である。印刷対象部分の範囲は、非空白画素ラインの分布範囲である。第1処理と第2処理との間で印刷対象部分の範囲が同じである場合(S140:Yes)、処理は、S220へ移行する。図12の例では、L=1の場合、第2処理での参照バンド領域BIn(N+1)に含まれる非空白画素ラインPL1が、第1処理での参照バンド領域BIm(N+1)に含まれない。したがって、第1処理と第2処理との間で、参照バンド領域BIm(N+L)、BIn(N+L)内の印刷対象部分の範囲が同じになることはない。この結果、S140の判断結果は、Noである。
第1処理と第2処理との間で、参照バンド領域の印刷対象部分の範囲が異なる場合(S140:No)、S150で、プロセッサ211は、第1処理が行われると仮定する場合に参照バンド領域の印刷方向Dp側の端が、対象画像の繋ぎ目であるか否かを判断する。参照バンド領域の印刷方向Dp側に非空白画素ラインが隣接する場合、S150の判断結果は、Yesである。参照バンド領域の印刷方向Dp側に空白画素ラインが隣接する場合、S150の判断結果は、Noである。図12の例では、L=1の場合、第1処理での参照バンド領域BIm(N+1)の印刷方向Dp側に黒丸の吐出ノズル(すなわち、非空白画素ライン)が隣接している。従って、参照バンド領域の印刷方向Dp側の端は、対象画像の繋ぎ目である。
参照バンド領域の印刷方向Dp側の端が対象画像の繋ぎ目である場合(S150:Yes)、S190で、プロセッサ211は、次の参照パス(すなわち、N+L+1回目のパス)のためのバンドデータが、取得済であるか否かを判断する。バンドデータが取得済ではない場合(S190:No)、プロセッサ211は、S210(図6)へ移行し、第1処理を選択する。S210に続く処理は、上述した通りである(N番からN+L番までのL+1個のバンド領域の部分印刷が行われる)。
バンドデータが取得済である場合(S190:Yes)、プロセッサ211は、S230で参照番号Lを「L+1」に更新し、S126(図5)へ移行する。そして、プロセッサ211は、新たな参照番号Lの参照バンド領域の処理を実行する。
図12の例で、L=2である場合、図6のS130~S150は、以下のように判断される。S130に関しては、第1処理に対応する参照バンド領域BIm(N+2)よりも印刷方向Dp側に黒丸の吐出ノズル(すなわち、非空白画素ライン)が配置されている。従って、参照パスは最後のパスではない(S130:No)。S140に関しては、第1処理と第2処理との間で、参照バンド領域BIm(N+2)、BIn(N+2)内の印刷対象部分の範囲は、異なっている。従って、S140の判断結果は、Noである。S150に関しては、第1処理に対応する参照バンド領域BIm(N+2)の印刷方向Dp側に空白画素ラインが隣接している。従って、S150の判断結果は、Noである。
S150(図6)の判断結果がNoである場合、S160で、プロセッサ211は、第2処理に対応する参照バンド領域BIn(N+L)に着目して、S150と同様に、判断を行う。参照バンド領域の印刷方向Dp側に非空白画素ラインが隣接する場合、S160の判断結果は、Yesである。参照バンド領域の印刷方向Dp側に空白画素ラインが隣接する場合、S160の判断結果は、Noである。図12の例で、L=2である場合、第2処理に対応する参照バンド領域BIn(N+2)の印刷方向Dp側に空白画素ラインが隣接している。従って、S160の判断結果は、Noである。
S160(図6)の判断結果がNoである場合、S170で、プロセッサ211は、第1処理に対応する参照バンド領域BIm(N+L)内において、第2処理に対応する参照バンド領域BIn(N+L)の印刷方向Dp側の端の画素ラインの位置の画素ラインよりも印刷方向Dp側の領域が、空白領域であるか否かを判断する。
図12の例で、L=2である場合、図中の画素ラインPL2は、第2処理に対応する参照バンド領域BIn(N+2)の印刷方向Dp側の端の画素ラインである。第1処理に対応する参照バンド領域BIm(N+2)内において、この画素ラインPL2よりも印刷方向Dp側の全ての画素ラインPLsは、空白画素ラインである。従って、S170の判断結果は、Yesである。この場合、第1処理に対応するN回目からN+2回目までの3回の部分印刷による印刷対象の部分である特定部分(すなわち、非空白画素ライン)は、第2処理が選択される場合においても、N回目からN+2回目までの3回の部分印刷によって印刷可能である。このように、第2処理が選択される場合であっても、特定部分の印刷のための部分印刷の回数(ひいては、対象画像の全体の印刷のための部分印刷の総数)は増大しない。
S170(図6)の判断結果がYesである場合、プロセッサ211は、S220で第2処理を選択し、図7のS310へ移行する。S310に続く処理は、上述した通りである。N番からN+L番までのL+1個のバンド領域の部分印刷が行われる。
図13は、ノズル群NX(ひいては、バンド領域)の配置の別の例を示す説明図である。図12と同様に、左部は、第1処理に対応する配置を示し、右部は、第2処理に対応する配置を示している。L=0、1にそれぞれ対応する参照バンド領域BIm(N+L)、BIn(N+L)内の空白画素ラインの配置は、図12のものと同じである。L=2の場合の参照バンド領域BIm(N+2)内の空白画素ラインの配置は、図12のものと異なっている。具体的には、第1処理に対応する参照バンド領域BIm(N+2)内において、画素ラインPL2よりも印刷方向Dp側に、非空白画素ラインPL3、PL4が配置されている。この結果、S170(図6)の判断結果は、Noである。
S170の判断結果がNoである場合、プロセッサ211は、S190へ移行する。S190に続く処理は、上述した通りである。例えば、S230で、参照番号Lに1が加算され、新たな参照バンド領域の処理が行われる。
図13において、L=3である場合、S126(図5)で、参照バンド領域BIm(N+3)、BIn(N+3)の配置が特定される。図中の第1処理に対応する配置において、非空白画素ラインPL4は、1つ前のバンド領域BIm(N+2)内の非空白画素ラインのうち、印刷方向Dp側の端の画素ラインである。この非空白画素ラインPL4の印刷方向Dp側には、空白バンドBbが配置され、空白バンドBbの印刷方向Dp側に、非空白画素ラインPL5が配置されている。このような場合、図4(B)、条件Bで説明したように、プロセッサ211は、空白バンドBbをスキップするように、参照バンド領域BIm(N+3)の配置を決定する。図13の例では、参照バンド領域BIm(N+3)の搬送方向Df側の端の画素ラインが、非空白画素ラインPL5である。
また、図13の例では、第1処理に対応する参照バンド領域BIm(N+3)よりも印刷方向Dp側には、非空白画素ラインは設けられていない。この場合、第1処理に対応するN+3回目のパスが最後のパスであるので、図6のS130の判断結果は、Yesである。
S130の判断結果がYesである場合、S180で、プロセッサ211は、第2処理に対応する参照バンド領域よりも印刷方向Dp側に、対象画像の印刷すべき一部が残っているか否かを判断する。参照バンド領域の番号は、N+L番であり、第1処理での参照パス(N+L)は、最後のパスである。第2処理において、参照バンド領域よりも印刷方向Dp側の領域は、N+L+1回目以降の部分印刷の印刷対象である。プロセッサ211は、対象画像データを用いて、第2処理でのN+L+1回目以降の部分印刷によって印刷すべき対象画像の一部を含むバンド領域が存在するか否かを判断する。図13において、L=3である場合、第2処理に対応する参照バンド領域BIn(N+3)の印刷方向Dp側に非空白画素ラインPL6が配置されているので、S180の判断結果は、Yesである。仮に第1処理が選択される場合、非空白画素ラインPL6は、N+3回目の部分印刷で印刷される。しかし、仮に第2処理が選択される場合、非空白画素ラインPL6は、N+3回目の部分印刷では印刷されず、N+4回目の部分印刷で印刷される。すなわち、第1処理が選択される場合には、対象画像の全体がN+3回の部分印刷で印刷されるが、第2処理が選択される場合には、N+3回の部分印刷では印刷を完了できず、N+4回目の部分印刷が必要である。このように、第2処理が選択される場合、対象画像の全体の印刷のための部分印刷の総数が増大する。
S180の判断結果がYesである場合、プロセッサ211は、S210へ移行し、第1処理を選択する。S210に続く処理は、上述した通りである(N番からN+L番までのL+1個のバンド領域の部分印刷が行われる)。
図14は、ノズル群NX(ひいては、バンド領域)の配置の別の例を示す説明図である。図12と同様に、左部は、第1処理に対応する配置を示し、右部は、第2処理に対応する配置を示している。L=0、1にそれぞれ対応する参照バンド領域BIm(N+L)、BIn(N+L)内の空白画素ラインの配置は、図12のものと同じである。L=2の場合の参照バンド領域BIm(N+2)、BIn(N+2)内の空白画素ラインの配置は、図12のものと異なっている。なお、L=2である場合のS130~S150の判断結果は、図12においてL=2である場合のS130~S150の判断結果と、それぞれ同じである。
図14中の非空白画素ラインPL7は、第1処理に対応する参照バンド領域BIm(N+2)内の非空白画素ラインである。この非空白画素ラインPL7は、第2処理に対応する参照バンド領域BIn(N+2)には、含まれず、参照バンド領域BIn(N+2)の印刷方向Dp側に隣接している。従って、図6のS160の判断結果は、Yesである。
S160の判断結果がYesである場合、プロセッサ211は、S190へ移行する。S190に続く処理は、上述した通りである。例えば、S230で、参照番号Lに1が加算され、新たな参照バンド領域の処理が行われる。
図14において、L=3である場合、S126(図5)で、参照バンド領域BIm(N+3)、BIn(N+3)の配置が特定される。第1処理に対応する配置において、非空白画素ラインPL7は、1つ前のバンド領域BIm(N+2)内の非空白画素ラインのうち、印刷方向Dp側の端の画素ラインである。この非空白画素ラインPL7の印刷方向Dp側には、空白バンドBcが配置され、空白バンドBcの印刷方向Dp側に、非空白画素ラインPL8が配置されている。このような場合、図4(B)、条件Bで説明したように、プロセッサ211は、空白バンドBcをスキップするように、参照バンド領域BIm(N+3)の配置を決定する。図14の例では、参照バンド領域BIm(N+3)の搬送方向Df側の端の画素ラインが、非空白画素ラインPL8である。
また、図14の例では、第1処理に対応する参照バンド領域BIm(N+3)よりも印刷方向Dp側には、非空白画素ラインは設けられていない。この場合、第1処理に対応するN+3回目のパスが最後のパスであるので、図6のS130の判断結果は、Yesである。
S130の判断結果がYesである場合、S180で、プロセッサ211は、第2処理に対応する参照バンド領域よりも印刷方向Dp側に、対象画像の印刷すべき一部が残っているか否かを判断する。図14において、L=3である場合、第2処理に対応する参照バンド領域BIn(N+3)よりも印刷方向Dp側には、非空白画素ラインは存在していない。従って、S180の判断結果は、Noである。この場合、仮に第2処理が選択される場合のN回目からN+3回目の部分印刷は、仮に第1処理が選択される場合のN回目からN+3回目の部分印刷の印刷対象の非空白画素ラインの全てを、印刷できる。このように、第2処理が選択される場合であっても、部分印刷の回数(ひいては、対象画像の全体の印刷のための部分印刷の総数)は増大しない。
S180(図6)の判断結果がNoである場合、プロセッサ211は、S220で第2処理を選択し、図7のS310へ移行する。S310に続く処理は、上述した通りである(N番からN+L番までのL+1個のバンド領域の部分印刷が行われる)。
図15は、ノズル群NX(ひいては、バンド領域)の配置の別の例を示す説明図である。図12と同様に、左部は、第1処理に対応する配置を示し、右部は、第2処理に対応する配置を示している。対象バンド領域BIm(N)、BIn(N)内の空白画素ラインの配置は、図12のものと同じである。L=1の場合の参照バンド領域BIm(N+1)内の空白画素ラインの配置は、図12のものと異なっている。なお、L=1である場合のS130、S140の判断結果は、図12においてL=1である場合のS130、S140の判断結果と、それぞれ同じである。
図15中の非空白画素ラインPL9は、L=1である場合の第1処理に対応する参照バンド領域BIm(N+1)内の非空白画素ラインである。この非空白画素ラインPL9の印刷方向Dp側には、空白バンドBdが配置されている。参照バンド領域BIm(N+1)の印刷方向Dp側には、空白バンドBdの非空白画素ラインが隣接している。従って、S150(図6)の判断結果は、Noである。
S160では、プロセッサ211は、第2処理に対応する参照バンド領域BIn(N+1)について、判断する。参照バンド領域BIn(N+1)の印刷方向Dp側には、非空白画素ラインPL9が隣接している。従って、S160の判断結果は、Yesである。この場合、プロセッサ211は、S190へ移行する。S190に続く処理は、上述した通りである。例えば、S230で、参照番号Lに1が加算され、新たな参照バンド領域の処理が行われる。
図15において、L=2である場合、S126(図5)で、参照バンド領域BIm(N+2)、BIn(N+2)の配置が特定される。第1処理に対応する配置において、非空白画素ラインPL9は、1つ前のバンド領域BIm(N+1)内の非空白画素ラインのうち、印刷方向Dp側の端の画素ラインである。この非空白画素ラインPL9の印刷方向Dp側には、空白バンドBdが配置され、空白バンドBdの印刷方向Dp側に、非空白画素ラインPL10が配置されている。このような場合、図4(B)、条件Bで説明したように、プロセッサ211は、空白バンドBdをスキップするように、参照バンド領域BIm(N+2)の配置を決定する。図15の例では、参照バンド領域BIm(N+2)の搬送方向Df側の端の画素ラインが、非空白画素ラインPL10である。
また、図15の例では、第1処理に対応する参照バンド領域BIm(N+2)よりも印刷方向Dp側に非空白画素ラインが設けられているので、図6のS130の判断結果は、Noである。S140に関しては、第1処理と第2処理との間で、参照バンド領域BIm(N+2)、BIn(N+2)内の印刷対象部分の範囲は、異なっている。従って、S140の判断結果は、Noである。S150に関しては、第1処理に対応する参照バンド領域BIm(N+2)の印刷方向Dp側に非空白画素ラインが隣接している。従って、S150の判断結果は、Yesである。この場合、プロセッサ211は、S190へ移行する。S190に続く処理は、上述した通りである。例えば、S230で、参照番号Lに1が加算され、新たな参照バンド領域の処理が行われる。
図15において、L=3である場合、S126(図5)で、参照バンド領域BIm(N+3)、BIn(N+3)の配置が特定される。第1処理に対応する配置において、参照バンド領域BIm(N+3)は、1つ前のバンド領域BIm(N+2)の印刷方向Dp側に隣接している。また、図15の例では、第1処理に対応する参照バンド領域BIm(N+3)よりも印刷方向Dp側には、非空白画素ラインは設けられていない。この場合、第1処理に対応するN+3回目のパスが最後のパスであるので、図6のS130の判断結果は、Yesである。S180に関しては、第2処理に対応する参照バンド領域BIn(N+3)よりも印刷方向Dp側には、非空白画素ラインは設けられていない。従って、S180の判断結果は、Noである。この場合、プロセッサ211は、S220で第2処理を選択し、図7のS310へ移行する。S310に続く処理は、上述した通りである(N番からN+L番までのL+1個のバンド領域の部分印刷が行われる)。
以上のように、本実施例では、印刷実行部400(図1、図2)は、印刷ヘッド410と搬送部440と主走査部430とを含む複数の要素を備えている。印刷ヘッド410(図3)は、インクを吐出するためのノズル群NK、NY、NC、NMを有している。搬送部440(図2)は、印刷ヘッド410に対して搬送方向Dfに用紙PMを移動させる搬送を実行する。主走査部430(図2)は、用紙PMに対して搬送方向Dfに垂直なDx方向に平行な方向に印刷ヘッド410を移動させる主走査を実行する。
図4で説明したように、複合機200(図1)の制御装置299は、主走査部430に主走査を行わせつつ印刷ヘッド410にインクを吐出させる部分印刷と搬送部440に搬送を行わせる搬送処理とを複数回実行することで印刷実行部400に画像を印刷させる。
ここで、制御装置299のプロセッサ211は、S120(図5)で、N回目(Nは、1以上の整数)の部分印刷の印刷対象のバンド領域である第Nバンド領域が、Dx方向に延びる空白画素ラインを含むか否かを判断する。そして、第Nバンド領域が空白画素ラインを含む場合(S120:Yes)、プロセッサ211は、S123~S220(図5、図6)の処理によって、第Nバンド領域を印刷するために第1処理と第2処理とから1つの処理を選択する。ここで、第1処理は、図11の第Nバンド領域BI(N)のように、第Nバンド領域の全体を、N回目の部分印刷で印刷実行部400に印刷させる処理である。第2処理は、図12の右部の第NバンドBIn(N)のように、第Nバンド領域をN回目の部分印刷とN+1回目の部分印刷との2回の部分印刷で印刷する処理である。図12の例では、第2処理は、第Nバンド領域BIn(N)のうち、空白画素ラインPLxよりも搬送方向Df側の部分である前部分P1をN回目の部分印刷で印刷実行部400に印刷させる。そして、第2処理は、第Nバンド領域BIn(N)のうち空白画素ラインPLxよりも搬送方向Dfの反対方向である印刷方向Dp側の部分である後部分P2を、N+1回目の部分印刷で印刷実行部400に印刷させる。
そして、プロセッサ211は、図10のS405で、第1処理と第2処理とから選択された処理のための各バンド領域の配置と各バンド画像を特定する。そして、制御装置299は、特定されたバンド領域の配置とバンド画像とに従って図10の処理を実行することによって、部分印刷を印刷実行部400に実行させる。
ここで、図5、図6で説明したように、プロセッサ211は、第2処理が実行されると仮定する場合の対象画像の全体の印刷のための部分印刷の総数が、第1処理が実行されると仮定する場合の対象画像の全体の印刷のための部分印刷の総数以下であることを示す条件(総数条件とも呼ぶ)が満たされる場合(S140:Yes、S170:Yes、S180:No)、第2処理を選択する。第2処理が行われる場合、図12の右部に示すように、N回目の部分印刷によるバンド領域BIn(N)のうちのN回目の部分印刷で印刷される部分とN+1回目の部分印刷によるバンド領域BIn(N+1)のうちのN+1回目の部分印刷で印刷される部分との境界が空白画素ラインPLxによって形成されるので、N回目の部分印刷によるバンド領域とN+1回目の部分印刷によるバンド領域との境界が目立つことを抑制できる。また、プロセッサ211は、総数条件が満たされない場合に、第1処理を選択する。従って、印刷の時間が長くなることを抑制できる。
また、S130、S180(図6)、図13で説明したように、プロセッサ211は、S130で、第1処理が行われると仮定する場合に、N+L回目のパスである参照パスが、対象画像の印刷のための最後のパスであるか否かを判断する。判断結果がYesであることは、第1処理が行われると仮定する場合の対象画像の全体の印刷のための部分印刷の総数がN+L回であることを示している。そして、S130の判断結果がYesである場合、S180で、プロセッサ211は、第2処理が実行されると仮定する場合の参照バンド領域よりも印刷方向Dp側の領域に、対象画像の一部が残っているか否かを判断する。すなわち、プロセッサ211は、第2処理が実行されると仮定する場合に、N+L+1回目以降の部分印刷によって印刷すべき対象画像の一部を含むバンド領域が存在するか否かを判断する。そして、S180の判断結果がYesである場合、プロセッサ211は、S210で第1処理を選択する(すなわち、プロセッサ211は、総数条件が満たされないと判断する)。従って、プロセッサ211は、総数条件が満たされるか否かを適切に判断できる。
なお、S170(図6)、図12、S180(図6)、図14、図15で説明したように、プロセッサ211は、第2処理が実行されると仮定する場合に、第1処理が実行されると仮定する場合と比べて、対象画像の全体の印刷に必要な部分印刷の総数が増大しない場合には、S220で第2処理を選択する(すなわち、プロセッサ211は、総数条件が満たされると判断する)。従って、プロセッサ211は、総数条件が満たされることを、適切に判断できる。
また、S126(図5)、S230(図6)で説明したように、プロセッサ211は、第2処理が実行されると仮定する場合の第N+1バンド領域から印刷方向Dp側のバンド領域の配置を第N+1バンド領域から印刷方向Dpに向かって1つずつ順番に特定する。そして、プロセッサ211は、図12の例で説明したように、第N+Lバンド領域(Lは1以上の整数)の配置を用いて総数条件が満たされると判断し得る(図6:S170:Yes)。この場合、プロセッサ211は、第N+L+1バンド領域から印刷方向Dp側のバンド領域の配置を特定せずに、S220で第2処理を選択する。この第N+Lバンド領域は、対象画像の全体の印刷のための最後のバンド領域よりも搬送方向Dfのバンド領域であり得る。このように、プロセッサ211は、対象画像の印刷のための全てのバンド領域の配置の特定が完了する前に、総数条件が満たされるか否を、早く判断できる。
ここで、S140(図6)の判断結果がYesである場合、プロセッサ211は、S220で第2処理を選択する。S140の判断結果がYesとなるための第1条件は、参照バンド領域(第N+Lバンド領域)内の空白画素ラインを除いた残りの部分である印刷対象部分の範囲が、第1処理が実行されると仮定する場合と第2処理が実行されると仮定する場合との間で同じであることを示している。プロセッサ211は、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、S170(図6)の判断結果がYesである場合、プロセッサ211は、S220で第2処理を選択する。S170の判断結果がYesとなるための第2条件は、第1処理が実行されると仮定する場合の第N+Lバンド領域内において、第2処理が実行されると仮定する場合の第N+Lバンド領域の印刷方向Dpの端の画素ラインの位置の画素ラインよりも印刷方向側の全ての画素ラインが空白画素ラインであることを含んでいる。図12の例でも説明したように、プロセッサ211は、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、第2条件は、S160(図6)で説明したように、第2処理が実行されると仮定する場合の第N+Lバンド領域の印刷方向側に隣接する画素ラインが空白画素ラインであることを含む。図12の例でも説明したように、プロセッサ211は、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、第2条件は、S150(図6)で説明したように、第1処理が実行されると仮定する場合の第N+Lバンド領域の印刷方向側に隣接する画素ラインが空白画素ラインであることを含む。図12の例でも説明したように、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、図6で説明したように、プロセッサ211は、第N+Lバンド領域に関して総数条件が満たされないことを含む特定の条件が満たされる場合に、次の第N+L+1バンド領域に関して総数条件が満たされるか否か判断する。具体的には、特定の条件は、「S150:Yes」と「S160:Yes」と「S170:No」との3つの条件のうちの少なくとも1つの条件が満たされることを含む。プロセッサ211は、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、図5のS60で説明したように、プロセッサ211は、対象画像データを取得する。そして、図6のS190で説明したように、プロセッサ211は、対象画像のうちの第N+L+1バンド領域の画像データである部分データが取得済みである場合に(S190:Yes)、第N+L+1バンド領域に関して総数条件が満たされるか否か判断する。また、プロセッサ211は、部分データが取得されていない場合(S190:No)、S210で第1処理を選択する。このように、プロセッサ211は、部分データが取得済みである場合には処理を進行するので、印刷の時間が長くなることを抑制できる。
また、図6で説明したように、プロセッサ211は、S130で、第1処理が行われると仮定する場合の参照パスが対象画像の印刷のための最後のパスであるか否か判断する。S130の判断結果がYesである場合、プロセッサ211は、S180で、第2処理に対応する参照バンド領域BIn(N+L)よりも印刷方向Dp側に非空白画素ラインが存在するか否かを判断する。第2処理に対応する参照バンド領域BIn(N+L)よりも印刷方向Dp側に非空白画素ラインが存在しない場合(S180:No)、プロセッサ211は、S220で第2処理を選択する(すなわち、プロセッサ211は、総数条件が満たされると判断する)。また、第2処理に対応する参照バンド領域BIn(N+L)よりも印刷方向Dp側に非空白画素ラインが存在する場合(S180:Yes)、プロセッサ211は、S210で第1処理を選択する(すなわち、プロセッサ211は、総数条件が満たされないと判断する)。プロセッサ211は、この条件を判断に用いることによって、総数条件が満たされるか否かを適切に判断できる。
また、図5~図7で説明したように、プロセッサ211は、参照バンド領域BIm(N+L)、BIn(N+L)の配置を用いて、第1処理と第2処理とから1つの処理を選択し得る。そして、第2処理を選択すると判断される場合、プロセッサ211は、第2処理(S310(図7))を、対象画像の全体の印刷のための全てバンド領域の配置が特定されるよりも先に実行する。従って、印刷の時間を長くせずに、N回目の部分印刷によるバンド領域とN+1回目の部分印刷によるバンド領域との境界が目立つことを抑制できる。
また、S120(図5)では、図12等で説明したように、プロセッサ211は、第Nバンド領域BIm(N)のうちの印刷方向Dp側の端を含む所定幅Wpの部分に、空白画素ラインが含まれるか否かを判断する。仮に、第Nバンド領域BIm(N)のうちの搬送方向Df側の部分に含まれる空白画素ラインに基づいて第2処理が実行される場合、バンド領域の搬送方向Dfへの移動量が大きくなる。この結果、対象画像の全体の印刷に必要な部分印刷の総数が増大する可能性が高い(すなわち、総数条件が満たされない可能性が高い)。本実施例では、総数条件が満たされない可能性が高い場合に、総数条件が満たされるか否かを判断する処理が抑制されるので、印刷の時間の長期化を抑制できる。ただし、プロセッサ211は、第Nバンド領域BIm(N)内の位置に拘わらずに第Nバンド領域BIm(N)が空白画素ラインを含む場合には、S120でYesと判断してよい。
また、S65(図5)で説明したように、プロセッサ211は、対象画像の画像データを用いて対象画像内の空白画素ラインを特定する。従って、プロセッサ211は、適切な空白画素ラインを用いて、隣接する2個のバンド領域の境界が目立つことを抑制できる。
B.変形例:
(1)第1処理と第2処理とから1つの処理を選択するための選択処理は、図5~図7の処理に代えて、他の種々の処理であってよい。例えば、プロセッサ211は、S60(図5)で対象画像データの全体の取得が完了した後に、選択処理を進行してよい。この場合、図6のS190は、省略される。また、プロセッサ211は、S65で空白画素ラインの特定が完了した後に、選択処理を進行してよい。また、プロセッサ211は、第1処理が実行されると仮定する場合の全てのバンド領域の配置と、第2処理が実行されると仮定する場合の全てのバンド領域の配置と、を特定した後に、部分印刷の総数の比較結果に従って、1つの処理を選択してよい。
また、選択処理に利用される画像データは、色変換処理が行われる前の画像データ(上記実施例では、RGBビットマップデータ)に代えて、他の種々画像データであってよい。例えば、色変換済の画像データ、または、ドットデータが、用いられてよい。例えば、S65では、プロセッサ211は、CMYKビットマップデータ、または、ビットマップデータを用いて、空白画素ラインを特定してよい。いずれの場合も、画素の色値が、色値の可能な範囲内における最も明るい白色を示す場合に、その画素が空白画素として特定されてよい。
(2)空白画素ラインを特定する処理は、図8に示す処理に代えて、他の種々の処理であってよい。例えば、プロセッサ211は、対象画像の全ての画素について画素が空白画素であるか否かを判断し、判断結果を用いて空白画素ラインを特定してよい。なお、図8の処理は、対象画像の全画素のうちの一部の複数の画素を用いるので、空白画素ラインの特定に要する時間を短縮できる。
(3)空白バンドのスキップ(図4(B))を行うための条件は、種々の条件であってよい。例えば、幅Wbが予め決められた閾値Wbt以上である場合に、スキップが行われてよい。上記実施例では、幅Wbは画素ラインの数で表され、閾値Wbtは「1」である。ここで、閾値Wbtは、2以上であってよい。また、幅Wbに拘わらず、空白バンドのスキップは省略されてよい。
(4)ハーフトーン処理は、ディザマトリクスを用いる処理に代えて、誤差拡散法などの他の種々の処理であってよい。ディザマトリクスを用いるハーフトーン処理が行われる場合、複数の画素の間で、ハーフトーン処理の結果は、互いに影響を及ばさない。従って、プロセッサ211は、任意の色空間の色値を用いて、空白画素を特定できる。ハーフトーン処理が、誤差拡散法のように、複数の画素の間で誤差が伝播する処理である場合、最も明るい白色を示す画素において、誤差に起因してドットが形成される場合がある。ここで、「最も明るい白色を示す画素ではドットを形成せずに誤差を算出する」という規則に従って、ハーフトーン処理が行われてよい。この場合、プロセッサ211は、任意の色空間の色値を用いて、空白画素を特定できる。
(5)印刷実行部400の構成は、図1、図2、図3の実施例の構成に代えて、他の種々の構成であってよい。例えば、利用可能なインクの種類数Eは、1以上の任意の数であってよい。また、印刷ヘッド410は、E種類のインクを吐出するためのE個のノズル群であって主走査方向に並んで配置されたE個のノズル群を有してよい。1個のノズル群を構成する複数のノズル(すなわち、同じインクを吐出するための複数のノズル)のそれぞれの副走査方向の位置は、互いに異なっていることが好ましい。図3の実施例では、1個のノズル群の複数のノズルNZの間では、主走査方向の位置は同じである。これに代えて、1個のノズル群の複数のノズルNZは、主走査方向の位置が互いに異なる複数のノズルNZを含んでよい。また、カートリッジ装着部451は、キャリッジ433に固定されていてもよい。プラテンPTは、省略されてよい。用紙PMを挟むように構成された2個のローラが、上流ローラとして利用されてよい。また、用紙PMを挟むように構成された2個のローラが、下流ローラとして利用されてよい。副走査部440の構成は、副走査方向に沿って用紙PMを移動させるように構成された任意の構成であってよい。例えば、副走査部440は、印刷ヘッドの上流側と下流側とのいずれかで印刷媒体を搬送するローラを備えてよい。主走査部430の構成は、印刷媒体に対して主走査方向に沿って印刷ヘッドを移動させるように構成された任意の構成であってよい。
(6)上記実施例において、複合機200は、印刷実行部400を備える印刷装置の例である。スキャナ部280は、省略されてよい。制御装置299は、印刷実行部400を備える印刷装置の制御装置の例である。また、制御装置299は、印刷実行部400を制御する制御装置の例である。表示部240と操作部250との少なくとも一方は、省略されてよい。
また、対象画像データを用いて印刷データを生成する処理(図5~図7)は、複合機200の制御装置299に代えて、複合機200に接続された外部装置によって実行されてよい。例えば、図1の端末装置100のプロセッサ110が、プログラム132に従って、図5~図7の処理を実行して複数回の部分印刷のための複数の部分印刷データを生成し、生成した複数の部分印刷データを複合機200に供給してよい。複合機200のプロセッサ211は、受信した複数の部分印刷データを、印刷順にモータコントローラ214に供給することによって、印刷実行部400に画像を印刷させてよい。この場合、複合機200は、印刷実行部の例であり、外部装置は、複合機200(ひいては、印刷実行部)を制御する制御装置の例である。
また、外部装置は、対象画像の全体を表すドットデータと、空白画素ラインの配置を示す配置データと、を含む印刷データを生成してよい。そして、外部装置は、生成した印刷データを、複合機200に供給してよい。複合機200のプロセッサ211は、配置データを参照して空白画素ラインを含むバンド領域を特定し、第1処理と第2処理とから1つの処理を選択する処理を実行し、選択した処理に基づいて複数の部分印刷データを生成し、複数の部分印刷データを用いて印刷実行部400に複数回の部分印刷を実行させてよい。このように、空白画素ラインの特定は、外部装置によって行われてよい。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図5のS65の処理は、専用のハードウェア回路によって実現されてよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。