JP2009262454A - 画像形成装置、その制御手段及びコンピュータプログラム - Google Patents

画像形成装置、その制御手段及びコンピュータプログラム Download PDF

Info

Publication number
JP2009262454A
JP2009262454A JP2008116292A JP2008116292A JP2009262454A JP 2009262454 A JP2009262454 A JP 2009262454A JP 2008116292 A JP2008116292 A JP 2008116292A JP 2008116292 A JP2008116292 A JP 2008116292A JP 2009262454 A JP2009262454 A JP 2009262454A
Authority
JP
Japan
Prior art keywords
data
print
print data
pass
constraint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008116292A
Other languages
English (en)
Inventor
Hiroyuki Horii
博之 堀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008116292A priority Critical patent/JP2009262454A/ja
Priority to US12/418,863 priority patent/US20090268226A1/en
Publication of JP2009262454A publication Critical patent/JP2009262454A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers
    • G06K15/102Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers using ink jet print heads
    • G06K15/105Multipass or interlaced printing
    • G06K15/107Mask selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4051Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size
    • H04N1/4052Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size by error diffusion, i.e. transferring the binarising error to neighbouring dot decisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color, Gradation (AREA)
  • Ink Jet (AREA)

Abstract

【課題】マスクパターンを用いたマルチパス印字を行う画像形成装置において、パス間のドットの分散性が確保されないため、印字された画質が劣化する。
【解決手段】各パスで印字する印字データを誤差拡散法によって算出する。すでに印字した画素については印字しないように、各パスで行う誤差拡散法に制約を指定する。また、各パスで印字されるドットが同程度になるように、印字デューティを設定する。
【選択図】図9

Description

