以下、本発明の実施の形態に係る印刷制御データ生成装置および印刷制御データ生成方法を、図面に基づいて説明する。印刷制御データ生成装置は、印刷システムの一部として説明する。印刷制御データ生成方法は、印刷システムの動作の一部として説明する。
実施の形態1.
図1は、実施の形態1に係る印刷システムを示すブロック図である。実施の形態1に係る印刷システムは、コンピュータ1と、プリンタ2と、これらを接続するケーブル3と、を有する。なお、コンピュータ1とプリンタ2とは、無線通信により接続されていてもよい。
プリンタ2は、A4などの単票の用紙に印刷する単票の印刷モードの他に、ロール紙4に対して印刷をする長尺印刷モードを有する。ロール紙4は、単票の用紙に比べて一方向に長い長尺な形状を有し、所謂トイレットペーパのように長尺方向において巻いてユーザに提供される。
プリンタ2は、ロール紙4に対して印刷するための印刷機構として、プリンタ2の図示外の筐体と脱着可能なロール紙ホルダ11と、このロール紙ホルダ11に保持されるロール紙4を送るローラ12と、ローラ12などを回転駆動する紙送りモータ13と、キャリッジ14と、キャリッジ14をローラ12の軸方向に往復運動させるキャリッジモータ15と、を有する。以下、このキャリッジ14の往復する方向を、主走査方向とよび、ローラ12による用紙の送り方向を副走査方向とよぶ。
キャリッジ14は、イエロー、マゼンタ、シアンなどといった所定の複数の色のインクを収容するカラーインクカートリッジ17と、ブラックインクを収容するブラックインクカートリッジ18と、が脱着可能に取り付けられる。キャリッジ14の図示せぬプラテン側の部位には、図示外のインク吐出用ヘッドが形成される。インク吐出用ヘッドには、図示外の多数のインクジェットノズルが開設される。多数のインクジェットノズルは、各色ごとにインクを吐出する4組のノズルアレイとして形成される。各組のノズルアレイでは、48個のノズルが一定のノズルピッチでたとえば千鳥状に配列される。各ノズルは、それぞれが対応する色のインクを収容するインクカートリッジに接続される。各インクジェットノズルの内側には、図示外のピエゾ素子が配設される。ピエゾ素子は、それに印加される電圧に応じて変形する素子である。ピエゾ素子が電圧により変形することで、その変形量に応じた量のインクがインクジェットノズルから吐出される。
なお、キャリッジ14には、カラーインクカートリッジ17の代わりに、インク色毎のカートリッジが脱着可能に取り付けられるものであってもよい。また、これらのカートリッジ17,18に収容されるインクの色は、イエロー、マゼンタ、シアン、ブラック以外の色であってもよい。このような色としては、たとえばライトイエロー、ライトマゼンタ、ライトシアン、クリアー(無色)などがある。
プリンタ2は、通信I/F(InterFace)21と、通信バッファ22と、制御部23と、操作パネル24と、を有する。
プリンタ2の通信I/F21には、ケーブル3が接続される。通信I/F21は、ケーブル3を介してコンピュータ1から受信したデータを、通信バッファ22に保存する。通信I/F21は、通信バッファ22に保存されている送信データをケーブル3を介してコンピュータ1へ送信する。
制御部23は、操作パネル24からの入力信号や通信バッファ22に保存された受信データを取得し、これらの信号やデータに基づいて、紙送りモータ13、キャリッジモータ15および複数のピエゾ素子へ制御信号を出力する。
図2は、図1中のコンピュータ1のハードウェア構成を示すブロック図である。コンピュータ1は、中央処理装置(CPU:Central Processing Unit)31と、RAM(Random Access Memory)32と、ハードディスクドライブなどの記憶デバイス33と、入出力ポート34と、これらを接続するシステムバス35と、を有する。入出力ポート34には、画像を表示するCRT(Cathode Ray Tube)などのモニタ36と、キーボード37と、通信I/F38と、が接続される。
コンピュータ1の通信I/F38には、ケーブル3が接続される。通信I/F38は、ケーブル3を介してプリンタ2の通信I/F21との間で通信データを送受する。
記憶デバイス33は、たとえば図示外のDSC(Digital Still Camera)により撮像された複数のEXIF(Exchangeable Image File Format)画像ファイル41と、画像印刷プログラム42と、プリンタドライバプログラム43と、色変換テーブル44と、送り量テーブル45と、を記憶するフラッシュメモリ、HDD(Hard Disk Drive)などの記憶手段である。
中央処理装置31は、記憶デバイス33に記憶されるプログラムをRAM32に読み込んで実行する。中央処理装置31が画像印刷プログラム42を実行することで、図1に示すように、画像印刷部51が実現される。中央処理装置31がプリンタドライバプログラム43を実行することで、色変換処理部52と、判定手段およびハーフトーン手段としてのハーフトーン処理部53と、印刷制御データ生成手段としてのインターレース処理部54と、印刷制御データ出力部55と、を有する印刷制御データ生成装置としてのプリンタドライバ部56が実現される。なお、画像印刷プログラム42は、コンピュータ1のOS(オペレーティングシステム)上で実行されるアプリケーションプログラムの一種であってもよい。
EXIF画像ファイル41は、画像データを、JPEG(Joint Photographic Experts Group)形式として保持する。EXIF画像ファイル41は、この他にも、サムネイル画像データや、ヘッダ情報データを有する。ヘッダ情報には、DSCで撮像した日時、撮像したDSCの機種、撮像条件などが記録可能である。撮像条件としては、たとえば、DSCのパノラマモードにより撮像されたパノラマ画像であることを示す情報などがある。これらの情報は、撮像時などにDSCにより画像とともにヘッダ情報としてEXIF画像ファイル41に書き込まれたり、コンピュータ1において、たとえばその複数の画像から1つのパノラマ画像を生成するときなどに、追加書き込みされたりするようにすればよい。
画像印刷部51は、モニタ36およびキーボード37により実現されるGUI(Graphical User Interface)にしたがって、印刷する画像を選択し、その選択した画像を印刷するための印刷イメージデータを生成し、この印刷イメージデータを含む印刷データを生成する。画像印刷部51は、印刷する画像を複数選択することができる。
色変換テーブル44は、印刷イメージデータに含まれる色成分を、プリンタ2が使用するインク毎の色成分へ変換するためのテーブルである。色変換テーブル44は、たとえば、レッド(R),グリーン(G),ブルー(B)の3色の色成分を、イエロー、マゼンタ、シアン、ブラックの4色の色成分へ変換するテーブルである。
EXIF画像ファイル41の画像データに基づいてモニタ36に表示される画像は、一般的に、レッド(R)、グリーン(G)、ブルー(B)の3色の色成分からなり、この表示画像に基づいて生成する印刷イメージデータは、一般的に、レッド(R)、グリーン(G)、ブルー(B)の3色の色成分からなる。
色変換テーブル44は、この他にもたとえば、光度信号(Y)と2つの色信号(C)とからなる色成分を有するYCC形式の画像データを、イエロー、マゼンタ、シアン、ブラックの4色の色成分へ変換するテーブルであってもよい。
色変換処理部52は、色変換テーブル44を用いて、印刷データに含まれる印刷イメージデータの色成分を変換する。これにより、印刷データに含まれる印刷イメージデータは、複数のインク色成分からなるイメージとなる。この実施の形態1では、イエロー、マゼンタ、シアンおよびブラックの4色の色成分からなる印刷イメージデータとなる。
ハーフトーン処理部53は、誤差拡散処理をしながら、印刷イメージデータのインク色毎に、そのインク色による印刷イメージデータをプリンタ2のインクにより印刷するためのドットパターンを生成する。ハーフトーン処理部53は、色変換処理部52により生成された印刷イメージデータのすべての色成分について、色成分毎のドットパターンを生成する。また、ハーフトーン処理部53は、誤差拡散処理に使用する誤差拡散バッファ57を生成する。
送り量テーブル45は、印刷時における用紙の送り量を記憶するテーブルである。送り量テーブル45には、印刷する用紙のサイズや種類などに応じた用紙の送り量を複数記憶する。複数の送り量には、ロール紙4に印刷するときの送り量が含まれる。
インターレース処理部54は、ハーフトーン処理部53により生成されるドットパターンに基づいて、印刷制御データを生成する。インターレース処理部54は、送り量テーブル45を参照して、印刷制御データを生成する。印刷制御データは、プリンタ2が印刷時の制御に使用するデータである。この印刷制御データには、プリンタ2が処理するコマンドやデータが、その処理順に並べて記述される。このような印刷制御データの記述に使用される言語としては、たとえば、ESC/Page、PostScript、HP−PCL、LIPS、PRESCRIBEなどのページ記述言語がある。
印刷制御データ出力部55は、インターレース処理部54により生成される印刷制御データを、通信I/F38へ出力する。
次に、以上の構成を有する実施の形態1に係る印刷システムの動作を説明する。以下の説明では、ロール紙4に対して複数の画像を印刷する長尺印刷モードの場合の動作を例として説明する。
コンピュータ1の画像印刷部51は、記憶デバイス33に記憶されているEXIF画像ファイル41を読み込み、そのEXIF画像ファイル41の画像データによる画像をモニタ36に表示させる。なお、画像印刷部51は、たとえばコンピュータ1にDSCを接続し、このDSCに記憶されるEXIF画像ファイルの画像データを読み込み、モニタ36にその画像データに基づく画像を表示させるようにしてもよい。
モニタ36に画像が表示されている状態において、ユーザは、キーボード37を操作する。キーボード37は、ユーザ操作に応じた入力データを出力する。画像印刷部51は、画像の選択操作の入力データに基づいて、モニタ36に表示している画像の中から、印刷する画像を選択する。画像印刷部51は、画像の選択を意味する入力データが複数回入力されると、複数の画像を選択する。
複数の画像を選択した後、たとえばユーザ操作に基づいてキーボード37から印刷指示の入力データが入力されると、画像印刷部51は、選択している複数の画像を印刷するための印刷データを生成する。具体的には、画像印刷部51は、まず、選択している各画像毎に、EXIF画像ファイル41から印刷イメージデータを生成する。画像印刷部51は、画像毎に生成した複数の印刷イメージデータを、選択の順番に並べ、且つ、各印刷イメージデータ同士の間に、改ページコードを入れた印刷データを生成する。改ページコードは、ページ間の境界を意味する区切りコードである。なお、改ページコードの代わりに、あるいは、改ページコードとともに、ページ開始コードなどのページの区切りを示す区切りコードを入れるようにしてもよい。
画像印刷部51は、生成した印刷データをプリンタドライバ部56へ供給する。プリンタドライバ部56は、印刷データを供給されると、その印刷データに基づく印刷処理をするための印刷条件の設定画面をモニタ36に表示させる。
図3は、図1中のモニタ36に表示される印刷条件の設定画面を示す図である。この印刷条件の設定画面には、「ロール紙印刷」、「パノラマ印刷」、「余白あり」の3つの文字列が表示される。この3つの文字列の左側には、3つのチェックボックス61,62,63が表示される。また、図3の印刷条件の設定画面には、「印刷開始」の文字を有するボタン64が表示される。
ユーザは、印刷条件の設定画面この印刷条件の設定画面が表示されている状態で、キーボード37を操作する。プリンタドライバ部56は、キーボード37の入力データに基づいて、印刷条件を選択する。たとえば「ロール紙印刷」の左側のチェックボックス61が選択されると、ロール紙4に対して印刷をするロール紙印刷が印刷条件として選択される。プリンタドライバ部56は、「パノラマ印刷」の左側のチェックボックス62が選択されると、パノラマ印刷が印刷条件として選択される。プリンタドライバ部56は、「余白あり」の左側のチェックボックス63が選択されると、余白を設ける印刷が印刷条件として選択される。このように、ユーザは、印刷条件の設定画面において、各種の印刷条件を選択することができる。
また、プリンタドライバ部56は、キーボード37からの入力データに基づいて、「印刷開始」の文字を有するボタン64が選択されたことを検出すると、印刷条件の選択処理を終了し、印刷制御データの生成処理を開始する。
図4は、図1中のプリンタドライバ部56で実行される印刷制御データの生成処理を示すフローチャートである。コンピュータ1のプリンタドライバ部56は、印刷データのデータをその先頭から順番に所定量ずつ読み込む(ステップST1)。プリンタドライバ部56は、読み込んだデータに対する色変換処理(ステップST2)、ハーフトーン処理(ステップST3)、インターレース処理(ステップST4)および出力処理(ステップST5)を、印刷データのすべてのページについて完了したと判断するまで(ステップST6)、繰り返す。以下、印刷制御データの生成処理を、具体的に説明する。
プリンタドライバ部56を構成する色変換処理部52は、まず、プリンタドライバ部56へ供給された印刷データを、その先頭から所定量だけ読み込む。色変換処理部52は、読み込んだデータに印刷イメージデータが含まれる場合、その印刷イメージデータの色成分を判断する。色変換処理部52は、その判断した印刷イメージデータの色成分をインク色による色成分へ変換するための色変換テーブル44を参照し、読み込んだデータに含まれる印刷イメージデータの色成分を、インク色による色成分へ変換する。
読み込んだデータに対する色変換処理が完了すると、ハーフトーン処理部53は、その色変換済みの読込データに対するハーフトーン処理を実行する。これにより、読込データに含まれる印刷イメージデータは、複数のインク色毎のドットパターンに変換される。
図5は、図1中のハーフトーン処理部53によるハーフトーン処理の流れを示すフローチャートである。
ハーフトーン処理部53は、最初のハーフトーン処理の際に、誤差拡散バッファ57を生成する。誤差拡散バッファ57は、たとえばRAM32あるいは記憶デバイス33に生成されればよい。この誤差拡散バッファ57は、印刷制御データの生成処理が完了するまで保持される。誤差拡散バッファ57には、その生成時には、後述する誤差拡散データの値として「0」が記憶される。
誤差拡散バッファ57を生成した後、ハーフトーン処理部53は、色変換済みの読込データを、そのデータの先頭から順番に、所定の単位で読み込む(ステップST11)。ハーフトーン処理部53は、読み込んだ所定の単位のデータについて、そのデータが改ページコードを示すデータであるか否かを判断する(ステップST12)。なお、ハーフトーン処理部53は、改ページコードに替えて、たとえばページ開始コードなどのページの区切りを示す所定の区切りコードであるか否かを判断するようにしてもよい。
読み込んだ所定の単位のデータが改ページコードではないと判断すると、ハーフトーン処理部53は、そのデータが印刷イメージデータを構成する1ドットのデータであることを確認し、ドットの濃度を決定する(ステップST13〜ST16)。
具体的には、ハーフトーン処理部53は、その読み込んだあるドットのデータに、誤差拡散バッファ57に記憶されているそのドットの誤差拡散データを加算して濃度を求める(ステップST13)。ハーフトーン処理部53は、求めた濃度が、所定の閾値以上であるか否かを判断する(ステップST14)。そして、ハーフトーン処理部53は、濃度の値が所定の閾値以上である場合、そのドットの値として「1」を選択し(ステップST15)、閾値より小さい場合、「0」を選択する(ステップST16)。この実施の形態1において、ドットの値「1」は、インクを吐出して印字することを意味し、「0」は、インクを吐出しない、つまり印字しないことを意味するものとする。
最初の読込データについてのハーフトーン処理を開始したときには、誤差拡散バッファ57には、誤差拡散データの値として「0」が記憶される。そのため、ハーフトーン処理部53は、読み込んだデータに「0」を加算して濃度を求め、その濃度と所定の閾値との比較に応じて選択した「0」または「1」を、ドットの濃度の値として決定する。
印刷イメージを構成するドットのデータが0〜255の256階調の値で表されており、これを0および1による二値化するハーフトーン処理の場合、ステップST14において使用する閾値には、たとえば128を使用すればよい。この閾値の場合、ハーフトーン処理部53は、濃度の値が128以上であるとき、ドットの値が「1(印字する)」とされ、127以下であるとき「0(印字しない)」とされる。
ハーフトーン処理によってドットの値を二値化した場合、プリンタ2は、各ノズルについて、インクを吐出するおよび吐出しないの二段階で制御することになる。この他にもたとえば、プリンタ2の制御部23が、各ノズルから吐出するインク量を、吐出しない、少、中、多の4段階に制御できる場合にも、ハーフトーン処理によって階調を四階調としたドットを得るようにするとよい。ドットの値を4値化する場合、閾値としては、たとえば64、128、192の3つの閾値を使用すればよい。
ステップST11において読み込んだ所定の単位のデータに基づいてドットの階調(濃度)を決定した後、ハーフトーン処理部53は、その階調の更新により発生する濃度の誤差を、他のドットの濃度に反映するための、誤差拡散データを生成して誤差拡散バッファ57に保存する(ステップST17)。
図6は、図1中のハーフトーン処理部53が、誤差拡散データの生成に使用する重みテーブルを示す図である。図6において、各マスは、各ドットに対応する。図6において主走査方向とは、プリンタ2のキャリッジ14の移動方向である。副走査方向とは、ロール紙4の給紙方向である。
図6中のドットPPのハーフトーン処理で発生した濃度の誤差は、図示される位置関係にあるその他の周辺の複数のドットに対して、それぞれのマス内に示す値の割合で分散される。ハーフトーン処理部53は、この各ドットに分散させる誤差拡散データを、誤差拡散バッファ57に記憶させる。
たとえば、印刷イメージデータにおいて階調値が「130」であるドットは、階調値が「255」であるドットと同じ濃度にて、用紙上に印刷されることになる。階調値が「130」であるドットは、誤差の値「125(=255−130)」の分だけ相対的に濃く印刷されることになる。誤差拡散法は、このようにハーフトーン処理によってあるドットにおいて発生した誤差を、そのドットの周辺のドットの濃度に反映し、その結果、そのドット及び周辺のドットにより紙面に印刷される画像の濃度分布を、インク色毎の印刷イメージデータにおけるその対応部分の濃度分布に近づける。このように誤差を周辺のドットに分散させることで、印刷される画像において、印刷イメージデータにおける濃度分布がドットの粗密により再現される。
誤差拡散データを誤差拡散バッファ57に記憶させた後、ハーフトーン処理部53は、色変換済みの読込データに、ハーフトーン処理が未処理のデータが残っているか否かを判断する(ステップST18)。
そして、未処理のデータが残っている場合、ハーフトーン処理部53は、その色変換済みの読込データから、次の所定の単位のデータを読み込み(ステップST11)、その読み込んだデータについて、上述した改ページコード判定処理(ステップST12)、ハーフトーン処理(ステップST13〜16)および誤差拡散処理(ステップST17)を実行する。
未処理のデータが残っていない場合、ハーフトーン処理部53は、ハーフトーン処理を終了する。
図7は、印刷イメージ上での誤差拡散処理の様子を示す説明図である。図7には、印刷データの1ページ目の印刷イメージと、2ページ目の印刷イメージとが示される。図7において、各マスは、印刷される各ドットに対応する。
ハーフトーン処理部53は、たとえば、1マス(つまり、1つのドット)に対応する印刷イメージデータのドットのデータを、所定の単位のデータとして図7の左上のドットから走査の順番に読み込み(ステップST11)、上述した改ページコード判定(ステップST12)、ドット毎のハーフトーン処理(ステップST13〜ST16)およびそのドットの誤差を拡散する誤差拡散処理(ステップST17)を繰り返す。
図6の重みテーブルを用いることで、1ページ目の印刷イメージ内の印刷されるドットb8についてのハーフトーン処理をする時点では、誤差拡散バッファ57には、図7において、その上の行の5つの印刷されるドットb1〜b5での処理により発生した誤差と、その左側の2つの印刷されるドットb6,b7での処理により発生した誤差とが、拡散誤差データとして記憶される。
ハーフトーン処理部53は、ステップST13において、ドットb8に対応する印刷イメージデータの値に、これら7つのドットb1〜b7の誤差に基づく値を加算して濃度を求める。また、ハーフトーン処理部53は、その演算した濃度が所定の閾値以上であるか否かを判断し(ステップST14)、そのドットb8のハーフトーン処理後の値を決定する。ハーフトーン処理部53は、濃度の値が所定の閾値以上である場合、ドットb8の値として「1」を選択し(ステップST15)、閾値より小さい場合、「0」を選択する(ステップST16)。
また、ハーフトーン処理部53は、ドットb8のハーフトーン処理により発生する誤差の値を、図6の重みテーブルに従った割合で分散する拡散誤差データを、誤差拡散バッファ57に記憶させる(ステップST17)。
また、上述したように、ハーフトーン処理部53は、図5のフローチャートに従って、所定の単位毎にデータを読み込み(ステップST11)、その読み込んだデータについて、上述した改ページコード判定(ステップST12)、ドット毎のハーフトーン処理(ステップST13からST16)およびそのドットの誤差を拡散する誤差拡散処理(ステップST17)を繰り返し実行する。
そのため、図7中の1ページ目右下の最後に印刷されるドットdのハーフトーン処理後に、次の所定の単位のデータを読み込むと、ハーフトーン処理部53は、ステップST12において、その読み込んだデータが改ページコードであると判断する。
読み込んだデータが改ページコードである場合、ハーフトーン処理部53は、図3の印刷条件の設定画面においてユーザにより設定された印刷条件等に基づき、誤差拡散バッファ57を初期化するか否かを判定し、所定の場合には、初期化を実行する(ステップST21,ST23,ST24)。誤差拡散バッファ57は初期化されると、誤差拡散データの値として「0」となる値を記憶する。
ステップST12において読み込んだデータが改ページコードであると判断した場合、ハーフトーン処理部53は、ロール紙印刷(つまり、長尺印刷モード)が設定されているか否かを判断する(ステップST21)。そして、ロール紙印刷が設定されていない場合、ハーフトーン処理部53は、誤差拡散バッファ57を初期化する(ステップST22)。
ロール紙印刷が設定されている場合、ハーフトーン処理部53は、次に、ページ間に余白が設定されているか否かを判断する(ステップST23)。そして、余白が設定されている場合、ハーフトーン処理部53は、誤差拡散バッファ57を初期化する(ステップST22)。
余白が設定されていない場合、ハーフトーン処理部53は、パノラマ画像を印刷するパノラマ印刷モードが設定されているか否かを判断する(ステップST24)。そして、パノラマ印刷が設定されていない場合、ハーフトーン処理部53は、誤差拡散バッファ57を初期化する(ステップST22)。
パノラマ印刷モードが設定されている場合、ハーフトーン処理部53は、直前に処理したページの画像と、これから処理するページの画像とを解析し(ステップST25)、画像の連続性を判断する(ステップST26)。
具体的にはたとえば、ハーフトーン処理部53は、前のページの画像について、次のページの画像と印刷時に隣接する縁部位における色の分布パターンや像の輪郭などの特徴点を抽出し、且つ、後のページの画像について、前のページの画像と印刷時に隣接する縁部位における色の分布パターンや像の輪郭などの特徴点を抽出し、これらの縁部位(境界側の端部)同士の特徴点が合致するか否かを判断する。たとえば、境界側の端部の画像値同士が連続している場合、特徴点が合致すると判断する。あるいは、ハーフトーン処理部53が、画像の境界側の端部全体の画素値が連続しているか否かを調べるようにしてもよい。
そして、これらの縁部位同士の特徴点が合致する場合、ハーフトーン処理部53は、前のページの画像と次のページの画像とは関連すると判断し、それ以外の場合は、関連しないと判断する。
なお、ハーフトーン処理部53は、この他にもたとえば、前のページの画像について次のページの画像と印刷時に隣接するコーナー部位における色の分布パターンや像の輪郭などの特徴点と、後のページの画像について前のページの画像と印刷時に隣接するコーナー部位における色の分布パターンや像の輪郭などの特徴点との合致判定に基づいて、これらの画像の連続性を判断するようにしてもよい。
そして、パノラマ印刷が設定されている場合において、一連の2つの画像に画像の連続性が有ると判断した場合、ハーフトーン処理部53は、誤差拡散バッファ57を初期化しない(ステップST27)。
パノラマ印刷が設定されている場合において、一連の2つの画像に画像の連続性が無いと判断した場合、ハーフトーン処理部53は、モニタ36に、ユーザによる印刷条件の設定が適切で無い旨の警告と、画像間に画像の連続性が無い旨のメッセージとを表示させる(ステップST28)。これにより、誤った印刷条件を設定している可能性があることを、ユーザに伝えることができる。
ユーザ操作に基づいてキーボード37から所定の入力データが供給されると、ハーフトーン処理部53は、画像間に画像の連続性が無いことが承認されたと判断し、誤差拡散バッファ57を初期化する(ステップST22)。
一連の2つの画像に画像の連続性が無いと判断したことに基づく警告表示中に、上述した所定の入力データ以外の入力データがキーボード37から供給されると、ハーフトーン処理部53は、画像間に画像の連続性が無いことが承認されなかったと判断し、誤差拡散バッファ57を初期化しない(ステップST27)。
このようにパノラマ印刷が設定されている場合において、一連の2つの画像に画像の連続性が有ると判断した場合(ステップST26においてYの場合)や、一連の2つの画像に画像の連続性が無いと判断したことに基づく警告表示に応じて所定の入力データが入力されなかった場合(ステップST29においてNの場合)に、ハーフトーン処理部53は、誤差拡散バッファ57の初期化をしない。それ以外の場合には、ハーフトーン処理部53は、誤差拡散バッファ57を初期化する。
このように誤差拡散バッファ57の初期化を制御することで、2ページ目以降の印刷イメージのハーフトーン処理は、印刷条件に応じた処理になる。
すなわち、たとえば図7に示す1ページ目と2ページ目との間の改ページコードの読み込み検出に基づいて誤差拡散バッファ57を初期化しなかった場合において、2ページ目の最初の行のたとえばドットc8についてハーフトーン処理をする場合、誤差拡散バッファ57には、その上の行に相当する1ページ目の最終行の5つのドットc1〜c5での誤差と、その左側の2つのドットc6,c7での誤差が記憶される。したがって、ドットc8についてハーフトーン処理をする場合には、この7つのドットc1〜c7における誤差が濃度の計算に使用される。
これに対して、図7に示す1ページ目と2ページ目との間の改ページコードの読み込み検出に基づいて誤差拡散バッファ57を初期化した場合において、2ページ目の最初の行のたとえばドットc8についてハーフトーン処理をする場合、誤差拡散バッファ57には、その左側の2つのドットc6,c7での誤差のみが記憶される。したがって、ドットc8についてハーフトーン処理をする場合には、この2つのドットc6,c7における誤差のみが濃度の計算に使用される。
以上のハーフトーン処理部53によるハーフトーン処理が完了すると、印刷データに含まれる各色成分の印刷イメージは、その色成分のドットパターンへ変換される。図4に示すように、インターレース処理部54は、その色成分毎に生成されるドットパターンを有する印刷データに基づいて、印刷制御データを生成する(ステップST4)。
インターレース処理部54は、送り量テーブル45から、印刷条件の設定画面において選択された印刷に使用する用紙、たとえばロール紙4の送り量を選択する。インターレース処理部54は、複数のインク色のドットパターンに含まれる複数のドットを、キャリッジ14により印字するドットを印字する順番に並べ替える。インターレース処理部54は、並べ替えたドットをキャリッジ14の1回の主走査単位に区切ってラスターデータ化し、1つのページ内のその区切り毎に、選択した送り量のデータを追加し、印刷制御データを生成する。なお、並べ替え後の印刷されるドットの順番は、印刷する用紙のサイズ、インク吐出用ヘッドにおけるノズルの配列などに応じて異なる順番になる。
インターレース処理部54により、印刷制御データが生成されると、印刷制御データ出力部55は、生成された印刷制御データを、コンピュータ1の通信I/F38へ出力する(ステップST5)。印刷制御データ出力部55は、印刷制御データを、その先頭から順番に通信I/F38へ出力する。通信I/F38は、印刷制御データを、プリンタ2の通信I/F21へ送信する。通信I/F21は、受信した印刷制御データを通信バッファ22に保存する。
プリンタ2の通信バッファ22に印刷制御データが保存されると、プリンタ2の制御部23は、この受信データを読み込み、印刷制御データに基づく印刷処理を開始する。制御部23は、印刷制御データをその先頭から順番に読み込み、印刷制御データに基づく印刷をする。
制御部23は、印刷される所定のドットのデータを読み込むと、キャリッジモータ15に対して所定の制御信号を出力し、複数のピエゾ素子に対して読み込んだドットのデータにしたがった電圧波形の制御信号を出力する。キャリッジモータ15は、キャリッジ14を主走査方向の所定の位置に移動させる。複数のピエゾ素子は、制御信号の電圧波形で変形し、変形したピエゾ素子に対応するノズルからインクが吐出される。これにより、ロール紙4には、値「1」を有するドットに対応する部位に、インクが付着する。
制御部23は、用紙送りを示すコードを読み込むと、そのコードに指示される量だけ用紙を送る制御信号を紙送りモータ13へ出力する。これにより、ロール紙4は、コードに指示される量だけ給紙される。
プリンタ2は、印刷制御データにおけるドットのデータと用紙送りコードとの順番にしたがって、ロール紙4の紙面に、値「1」を有するドットに対応する部位にインクを付着させる。その結果、ロール紙4には、コンピュータ1の画像印刷部51が選択した複数の画像が連続的に印刷される。
以上のように、この実施の形態1による印刷システムは、コンピュータ1の画像印刷部51が複数の画像を選択し、プリンタ2は、その選択された複数の画像をロール紙4に連続的に印刷する。
しかも、コンピュータ1に実現されるハーフトーン処理部53は、印刷条件の設定画面においてパノラマ印刷が選択されている場合には、原則として、ページとページとの切れ目において誤差拡散バッファ57を初期化しない。したがって、パノラマ画像を構成する複数の画像をロール紙4に連続的に印刷する際に、それら複数のページの画像を1つの画像としたハーフトーン処理をして、それらのページのつなぎ目において、画像の切れ目が現われ難くすることができる。その結果、パノラマ画像を構成する複数の画像をロール紙4に連続的に印刷することで、それらの複数の画像を1つの画像のように繋ぎ合わせ、パノラマ画像中にスジなどか発生していない、高画質のパノラマ画像を印刷することができる。
また、ハーフトーン処理部53は、ロール紙印刷モードの設定がなされていない場合や、ロール紙印刷モードが設定されているが余白設定もともになされている場合などにおいては、ページとページとの切れ目において誤差拡散バッファ57を初期化する。したがって、別々の複数の画像をロール紙4に連続的に印刷する際に、並べて印刷される複数の画像に対して別々にハーフトーン処理をし、それらの画像のつなぎ目付近において画像同士の混色などが発生してしまうことはない。ロール紙4に、複数の画像を連続的に効率よく、且つ、高画質に印刷することができる。
したがって、この実施の形態1による印刷システムは、コンピュータ1の画像印刷部51が選択した複数の画像の種類に応じて最適なハーフトーン処理をし、その選択した複数の画像をロール紙4に効率よく、且つ、高画質に印刷することができる。
実施の形態2.
図8は、実施の形態2に係る印刷システムを示すブロック図である。実施の形態2に係る印刷システムは、コンピュータ1と、プリンタ2と、これらを接続するケーブル3と、を有する。
プリンタ2は、ロール紙ホルダ11の装着を検出する検出スイッチ71を有する。プリンタ2の制御部72は、検出スイッチ71からの検出信号が入力される。制御部72は、この検出信号が入力されると、ロール紙印刷を印刷条件として選択することを通知する送信データを生成し、通信バッファ22に書き込む。
コンピュータ1に実現されるプリンタドライバ部73は、ロール紙印刷を印刷条件として選択することが通知されると、ロール紙印刷のための印刷条件の設定画面をモニタ36へ出力する。
コンピュータ1に実現されるハーフトーン処理部74は、改ページコードを読み込んだ場合、後述するように、実施の形態1のハーフトーン処理部53とは異なる判断処理を実行する。
実施の形態2に係る上述した以外の構成要素は、実施の形態1に係る同名の構成要素と同じ機能を有するものであり、実施の形態1と同一の符号を付して説明を省略する。また、図8中の制御部72、プリンタドライバ部73およびハーフトーン処理部74は、上述した機能に加えて、実施の形態1に係る同名の構成要素と同じ機能をも有するものであり、実施の形態1と同一の符号を付して説明を省略する。
次に、以上の構成を有する実施の形態2に係る印刷システムの動作を説明する。以下の説明では、ロール紙4に対して複数の画像を印刷する場合の動作を例として説明する。
プリンタ2に、ロール紙ホルダ11が装着されると、検出スイッチ71は、検出信号をプリンタ2の制御部72へ出力する。制御部72は、この検出信号の入力に基づいて、ロール紙印刷を印刷条件として選択することを通知する送信データを生成し、通信バッファ22に書き込む。プリンタ2の通信I/F21は、通信バッファ22に書き込まれたこの送信データを読み込み、ケーブルを介してコンピュータ1の通信I/F38へ送信する。通信I/F38は、受信したデータを、プリンタドライバ部73へ出力する。プリンタドライバ部73は、ロール紙印刷を印刷条件として自動的に選択する。
また、コンピュータ1の画像印刷部51は、記憶デバイス33などに記憶されているEXIF画像ファイル41の中から、印刷する複数の画像を選択し、印刷データを生成する。画像印刷部51は、生成した印刷データをプリンタドライバ部73へ供給する。
プリンタドライバ部73は、印刷データを供給されると、その印刷データに基づき印刷処理を実行するための印刷条件の設定画面をモニタ36に表示させる。プリンタドライバ部73は、事前にロール紙印刷を印刷条件として選択している場合、ロール紙印刷を前提とした印刷条件の設定画面をモニタ36へ出力する。
図9は、図8中のモニタ36に表示される、ロール紙印刷のための印刷条件の設定画面を示す図である。この印刷条件の設定画面には、「パノラマ印刷」、「余白あり」の2つの文字列が表示される。この2つの文字列の左側には、2つのチェックボックス62,63が表示される。また、図9の印刷条件の設定画面には、「印刷開始」の文字を有するボタン64が表示される。
プリンタドライバ部73は、キーボード37の入力データに基づいて、たとえば「パノラマ印刷」の左側のチェックボックス62が選択されたことを検出すると、パノラマ印刷を印刷条件として選択し、「余白あり」の左側のチェックボックス63を選択すると、余白を設ける印刷を印刷条件として選択する。
また、プリンタドライバ部73は、キーボード37からの入力データに基づいて、「印刷開始」の文字を有するボタン64が選択されたことを検出すると、印刷条件の選択処理を終了し、ロール紙印刷を前提とした印刷制御データの生成処理を開始する。
ロール紙印刷を前提とした印刷制御データの生成処理において、プリンタドライバ部73は、印刷データのデータをその先頭から順番に所定量ずつ読み込み、読み込んだデータに対する色変換処理、ハーフトーン処理、インターレース処理および出力処理を、印刷データのすべてのページについて完了したと判断するまで繰り返す。
図10は、図8中のハーフトーン処理部74により、ロール紙印刷を前提とした場合に実行されるハーフトーン処理の流れを示すフローチャートである。
ハーフトーン処理部74は、誤差拡散バッファ57を生成した後、色変換済みの読込データを、そのデータの先頭から順番に、所定の単位で読み込む(ステップST11)。ハーフトーン処理部74は、読み込んだ所定の単位のデータについて、そのデータが改ページコードを示すデータであるか否かを判断する(ステップST12)。
そして、ステップST12において読み込んだデータが改ページコードであると判断した場合、ハーフトーン処理部74は、まず、余白が設定されているか否かを判断する(ステップST23)。そして、余白が設定されている場合、ハーフトーン処理部74は、誤差拡散バッファ57を初期化する(ステップST22)。また、余白が設定されていない場合、ハーフトーン処理部74は、パノラマ印刷が設定されているか否かを判断する(ステップST24)。
図10のフローチャートにおいて、ステップST24からST27までの処理および、読み込んだ所定の単位のデータが改ページコードを示すデータでない場合の処理(ステップST13〜ST18)は、実施の形態1のハーフトーン処理部53による処理と同様であり、説明を省略する。
以上のように、この実施の形態2による印刷システムは、プリンタ2の検出スイッチ71により、プリンタ2にロール紙ホルダ11が装着されたことが検出されると、プリンタ2の制御部72は、その旨をコンピュータ1のプリンタドライバ部73に通知する。プリンタドライバ部73は、その通知に基づいて、ロール紙印刷専用の印刷条件の選択画面を表示し、ハーフトーン処理部74は、ロール紙印刷専用のハーフトーン処理を実行する。
以上の各実施の形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、種々の変形、変更が可能である。
たとえば、上記各実施の形態では、ハーフトーン処理部53,74は、改ページコードを検出した際に、印刷条件の設定を判断し、誤差拡散処理に使用する誤差拡散バッファ57の初期化の要否を制御している。この他にもたとえば、ハーフトーン処理部53,74は、誤差拡散処理においてディザテーブルを使用し、印刷条件の設定の判断に基づいて、そのディザテーブルの印刷イメージデータへの適用を、ページ毎とするか、あるいは、連続して印刷される印刷イメージデータの間で連続的に使用するかを切り替えるようにしてもよい。
上記実施の形態1では、ハーフトーン処理部53は、印刷条件にロール紙印刷モードが設定されているか否かを判断した後に、図5のステップST23およびST24において、余白の設定およびパノラマ印刷の設定について判断をしている。上記実施の形態2では、ハーフトーン処理部74は、ロール紙印刷を前提として、図10のステップST23およびST24において、余白の設定およびパノラマ印刷の設定について判断をしている。この他にもたとえば、ハーフトーン処理部53,74は、余白の設定およびパノラマ印刷モードの設定の中の一方のみを判断するようにしてもよい。
余白の設定のみに基づいて誤差拡散バッファ57の初期化の要否を判断する場合、ハーフトーン処理部53,74は、たとえば、余白の設定がある場合には誤差拡散バッファ57の初期化し、余白の設定がない場合には誤差拡散バッファ57の初期化をしないようにすればよい。
また、パノラマ印刷の設定のみに基づいて誤差拡散バッファ57の初期化の要否を判断する場合、ハーフトーン処理部53,74は、たとえば、パノラマ印刷の設定がない場合には誤差拡散バッファ57の初期化し、パノラマ印刷の設定がある場合には誤差拡散バッファ57の初期化をしないようにすればよい。
上記実施の形態1では、ハーフトーン処理部53,74は、図5のステップST23からST24において、印刷条件の設定画面に基づくユーザの設定に基づく判断をした後、並んで印刷される画像同士を解析し(ステップST25)、それらの画像同士に共通する特徴点があるか否かを判断している(ステップST26)。上記実施の形態2でも、同様の判断処理をしている。この他にもたとえば、ハーフトーン処理部53,74は、ステップST24などにおいて、画像を解析し、その解析した特徴点の合致判定に基づく判断をするようにしてもよい。また、ハーフトーン処理部53,74は、ステップST24の判断後に、画像解析に基づく判断をすることなく、誤差拡散バッファ57の初期化の要否を決定するようにしてもよい。
上記各実施の形態では、ハーフトーン処理部53,74は、ユーザの設定に基づく判断をした後の判断ステップST25〜ST26において、並んで印刷される画像同士の特徴点を解析し、その特徴点同士が合致するか否かを判断している。この他にもたとえば、ハーフトーン処理部53,74は、並んで印刷される画像に関する情報、たとえばそれらの画像のヘッダの内容などに基づいて判断するようにしてもよい。具体的にはたとえば、ハーフトーン処理部53,74は、並んで印刷される画像のEXIF画像ファイルのヘッダ情報にパノラマ画像であることを示す情報が共通に含まれていることを判断すればよい。
上記各実施の形態では、プリンタドライバ部56,73は、コンピュータ1に実現されている。この他にもたとえば、プリンタドライバ部56,73は、プリンタ2に実現されてもよい。この場合、コンピュータ1は、プリンタへ印刷データを送信すればよい。
上記各実施の形態に係る印刷システムは、コンピュータ1とプリンタ2との組合せで構成されている。この他にもたとえば、印刷システムは、プリンタとDSCとの組合せで構成されていても、プリンタとスキャナとの組合せで構成されていても、プリンタとカードリーダなどとの組合せで構成されていてもよい。プリンタとスキャナやカードリーダなどとは、所謂複合機として、1つの筐体内に配置されていてもよい。また、コンピュータを介さずにDSCをプリンタに直接接続するダイレクト印刷システムに使用されるプリンタに、プリンタドライバ部56,73を内蔵させるようにしてもよい。
上記各実施の形態では、画像印刷部51がプリンタドライバ部56,73へ印刷のために供給するデータは、印刷イメージを改行コードで区切った印刷データである。この他にもたとえば、画像印刷部51がプリンタドライバ部56,73へ、印刷するEXIFファイルのファイル名と、そのEXIFファイルの画像の印刷レイアウトの情報とを組み合わせたデータなどを供給するようにしてもよい。このようなデータとしては、たとえばDPSやDPOF(Digital Print Order Format)などで使用する印刷指示データがある。これらの印刷指示データが供給された場合、プリンタドライバ部56,73は、まず、供給されたデータに基づいて印刷イメージを改行コードで区切った印刷データを生成し、その後、色変換処理などの印刷制御データを生成するための処理をすればよい。
上記各実施の形態では、ロール紙印刷モードを長尺印刷モードとしたが、大判印刷モードなどの一枚の印刷用紙に複数ページの画像を印刷するモードを長尺印刷モードとしてもよい。
53 ハーフトーン処理部(判定手段、ハーフトーン手段)、54 インターレース処理部(印刷制御データ生成手段)、56 プリンタドライバ部(印刷制御データ生成装置)