(57)【要約】【課題】  高画質化を図りつつ、記憶容量を低減する印刷装置を提供する。【解決手段】  ｋドット間隔のＮ個のドット記録要素を有する記録ヘッドを備え、画像データから記録ヘッドの一の主走査に必要な分を取得し、画像データの階調値をドット形成有無データに変換し、変換の際の濃度の誤差情報を未処理画素に分配する演算を行ないつつ、各画素について順次処理を行なう。得られたドット形成有無データのうち、少なくともドット記録要素の位置に当るＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタのデータを記憶し、記憶されたデータのうち、ドット記録要素の位置に当るデータを、記録ヘッドの主走査の動きに合わせて出力し、一の主走査、副走査を行なう。各処理を繰り返すことで、先行する主走査で演算されたが、記憶されなかったドット形成有無データについては、再度演算を伴う変換を行なって記憶し、記憶されたデータにより画像の印刷を行なう。【選択図】        図６
2006213005.tif 000002
【特許請求の範囲】
【請求項１】
記録ヘッドと所定用紙との相対的な移動によって画像の印刷を行なう印刷装置であって、
前記記録ヘッドは、ｋドット間隔（ｋは２以上の整数）に配置したＮ個（Ｎは２以上の整数）のドット記録要素を有しており、
前記印刷装置は、
多階調の画像データから、前記記録ヘッドの一の主走査に必要な分の該画像データを取得する取得処理部と、
前記取得した画像データの各画素の階調値をドットの形成有無を表すドット形成有無データに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行なうハーフトーン処理部と、
前記演算を伴う変換により得られたドット形成有無データのうち、少なくとも前記ドット記録要素の位置に該当するＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタについてのデータを記憶する記憶処理部と、
前記記憶されたデータのうち、前記ドット記録要素の位置に該当するＮ個のラスタのデータを、前記記録ヘッドの主走査の動きに合わせて、前記記録ヘッドに出力し、一の主走査を実行する主走査処理部と、
前記主走査方向に交差する副走査方向へ、前記所定用紙を送る副走査処理部とを備え、
前記各処理部における処理を繰り返し実行することで、先行する主走査において演算されたものの記憶されなかった前記ドット形成有無データについは、再度、前記演算を伴う変換を行ない、記憶し、該記憶されたデータに基づいて前記画像の印刷を行なう
印刷装置。
【請求項２】
請求項１に記載の印刷装置であって、更に、
前記ハーフトーン処理における前記誤差情報のうち、所定の位置のラスタに対応する当該誤差情報を記憶する誤差情報記憶処理部を備え、
前記ハーフトーン処理部は、前記繰り返しの処理における前記ドット記録要素の位置に該当するＮ個のラスタのデータへの変換の際に、前記誤差情報記憶処理部から、処理順序で処理対象の該ラスタの直近に位置する前記誤差情報を読み出し、当該誤差情報を用いてハーフトーン処理を実行する
印刷装置。
【請求項３】
請求項２に記載の印刷装置であって、
前記誤差情報記憶処理部は、所定ラスタおきに、前記誤差情報を記憶する印刷装置。
【請求項４】
請求項３に記載の印刷装置であって、
前記誤差情報記憶処理部は、ｋドット±１のラスタ間隔で、前記誤差情報を記憶する印刷装置。
【請求項５】
請求項２ないし４のいずれかに記載の印刷装置であって、更に、
前記ハーフトーン処理において階調変換の判断に用いる乱数を発生させる乱数発生処理部を備え、
前記誤差情報記憶処理部は、前記記憶する誤差情報の生成に用いた前記乱数を記憶し、
前記ハーフトーン処理部は、前記誤差情報記憶処理部から、前記直近の誤差情報と共に対応する前記乱数を読み出し、同一画素に対して同じ乱数を用いて処理を行なう
印刷装置。
【請求項６】
ｋドット間隔（ｋは２以上の整数）に配置したＮ個（Ｎは２以上の整数）のドット記録要素を有する記録ヘッドと、所定用紙との相対的な移動によって画像の印刷を行なう印刷方法であって、
多階調の画像データから、前記記録ヘッドの一の主走査に必要な分の該画像データを取得し、
前記取得した画像データの各画素の階調値をドットの形成有無を表すドット形成有無データに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行ない、
前記演算を伴う変換により得られたドット形成有無データのうち、少なくとも前記ドット記録要素の位置に該当するＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタについてのデータを記憶し、
前記記憶されたデータのうち、前記ドット記録要素の位置に該当するＮ個のラスタのデータを、前記記録ヘッドの主走査の動きに合わせて、前記記録ヘッドに出力し、一の主走査を実行し、
前記主走査方向に交差する副走査方向へ、前記所定用紙を送り、
前記各処理を繰り返し実行することで、先行する主走査において演算されたものの記憶されなかった前記ドット形成有無データについては、再度、前記演算を伴う変換を行ない、記憶し、該記憶されたデータに基づいて前記画像の印刷を行なう
印刷方法。
【請求項７】
ｋドット間隔（ｋは２以上の整数）に配置したＮ個（Ｎは２以上の整数）のドット記録要素を有する記録ヘッドと、所定用紙との相対的な移動によって画像の印刷を行なう印刷装置を制御するプログラムであって、
多階調の画像データから、前記記録ヘッドの一の主走査に必要な分の該画像データを取得する機能と、
前記取得した画像データの各画素の階調値をドットの形成有無を表すドット形成有無データに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行なう機能と、
前記演算を伴う変換により得られたドット形成有無データのうち、少なくとも前記ドット記録要素の位置に該当するＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタについてのデータを記憶する機能と、
前記記憶されたデータのうち、前記ドット記録要素の位置に該当するＮ個のラスタのデータを、前記記録ヘッドの主走査の動きに合わせて、前記記録ヘッドに出力し、一の主走査を実行する機能と、
前記主走査方向に交差する副走査方向へ、前記所定用紙を送る機能と
を繰り返し前記印刷装置に実行させることで、先行する主走査において演算されたものの記憶されなかった前記ドット形成有無データについて、再度、前記演算を伴う変換を行ない、記憶し、該記憶されたデータに基づく前記画像の印刷を実行させるプログラム。
【請求項８】
請求項７に記載のプログラムをコンピュータに読み取り可能に記録した記録媒体。
【請求項９】
複数の画素を一方向に並べたラスタを単位とし、複数の該ラスタの集合として画像を形成する画像形成装置であって、
前記複数のラスタのうち、ｋラスタ間隔（ｋは２以上の整数）に配置されたＮ本（Ｎは２以上の整数）のラスタを単位として画像を形成する一部ラスタ画像形成部と、
多階調の画像データから、前記Ｎ本のラスタの画像の形成に必要な分の該画像データを取得する取得処理部と、
前記取得した画像データの各画素の階調値を低い階調値のデータに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行なう階調変換処理部と、
前記演算を伴う変換結果のうち、少なくとも前記Ｎ本のラスタを含み、最大で（Ｎ−１）×ｋ本のラスタについての前記変換済みのデータを記憶する記憶処理部と、
前記記憶された変換済みのデータのうち、前記Ｎ本のラスタに該当するデータを前記一部ラスタ画像形成部に出力する出力処理部と
を備え、前記各処理部における処理を繰り返し、前記先行するＮ本のラスタにおける画像の形成において演算されたものの前記変換済みのデータが記憶されなかったラスタについては、再度、前記演算を伴う変換を行ない、前記複数のラスタの集合としての画像を形成する画像形成装置。
【請求項１０】
複数の画素を一方向に並べたラスタを単位とし、複数の該ラスタの集合として画像を形成する画像形成方法であって、
前記複数のラスタのうち、ｋラスタ間隔（ｋは２以上の整数）に配置されたＮ本（Ｎは２以上の整数）のラスタを単位として画像を形成し、
多階調の画像データから、前記Ｎ本のラスタの画像の形成に必要な分の該画像データを取得し、
前記取得した画像データの各画素の階調値を低い階調値のデータに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行ない、
前記演算を伴う変換結果のうち、少なくとも前記Ｎ本のラスタを含み、最大で（Ｎ−１）×ｋ本のラスタについての前記変換済みのデータを記憶し、
前記記憶された変換済みのデータのうち、前記Ｎ本のラスタに該当するデータを前記一部ラスタ画像形成部に出力し、
前記各処理を繰り返し実行することで、前記先行するＮ本のラスタにおける画像の形成において演算されたものの前記変換済みのデータが記憶されなかったラスタについては、再度、前記演算を伴う変換を行ない、前記複数のラスタの集合としての画像を形成する画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を印刷する際に実行する画像データの変換処理に関し、詳しくはハーフトーン処理の技術に関する。
【背景技術】
【０００２】
従来から、画像の階調値に応じて適切な密度でドットを形成するハーフトーン処理として、種々の技術が知られている。例えば、一の画素の階調値を表現するのに複数のドットを使用し、その各ドットの有無のパターンによって多階調を表現する手法（これをドットパターン法と呼ぶ）や、一の画素に対するドットの有無を判断することで生じる原画像との階調値の誤差を、周辺の未処理画素に拡散し、画像全体として誤差を解消する手法（これを誤差拡散法と呼ぶ）などがある。特に誤差拡散法は、画像全体として誤差を解消するため、原画像の再現性に優れ、高画質化が図れるとして、広く画像処理装置としての印刷装置に用いられている。なお、下記特許文献１にはドットパターン法の技術が、下記特許文献２には誤差拡散法の技術が、それぞれ開示されている。
【０００３】
【特許文献１】特開２００２−２４０３７０号公報
【特許文献２】特開平１−１３０９４５号公報
【０００４】
こうしたハーフトーン処理によって生成されたドット形成の有無のデータは、印刷装置の記録ヘッドの記録要素（例えば、ノズル）の配列順に再配置される。つまり、実際の画像形成では、隣接するラスタを異なるノズルからのインクの吐出で行なうインタレース処理を用いるため、原画像の主走査方向へ順次処理して生成したドット形成の有無のデータの並べ替えが必要となる。かかるインタレース処理では、記録ヘッドの一の走査による記録に必要なデータ以外のデータを、その記録の順番が回ってくるまで記憶し続けるため、大容量の記憶領域が必要となる。
【０００５】
近年の印刷の高画質化の要求に伴い、印刷対象の原画像と共に、印刷装置の記録解像度も高解像度化し、高画質の印刷に対応するため、比較的演算量の多い誤差拡散法などのハーフトーン処理が多用されている。したがって、インタレース処理において、より一層大容量の記憶領域が必要となっていた。
【０００６】
なお、こうした問題は、誤差拡散法のみならず、平均誤差最小法と呼ばれるハーフトーン処理を行なう場合にも同様であった。平均誤差最小法は、周辺の処理済みの画素で生じた誤差の重み付き平均値で、次の処理対象画素の階調値を修正するものである。つまり、上述の誤差拡散法と、平均誤差最小法は、誤差の拡散作業をいつ行うかが異なるだけであり、論理的には等価なものである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、こうした問題を踏まえて、高画質化を図りつつ、記憶容量を低減する印刷装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の印刷装置は、上記課題を鑑み、以下の手法を採った。すなわち、記録ヘッドと所定用紙との相対的な移動によって画像の印刷を行なう印刷装置であって、前記記録ヘッドは、ｋドット間隔（ｋは２以上の整数）に配置したＮ個（Ｎは２以上の整数）のドット記録要素を有しており、前記印刷装置は、多階調の画像データから、前記記録ヘッドの一の主走査に必要な分の該画像データを取得する取得処理部と、前記取得した画像データの各画素の階調値をドットの形成有無を表すドット形成有無データに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行なうハーフトーン処理部と、前記演算を伴う変換により得られたドット形成有無データのうち、少なくとも前記ドット記録要素の位置に該当するＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタについてのデータを記憶する記憶処理部と、前記記憶されたデータのうち、前記ドット記録要素の位置に該当するＮ個のラスタのデータを、前記記録ヘッドの主走査の動きに合わせて、前記記録ヘッドに出力し、一の主走査を実行する主走査処理部と、前記主走査方向に交差する副走査方向へ、前記所定用紙を送る副走査処理部とを備え、前記各処理部における処理を繰り返し実行することで、先行する主走査において、演算されたものの、記憶されなかった前記ドット形成有無データについは、再度前記演算を伴う変換を行ない、記憶し、該記憶されたデータに基づいて前記画像の印刷を行なうことを要旨としている。
【０００９】
また、この印刷装置に対応する印刷方法は、ｋドット間隔（ｋは２以上の整数）に配置したＮ個（Ｎは２以上の整数）のドット記録要素を有する記録ヘッドと、所定用紙との相対的な移動によって画像の印刷を行なう印刷方法であって、多階調の画像データから、前記記録ヘッドの一の主走査に必要な分の該画像データを取得し、前記取得した画像データの各画素の階調値をドットの形成有無を表すドット形成有無データに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行ない、前記演算を伴う変換により得られたドット形成有無データのうち、少なくとも前記ドット記録要素の位置に該当するＮ個のラスタを含み、最大で（Ｎ−１）×ｋ個のラスタについてのデータを記憶し、前記記憶されたデータのうち、前記ドット記録要素の位置に該当するＮ個のラスタのデータを、前記記録ヘッドの主走査の動きに合わせて、前記記録ヘッドに出力し、一の主走査を実行し、前記主走査方向に交差する副走査方向へ、前記所定用紙を送り、前記各処理を繰り返し実行することで、先行する主走査において、演算されたものの、記憶されなかった前記ドット形成有無データについては、再度前記演算を伴う変換を行ない、記憶し、該記憶されたデータに基づいて前記画像の印刷を行なうことを要旨としている。
【００１０】
本発明の印刷装置および印刷方法によれば、画像データの階調変換において演算したドット形成有無データのうち、少なくともドット記録要素の位置に該当するドット形成有無データを記憶し、一の主走査を行なう処理を繰り返す。つまり、ある段階の主走査で必要となったときに、再度、ドット記録要素の位置に該当するドット形成有無データを演算し、記憶する処理を行なう。したがって、演算した（Ｎ−１）×ｋ＋１個の全ラスタについて、ドット形成有無データを記憶しておく必要がなく、記憶領域を低減することができる。
【００１１】
上記の構成を有する印刷装置は、更に、前記ハーフトーン処理における前記誤差情報のうち、所定の位置のラスタに対応する当該誤差情報を記憶する誤差情報記憶処理部を備え、前記ハーフトーン処理部は、前記繰り返しの処理における前記ドット記録要素の位置に該当するＮ個のラスタのデータへの変換の際に、前記誤差情報記憶処理部から、処理順序で処理対象の該ラスタの直近に位置する前記誤差情報を読み出し、当該誤差情報を用いてハーフトーン処理を実行するものとしても良い。
【００１２】
かかる印刷装置によれば、ハーフトーン処理において所定の誤差情報を記憶し、この誤差情報を生成したラスタ以降のラスタの処理の際に、これを利用する。つまり、一の主走査のために取得した画像データの最初からではなく、途中から、ハーフトーン処理を実行することができる。したがって、上述の記憶領域の低減に加えて、処理速度を向上することができる。
【００１３】
上記の構成を有する印刷装置の誤差情報記憶処理部は、所定ラスタおきに、前記誤差情報を記憶するものとしても良い。
【００１４】
かかる印刷装置によれば、ハーフトーン処理において生成される誤差情報を、所定のラスタ間隔で記憶して行く。すなわち、記憶する誤差情報は、処理済みの全ラスタ分ではなく、その一部分となる。したがって、記憶する誤差情報の量を低減し、誤差情報の記憶領域を低減することができ、印刷装置全体の記憶領域を抑えることができる。
【００１５】
上記の構成を有する印刷装置の誤差情報記憶処理部は、ｋドット±１のラスタ間隔で、前記誤差情報を記憶するものとしても良い。
【００１６】
かかる印刷装置によれば、ｋドット±１のラスタ間隔で誤差情報を記憶することで、ドット記録要素の位置に対して、誤差情報がバランス良く分散する。つまり、主走査毎に必要なデータを得るためのラスタの演算量が略均一となる。したがって、主走査毎の処理時間を略均一にすることができる。
【００１７】
上記の構成を有する印刷装置は、更に、前記ハーフトーン処理において階調変換の判断に用いる乱数を発生させる乱数発生処理部を備え、前記誤差情報記憶処理部は、前記記憶する誤差情報の生成に用いた前記乱数を記憶し、前記ハーフトーン処理部は、前記誤差情報記憶処理部から、前記直近の誤差情報と共に対応する前記乱数を読み出し、同一画素に対して同じ乱数を用いて処理を行なうものとしても良い。
【００１８】
かかる印刷装置によれば、同一画素における繰り返しの処理において、同じ乱数を使用できる。したがって、どの段階からハーフトーン処理を実行しても、同じ演算結果を得ることができる。特に、ハーフトーン処理でドット形成有無の判断時に用いる閾値に乱数を用いる場合に有効となる。
【００１９】
本発明は、コンピュータプログラムおよびコンピュータプログラムを記録した媒体としても実装することができる。記録媒体としては、フレキシブルディスク，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ／ＲＡＭ，光磁気ディスク，メモリカード，ハードディスクなどコンピュータが読み取り可能な種々の媒体を利用することができる。
【００２０】
また、本発明の画像形成装置は、複数の画素を一方向に並べたラスタを単位とし、複数の該ラスタの集合として画像を形成する画像形成装置であって、前記複数のラスタのうち、ｋラスタ間隔（ｋは２以上の整数）に配置されたＮ本（Ｎは２以上の整数）のラスタを単位として画像を形成する一部ラスタ画像形成部と、多階調の画像データから、前記Ｎ本のラスタの画像の形成に必要な分の該画像データを取得する取得処理部と、前記取得した画像データの各画素の階調値を低い階調値のデータに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行なう階調変換処理部と、前記演算を伴う変換結果のうち、少なくとも前記Ｎ本のラスタを含み、最大で（Ｎ−１）×ｋ本のラスタについての前記変換済みのデータを記憶する記憶処理部と、前記記憶された変換済みのデータのうち、前記Ｎ本のラスタに該当するデータを前記一部ラスタ画像形成部に出力する出力処理部とを備え、前記各処理部における処理を繰り返し、前記先行するＮ本のラスタにおける画像の形成において演算されたものの前記変換済みのデータが記憶されなかったラスタについては、再度、前記演算を伴う変換を行ない、前記複数のラスタの集合としての画像を形成することを要旨としている。
【００２１】
さらに、この画像形成装置に対応する画像形成方法は、複数の画素を一方向に並べたラスタを単位とし、複数の該ラスタの集合として画像を形成する画像形成方法であって、前記複数のラスタのうち、ｋラスタ間隔（ｋは２以上の整数）に配置されたＮ本（Ｎは２以上の整数）のラスタを単位として画像を形成し、多階調の画像データから、前記Ｎ本のラスタの画像の形成に必要な分の該画像データを取得し、前記取得した画像データの各画素の階調値を低い階調値のデータに変換し、該階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、該変換処理を該各画素について順次行ない、前記演算を伴う変換結果のうち、少なくとも前記Ｎ本のラスタを含み、最大で（Ｎ−１）×ｋ本のラスタについての前記変換済みのデータを記憶し、前記記憶された変換済みのデータのうち、前記Ｎ本のラスタに該当するデータを前記一部ラスタ画像形成部に出力し、前記各処理を繰り返し実行することで、前記先行するＮ本のラスタにおける画像の形成において演算されたものの前記変換済みのデータが記憶されなかったラスタについては、再度、前記演算を伴う変換を行ない、前記複数のラスタの集合としての画像を形成することを要旨としている。
【００２２】
本発明の画像形成装置および画像形成方法によれば、最大でも（Ｎ−１）×ｋ本のラスタについての階調変換済みのデータを記憶し、演算した全てのデータを記憶する必要はない。つまり、画像の形成にＮ本のラスタが必要となったときに、再度、演算して階調変換済みのデータを記憶する。したがって、変換済みのデータを記憶する記憶領域を低減することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について、実施例に基づき以下の順序で説明する。
Ａ．プリンタの構成：
Ａ−1．制御回路の機能モジュールの構成：
Ｂ．変換処理：
Ｂ−１．具体例：
Ｃ．変形例：
【００２４】
Ａ．プリンタの構成：
図１は、本発明の印刷装置としてのプリンタの内部の概略構成を示したブロック図である。本実施例のプリンタ１０は、デジタルスチルカメラ等により撮影した画像を記憶したメモリカードＭＣを装着するカードスロット２３を備えており、メモリカードＭＣ内から読み出したＲＧＢ画像データを、各色ドットの形成有無により形成された印刷データに変換する。すなわち、いわゆるプリンタドライバを内蔵したプリンタである。こうしたプリンタとして、本実施例では、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）の４色のドットにより、カラー画像の印刷が可能なインクジェット方式のプリンタを使用している。勿論、他のインクジェット方式のプリンタ（例えばバブルジェット（登録商標）），熱転写方式のプリンタ、昇華型プリンタ、レーザプリンタ、あるいは複合機など種々の方式のプリンタを用いるものとしても良い。
【００２５】
図示するように、プリンタ１０は、用紙Ｐにインクを吐出する印字ヘッドユニット２５を搭載したキャリッジ３０、キャリッジ３０を主走査方向に駆動するキャリッジモータ３２、用紙Ｐを搬送する紙送りモータ３３、印字ヘッドユニット２５，キャリッジモータ３２や紙送りモータ３３の動作を制御するＣＰＵ７０，ＲＯＭ７１，ＲＡＭ７２等を備えた制御回路４０、制御回路４０と電気的に接続するインターフェイス５０などから構成されている。
【００２６】
印字ヘッドユニット２５は、Ｋ，Ｃ，Ｍ，Ｙの各色に対応して、インク吐出用ヘッド４４，４５，４６，４７を備えている。キャリッジ３０の底部には、各インク吐出用ヘッドへインクを導く導入管（図示せず）が形成されており、キャリッジ３０に装着したインク用カートリッジ内のインクがインク吐出用ヘッドに、それぞれ導かれている。各カートリッジからインク吐出用ヘッドに導かれたインクは、図示しないピエゾ素子の電圧を調整することで用紙Ｐへ吐出される。なお、プリンタ１０で使用する４色のインクは、Ｋインク用の黒インク用カートリッジ２９ａと、Ｃ，Ｍ，Ｙ用のカラーインク用カートリッジ２９ｂと分けて収納されている。
【００２７】
図２は、インク吐出用ヘッド４４ないし４７におけるノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、各色毎のインクを吐出する４組のノズルアレイが形成されている。１組のノズルアレイ当たり４８個のノズルＮｚが一定のドットピッチｋで千鳥状に配置されている。図中の主走査方向とは、キャリッジ３０の移動方向、つまり、用紙Ｐの幅方向を表わし、副走査方向とは、用紙Ｐの送り方向を表わしている。こうしたノズルアレイを有するキャリッジ３０が主走査方向にドットを吐出しながら移動すると、一の主走査で、最大、ｋドットピッチ間隔の４８行のドット列が形成されることとなる。以下、本明細書では、画像の各行をラスタと呼ぶ。すなわち、入力画像のラスタであれば、主走査方向の画素列を表わし、印刷画像のラスタであれば、主走査方向に形成されるドット列を表わす。また、後述するように、プリンタ１０は、入力した画像を印刷するために複数の処理を実行し、所定のデータ変換を行なう。したがって、一の行を構成するデータ列の内容は処理毎に異なっているが、特に区別することなくラスタと呼ぶこととする。
【００２８】
なお、本実施例のインク吐出用ヘッド４４ないし４７によって形成するインクドットの大きさは１種類であるが、インク滴の吐出前に印加する負の電圧波形の制御によりノズルにおけるインク液面、いわゆるメニスカスを制御して、吐出するインク滴の大きさを調整し、大ドット、中ドット、小ドットの３種類のインクドットを形成するものであっても良い。また、Ｃ，Ｍ，Ｙ，Ｋの４色に、ＬＣ（ライトシアン）、ＬＭ（ライトマゼンタ）、ＤＹ（ダークイエロ）の３色を加えた計７色に対応したインク吐出用ヘッドを備えるものであっても良い。
【００２９】
こうした印字ヘッドユニット２５を搭載したキャリッジ３０の主走査は、キャリッジモータ３２により実行されている。キャリッジモータ３２は、駆動ベルト３６を回転させることで、プラテン２８軸と並行な摺動軸３４に設置されたキャリッジ３０を往復運動させている。往復運動するキャリッジ３０の原点位置は、位置検出センサ３９により検出され、その検出値は制御回路４０に出力されている。制御回路４０は、この検出値等に基づいて、キャリッジモータ３２の制御を行なう。
【００３０】
用紙Ｐの送りは、紙送りモータ３３により実行されている。紙送りモータ３３は、プラテン２８を回転させることで、プリンタ１０に供給された用紙Ｐを搬送する。つまり、用紙Ｐは、プラテン２８の回転角度に応じて所定量だけ副走査方向へ送られる。制御回路４０は、種々の印刷条件に応じて、この紙送りの所定量、つまり副走査を、紙送りモータ３３の回転角度を制御することで行なっている。
【００３１】
印字ヘッドユニット２５，キャリッジモータ３２や紙送りモータ３３の動作を制御する制御回路４０は、プリンタドライバとしての機能を果たす。つまり、入力した画像データの有する多階調値を、ドットの形成の有無で表現される２値の階調値に変換する。本実施例では、こうした変換処理を実行するソフトウェアプログラムを制御回路４０内のＲＯＭ７１に記憶している。
【００３２】
制御回路４０のＣＰＵ７０は、所定のタイミングでＲＯＭ７１内から変換処理のプログラムを呼び出し、これをＲＡＭ７２上に展開して入力した画像データの処理を行なう。変換処理によってドット形成有無のデータを生成した制御回路４０は、各種アクチュエータを動作して印刷を実行する。具体的には、ドット形成有無のデータに基づく指令を印字ヘッドユニット２５に出力すると共に、キャリッジモータ３２を駆動してキャリッジ３０を主走査方向に移動させ、また紙送りモータ３３を駆動して用紙Ｐを副走査方向に移動させる。制御回路４０は、こうした主走査および副走査を繰り返しながら、適切なタイミングでインク滴を吐出させ、微小なドットを用紙Ｐ上に形成してカラー印刷を行なっている。
【００３３】
さらに、制御回路４０は、上述のＣＰＵ７０，ＲＯＭ７１，ＲＡＭ７２に加え、変換処理の結果であるドット形成有無のデータを記憶するメモリ６６を備えている。このメモリ６６にはＲＡＭを使用している。本実施例ではメモリ６６を、ＲＡＭ７２とは別個に設ける構成としているが、ＲＡＭ７２内の記憶領域を分けて使用することで、メモリ６６としてＲＡＭ７２を利用するものとしても良い。こうした各部品は、互いにバスで接続され、相互にデータのやり取りが行なわれる。なお、制御回路４０における機能モジュールの構成については、後述する。
【００３４】
こうして画像の印刷を行なうプリンタ１０では、インターフェイス５０を介して、印刷対象の画像の選択や、印刷条件の設定が行なわれる。プリンタ１０は、インターフェイス５０として、上述のカードスロット２３に加えて、操作パネル２１，液晶ディスプレイ２２，ＵＳＢポート２４等を備え、ユーザや外部機器とのデータのやり取りを行なっている。液晶ディスプレイ２２には、カードスロット２３に装着されたメモリカードＭＣ内の画像や、印刷条件などが表示される。ユーザは、操作パネル２１上に設けた複数の操作ボタンを利用して、印刷を所望する画像の選択、印刷条件の設定操作を行なう。こうした画像の選択、印刷条件の設定などの処理プログラムは、制御回路４０内のＲＯＭ７１に予め記憶されている。
【００３５】
ＵＳＢポート２４は、パーソナルコンピュータや外部記憶装置等と接続可能な端子であり、例えば、外部記憶装置としてのハードディスクが接続される。こうすることで、ハードディスクに記憶された画像を取り込むことができる。
【００３６】
なお、カードスロット２３は、ＳＤメモリカード（登録商標）、コンパクトフラッシュ（登録商標）、スマートメディア（登録商標）などに対応したスロットを備えており、複数種類の記憶媒体を取扱うことができる。プリンタ１０は、こうした種々の媒体等から印刷対象の画像を取り込み、プリンタ１０側で設定した印刷条件に従って、コンピュータを介すことなく印刷することができる。
【００３７】
Ａ−１．制御回路の機能モジュールの構成：
図３は、制御回路４０の機能モジュールの概略構成を示す説明図である。図示するように、制御回路４０は、印刷対象の画像を入力する入力モジュール６１、入力した画像のデータをプリンタ１０で使用する色のデータに変換する色変換モジュール６２、色変換されたデータをドットの形成有無のデータに変換するハーフトーンモジュール６３、ドットを形成する順序を考慮してドット形成有無のデータを出力するインタレースモジュール６４などの処理モジュールを備えている。
【００３８】
入力モジュール６１は、カードスロット２３や操作パネル２１等と電気的に接続し、印刷対象となるＲＧＢ画像データをメモリカードＭＣ内から入力する。入力モジュール６１は、操作パネル２１を介してユーザにより設定された印刷条件にしたがって、入力したＲＢＧ画像データを、プリンタ１０で印刷可能な解像度（これを記録解像度と呼ぶ）に変換する。具体的には、入力したＲＧＢ画像データの解像度が印刷条件として設定された記録解像度よりも低い場合には、線形補間を行うことで隣接画像データ間に新たなデータを生成し、入力したＲＧＢ画像データの解像度が記録解像度よりも高い場合には、一定の割合でデータを間引く処理を行なっている。
【００３９】
色変換モジュール６２は、記録解像度に変換されたＲＧＢ画像データを、プリンタ１０で使用するＣＭＹＫの色のデータに変換する。具体的には、周知の色変換テーブル（ＬＵＴ）と呼ばれる３次元のテーブルを参照して、Ｒ，Ｇ，Ｂの階調値の組み合わせの画像データを、Ｃ，Ｍ，Ｙ，Ｋ各色の階調値の組み合わせのデータ（ＣＭＹＫデータ）に変換している。こうして生成されたＣＭＹＫデータは、ＲＡＭ７２の所定領域に一時的に記憶される。
【００４０】
ハーフトーンモジュール６３は、０から２５５の２５６階調で表現されるＣＭＹＫデータを、２値の階調値であるドット形成有無のデータに変換する。このハーフトーンモジュール６３では、階調変換に周知の誤差拡散法を用いている。誤差拡散法とは、処理対象の画素にドットを形成するか否かを判断することで生じた階調値の誤差を周辺画素に分配して、画像全体で濃度（階調）誤差を低減させる手法である。
【００４１】
例えば、処理対象画素のＣデータの階調値が、所定の閾値よりも大きい場合、その画素の位置にドットを形成すること（ドットＯＮ）を判断する。形成されるドットの階調値とＣデータの階調値との差分が、ドットを形成することで生じる誤差である。この誤差は、処理対象の画素を基準に、未処理の画素へ所定の重み付けにしたがって分配される。つまり、ある画素を処理する際には、その画素の階調値に、既に処理された画素から分配された誤差を加算して、所定の閾値との比較によりドットのＯＮ／ＯＦＦを判断し、処理対象の画素で生じた誤差を、さらに未処理の画素に分配する。誤差拡散法では、左上端の画素から右下端の画素まで、順次、こうした処理を繰り返して画像全体で階調値の誤差を低減することができる。
【００４２】
なお、未処理画素に誤差を分配する際の所定の重み付けは、予め用意された誤差拡散マトリクスを用いて設定されている。誤差拡散マトリクスには、処理対象で発生した誤差を、どの割合（何分の１）で、どの位置の画素に分配するかが定義されている。こうした誤差拡散マトリクスには、例えば図４に示すように、種々のタイプのものがある。図４に示す斜線の矩形は処理対象の画素を示し、その他の矩形は誤差を拡散する周辺の画素を表わしている。例えば、図４（ａ）による重み付け係数を用いれば、処理対象画素で発生した誤差は、画像の行方向（主走査方向）で隣の画素Ｋ０１と、画像の列方向（副走査方向）の画素Ｋ１０と、画素Ｋ１０の行方向で両隣の画素Ｋ１−１，画素Ｋ１１とに、それぞれ１／４ずつの割合で、処理対象画素で発生した誤差が分配されることとなる。
【００４３】
こうした誤差拡散処理の過程で加算する誤差は、ＲＡＭ７２の所定領域に設けたラインバッファである誤差バッファの所定位置に一時的に記憶されている。誤差バッファ内の誤差情報は、一のラスタ上を左端の画素から右端の画素へ向かって処理する過程で順次更新されて行く。つまり、右端の画素まで処理した後の誤差バッファには、次ラスタの処理に必要な誤差情報が記憶されている。本実施例では、所定ラスタに対応する位置の誤差バッファ内（右端まで処理した後の状態）の値を、誤差情報としてメモリ６６に記憶している。記憶された所定ラスタの誤差情報は、そのラスタ以降のラスタを処理する際に利用される。
【００４４】
また、本実施例では、こうした誤差拡散処理をラスタ単位で順次実行し、一の主走査において必要となるノズルＮｚの位置に該当するラスタのドット形成有無のデータをメモリ６６に記憶している。換言すると、一の主走査においては必要でなく、ノズルＮｚの位置の間に該当するラスタのドット形成有無のデータは、この段階では記憶しない。勿論、ノズルＮｚの位置に該当するラスタのドット形成有無のデータを記憶するためには、そのラスタの上位のラスタの演算が必要であり、これを演算しているが、一の主走査に不要な演算結果は記憶せず、次の主走査以降で必要となった時に再度演算し直して、これを記憶している。こうしたハーフトーン処理を中心とした変換処理については後述する。
【００４５】
なお、ハーフトーンモジュール６３で用いる処理は、誤差拡散法に代えて、平均誤差最小法であっても良い。平均誤差最小法では、処理済みの周辺画素で発生した誤差を誤差バッファに格納しておき、次の画素を処理する際に、誤差バッファから抽出する複数の誤差に所定の重み付けを施して加算し、これと処理対象画素の階調値との和を所定の閾値と比較してドットの形成の有無を判断する。すなわち、誤差拡散法とほぼ等価な処理である。
【００４６】
インタレースモジュール６４は、ハーフトーン処理により生成され、メモリ６６に記憶されたドット形成有無のデータを入力し、これをドット形成の順序を考慮して再配置し、アクチュエータに出力する。図５は、インタレース処理を概念的に示す説明図である。理解を容易にするために、４個のノズルＮｚを、３ドットピッチ（ｋ＝３）で備えた印字ヘッド８０で動作を説明する。
【００４７】
図中の印字ヘッド８０内に示す実線の丸は、ノズルＮｚの番号を示し、印字ヘッド８０が５回の主走査、副走査を繰り返すことで、所定範囲にドットが形成される様子を示している。図中、二重丸は、１回目の主走査（副走査）で形成されるドットを示し、同様に、白抜きの四角は２回目を、白抜きのひし形は３回目を、実丸は４回目を、白抜き三角は５回目を、それぞれ示している。この副走査方向の送り量は４ドット（Ｌ＝４）であり、副走査を一定間隔で行なうことで、隙間無くドットを形成することができる。例えば、副走査回数１の状態で、ノズル３，４を用いてインクを吐出し、主走査方向のドット列としてのラスタを２本生成する。次に、副走査回数２の状態で、ノズル２〜４を用いて、３本のラスタを生成する。こうした処理を繰り返して、印刷対象画像を再現することができる。一般に、ノズルＮｚのドットピッチｋと、副走査の送り量Ｌとを素の関係に設定することで、ｋ回の主走査、副走査の繰り返しにより、ラスタ間に抜けが生じることなく画素毎にドットを形成することができる。なお、副走査回数１，２の状態で、ノズル１等を使用しないのは、この間は隙間無くドットを形成できない領域であるからであり、副走査回数１の状態でのノズル３以降が、隙間無くドットを形成できる有効範囲となる。
【００４８】
ここでドット形成有無のデータは、主走査方向へ左端から右端へ向かって一のラスタを処理したデータであり、処理の順にデータが並んでいる。例えば、副走査回数１の場合には、このドット形成有無のデータを、ノズル３，４の１ドット目のデータ、ノズル３，４の２ドット目のデータ・・と並べ替える必要がある。さらに、図２に示した千鳥状の実際のノズルＮｚ配置に対しては、キャリッジ３０の移動速度を考慮したタイミングでデータを出力する必要がある。インタレースモジュール６４は、こうしたドットの形成順序を考慮してデータを並べ替え、ＣＭＹＫの各色に対して処理を行なっている。
【００４９】
制御回路４０は、インタレースモジュール６４からの出力により、ドットを形成しながらキャリッジ３０を移動して、一の主走査を実行する。そして、副走査方向へ用紙Ｐを送り、再度、上記の処理を繰り返して、次の主走査を実行する。こうした主走査、副走査の繰り返しにより、印刷画像が生成される。
【００５０】
Ｂ．変換処理：
図６、図７は、本実施例のプリンタ１０において実行される変換処理のフローチャートである。この処理は、入力したＲＧＢ画像データからドット形成有無のデータを生成し、印刷を実行する処理であり、制御回路４０のＣＰＵ７０がＲＯＭ７１内の変換処理プログラムを起動することで実行される。
【００５１】
処理が開始されると、制御回路４０は、印刷対象である画像を記録解像度にしたがって解像度変換してＲＡＭ７２に一時的に記憶し、解像度変換されたＲＧＢ画像データ（ＲＧＢデータと呼ぶ）のうち、印字ヘッドユニット２５の一の主走査に必要なラスタ分のＲＧＢデータを取得する（ステップＳ６００）。具体的には、印字ヘッドユニット２５の幅分のＲＧＢデータを取得している。
【００５２】
続いて、メモリ６６内の不要データをクリア（いわゆる初期設定）する（ステップＳ６０５）。詳しくは後述するが、この処理で、不要な誤差情報、不要なドット形成有無のデータなどをクリアする。
【００５３】
こうして初期準備をした後、制御回路４０は、一のノズルＮｚ位置のドット形成有無のデータを生成するためのＲＧＢデータの取得処理を行なう（ステップＳ６１０）。具体的には、図７に示すサブルーチンに飛んで、後続の処理に必要なＲＧＢデータを取得する。図７は、図６に示す変換処理のサブルーチンであり、ＲＧＢデータ取得処理の流れを示すフローチャートである。このサブルーチンが開始されると、制御回路４０は、取得したラスタ分のうち、処理対象のノズルＮｚ位置に該当するラスタの上位（処理順序で上位を意味する）のラスタに、誤差情報が存在するか否かを判断する（ステップＳ７００）。具体的には、メモリ６６内部を確認し、最初のラスタから処理対象となるラスタ（ノズルＮｚ位置のラスタ）までに、誤差情報が記憶されているか否かを判断している。
【００５４】
ステップＳ７００で誤差情報がある（Ｙｅｓ）と判断した場合には、処理対象のラスタの直近上位の誤差情報を読み出し（ステップＳ７１０）、その誤差情報に対応するラスタの次のラスタから処理対象となるノズルＮｚ位置のラスタまでのＲＧＢデータを取得する（ステップＳ７２０）。
【００５５】
他方、ステップＳ７００で誤差情報がない（Ｎｏ）と判断した場合には、最初のラスタから処理対象となるノズルＮｚ位置のラスタまでのＲＧＢデータを取得する（ステップＳ７３０）。例えば、初期段階では、メモリ６６には何も記憶されていないため、最初のラスタからノズルＮｚ位置のラスタまでのＲＧＢデータを取得する。こうしてＲＧＢデータを取得して、サブルーチンを抜けて図６の変換処理へ戻る。
【００５６】
続いて、制御回路４０は、取得したＲＧＢデータの色変換を行なう（ステップＳ６１５）。具体的には、色変換テーブル（ＬＵＴ）を用いて、ＣＭＹＫデータを生成し、これをＲＡＭ７２に一時的に記憶している。
【００５７】
制御回路４０は、こうして記憶されたＣＭＹＫデータの各色毎に、ラスタ単位での誤差拡散処理を実行する（ステップＳ６２０）。このステップでは、一のラスタの左端の画素に対応するデータから、右端の画素に対応するデータへ向かって、順次、ドット形成有無のデータを生成する。この生成過程で発生した誤差は、誤差バッファに一時的に記憶される。また、処理された一ラスタ分のドット形成有無のデータも、ＲＡＭ７２内の作業領域に一時的に記憶される。
【００５８】
こうして一のラスタについて処理が終了すると、制御回路４０は誤差バッファの値を記憶するラスタであるか否かを判断する（ステップＳ６２５）。誤差バッファを記憶するラスタは予め設定されており、例えば後述する具体例では、印字ヘッドのノズル間隔を３ドットピッチ（ｋ＝３）とし、誤差バッファの値を記憶するラスタを４ラスタピッチ（ｋ＋１）として設定している。
【００５９】
ステップＳ６２５で、誤差バッファの値を記憶するラスタである（Ｙｅｓ）と判断した場合には、誤差バッファの値を誤差情報としてメモリ６６内に記憶する（ステップＳ６３０）。なお、誤差情報の記憶の際には、ラスタの位置（誤差バッファの値を生成した際の、処理ラスタの番号）も記憶している。
【００６０】
他方ステップＳ６２５で、誤差バッファの値を記憶しないラスタである（Ｎｏ）と判断した場合には、誤差バッファの値を記憶することはせずに、次の処理に移行する。
【００６１】
続いて、制御回路４０は、処理したラスタが、所望するノズルＮｚ位置に対応するラスタであるか否かを判断する（ステップＳ６３５）。具体的には、未処理のラスタがＲＡＭ７２内に存在するか否かで判断している。
【００６２】
ステップＳ６３５で、ノズルＮｚ位置に対応するラスタでない（Ｎｏ）と判断した場合には、ステップＳ６２０に戻り、次のラスタについての処理を開始する。次のラスタの処理では、現状の誤差バッファ内の値を用いて誤差拡散処理を行なってドット形成有無のデータを生成する。この処理過程で、作業領域内の誤差バッファの値やドット形成有無のデータは、順次、更新されて行く。
【００６３】
他方、ステップＳ６３５で、ノズルＮｚ位置に対応するラスタである（Ｙｅｓ）と判断した場合には、ラスタの処理結果であるドット形成有無のデータを、メモリ６６内に記憶する（ステップＳ６４０）。
【００６４】
こうしてノズルＮｚ位置に対応するラスタのドット形成有無のデータを記憶した後、制御回路４０は、主走査が可能であるか否かを判断する（ステップＳ６４５）。つまり、印字ヘッドに備えたノズルＮｚ分のドット形成有無のデータが全部揃っているか否かを判断している。
【００６５】
ステップＳ６４５で、主走査に必要なデータが揃わず、主走査が可能ではない（Ｎｏ）と判断した場合には、ステップＳ６１０へ戻り、次のノズルＮｚ位置に対応するラスタのドット形成有無のデータを生成する処理を行なう。具体的には、図７に示したサブルーチンに飛んで、次のノズルＮｚ位置に対応するラスタの処理に必要なＲＧＢデータや誤差情報を取得して、ラスタ単位の誤差拡散処理を行なう。
【００６６】
他方、ステップＳ６４５で、主走査に必要なデータが揃い、主走査が可能である（Ｙｅｓ）と判断した場合には、メモリ６６内のドット形成有無のデータを並べ替える再配置の処理を行なう（ステップＳ６５０）。すなわち、各ノズルＮｚ位置のドット形成有無のデータを、ドット形成の順序を考慮して並べ替える。
【００６７】
制御回路４０は、並べ替えたドット形成有無のデータを、印字ヘッドユニット２５に所定タイミングで出力すると共に、キャリッジモータ３２に指令信号を出力して、主走査を行なう（ステップＳ６６０）。つまり、主走査によりノズルＮｚ数分のドット列を形成して画像の印刷を行なう。
【００６８】
続いて、制御回路４０は、処理対象の画像の全ラスタに対して処理が終了したか否かを判断する（ステップＳ６７０）。ステップＳ６７０で、処理、つまり印刷が終了していない（Ｎｏ）と判断した場合には、紙送りモータ３３へ指令信号を出力して副走査を行ない、ステップＳ６００に戻って、一連の処理を繰り返す。他方、ステップＳ６７０で、印刷が終了した（Ｙｅｓ）と判断した場合には、一連の変換処理を終了する。
【００６９】
こうした変換処理における誤差拡散処理では、一の主走査に必要な分のドット形成有無のデータのみを求めて印刷を行ない、次の主走査へ移る。かかる処理を繰り返すことで、メモリ６６内には、常にノズルＮｚ分のドット形成有無のデータしか記憶されない。したがって、メモリ容量を低減することができる。
【００７０】
Ｂ−１．具体例：
図８から図１１は、図６に示した変換処理の具体的な説明図である。ここでは、上述の変換処理の理解をより一層容易なものとするため、４個のノズル（Ｎｚ＝４）を３ドットピッチ（ｋ＝３）の間隔で備えた１個の印字ヘッド９０を例に、４ドットピッチの副走査により印刷を行なう場合について説明する。なお、この例では、ｋ＋１の間隔である４ラスタピッチごとに、誤差情報を記憶するものとする。その初期値を４番目のラスタとし、４，８，１２，１６・・番目のラスタを処理する際に生成されるライン状の誤差バッファの値を、誤差情報としてメモリ６６に記憶する。
【００７１】
図８に示すように、印刷条件にしたがって解像度変換されたＲＧＢデータから、印字ヘッド９０の幅分のＲＧＢデータを取得する。具体的には、（Ｎｚ−１）×ｋ＋１個分である１０ラスタ分のＲＧＢデータを取得する。この１０ラスタのうち、ノズルＮｚ位置に該当するラスタは、１，４，７，１０番目のラスタであり、この４個のラスタに対応するドット形成有無のデータを生成することで、印字ヘッド９０の一の主走査が可能となる。
【００７２】
ここで、１番目のノズル１についてのドット形成有無のデータを生成するため、１番目のラスタのＲＧＢデータを取得し、これを色変換する。色変換されたＣＭＹＫデータについて、誤差拡散処理を行ないドット形成有無のデータを生成する。処理対象が１番目のラスタであるから、誤差情報を記憶せずに、ドット形成有無データをメモリ６６に記憶する。
【００７３】
続いて、２番目のノズル２についてのドット形成有無のデータを生成するため、必要なラスタのＲＧＢデータを取得する。ノズル２は、４番目のラスタに該当し、先のノズル１についての処理では誤差情報の記憶はない。したがって、最初のラスタである１番目のラスタから、４番目のラスタまでのＲＧＢデータを取得する。取得したＲＧＢデータは、色変換によりＣＭＹＫデータに変換される。色変換されたＣＭＹＫデータについて、１番目のラスタから順次、誤差拡散処理を行ないドット形成有無のデータを生成する。ラスタ単位で処理を進め、４番目のラスタのドット形成有無のデータをメモリ６６に記憶する。この処理の際、４番目のラスタは誤差情報の記憶ラスタでもあるので、誤差バッファの値をメモリ６６に記憶する。なお、４番目のラスタを処理するために演算された２，３番目のラスタのドット形成有無のデータは、記憶されない。
【００７４】
次に、３番目のノズル３についてのドット形成有無のデータを生成するため、必要なラスタのＲＧＢデータを取得する。ノズル３は、７番目のラスタに該当し、先のノズル２についての処理において、４番目のラスタについての誤差情報を記憶している。すなわち、処理対象である７番目のラスタの直近上位として、４番目のラスタの誤差情報が存在することとなる。したがって、誤差情報と共に、５番目のラスタから７番目のラスタまでのＲＧＢデータを取得する。取得したＲＧＢデータは、色変換によりＣＭＹＫデータに変換される。
【００７５】
取得した誤差情報は、誤差バッファに格納され、５番目のラスタの誤差拡散処理に使用される。５番目のラスタの処理が終了すると６番目、７番目のラスタと順次処理を進め、７番目のラスタの処理結果であるドット形成有無のデータをメモリ６６に記憶する。なお、この段階では、７番目のラスタまでの処理であるため、処理の際に更新された誤差バッファの値は記憶されない。
【００７６】
次に、４番目のノズル４についてのドット形成有無のデータを生成するため、必要なラスタのＲＧＢデータを取得する。ノズル４は、１０番目のラスタに該当し、先のノズル２についての処理において、４番目のラスタについての誤差情報を記憶している。したがって、誤差情報と共に、５番目のラスタから１０番目のラスタまでのＲＧＢデータを取得する。取得したＲＧＢデータは、色変換によりＣＭＹＫデータに変換される。
【００７７】
ここからの処理は、ノズル３の場合と同様であり、順次、５番目のラスタから１０番目のラスタまで誤差拡散処理を行ない、１０番目のラスタの処理結果であるドット形成有無のデータをメモリ６６に記憶する。この過程で、８番目のラスタの処理の際には、誤差情報が記憶される。
【００７８】
こうして４個のノズルＮｚ位置に該当するドット形成有無のデータがメモリ６６に記憶され、印字ヘッド９０の一の主走査が可能となる。図９に示すように、ここまでの処理で、メモリ６６内には、４ラスタ分のドット形成有無データと、２ラスタ分の誤差情報が記憶されている。つまり、１０ラスタ分のドット形成有無データについての演算は実行しているが、一の主走査に必要な４ラスタ分のみを記憶し、残りは記憶しない。なお、ドット形成有無データは、理解を容易にするため、ドット有（ＯＮ）を黒丸で、ドット無（ＯＦＦ）を無印で表現している。
【００７９】
ここで、印字ヘッド９０の主走査により印刷が実行されると、１，４，７，１０番目の４つのラスタが生成される。その後、４ドットピッチ分の副走査により用紙が送られ、次の主走査（２走査目）の処理に移る。２走査目の処理では、まず、印字ヘッド９０の幅分のＲＧＢデータを取得する。図１０に示すように、次に取得するＲＧＢデータは、５番目から１４番目までのラスタのＲＧＢデータとなる。なお、５番目から１０番目までのラスタについては、先の処理で取得しているため、不足分である１１番目から１４番目までのラスタのみを追加的に取得するものとしても良い。
【００８０】
２走査目の実際の処理に入る前に、不要となる１番目から４番目のラスタはＲＡＭ７１内で消去され、メモリ６６内のドット形成有無データはクリアされる。なお、誤差情報は以降の処理に利用するため、クリアされない。図１０では、こうしてクリアされるデータを破線で示している。
【００８１】
２走査目では、５，８，１１，１４番目のラスタのドット形成有無データを、先の処理（１走査目）と同様の処理により生成する。ここまでの処理では、メモリ６６内には、４ラスタ分のドット形成有無データと、３ラスタ分の誤差情報が記憶されることとなる。なお、新たに追加された誤差情報は１ラスタ分（１２番目のラスタ）のみである。こうして記憶したドット形成有無データに基づいて、印字ヘッド９０による印刷が実行される。
【００８２】
続いて、３走査目の処理に移ると、９番目から１８番目のＲＧＢデータを取得し、不要なデータをクリアする。図１１に示すように、３走査目の処理の際には、４番目のラスタに対応する誤差情報が不要となる。そこで、不要なＲＧＢデータ、ドット形成有無データと共に、この誤差情報もクリアされる。図１１に示すように、３走査目の処理でも、４ラスタ分のドット形成有無データと、３ラスタ分の誤差情報とが記憶される。つまり、主走査毎にメモリ６６に記憶するデータ量は、ノズルＮｚ数分である４ラスタのデータと、３ラスタの誤差情報のみとなる。
【００８３】
なお、図示するように、３回の主走査で、合計１２ラスタが形成できるが、実際には、７番目のラスタより前では、隙間が残ってしまう。つまり、７番目のラスタ以降が有効な記録範囲となる。したがって、実際の処理では、１走査目でノズル１，２からはドットを吐出せずに対応している。こうした特殊な対応は、ノズルＮｚ数、ノズルＮｚのドットピッチ、インタレース処理の内容等により、プリンタにより様々であり、プリンタ毎に設定するものとすれば良い。
【００８４】
誤差拡散処理では、上位のラスタの処理結果が下位のラスタの処理に影響を及ぼす。そのため、上位のラスタから下位のラスタへ処理を進める過程で、全てのラスタについてドット形成有無データが生成される。一般的には、生成された各ラスタのドット形成有無データを全て記憶し、そのうち一の主走査で必要となるデータのみを取り出して使用する。使用されないデータは、そのデータを使用する順番（主走査の順番）が回ってくるまで、記憶し続ける。こうした従来の手法によれば、少なくとも印字ヘッドの幅分に相当するラスタのドット形成有無データを全て記憶する容量が必要であり、インタレース処理の内容によっては、さらに複数のラスタのデータを記憶する容量が必要となる。
【００８５】
これに対し、本実施例の変換処理によれば、メモリに記憶されるドット形成有無のデータは、ノズルＮｚ数分のデータ量で済む。例えば、ノズルＮｚ数が４８であれば、４８ラスタ分のデータ量の記憶領域を使用することとなる。したがって、誤差拡散処理におけるメモリの記憶容量を低減することができる。なお、本実施例では、メモリの記憶容量の低減効果の高いノズルＮｚ数分のデータのみの記憶について説明したが、さらに複数のラスタのドット形成有無のデータを記憶するものとしても良い。例えば、図９の１主走査目で、ノズルＮｚ位置に対応するラスタに加え、２，５，８番目の３つのラスタについて記憶するものとし、この３つのラスタについては、次主走査以降、ドットを吐出する順番がくるまで記憶し続ける。この場合であっても、全ラスタについて記憶する従来の手法に比べて、記憶容量を低減することができる。
【００８６】
本実施例では、共通のメモリ６６に、ドット形成有無のデータと、誤差情報とを記憶するものとしたが、勿論、それぞれ独立の記憶領域に記憶するものとしても良い。いずれの場合にも、ドット形成有無データのラスタ数と、誤差情報のラスタ数との和が、最大で（Ｎ−１）×ｋ個（Ｎ：ノズルＮｚ数，ｋ：ノズルドットピッチ）であることが望ましい。こうすることで、全ラスタを記憶する従来の手法に比べ、プリンタ１０全体の記憶容量を低減することができる。
【００８７】
また、本実施例では所定の間隔で誤差情報を記憶し、これを利用して誤差拡散処理を実行する。したがって、一の主走査のための処理において、誤差情報を記憶したラスタ以降のラスタを処理する際に、最初のラスタから処理を開始する場合に比べ、誤差拡散処理を実行する演算量、つまり、処理時間を低減することができる。
【００８８】
さらに、本実施例では、４ドットピッチの副走査に対して、４ピッチのラスタ間隔で誤差情報を記憶するものとし、その誤差情報の記憶ラスタの初期値を４ラスタ目と設定している。すなわち、印字ヘッド９０の位置が副走査により４ドットずれた際に、常に最上行ラスタのＲＧＢデータを処理できる直近の誤差情報を記憶している。したがって、取得した印字ヘッド９０の幅分のＲＧＢデータの範囲内で、ラスタ単位での誤差拡散処理を実行することができる。つまり、ノズル１のドット形成有無データを演算する際に、前走査で処理したＲＧＢデータを再度利用する必要がない。そのため、ＲＡＭ７２内に展開するＣＭＹＫデータを、印字ヘッド９０幅分のみとすることができ、ＲＡＭ７２を効率よく利用することができる。
【００８９】
本実施例では、ｋドットピッチのノズルＮｚに対して、ｋ＋１ピッチのラスタ間隔で誤差情報を記憶しているが、例えば、ドットピッチと同じ間隔であるｋピッチのラスタ間隔で誤差情報を記憶する場合について説明する。図１２は、ドットピッチと誤差情報記憶ラスタの間隔とが同じ場合における一の主走査の処理の量を示す説明図である。図１２に示すように、ドットピッチ３の４個のノズルＮｚを備えた印字ヘッドで印刷を行なう場合に、誤差情報を３ピッチのラスタ間隔で記憶するものとする。ここで、ひし形の印は、誤差情報が記憶されるラスタを意味している。ノズルＮｚ位置のラスタと、誤差情報記憶ラスタとの位置関係は、印字ヘッドの副走査により、順次異なる。図１２（ａ）は、パターン１として、ノズルＮｚ位置の上のラスタが誤差情報記憶ラスタとなる場合を、図１２（ｂ）は、パターン２として、ノズルＮｚ位置と誤差情報記憶ラスタとが同じ位置となる場合を、それぞれ示している。
【００９０】
図１２（ａ）では、処理対象となる４つのノズルＮｚ位置のラスタに対して、１つ上（前）のラスタに誤差情報が記憶されている。したがって、各ノズルＮｚ位置のラスタは、誤差情報を用いて１ラスタ分の処理で演算できる。すなわち、一の主走査を行なうために処理するラスタ数の合計は４ラスタである。
【００９１】
これに対して、図１２（ｂ）では、処理対象となる４つのノズルＮｚ位置のラスタに対して、３つ上（前）のラスタに誤差情報が記憶されている。したがって、各ノズルＮｚ位置のラスタは、３ラスタ分の処理の演算が必要となる。すなわち、一の主走査を行なうために処理するラスタ数の合計は１２ラスタである。
【００９２】
つまり、ノズルＮｚのドットピッチと、誤差情報記憶ラスタの間隔とが同じである場合には、主走査毎の処理ラスタ量が所定周期で変化する。特に、図１２（ｂ）に示すように、ノズルＮｚ位置と誤差情報記憶ラスタとが同一となる場合には、処理ラスタ量が増え、処理時間がかかることとなる。
【００９３】
こうしたノズルＮｚのドットピッチｋと、誤差情報記憶ラスタの間隔との関係を図１３に示す。図中、縦軸は、一の主走査を行なうための処理ラスタの数、つまり、処理速度(時間)を示し、横軸は、主走査回数（副走査回数と呼んでも良い）を示している。なお、図示した一例は、ドットピット３の４個のノズルＮｚの印字ヘッドにおいて、４ドットピッチの副走査を行なう場合の例であり、誤差情報は１ラスタ目から、それぞれ２ラスタ間隔，３ラスタ間隔，４ラスタ間隔で記憶しているものとする。
【００９４】
図示する実線は、２ラスタ間隔で誤差情報を記憶した場合の主走査毎の処理時間の変化を、破線は、４ラスタ間隔で誤差情報を記憶した場合の主走査毎の処理時間の変化を、二点差線は、３ラスタ間隔で誤差情報を記憶した場合の主走査毎の処理時間の変化を、それぞれ示している。３ラスタ間隔のものについては、図１２で説明したドットピッチと誤差情報記憶ラスタ間隔とが同じ場合である。したがって、所定周期で処理時間の変動が生じている。これに対し、２ラスタ間隔と４ラスタ間隔のものについては、２走査目以降、同じ処理時間で印刷が行なわれる。つまり、ドットピッチｋに対して、ｋ±１ピッチのラスタ間隔で誤差情報を記憶することで、主走査毎の処理時間を略均一にすることができる。
【００９５】
Ｃ．変形例：
本実施例のハーフトーン処理としての誤差拡散処理において、ドット形成有無の判断を行なう際の閾値に乱数を使用するものとしても良い。例えば、図３に示すように、制御回路４０内に乱数発生処理部６５を設け、乱数を発生させる。乱数発生処理部６５は、所定の乱数関数を使用し、ある初期値（種）を与えることで乱数を出力する。この乱数を閾値に設定して誤差拡散処理を実行する。この処理の過程で、誤差情報の記憶ラスタについては、乱数関数の初期値も併せて記憶する。そして、記憶した誤差情報を読み出す場合には、初期値も共に読み出す。こうすることで、読み出した誤差情報が生成された時に使用した乱数を再現することができ、同じ画素に対して同じ乱数を用いて処理することができる。こうした乱数を閾値に用いることで、閾値にノイズを加えて規則性パターンの発生を防止し、高画質の印刷を行なうことができる。なお、こうした乱数の設定手法は、誤差拡散マトリクスに乱数を使用する場合にも利用できる。いずれの場合も、同一画素（ラスタ）に対する誤差拡散処理を繰り返す場合に有効である。
【００９６】
本実施例では、誤差拡散処理を用いた変換処理をソフトウェアプログラムとしてプリンタ内に備えるものとして説明したが、勿論、このプログラムをコンピュータに備え、コンピュータとプリンタを含めて、本発明の印刷装置としても良い。また、プリンタの制御回路４０における各種機能モジュールは、例えば、特開２０００−２９９７８５におけるデータ変換装置に開示するハード構成を利用するものとしても良い。処理の一部をハード的に行なうことで、全体の処理速度を向上することができる。
【００９７】
本実施例では、画像の出力先を用紙として、画像を印刷するプリンタ（印刷装置）を例に、記憶領域の低減について説明したが、画像の出力先はディスプレイであっても良い。すなわち、本発明は、入力した多階調の画像データを階調変換し、これを、液晶、プラズマ、ＣＲＴなどのディスプレイ上に出力して画像を形成する装置としても適用できる。一般に、こうしたディスプレイに画像を表示する場合には、本実施例の説明と同様、ラスタを単位として画像を形成する。この場合にも、ハーフトーン処理と同様の階調変換処理が実行され、演算された全ラスタのデータを一端記憶して、そこから必要なデータを取り出して画像を表示している。
【００９８】
こうした画像を形成する装置（画像形成装置と呼ぶ）に本発明を適用する場合には、画像を形成する複数のラスタのうち、ｋラスタ間隔（ｋは２以上の整数）に配置されたＮ本（Ｎは２以上の整数）のラスタを単位として画像を形成する一部ラスタ画像形成部と、Ｎ本のラスタの画像の形成に必要な分の画像データを取得する取得処理部と、取得した画像データの各画素の階調値を低い階調値のデータに変換し、階調変換により生じた濃度の誤差情報を未処理の画素に分配する演算を行ないつつ、変換処理を各画素について順次行なう階調変換処理部と、演算を伴う変換結果のうち、少なくともＮ本のラスタを含み、最大で（Ｎ−１）×ｋ本のラスタについての変換済みのデータを記憶する記憶処理部と、記憶された変換済みのデータのうち、Ｎ本のラスタに該当するデータを一部ラスタ画像形成回路に出力する出力処理部とを備えるものとすれば良い。
【００９９】
こうした各処理部における処理を繰り返して画像を形成することで、画像形成装置における記憶領域を低減することができる。なお、印刷装置に場合と同様、各処理部の構成は、ソフトウェアであっても、ハードウェアであっても良い。
【０１００】
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。本実施例では、所定ラスタの誤差情報を記憶するものとしたが、誤差情報を記憶せず、常に、最初のラスタから誤差拡散処理を繰り返して、所望するノズルＮｚ位置に該当するラスタのドット形成有無データを生成するものとしても良い。こうすることで、より一層メモリの記憶容量を低減することができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の印刷装置としてのプリンタの内部の概略構成を示したブロック図である。
【図２】インク吐出用ヘッドにおけるノズルＮｚの配列を示す説明図である。
【図３】制御回路の機能モジュールの概略構成を示す説明図である。
【図４】誤差拡散マトリクスの一例を示す説明図である。
【図５】インタレース処理を概念的に示す説明図である。
【図６】本実施例のプリンタにおいて実行される変換処理のフローチャートである。
【図７】変換処理のフローチャート（サブルーチン）である。
【図８】変換処理の具体的な説明図である。
【図９】変換処理の具体的な説明図である。
【図１０】変換処理の具体的な説明図である。
【図１１】変換処理の具体的な説明図である。
【図１２】ドットピッチと誤差情報記憶ラスタの間隔とが同じ場合における一の主走査の処理の量を示す説明図である。
【図１３】ノズルＮｚのドットピッチｋと、誤差情報記憶ラスタの間隔との関係を示す説明図である。
【符号の説明】
【０１０２】
１０...プリンタ
２１...操作パネル
２２...液晶ディスプレイ
２３...カードスロット
２４...ＵＳＢポート
２５...印字ヘッドユニット
２８...プラテン
２９ａ...黒インク用カートリッジ
２９ｂ...カラーインク用カートリッジ
３０...キャリッジ
３２...キャリッジモータ
３３...紙送りモータ
３４...摺動軸
３６...駆動ベルト
３９...位置検出センサ
４０...制御回路
４４，４５，４６，４７...インク吐出用ヘッド
５０...インターフェイス
６１...入力モジュール
６２...色変換モジュール
６３...ハーフトーンモジュール
６４...インタレースモジュール
６５...乱数発生処理部
６６...メモリ
８０...印字ヘッド
９０...印字ヘッド
ＭＣ...メモリカード
Ｎｚ...ノズル
Ｐ...用紙
ｋ...ドットピッチ
【図１】
2006213005.tif 000003
【図２】
2006213005.tif 000004
【図３】
2006213005.tif 000005
【図４】
2006213005.tif 000006
【図５】
2006213005.tif 000007
【図６】
2006213005.tif 000008
【図７】
2006213005.tif 000009
【図８】
2006213005.tif 000010
【図９】
2006213005.tif 000011
【図１０】
2006213005.tif 000012
【図１１】
2006213005.tif 000013
【図１２】
2006213005.tif 000014
【図１３】
2006213005.tif 000015