本発明は画像形成技術に関し、特にマルチパス印字による画像形成技術に関する。
インクジェットプリンタ等の画像形成装置で印刷を行うために、入力された多値画像データを誤差拡散法などによって二値化又は階調を落した印字データに変換する。さらに、ヘッドの特性やメカの制御誤差等によるドットのばらつきを目立たなくするために、1回のスキャンで印字可能な印字データの領域を複数回のパスに分割して印字する。この印字方法をマルチパス印字とよぶ。マルチパス印字を行うためには、印字データを複数のパス印字データに分割する必要がある。特許文献1には、パスごとに異なるマスクパターンを事前に用意し、マスクパターンと生成した印字データとの論理積を取得してパス印字データを算出する方法が記載されている。マルチパス印字では、各パス印字データの印字結果が印字データに等しくなる必要がある。そのため、マスクパターンは、任意の画素を何れか一つのマスクパターンに含むように生成される。各パスのパス印字データにおけるドットの分散性を高めるため、マスクパターンのドットに位置は極力ランダムになるように設計される。
特許文献1に記載の技術は、マルチパス印字を行うためのパス分割を事前に設定されたマスクパターンによって行う。一つのマスクパターンの大きさは、印刷する画像の画素数分の大きさが必要となり、nパスに分割する場合には、n個のマスクパターンが必要となる。そのため、マスクパターンはプリンタ装置内の限られたメモリ領域を圧迫することになる。
また、事前に設定されたマスクパターンとは独立して印字データは作成される。マスクパターンは、印字データが各パスにランダムに割振られるように設計される。これに対し、印字データは、入力された画像に依存し、明るい部分では生成ドットは少なく、暗い部分では生成ドットが多くなるように生成される。入力に依存する印字データと無関係に設計されたマスクパターンとの間で、論理積を取ってパス分割を行う際に、印字データとマスクパターンとの干渉により理想的なパス分割にはならず、形成された画像の劣化を生じることがある。これは、入力に依存する印字データと印字データとは無関係に設計されたマスクパターンとの間で、論理積を取ってパス分割を行うために、パス間のドットの分散性が保証されないためである。例えば、パス分割を行った際に、あるパスでは印字ドット数が多く、別のパスでは印字ドット数が少ないといった不具合が起ることがある。以上により、マスクパターンを用いたマルチパス印字では、形成された画像が劣化する場合がある。
特開平05−031922号公報
このように、従来はパス印字データ間のドットの独立性・分散性を確保しつつ、マルチパス印字を行うことが困難であった。
そこで、本発明はパス印字データ間のドットの独立性・分散性を確保しつつ、マルチパス印字可能にすることを目的とする。
本発明に係る画像形成装置は、
画像データを印字画素と非印字画素とを含む印字データに変換し、複数のパスに分割して印字する画像形成装置であって、
誤差拡散法により前記画像データを変換して第1の印字データと複数の第2の印字データとを生成する変換手段と、
前記複数の第2の印字データを印字する印字手段と
を備え、
前記変換手段は、
前記誤差拡散法によって前記画像データを前記第1の印字データに変換する第1の変換を行い、
前記第1の印字データにおける非印字画素を、前記第2の印字データにおける非印字画素として指定する制約データを生成し、
前記制約データを利用した前記誤差拡散法によって前記画像データを前記複数のパスのいずれかにおいてそれぞれ使用される前記複数の第2の印字データに変換する第2の変換を行い、
前記印字手段は、前記複数のパスのそれぞれにおいて、前記複数の第2の印字データのうち対応する第2の印字データを印字することにより、前記画像データの表す画像を形成する
ことを特徴とする。
本発明により、パス印字データ間のドットの独立性・分散性を確保しつつ、マルチパス印字を行うことが可能となる。
以下、添付の図面を参照しながら本発明の実施形態について詳細に説明する。以下の実施形態では、画像形成装置の例としてプリンタを扱う。本明細書において「画像」とはプリンタによって記録紙などの印刷メディアに印刷される対象であり、文字や記号だけからなる文書等も含む。また、「印字」とはインク等を吐出して画像を形成することであり、文字を印刷するだけに限られない。
<第1の実施形態>
図1を用いて本発明に係るプリンタのハードウェア構成を説明する。図1は、プリンタ100のハードウェア構成の一例を表すブロック図である。
プリンタ100は、CPU101、ROM102、RAM103、二値化処理部106、印字処理部107、メカ制御部108、及びプリンタエンジン部109を備える。
CPU101はプリンタ100全体の制御を司る。ROM102はCPU101が実行するプログラムやテーブルデータなどを格納する。RAM103は変数やデータなどや、後述する誤差バッファ、制約バッファなどを記憶する。
二値化処理部106はプリンタ100に入力された多値の入力画像データを印字可能な形式である二値の印字データに変換する。印字処理部107は印字データをプリンタエンジン部109に出力し、印字データの印字を行う。メカ制御部108は印字を行うためにプリンタエンジン部109を制御する。プリンタエンジン部109は、インクを吐出する複数のノズルを含むヘッド110や、紙送り機構111、キャリッジ送り機構などを備える。ヘッド110は、印字処理部107から入力された印字データに基づいてインクを吐出し、入力画像データを印刷する。
プリンタ100は、USBデバイスインターフェース104及びUSBホストインターフェース105をさらに備える。USBデバイスインターフェース104はパソコン120から画像データを受け付ける。USBホストインターフェース105はデジタルカメラ130などから画像データを受け付ける。
デジタルカメラ130によって撮影された画像をプリンタ100に直接送信し、印刷する例を説明する。デジタルカメラ130により撮影された画像は、圧縮されたJPEGデータとしてデジタルカメラ130内のメモリ(図示せず)に格納される。デジタルカメラ130は接続ケーブル131によりプリンタ100のUSBホストインターフェース105に接続される。デジタルカメラ130のメモリに格納されたJPEGデータは、USBホストインターフェース105を介してプリンタ100内のRAM103に一時的に記憶される。CPU101はデジタルカメラ130から取得したJPEGデータを解凍して得られる入力画像データを再びRAM103に記憶する。
RAM103に記憶された入力画像データは、二値化処理部106により印字可能な形式である印字データに変換され、さらにマルチパス印字を行うための複数の部分印字データが作成される。パス分割処理については後で詳しく述べる。部分印字データは、印字処理部107により、ヘッドの駆動順に合わせて、ヘッド110に送られる。メカ制御部108とこれにより制御されるプリンタエンジン部109とが同期して、インク滴が吐出することにより印刷メディア上に画像が形成される。
続いて、図2から図6を用いて誤差拡散法について説明する。
誤差拡散法は画像データを変換して情報量を低減する手法の一つである。本実施形態では画像データの各画素の画素値を二値化する場合を扱う。図2に示す画像データが入力画像データ200として与えられたとする。図2は入力画像データの一例を説明する図である。入力画像データ200の各画素には濃度に応じた画素値が与えられる。数値が大きいほど濃度が高いことを意味する。本実施形態において、各画素の画素値は8ビットの情報量を有するとし、画素値の取り得る範囲は0以上255以下の整数値とする。また、説明のために、xy座標系201を設定する。以後の画像データについても同様の座標系が設定されているものとする。
図3は、入力画像データ200を誤差拡散法によって二値化した結果の印字データ300の一例である。印字データ300の各画素の画素値は0又は255のいずれかをとるとする。以下において、誤差拡散法より入力画像データを印字データに変換することを、「入力画像データを誤差拡散する」と表現することもある。
誤差拡散法は、各画素における二値変換で生じた誤差を周辺の画素の画素値に反映することで、画像データ全体としての誤差を最小にする方法である。誤差拡散法において二値化処理は画素ごとに逐次処理される。例えば、図2に示す入力画像データ200の左上に位置する画素202から二値化処理を開始し、x軸正方向の順に各画素の二値化処理を行う。入力画像データ200の右端に位置する画素203まで二値化処理を完了したら、y軸正方向の次の行の左端に位置する画素204から二値化処理を続ける。これを繰り返し、入力画像データ200の右下の画素205まで二値化処理を行うことで、入力画像データ200の二値変換を行う。これにより、各画素はドットが吐出される印字画素とドットが吐出されない非印字画素に分類される。
各画素(x,y)における二値化処理は以下の式(1)から(3)によって行われる。
B(x, y) = 255 (I’(x, y) ≧ Tの場合) …(1)
B(x, y) = 0 (I’(x, y) < Tの場合) …(2)
(ただし、I’(x, y) = I(x, y) + Err(x, y)とする。) …(3)
ここで、I(x,y)、B(x,y)はそれぞれ入力画像データ200、印字データ300の画素(x,y)のおける画素値である。また、Tは所定の閾値であり、画素値が0以上255以下の範囲の値を取り得る場合には、例えば128とする。Err(x,y)は、画素(x,y)における累積誤差である。I´(x,y)は、累積誤差を反映した入力画像データ200の画素(x,y)における画素値である。
図4は発生した誤差の拡散規則の一例を説明するための図である。図4(a)の画像データ400は入力画像データ200の一部に注目したものである。二値化処理により、累積誤差を反映した入力画像データ200の画素値I´(x,y)は、二値の画素値B(x,y)に変換される。そのため、注目画素(x,y)401において、I´(x,y)−B(x,y)(=Eと置く)の誤差が生じる。この誤差Eを周辺の画素のうち、二値化処理がまだ行われていない画素に拡散する。具体的には、以下の式(4)から(7)による処理を行う。
Err(x+1, y ) = Err(x+1, y ) + K1 * E …(4)
Err(x-1, y+1) = Err(x-1, y+1) + K2 * E …(5)
Err(x , y+1) = Err(x , y+1) + K3 * E …(6)
Err(x+1, y+1) = Err(x+1, y+1) + K4 * E …(7)
ここで、K1からK4は所定の定数である。好適な例では合計値が1になるように規定し、例えば、K1=7/16、K2=3/16、K3=5/16、及びK4=1/16とする。
累積誤差を反映した補正後の画素値I´(x,y)よりも二値データB(x,y)が小さい場合には、Eの値は正となり、周辺の画素における累積誤差を反映した画素値は増加する。それにより、画素値が増加した画素を二値化処理する場合に、入力画像データの画素値I(x,y)をそのまま閾値と比較するよりも、閾値を超えやすくなる。Eの値が負となる場合も同様のことが言える。これにより、画像データ全体で考えたときに、単純に画素値を閾値と比較して二値変換する場合に比べて、自然な印字データを作成することが可能となる。
例えば、図2に示す画素206の画素値は150であり、閾値の128を超えているが、周辺の画素で生じた誤差を反映した結果、図3に示す印字データ300において、対応する画素301の画素値は0となる。本実施形態では注目画素において発生した誤差を周辺の四つの画素に拡散しているが、それ以上の個数の画素に拡散することも可能である。
なお、図4(b)のように、注目画素(x,y)411が入力画像データ200の左端に位置する場合には以下の式(8)から(10)による処理を行う。
I(x+1, y ) = I(x+1, y ) + K1 * E …(8)
I(x , y+1) = I(x , y+1) + (K2+K3) * E …(9)
I(x+1, y+1) = I(x+1, y+1) + K4 * E …(10)
また、図4(c)のように、注目画素(x,y)421が入力画像データ200の右端に位置する場合には以下の式(11)、(12)による処理を行う。
I(x-1, y+1) = I(x-1, y+1) + K2 * E …(11)
I(x , y+1) = I(x , y+1) + (K1+K3+K4) * E …(12)
つづいて、図5を用いて制約が与えられた場合の誤差拡散法について説明する。図5は制約データ500とそれに基づく印字データ510との一例を説明する図である。
制約とは、二値化処理において事前に指定された変換後の画素値のことである。例えば、入力画像データ200に対する制約は、図5(a)に示す制約データ500のような2次元配列で与えられる。制約データ500の要素が入力画像データの画素に対応する。制約データ500において、入力画像データの両端に位置するすべての画素における変換後の画素値が0に指定されている。そのため、この制約を利用して誤差変換を行った結果の印字データでは、両端に位置する画素の画素値がすべて0になる必要がある。例えば、制約データ500を利用して、図2に示す入力画像データ200の誤差拡散を行うと、図5(b)に示す印字データ510が得られる。制約データ500において画素値が指定されていない画素については、印字データ510において0又は255のいずれの値をとることができる。
制約が与えられた場合の誤差拡散法の処理について説明する。制約データ500によって画素値が指定される画素については、式(1)から(3)による処理を行わずに、指定された画素値をそのまま印字データ510の画素値B(x,y)とする。制約が与えられていない画素については、制約が与えられない誤差拡散法と同様に、式(1)から(3)により二値化処理を行う。誤差の拡散については、制約の有無にかかわらず、式(4)から(12)により処理を行う。その結果、図5(b)に示す印字データ510が得られる。図3に示す制約が与えられない場合における印字データ300とは異なる結果となる。
さらに、図6を用いて印字デューティが設定された場合の誤差拡散法について説明する。図6は印字デューティが設定された場合の印字データの一例を説明する図である。印字デューティとは印字率のことであり、ヘッド110により吐出されるドット数の割合を規定する。例えば、印字デューティが50%に設定された場合の印字データは、印字デューティが設定されない場合又は100%に設定された場合の印字データと比較して、吐出されるドット数が50%となる。
印字デューティが設定された二値化処理を行うには、入力画像データ200の各画素の画素値に印字デューディを乗算した値を画素値とする画像データ600を誤差拡散すればよい。それにより、図6(b)に示す印字データ610に変換される。印字データ610の印字で吐出されるドット数、つまり画素値が255である画素の数は、図3に示す印字データ300の印字に使用されるドット数の約50%となる。誤差拡散法では、二値化処理で生じた誤差を周辺の画素に拡散するため、変換前の入力画像データ200の各画素値の合計と変換後の印字データ300の各画素値の合計とはほぼ等しくなる。したがって、入力画像データ200の各画素の画素値に印字デューティを乗算した画像データを誤差拡散すれば、所望の印字デューティを満たす印字データに変換できる。なお、式(1)及び(2)で用いる閾値Tは印字デューティ乗算後の画像データにおける画素値の範囲に合わせて設定するのが望ましい。例えば印字デューティが50%の場合には、画素値の取りうる範囲は0以上127以下となるため、閾値Tを64に設定する。以上が誤差拡散法についての説明である。
つづいて、図7を用いてマルチパス印字について説明する。図7はマルチパス印字を行った場合における画像形成の遷移の一例を説明する図である。マルチパス印字とは、紙などの印刷メディア702を複数の印字領域に分割し、それぞれの印字領域を複数回のヘッド110のスキャンに分けて印字を行う方法である。ヘッド110のスキャンとは、ヘッド110がインクを吐出しつつ、印刷メディア702上を走査することである。また、一つの印字領域に注目したスキャンをパスと呼ぶ。本実施形態では一つの印字領域を4回のスキャンに分けて印字する4パス印字を例として説明するが、パス数は4回に限定されるものではない。
複数のノズルを備えるヘッド110は矢印701の方向にスキャンを行い、各ノズルが印刷対象の印字データに基づいて印刷メディア702にインクを吐出する。スキャン終了後に紙送り機構111は矢印703の方向に印刷メディア702を所定の長さだけ紙送りする。
n回のパスに分割するnパス印字では、一般的にヘッド110に含まれるノズルをn個のグループに分割し、1回のスキャンごとに、ヘッド110の幅の1/nずつ紙送りする。これにより、印刷メディア702の各印字領域に対して、計n回のスキャンが行われる。また、n回のスキャンごとにヘッド110の幅ずつ紙送りしてもnパス印字を行うことはできるが、本実施形態では扱わない。
本実施形態では4パス印字であるため、ヘッド110に含まれるノズルをノズル・グループA704からノズル・グループD707の四つに分割する。各ノズル・グループには同数のノズルが含まれるとする。例えば、ヘッド110に512個のノズルが含まれるとすると、各ノズル・グループには128個のノズルが含まれる。そして、図7(a)に示すように、1回目のスキャンでノズル・グループA704による印刷メディア702の第1の印字領域708に対する1パス目の印字を行い、紙送りする。
図7(b)に示すように、2回目のスキャンで、第1の印字領域708に対してノズル・グループB705による2パス目の印字が行われ、第2の印字領域709に対してノズル・グループA704による1パス目の印字が行われる。
続いて、図7(c)に示すように、3回目のスキャンで第1の印字領域708に対してノズル・グループC706による3パス目の印字が行われ、第2の印字領域709に対してノズル・グループB705による2パス目の印字が行われる。なお、簡略化のため、印刷メディア702の第3の印字領域以降については説明を省略するが、同様の処理が行われる。
続いて、図7(d)に示すように、4回目のスキャンで第1の印字領域708に対してノズル・グループD707による4パス目の印字が行われ、第2の印字領域709に対してノズル・グループC706による2パス目の印字が行われる。以上の処理により、4回目のスキャンによって、印刷メディア702の第1の印字領域708に対する印字が完了する。これを繰り返すことで、印刷メディア702に対する印字が完了する。
マルチパス印字を行う際には、画素ごとに何番目のパスでインクを吐出するかを決定する必要があり、本発明ではこれを誤差拡散法により決定する。図8を用いて、誤差拡散法を用いたパス分割の方法の概要を説明する。図8は各パスにおいて与えられる制約と印字データとの遷移の一例を説明する図である。
まず、一つのノズル・グループが1回のスキャンで印字できる画素数に応じて、入力画像データを部分画像データに分割する。例えば、ノズル・グループに128個のノズルが含まれる場合には、y軸方向に128画素を含み、x軸方法にプリンタ100の印字幅に等しい画素を含む部分画像データに分割する。図8に示す部分画像データ800を例として扱う。部分画像データ800は例えば図7に示す第1の印字領域708に印字される。
部分画像データ800に対する1パス目の処理において、部分画像データ800を制約なしで誤差拡散し、部分印字データに変換する。この部分印字データを全パス印字データ801と呼ぶ。第1の変換によって得られる第1の印字データである全パス印字データ801において画素値が255である画素が最終的にドットが吐出される画素となる。この段階では4回行われるスキャンのうち、いずれのスキャンにおいてドットが吐出されるかは未定であるが、いずれか1回のスキャンで必ずドットが吐出される。一方、全パス印字データ801において画素値が0である画素は、どのスキャンにおいても必ずドットが吐出されない。
さらに、最も先行するパスである1パス目の処理において、全パス印字データ801に基づいて1パス目制約データ810を定め、この制約を利用した誤差拡散により、部分画像データ800を1パス目印字データ811に変換する。この第2の変換により、第2の印字データであるパスごとの印字データが得られる。この誤差拡散では印字デューティを25%に設定する。1パス目印字データ811を1パス目のスキャンで印字する。さらに、1パス目印字データは後続パスの誤差拡散の制約としても利用される。
マルチパス印字においては、各パスにおいて吐出されるドット数が同程度になることが望ましい。そこで4パス印字の場合には、印字デューティを25%として二値化処理を行い、得られた印字データを印字する。また、全パス印字データ801において画素値が0である画素については、1パス目印字データ811においても画素値が0となるべきである。そこで、全パス印字データ801の画素値が0の画素を、1パス目制約データ810において制約値を0に指定する。全パス印字データ801において画素値が255である画素については、1パス目印字データ811で255となってもよいし、以降のパスの印字データで255となってもよいので制約は指定しない。
次に2パス目の処理において、全パス印字データ801と1パス目印字データ811とに基づいて2パス目制約データ820を定め、この制約を与えた誤差拡散により、部分画像データ800を2パス目印字データ821に変換する。この誤差拡散においても印字デューティを25%に設定する。2パス目印字データ821を2パス目のスキャンで印字する。
デューティを25%に設定するのは先程と同様の理由からである。また、全パス印字データ801において画素値が0である画素については、2パス目印字データ821においてもやはり画素値が0となるべきである。さらに、1パス目で印字された画素、すなわち1パス目印字データ811において画素値が255となる画素は、2パス目において印字する必要はない。そこで、1パス目印字データ811において画素値が255である画素の制約値を0とする制約を1パス目制約データ810に追加する。それにより、2パス目制約データ820が得られる。太枠で囲まれた要素は2パス目制約データ820において新たに制約が追加された要素である。
3パス目の処理においても同様に、全パス印字データ801、1パス目印字データ811、及び2パス目印字データ821に基づいて3パス目制約データ830を定める。誤差拡散の結果、部分画像データ800は3パス目印字データ831に変換され、これを印字する。
最も後行するパスである4パス目の処理においては、誤差拡散を行わずに、全パス印字データ801のうち、3パス目までの処理でまだ印字されていない画素を印字する。先程と同様に作成した4パス目制約データ840で制約が指定されていない要素は、ドットを吐出すべき画素のうち、いままでのパスのいずれにおいてもドットが吐出されていない画素である。そこで、制約が指定されていない画素の画素値を255とした4パス目印字データ841を作成し、これを印字する。
以上により、部分画像データ800を4パスに分割して印字できる。
つづいて、マルチパス印字の詳細を図9から図15を用いて詳細に説明する。
図9は、二値化処理部900の構成を表すブロック図の一例である。二値化処理部900は図1に示す二値化処理部106に対応する。二値化処理部900はRAM103から入力画像データの部分画像データの画素値910を逐次読み出す。印字デューティ設定部902は誤差拡散に用いる印字デューディを設定する。乗算器901は入力画像データの画素値910に印字デューティ設定部902が設定した印字デューティを乗算する。加算器903は、乗算器901の出力に誤差バッファ930から読み込んだ注目画素における累積誤差を加算する。閾値設定部904は誤差拡散で用いる閾値Tを設定する。二値データ出力部906は、加算器903から入力された画素値、閾値設定部904からの入力された閾値T、及び制約バッファ920から読み込んだ注目画素における制約値から、印字データの画素値909を算出し、出力する。制約処理部905は印字データの画素値909に基づいて、制約バッファ920が記憶する制約データを更新する。減算器907は二値データ出力部906からの出力と、加算器903からの出力との差分を取り、誤差処理部908に出力する。誤差処理部908は注目画素で発生した誤差を他の画素に拡散し、その結果をもとに誤差バッファ930を更新する。
制約バッファ920は誤差拡散で用いる制約データを記憶し、RAM103に格納される。誤差バッファ930は各画素の累積した誤差を記録する、RAM103に格納される。印字バッファ940は印字データの画素値909を記憶し、RAM103に格納される。
つづいて、図10を用いて二値化処理部900の動作について説明する。図10は二値化処理部900の動作の一例を説明するフローチャートである。このフローチャートに基づく処理は、ROM102に書き込まれたコンピュータプログラムをCPU101が実行することによって行われる。また、実行の一部をハードウェア的に行っても良い。
ステップS1001で、二値化処理部900は部分画像データの画素値910を読み出す。
ステップS1002で、乗算器901は、印字デューティ設定部が設定した印字デューティを、部分画像データの画素値910に乗算し、加算器903に出力する。印字デューティ設定部は、入力画像データを全パス印字データに変換する場合には印字デューティを100%とし、入力画像データを各パスの部分印字データに変換する場合には印字デューティを25%に設定する。
ステップS1003で、加算器903は、乗算器901からの入力に、誤差バッファ930から読み出した注目画素の累積誤差を加算し、二値データ出力部906に出力する。
ステップS1004で、二値データ出力部906は制約バッファ920を参照して、注目画素に対して制約値が指定されているか否かを判定する。注目画素の制約バッファ920の値が0の場合は制約値が0に指定されているものとし、1の場合は制約値が指定されていないものとする。なお、誤差拡散を行う前に、制約バッファ920のすべての要素は1に初期化されているものとする。
制約が指定されている場合(ステップS1004において「YES」)にはステップS1006に移行して、二値データ出力部906は制約にしたがって0を出力する。
制約が指定されていない場合(ステップS1004において「NO」)にはステップS1005に移行する。
ステップS1005で、二値データ出力部906は加算器903からの入力値と閾値設定部904が設定した閾値とを比較する。閾値設定部904は印字デューティに応じて閾値を設定する。例えば、印字デューティが100%の場合には閾値を128とし、印字デューティが25%の場合には閾値を32とする。
加算器903からの入力の方が小さい場合(ステップS1005において「YES」)には、ステップS1006に移行する。ステップS1006で、二値データ出力部906は0を出力する。
加算器903からの入力の方が小さくない場合(ステップS1005において「NO」)には、ステップS1007に移行する。ステップS1007で、二値データ出力部906は255を出力する。
ステップS1008で、制約バッファ920を更新する。入力画像データを全パス印字データに変換する誤差拡散の場合には、0が出力された画素の制約値を0に変更する。入力画像データを各パスの印字データに変換する誤差拡散の場合には、255が出力された画素の制約値を0に変更する。
ステップS1009で、減算器907は注目画素で生じた誤差を算出し、誤差処理部908に入力する。誤差処理部908は入力された誤差を元に、式(4)から(12)にしたがって注目画素の周辺の画素における累積誤差を更新する。
ステップS1010で、二値化処理部900は部分画像データのすべての画素について二値化処理が終了したか否かを判定する。終了していない場合(ステップS1010において「NO」)には、ステップS1001に戻り、次の画素を処理する。終了した場合(ステップS1010において「YES」)には、部分画像データの二値化処理を終了する。
つづいて、図11と図12とを用いて制約バッファ920の詳細について説明する。
図11は制約バッファ920の構造の一例を説明する図である。一つの誤差拡散に使用される制約データを記憶する制約記憶領域は、x軸方向要素数1101がプリンタ100の印字幅に等しく、y軸方向要素数1102が一つのノズル・グループに含まれるノズル数に等しい。nパス印字において、同時に行われる誤差拡散は最大でn個であるため、制約バッファ920はn個の制約データを記憶できれば良い。ここで、nパス印字では、ヘッド110をn個のノズル・グループに分割するため、制約バッファ920のy軸方向要素数1103はヘッドの含まれるノズル数に等しい。つまり、制約バッファ920には、プリンタ100の印字幅×ヘッドのノズル数の領域が必要となる。各領域には1ビットの情報が保持される。
図12は入力画像データを二値変換する際における制約バッファ920の遷移の一例を説明する図である。本実施形態では4パス印字を例として扱う。制約バッファ920は第1の制約記憶領域1201から第4の制約制約記憶領域1204に分割される。
1回目のスキャンにおいて、第1の部分画像データについての制約なしの誤差拡散と1パス目の誤差拡散とが行われる。これらの誤差拡散に必要な制約データが第1の制約記憶領域1201に記憶される。第1の制約記憶領域1201には、例えば図8に示す1パス目制約データ810が記憶される。以上の結果、制約バッファ920の状態は、制約バッファ1210のようになる。
2回目のスキャンにおいて、第1の部分画像データについての2パス目の誤差拡散が行われる。この誤差拡散に必要な制約データは第1の制約記憶領域1201に記憶されている制約データを更新したものである。第1の制約記憶領域1201には、例えば図8に示す2パス目制約データ820が記憶される。また、第2の部分画像データについての制約なしの誤差拡散と1パス目の誤差拡散とが処理される。これらの誤差拡散に必要な制約データを第2の制約記憶領域1202に記憶される。以上の結果、制約バッファ920の状態は、制約バッファ1220のようになる。
3回目のスキャン、4回目のスキャンにおいても同様の処理を行い、スキャン終了後の制約バッファ920の状態は、それぞれ制約バッファ1230、1240となる。
4回目までのスキャンをもって第1の部分画像データの印字は終了しているため、第1の制約記憶領域1201に記憶されている第1の部分画像データに関する制約データは必要ない。そこで、5回目のスキャンにおいて、第5の部分画像データについての1パス目の誤差拡散に必要な制約データを第1の制約記憶領域1201に記憶する。
以上のように、制約バッファ920をリングバッファのように用いて、それぞれの誤差分散に必要な制約データを記憶する。なお、4回目のスキャンにおいて、第1の部分画像データについての4パス目の処理を、第4の部分画像データについての1パス目の処理に先立って行うことで、第1の制約記憶領域1201に第4の部分画像データに必要な制約を記憶させることができる。これにより、制約バッファ920に必要な領域を、制約記憶領域一つ分だけ節約することが可能となる。
つづいて、図13と図14とを用いて制約バッファ920の詳細について説明する。
図13は誤差バッファ930の構造の一例を説明する図である。nパス印字においては、全パス印字データ、及び1パス目印字データからn−1パス目印字データを算出するための合計n回の誤差拡散が1回のスキャンごとに処理される。前述の通り、nパス目印字データへの変換は誤差拡散を用いない。図4を用いて説明したとおり、本実施形態における誤差拡散では、注目画素を含む行と、その次の行に誤差が拡散される。そのため、一つの誤差拡散で必要となる誤差バッファ930の誤差記憶領域は、x軸方向要素数1301がプリンタ100の印字幅、y軸方向要素数が2となる。したがって、誤差バッファ930のy軸方向要素数1303は2nとなる。以上より、nパス印字で必要となる誤差バッファ930には、プリンタ100の印字幅×2nの領域が必要となる。一つの領域には累積誤差が取りうる値に合わせたビット数が必要となる。なお、この必要な領域は誤差を拡散する周辺の画素の範囲によって変動する。
図14は入力画像データを二値変換する際における誤差バッファ930の遷移の一例を説明する図である。本実施形態では4パス印字を例として扱う。誤差バッファ930は第1の誤差記憶領域1401から第4の誤差記憶領域1404に分割される。
1回目のスキャンにおいて、第1の部分画像データを全パス印字データと1パス目印字データとに変換する誤差拡散を行う。これらの誤差拡散において、部分画像データは共通するものの、制約及び印字デューティが異なるために、別々の誤差記憶領域が必要となる。そこで、それぞれの誤差を第1の誤差記憶領域1401、第2の誤差記憶領域1402に記憶する。
2回目のスキャンにおいて、第1の部分画像データを2パス目印字データに変換する誤差拡散及び第2の部分画像データを全パス印字データと1パス目印字データとに変換する誤差拡散を行う。ここで、第2の部分画像データを全パス印字データに変換する誤差拡散と、1回目のスキャンで行った第1の部分画像データを全パス印字データに変換する誤差拡散は同一の条件で行われる。そのため、1回目のスキャンで全パス印字データの変換において用いた誤差データを、第2の部分画像データを全パス印字データに変換する誤差拡散において引き継いで使用する。それにより、第2の部分画像データにおいて1行目に含まれる画素の二値化もそれ以前の画素の処理で生じた誤差を反映して行うことができる。第1の画像データについての1パス目の誤差拡散と、第2の部分画像データについての2パス目の誤差拡散とについても同様の関係が成り立つ。第1の部分画像データについての2パスの誤差については、第3の誤差記憶領域1403に記憶する。以降のスキャンについても同様に誤差バッファ930を使用する。前述の通り、4パス印字においては誤差バッファ1430に示すとおり四つの誤差記憶領域があれば足りる。
最後に図15を用いて入力画像データのマルチパス印字について説明する。図15は入力画像データをマルチパス印字するフローチャートの一例である。このフローチャートに基づく処理は、ROM102に書き込まれたコンピュータプログラムをCPU101が実行することによって行われる。また、実行の一部をハードウェア的に行っても良い。
ステップS1501で、プリンタ100は印刷のための準備を行う。例えば、デジタルカメラ130等から入力画像データを読み出し、RAM103に書き込む。また、紙送り機構111が印刷メディアを所定の位置まで紙送りする。なお、入力画像データは一括してRAM103に書き込んでも良いし、印字対象の部分画像データごとにRAM103に書き込んでも良い。
ステップS1502で変数iを1に初期化する。変数iは全体で何番目のスキャンを処理しているかを表す。
ステップS1503で、第iの部分画像データを誤差拡散し、全パス印字データに変換する。変換後の印字データは例えば図8で示した全パス印字データ801に対応する。全パス印字データへの変換は図10に示したフローチャートの処理に従う。この処理において、制約は特に指定されず、印字デューティは100%に設定される。
ステップS1504で、変数jを1に初期化する。変数jは1回のスキャンにおいて何回目の部分画像データの二値化処理であるかを表す。
ステップS1505で、第i+1−jの部分画像データをjパス目印字データに変換する。例えば、i=3、j=1であったとする。この場合、3回目のスキャンにおいて、1回目の部分画像データの二値変換を行うことになる。ここでは、第3の部分画像データを1パス目印字データに変換する。jパス目印字データへの変換は図10に示したフローチャートの処理に従う。この処理において、制約バッファ920に記憶された制約データを用いて、印字デューティは25%を用いる。二値変換データを印字バッファ940に記憶する。
ステップS1506で、jとnとが一致するか否かを判定する。ここで、nはパス数である。4パス印字の場合にはn=4となる。
ステップS1506においてj≠nの場合(ステップS1506において「NO」)には、ステップS1507においてjの値を1だけ増分して、ステップS1505に戻る。ステップS1507において、例えばi=3、j=2となり、第2の部分画像データを2パス目印字データに変換する。二値変換データを印字バッファ940に記憶する。
ステップS1506においてj=nの場合(ステップS1506において「YES」)には、ステップS1508において、第i+1−nの部分画像データをnパス目印字データに変換する。この二値変換は先に説明したとおり、誤差分散は用いずに、制約バッファ920に記憶されている制約データから算出される。
ステップS1509で、プリンタエンジン部109は印字バッファ940に記録された印字データに基づいてヘッド110をスキャンして印刷メディアに印字を行う。4パス印字の場合には、四つの部分画像データの印字が同時に行われる。
ステップS1510で、入力画像データの印字が完了したか否かを判定する。
印字が完了していない場合(ステップS1510において「NO」)には、ステップS1511で紙送り機構111が所定の長さだけ印刷メディアを紙送りし、ステップS1512でiの値を1だけ増分して、ステップS1503に戻る。
印字が完了した場合(ステップS1510において「YES」)には、処理を終了する。
以上により、本実施形態では、各パスの印字データ間のドットの独立性・分散性を確保しつつ、マルチパス印字を行うことが可能となる。
なお、本実施形態において、各パスの誤差拡散における印字デューティをすべて25%に設定したが、他の設定を用いても各パスにおいて吐出されるドット数を均等にすることは可能である。図16を用いて他の設定を説明する。図16は各パスにおいて与えられる制約と印字データとの遷移の一例を説明する図である。
図8を用いた説明と同様にして、部分画像データ1600を全パス印字データ1601に変換し、1パス目制約データ1610を作成する。
次に、1パス目制約データ1610を制約として、印字デューティを75%に設定して二値化処理を行う。その結果、部分画像データ1600は1パス目印字データ1611に変換される。その後、全パス印字データ1601における画素値が255であるが1パス目印字データ1611における画素値が0となる画素を1パス目で印字する。これにより、1パス目において、全パス印字データのうち25%のドットを印字できる。また、1パス目で印字した画素の制約値を0とする制約を1パス目制約データ1610に追加して、2パス目制約データ1620を作成する。
次に、2パス目制約データ1620を制約として、印字デューティを50%に設定して二値化処理を行う。その結果、部分画像データ1600は2パス目印字データ1621に変換される。そして、1パス目印字データ1611における画素値が255であるが、2パス目印字データ1621における画素値が0となる画素を2パス目で印字する。これにより、2パス目において、全パス印字データのうち25%のドットを印字できる。また、2パス目で印字した画素の制約値を0とする制約を2パス目制約データ1620に追加して、3パス目制約データ1630を作成する。
同様に、印字デューティを25%に設定して3パス目印字データ1631を作成し、2パス目印字データ1621と3パス目印字データ1631との差分を印字する。
最後に4パス目において、4パス目制約データ1640で設定値が設定されていない画素を印字する。
以上により、全パス印字データ1601を、ドット数が均等となる4パスに分割して印字することが可能となる。
<第2の実施形態>
第1の実施形態では、誤差拡散を行うための制約データを制約バッファ920に記憶した。しかし、制約バッファ920はヘッド110のノズル数×プリンタ100の印字幅の領域を必要とするため、ノズル数や印字幅が増加すると、RAM103を圧迫することになる。そこで、本実施形態では、制約バッファ920を用いずに誤差拡散法を用いてマルチパス印字を行う方法を説明する。
本実施形態においても各パスの誤差拡散に用いられる制約データや印字される印字データは図8に示す例の通りである。しかし、制約データを制約バッファ920に記憶させないようにするため、1回のスキャンで印字するパスについて必要なすべての誤差拡散を毎回行う。
例えば、あるスキャンにおいて、部分画像データ800の2パス目印字データ821を印字する場合を考える。本実施形態では、制約バッファ920に記憶された2パス目制約データ820から制約値を取得することができない。2パス目制約データ820において制約値が0となる画素は、全パス印字データ801において画素値が0となり、1パス目印字データ811において画素値が255となる画素である。そこで、2パス目印字データ821に変換する誤差拡散を行う際に、全パス印字データ801を算出する誤差拡散及び1パス目印字データ811を算出する誤差拡散も同時に行い、2パス目印字データ821を算出する誤差拡散にそれらの出力を使用する。
本実施形態における二値化処理部106について図17を用いて説明する。図17は制約バッファを用いない二値化処理部106の構成の一例を説明するブロック図である。図9に示す二値化処理部900と同じ動作をする要素は同じ参照番号を付して説明を省略する。
図1に示す二値化処理部106は複数の二値化処理部で構成される。一つの二値化処理部が一つの誤差拡散を行う。例えば、図17に示す第1の二値化処理部1700が部分画像データ800を全パス印字データ801に変換する誤差拡散を行う。また、第2の二値化処理部1710が部分画像データ800を1パス目印字データ811に変換する誤差拡散を行う。いずれの誤差拡散においても入力画像データは共通のため、入力画像データの画素値910はすべての二値化処理部に入力される。各二値化処理部は第1の実施形態で説明したのと同様の動作を行う。しかし、第2の二値化処理部1710において、制約データは制約バッファから取得するのではなく、第1の二値化処理部1700の出力値1701を使用する。第2の二値化処理部1710からの出力値1711が1パス目印字データ811の画素値となる。
同様に、2パス目印字データ821を出力する場合には、三つの二値化処理部が必要となる。他のパスの印字データにおいても、必要な誤差拡散の回数分の二値化処理部が必要となる。
つづいて、図18を用いて本実施形態における二値化処理部106の動作について説明する。図18は二値化処理部106の動作の一例を説明するフローチャートである。このフローチャートに基づく処理は、ROM102に書き込まれたコンピュータプログラムをCPU101が処理することによって行われる。また、処理の一部をハードウェア的に行っても良い。
ステップS1801で、部分画像データの画素値910を読み出し、すべての二値化処理部に含まれる乗算器901に入力する。続いて、第1の二値化処理部1700に対してステップS1802からステップS1808までの処理を実行し、第1の誤差拡散を行う。
ステップS1802で、乗算器901は、印字デューティ設定部が設定した印字デューティを、部分画像データの画素値910に乗算し、加算器903に出力する。印字デューティ設定部は、入力画像データを全パス印字データに変換する場合には印字デューティを100%とし、入力画像データを各パスの部分印字データに変換する場合には印字デューティを25%に設定する。
ステップS1803で、加算器903は、乗算器901からの入力に、誤差バッファ930から読み出した注目画素の累積誤差を加算し、二値データ出力部906に出力する。
ステップS1804で、他の二値化処理部に含まれる二値データ出力部906からの出力値に基づいて、注目画素に対して制約値が指定されているか否かを判定する。第1の二値化処理部1700は他の二値化処理部に含まれる二値データ出力部906からの出力を受けない。これは、全パス印字データを算出する誤差拡散では制約が指定されないことに対応する。
制約が指定されている場合(ステップS1804において「YES」)にはステップS1806に移行して、二値データ出力部906は制約にしたがって0を出力する。
制約が指定されていない場合(ステップS1804において「NO」)にはステップS1805に移行する。
ステップS1805で、二値データ出力部906は加算器903からの入力値と閾値設定部904が設定した閾値とを比較する。閾値設定部904は印字デューティに応じて閾値を設定する。例えば、印字デューティが100%の場合には閾値を128とし、印字デューティが25%の場合には閾値を32とする。
加算器903からの入力の方が小さい場合(ステップS1805において「YES」)には、ステップS1806に移行する。ステップS1806で、二値データ出力部906は0を出力する。
加算器903からの入力の方が小さくない場合(ステップS1805において「NO」)には、ステップS1807に移行する。ステップS1807で、二値データ出力部906は255を出力する。出力値は他の二値化処理部に入力されるか、印字バッファ940に入力される。
ステップS1808で、減算器907は注目画素で生じた誤差を算出し、誤差処理部908に入力する。誤差処理部908は入力された誤差を元に、式(4)から(12)にしたがって注目画素の周辺の画素における累積誤差を更新する。
ステップS1809で、すべての誤差拡散が終了したか否かを判定する。例えば、全パス印字データを算出する場合には、1回の誤差拡散を行うだけでよいし、2パス目印字データを算出する場合には、3回の誤差拡散を行う必要がある。
すべての誤差拡散が終了した場合(ステップS1809において「YES」)には、ステップS1810に移行する。終了していない誤差拡散がある場合(ステップS1809において「NO」)には、次の誤差拡散を行うため、次の二値化処理部においてステップS1802からの処理を繰り返す。
ステップS1810で、二値化処理部106は部分画像データのすべての画素について二値化処理が終了したか否かを判定する。終了していない場合(ステップS1810において「NO」)には、ステップS1801に戻り、次の画素を処理する。終了した場合(ステップS1810において「YES」)には、部分画像データの二値化処理を終了する。
入力画像データのマルチパス印字については第1の実施形態において説明した図15のフローチャートと同様であるため、説明を省略する。
以上により、本実施形態では、RAM103に記憶されるデータ量を抑制しながらも、各パスの印字データ間のドットの独立性・分散性を確保しつつ、マルチパス印字を行うことが可能となる。本実施形態においても誤差バッファ930は必要となる。しかし、図13を用いて説明したとおり、誤差バッファ930は制約バッファ920と比較してサイズが小さいので影響は少ない。
なお、第1の実施形態と同様に、本実施形態においても各パスにおける印字デューティをすべて25%に設定する以外の設定を用いても、各パスにおいて吐出されるドット数を均等にすることは可能である。
<第3の実施形態>
本実施形態では、二値化処理部の別の形態を説明する。図9に示す二値化処理部900において、入力画像データに対して印字デューティを乗算する。印字デューティは1以下の数値であるため、回路で実現した場合に丸め誤差が生じてしまう。この丸め誤差を防ぐため、図19に示す二値化処理部1900では乗算器901の代わりに除算器1901を用いる。図19は二値化処理部1900の構成の一例を説明するブロック図である。
図19において、図9に示す二値化処理部900と同じ機能を有する要素は同じ参照番号を付して説明を省略する。除算器1901は二値データ出力部906からの出力を印字デューティで除算して、減算器907に入力する。印字デューティは1以下のため、除算器1901は、印字デューティの逆数を掛けることになる。これは、除算器1901への入力値を左にビットをシフトすることに等しい。例えば、印字デューティが25%の場合、2ビット分をシフトすることになる。この結果、入力画像データに対して印字デューティ設定部902に設定された小数点の乗算を行う二値化処理部900と比較して、丸め誤差の影響を少なくすることが出来る。
二値化処理部1900によっても設定した印字デューティに応じた印字データに変換することは可能である。二値データ出力部906からの出力が0の場合には、印字デューティの値にかかわらず、誤差Eの値は変わらない。しかし、出力が255の場合には、印字デューティの値が小さいほど、誤差Eの値は大きくなる。出力が255の場合には誤差Eは負の値になるため、印字デューティの値が小さいほど、周辺の画素における累積誤差を反映した画素値は小さくなる。そのため、印字データ全体として、印字デューティの値が小さいほど、画素値が255となる画素数が少なくなる。
<その他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
本発明の実施形態におけるプリンタ100のハードウェア構成の一例を表すブロック図である。 本発明の実施形態における入力画像データの一例を説明する図である。 本発明の実施形態における入力画像データ200を誤差拡散法によって二値化した結果の印字データ300の一例である。 本発明の実施形態における発生した誤差の拡散規則の一例を説明するための図である。 本発明の実施形態における制約データ500とそれに基づく印字データ510との一例を説明する図である。 本発明の第1及び第2の実施形態における印字デューティが設定された場合の印字データの一例を説明する図である。 本発明の実施形態におけるマルチパス印字を行った場合の画像形成の遷移の一例を説明する図である。 本発明の実施形態における各パスにおいて与えられる制約と印字データとの遷移の一例を説明する図である。 本発明の第1の実施形態における二値化処理部900の構成を表すブロック図の一例である。 本発明の第1の実施形態における二値化処理部900の動作の一例を説明するフローチャートである。 本発明の第1の実施形態における制約バッファ920の構造の一例を説明する図である。 本発明の第1の実施形態における入力画像データを二値変換する際の制約バッファ920の遷移の一例を説明する図である。 本発明の実施形態における誤差バッファ930の構造の一例を説明する図である。 本発明の実施形態における入力画像データを二値変換する際における誤差バッファ930の遷移の一例を説明する図である。 本発明の実施形態における入力画像データをマルチパス印字するフローチャートの一例である。 本発明の第2の実施形態における各パスにおいて与えられる制約と印字データとの遷移の一例を説明する図である。 本発明の第2の実施形態における二値化処理部106の構成の一例を説明するブロック図である。 本発明の第2の実施形態における二値化処理部106の動作の一例を説明するフローチャートである。 本発明の第3の実施形態における二値化処理部1900の構成の一例を説明するブロック図である。
符号の説明
100 プリンタ
101 CPU
102 ROM
103 RAM
104 USBデバイスインターフェース
105 USBホストインターフェース
106 二値化処理部
107 印字処理部
108 メカ制御部
109 プリンタエンジン部
110 ヘッド
111 紙送り機構
120 パソコン
130 デジタルカメラ
131 接続ケーブル

Claims (10)

  1. 画像データを印字画素と非印字画素とを含む印字データに変換し、複数のパスに分割して印字する画像形成装置であって、
    誤差拡散法により前記画像データを変換して第1の印字データと複数の第2の印字データとを生成する変換手段と、
    前記複数の第2の印字データを印字する印字手段と
    を備え、
    前記変換手段は、
    前記誤差拡散法によって前記画像データを前記第1の印字データに変換する第1の変換を行い、
    前記第1の印字データにおける非印字画素を、前記第2の印字データにおける非印字画素として指定する制約データを生成し、
    前記制約データを利用した前記誤差拡散法によって前記画像データを前記複数のパスのいずれかにおいてそれぞれ使用される前記複数の第2の印字データに変換する第2の変換を行い、
    前記印字手段は、前記複数のパスのそれぞれにおいて、前記複数の第2の印字データのうち対応する第2の印字データを印字することにより、前記画像データの表す画像を形成する
    ことを特徴とする画像形成装置。
  2. 前記変換手段は、前記複数の第2の印字データのうち、
    前記複数のパスのうち最も先行して行われるパスに使用される前記第2の印字データを、前記制約データを利用した誤差拡散法により前記画像データを変換して生成し、
    該最も先行して行われるパスの後続パスに使用される前記第2の印字データを、前記後続パスに先行するすべてのパスにおける印字画素を非印字画素として更に指定した前記制約データを利用した誤差拡散法により前記画像データを変換して生成する
    ことを特徴とする請求項1に記載の画像形成装置。
  3. 前記変換手段は、前記複数の第2の印字データのうち最も後行して行われるパスに使用される前記第2の印字データにおける印字画素を、前記第1の印字データにおける印字画素のうち、該パスに先行するいずれのパスにおいても非印字画素となった画素とすることを特徴とする請求項2に記載の画像形成装置。
  4. 前記第2の変換は、前記画像データの画素値に所定の定数を乗算して得られる画像データを変換することを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。
  5. 前記第2の変換は、変換後の画素値を所定の定数で除算した値と変換前の画素値との差分を誤差拡散法における誤差として用いることを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。
  6. 前記所定の定数は、パスの回数の逆数であることを特徴する請求項4又は5に記載の画像形成装置。
  7. 前記制約データを記憶する記憶手段をさらに備え、
    前記第2の変換は、前記記憶手段に記憶された前記制約データを利用する
    ことを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
  8. 前記変換手段は、前記第2の変換を行うごとに、該第2の変換に利用される前記制約データを生成することを特徴とする請求項1乃至6のいずれか1項に記載の画像形成装置。
  9. 画像データを印字画素と非印字画素とを含む印字データに変換し、複数のパスに分割して印字する画像形成装置の制御方法であって、
    変換手段が、誤差拡散法により前記画像データを変換して第1の印字データと複数の第2の印字データとを生成する変換工程と、
    印字手段が、前記複数の第2の印字データを印字する印字工程と
    を備え、
    前記変換工程において、
    前記誤差拡散法によって前記画像データを前記第1の印字データに変換する第1の変換を行い、
    前記第1の印字データにおける非印字画素を、前記第2の印字データにおける非印字画素として指定する制約データを生成し、
    前記制約データを利用した前記誤差拡散法によって前記画像データを前記複数のパスのいずれかにおいてそれぞれ使用される前記複数の第2の印字データに変換する第2の変換を行い、
    前記印字工程において、前記複数のパスのそれぞれにおいて、前記複数の第2の印字データのうち対応する第2の印字データを印字することにより、前記画像データの表す画像を形成する
    ことを特徴とする画像形成装置の制御方法。
  10. コンピュータを請求項1乃至8のいずれか1項に記載の画像形成装置として機能させるためのコンピュータプログラム。
JP2008116292A 2008-04-25 2008-04-25 画像形成装置、その制御手段及びコンピュータプログラム Withdrawn JP2009262454A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008116292A JP2009262454A (ja) 2008-04-25 2008-04-25 画像形成装置、その制御手段及びコンピュータプログラム
US12/418,863 US20090268226A1 (en) 2008-04-25 2009-04-06 Image forming apparatus, control method thereof, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008116292A JP2009262454A (ja) 2008-04-25 2008-04-25 画像形成装置、その制御手段及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2009262454A true JP2009262454A (ja) 2009-11-12

Family

ID=41214686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008116292A Withdrawn JP2009262454A (ja) 2008-04-25 2008-04-25 画像形成装置、その制御手段及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US20090268226A1 (ja)
JP (1) JP2009262454A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5341632B2 (ja) * 2009-06-18 2013-11-13 キヤノン株式会社 画像処理装置および画像処理方法
JP5059057B2 (ja) * 2009-06-18 2012-10-24 キヤノン株式会社 画像処理装置および画像処理方法
JP5906613B2 (ja) * 2011-08-31 2016-04-20 ブラザー工業株式会社 端末装置のためのコンピュータプログラム及び端末装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0526186B1 (en) * 1991-08-02 1998-12-30 Canon Kabushiki Kaisha Ink jet recording method
WO2008075729A1 (ja) * 2006-12-19 2008-06-26 Canon Kabushiki Kaisha 画像処理装置および画像処理方法
US7651206B2 (en) * 2006-12-19 2010-01-26 Eastman Kodak Company Output image processing for small drop printing

Also Published As

Publication number Publication date
US20090268226A1 (en) 2009-10-29

Similar Documents

Publication Publication Date Title
JP5290614B2 (ja) 画像形成装置、印字データ生成方法及びコンピュータプログラム
US7764402B2 (en) Fast generation of dither matrix
US8194285B2 (en) Image processing apparatus and image processing method
JP2010017976A (ja) 画像形成装置及び画像形成方法
JP2006264301A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、ならびに前記プログラムを記録した記録媒体
EP2312499B1 (en) Image processing apparatus and image processing method
JP2009262454A (ja) 画像形成装置、その制御手段及びコンピュータプログラム
US9672450B2 (en) Image recording apparatus and control method therefor
JP2010513051A (ja) 画像処理装置、記録装置および画像処理方法
JP5843503B2 (ja) 画像記録システムおよび画像記録方法
US20120281243A1 (en) Data processing system and data processing method
US8259343B2 (en) Image processing device and image processing method
US9135536B2 (en) Image processing apparatus and image processing method generating binary data specifying dot arrangement in a unit area of a print medium
JP5773767B2 (ja) 画像処理装置、画像形成装置および画像処理方法
JP6601225B2 (ja) 制御装置、および、コンピュータプログラム
JP2019038176A (ja) 画像形成装置
JP4785351B2 (ja) インクジェット記録装置、インクジェット記録方法、データ生成装置およびプログラム
JP2010012635A (ja) 記録装置
JP5929128B2 (ja) 印刷装置
JP2010017975A (ja) 画像形成装置、その制御手段及びコンピュータプログラム
US8804198B2 (en) Printing data generating apparatus, printing data generating method, and printing data generating program
JP6896413B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2007129695A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体、表示装置
JP5341467B2 (ja) 画像処理装置、画像処理方法
JP2009285955A (ja) 画像形成装置、その制御手段及びコンピュータプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110705