(57)【特許請求の範囲】
【請求項１】
階調表現を有する原画像において主走査方向として定めた一方向に沿って着目画素を移しつつ、該画素の階調を、その階調よりも少ない階調表現に変換し、該階調変換により生じた濃度誤差を、該着目画素の少なくとも主走査方向に沿った所定範囲の画素に分配する誤差拡散法を採用し、該誤差拡散による階調変換を、前記主走査方向および該主走査方向に交差する方向である副走査方向に沿って順次行なうデータ変換装置であって、
前記原画像の階調データを保存するメモりと、
前記所定範囲に含まれる複数の画素に対応した多段のレジスタを備え、前記メモりより少なくとも書き込み速度の高い誤差バッファと、
前記着目画素が移動する度に、該誤差バッファ内の各レジスタのデータを該着目画素の移動に合わせて順次次段に転送するシフト回路と、
該シフト回路により順次転送された前記レジスタの最終段の出力を、前記着目画素の階調データに加えた上で、前記少ない階調表現に変換する変換回路と、
該変換回路による階調変換により、該着目画素について生じた濃度誤差を演算する誤差算出回路と、
前記誤差バッファ内の前記レジスタの数に対応した複数個のシフトレジスタを備え、前記演算された濃度誤差のデータを前記各シフトレジスタに入力すると共に、前記各シフトレジスタ毎に定めた重み付けに対応したビット数だけ、前記各シフトレジスタに記憶されたデータをシフトした出力を重み付け濃度誤差データとして、前記誤差バッファの各レジスタに分配加算する分配加算回路と
を備え、
前記誤差バッファは、前記主走査方向に並んだ画素列であるラスタを単位として配列されたレジスタ群から構成され、前記着目画素が含まれる第１のラスタ上の所定範囲の画素に対応した第１のレジスタ群と、該着目画素とは前記副走査方向に隣接した第２のラスタ上の所定範囲の画素に対応した第２のレジスタ群とを備え、
前記シフト回路は、前記着目画素が移動する度に、該誤差バッファ内の前記第１および第２のレジスタ群のうちの各レジスタのデータを該着目画素の移動に合わせて次段のレジスタに読み込ませ、
更に、
独立して交互に読み書き可能な二つのＳＲＡＭを設け、
前記着目画素が移動する度に、前記第２のラスタ上の画素であって所定の範囲外となった画素に対応する前記第２のレジスタ群内のレジスタに累積された濃度誤差を、前記ＳＲＡＭの一方に書き戻す書出回路と、
前記着目画素が移動する度に、前記所定の範囲に新たに含まれるものとなった画素について、隣接するラスタの処理時に前記書出回路によって書き出された濃度誤差の累積値を、前ＳＲＡＭの他方から、前記誤差バッファ内の前記第１のレジスタ群内の対応するレジスタに、前記濃度誤差の書き戻しと同じタイミングで格納する読込回路と
を備えた階調データ変換装置。
【請求項２】
前記レジスタは、該レジスタに記憶されたデータと前記重み付けを施した濃度誤差とを加算した結果または該レジスタの前段のレジスタの出力のいずれか一方を記憶可能なレジスタである請求項１記載の階調データ変換装置。
【請求項３】
前記変換回路は、一つの閾値を用いて、原画像の階調データを２階調に変換する回路である請求項１記載の階調データ変換装置。
【請求項４】
前記変換回路は、二以上の閾値を用いて、原画像の階調データを３階調以上に変換する回路である請求項１記載の階調データ変換装置。
【請求項５】
請求項１記載の階調データ変換装置であって、
前記原画像データは、原色の組み合わせにより原画像を表現する各色の階調データとして構成されており、
前記各回路は、前記各色毎に設けられた
階調データ変換装置。
【請求項６】
階調表現を有する画像データを受け取り、複数種類のインクのドットを形成することにより、該画像データに対応した画像を、記録媒体上に形成する印刷装置であって、
請求項１記載の階調データ変換装置と、
前記画像データを、該階調データ変換装置に入力するデータ入力手段と、
前記階調データ変換装置による変換結果を受け取り、変換結果に対応した階調のインクのドットを、印刷媒体上に形成するドット形成手段と
を備えた印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータ、デジタルカメラ、デジタルビデオ等から出力される画像データから印刷物等を得る際に有用な誤差拡散法を採用するデータ変換装置およびこの装置を用いた印刷装置に関する。
【０００２】
【従来の技術】
近年、コンピュータ等の出力装置として、数色のインクのドットを印刷媒体上に形成するタイプのカラープリンタが広く普及し、コンピュータ等が処理した画像を多色多階調で印刷するのに広く用いられている。シアン、マゼンタ、イエロー（ＣＭＹ）の三色のインクにより多色の画像を印刷する場合、多階調の画像を形成しようとするにはいくつかの方法が考えられる。一つは、従来のプリンタで採用されている手法であり、一度に吐出するインクにより用紙上に形成されるドットの大きさを一定として、印刷される画像の階調をドットの密度（単位面積当たりの出現頻度）により表現するものである。もう一つの方法は、用紙上に形成するドット径等を調整して、単位面積当たりの濃度を可変するものである。この単位面積当たりの濃度を可変とする他の方法として、基本の三色よりも淡い色のインク、例えば淡いシアンと淡いマゼンタを用意するものも存在する。
【０００３】
いずれの手法でも、原画像が持っている階調情報をドットの分布、即ちドットのオン・オフにより表現することになる。即ち、原画像が持っている高い階調表現を、画素単位では、低い階調に変換する階調変換を行なっているのである。この場合、平均的な濃度で見れば、原画像の階調値をある程度正確に再現することができるが、画素単位で見れば、元の階調値との間に濃度誤差が生じることは免れない。そこで、画素単位で生じた濃度誤差を、その周辺の画素に分配して、画像全体の濃度を原画像に近づけようとする手法が提案されている。これが誤差拡散法と呼ばれる手法である。誤差拡散法を利用してドットを分布させるデータ変換装置は、原画像の再現性に優れるために、印刷装置において広く用いられている。
【０００４】
こうした誤差拡散法を用いた印刷装置の場合、通常ヘッドが用紙の幅方向（主走査方向と呼ぶ）に走査しながら、かつ用紙をこの主走査方向とは交差する方向（副走査方向と呼ぶ）に搬送しながらドットを形成する。したがって、誤差を拡散できる範囲は、図１８に示すように、通常は着目画素の周辺であって、少なくとも主走査方向の所定範囲、場合によっては、副走査方向に隣接するラスタ上の複数の画素ということになる。図１８に示した各画素の値は、濃度誤差を配分する場合の重み付けの係数を示している。各重み付け係数は、その和が値１となるように定められている。
【０００５】
【発明が解決しようとする課題】
誤差拡散法は、一定の領域で見れば、濃度誤差が解消されるという利点が存在するものの、その誤差配分の演算に、かなりの処理時間を要するという問題があった。通常、画像データは、画素を単位とする複数ビットのデータとして、ハードディスク等の外部記憶や半導体メモリ等の主記憶の一部に記憶される。階調変換を行なう際には、記憶された画像データを読み出し、所定の閾値との大小関係を判定し、その結果から周辺に分散すべき濃度誤差を演算する。濃度誤差を分散する際には、分散範囲の画素の画像データをメモリから読み出し、これに拡散誤差を加えて書き戻すという処理が行なわれる。この結果、着目画素に対する誤差拡散処理では、多数回のメモリアクセスが発生し、処理に要する時間が長くなってしまうという問題があった。
【０００６】
近年、記録されるドット径の微細化が進んでおり、１ラスタを構成するドット数が増える傾向にある。この結果、ドット数の増加に応じて誤差拡散処理の回数は飛躍的に増加し、上記処理時間の問題は看過できないものとなっている。本発明は、１画素当たりの誤差拡散処理を、誤差拡散の範囲に含まれる画素の数より少ない回数のメモリアクセスにより実現することを目的とする。
【０００７】
【課題を解決するための手段およびその作用・効果】
上述の課題を解決する本発明の階調データ変換装置は、
階調表現を有する原画像において主走査方向として定めた一方向に沿って着目画素を移しつつ、該画素の階調を、その階調よりも少ない階調表現に変換し、該階調変換により生じた濃度誤差を、該着目画素の少なくとも主走査方向に沿った所定範囲の画素に分配する誤差拡散法を採用し、該誤差拡散による階調変換を、前記主走査方向および該主走査方向に交差する方向である副走査方向に沿って順次行なうデータ変換装置であって、
前記原画像の階調データを保存するメモりと、
前記所定範囲に含まれる複数の画素に対応した多段のレジスタを備え、前記メモりより少なくとも書き込み速度の高い誤差バッファと、
前記着目画素が移動する度に、該誤差バッファ内の各レジスタのデータを該着目画素の移動に合わせて順次次段に転送するシフト回路と、
該シフト回路により順次転送された前記レジスタの最終段の出力を、前記着目画素の階調データに加えた上で、前記少ない階調表現に変換する変換回路と、
該変換回路による階調変換により、該着目画素について生じた濃度誤差を演算する誤差算出回路と、
前記誤差バッファ内の前記レジスタの数に対応した複数個のシフトレジスタを備え、前記演算された濃度誤差のデータを前記各シフトレジスタに入力すると共に、前記各シフトレジスタ毎に定めた重み付けに対応したビット数だけ、前記各シフトレジスタに記憶されたデータをシフトした出力を重み付け濃度誤差データとして、前記誤差バッファの各レジスタに分配加算する分配加算回路と
を備え、
前記誤差バッファは、前記主走査方向に並んだ画素列であるラスタを単位として配列されたレジスタ群から構成され、前記着目画素が含まれる第１のラスタ上の所定範囲の画素に対応した第１のレジスタ群と、該着目画素とは前記副走査方向に隣接した第２のラスタ上の所定範囲の画素に対応した第２のレジスタ群とを備え、
前記シフト回路は、前記着目画素が移動する度に、該誤差バッファ内の前記第１および第２のレジスタ群のうちの各レジスタのデータを該着目画素の移動に合わせて次段のレジスタに読み込ませ、
更に、
独立して交互に読み書き可能な二つのＳＲＡＭを設け、
前記着目画素が移動する度に、前記第２のラスタ上の画素であって所定の範囲外となった画素に対応する前記第２のレジスタ群内のレジスタに累積された濃度誤差を、前記ＳＲＡＭの一方に書き戻す書出回路と、
前記着目画素が移動する度に、前記所定の範囲に新たに含まれるものとなった画素について、隣接するラスタの処理時に前記書出回路によって書き出された濃度誤差の累積値を、前ＳＲＡＭの他方から、前記誤差バッファ内の前記第１のレジスタ群内の対応するレジスタに、前記濃度誤差の書き戻しと同じタイミングで格納する読込回路と
を備えたことを要旨としている。
【０００８】
この階調データ変換装置は、原画像の階調データを保存するメモリより書き込み速度が高速なレジスタを、誤差拡散範囲の画素数に対応して備えており、着目画素が移動する際、レジスタのデータを着目画素の移動に応じてシフトする。その上で、このレジスタの最終段の出力を着目画素の階調データに加えた上で、少ない階調表現に変換している。このため、メモリへのアクセスは、着目画素の画像データを読み出すだけで済み、きわめて高速な処理が可能となる。
【００１０】
しかも、誤差拡散範囲を、隣接するラスタ上まで拡張しており、誤差バッファを、主走査方向に並んだ画素列であるラスタを単位として配列されたレジスタ群から構成し、前記着目画素が含まれる第１のラスタ上の所定範囲の画素に対応した第１のレジスタ群と、該着目画素とは前記副走査方向に隣接した第２のラスタ上の所定範囲の画素に対応した第２のレジスタ群とに分けている。更に、独立して交互に読み書き可能な二つのＳＲＡＭを設け、シフト回路は、前記着目画素が移動する度に、該誤差バッファ内の前記第１および第２のレジスタ群のうちの各レジスタのデータを、着目画素の移動に合わせてシフトするものとしておき、更に、着目画素が移動する度に、前記第２のラスタ上の画素であって所定の範囲外となった画素に対応する前記第２のレジスタ群内のレジスタに累積された濃度誤差を、前記ＳＲＡＭに書き出す書出回路と、前記着目画素が移動する度に、前記所定の範囲に新たに含まれるものとなった画素について、隣接するラスタの処理時に前記書出回路によって書き出された濃度誤差の累積値を、前記ＳＲＡＭから、前記誤差バッファ内の前記第１のレジスタ群内の対応するレジスタに格納する読込回路とを設ける。かかる構成によれば、着目画素の階調データを読み出す他は、ＳＲＡＭとの間では、誤差分配済みデータを誤差が配分されるラスタ数−１回書き出し、累積誤差のデータをラスタの数−１回読み込むだけで、誤差拡散法による階調変換を行なうことができる。かかる構成により、少なくとも着目画素が存在するラスタとこれに副走査方向に隣接するラスタ上の所定の範囲に、着目画素における濃度誤差を配分することができる。しかも、ＳＲＡＭへのアクセスとしては、第２のレジスタ群の一つからの書出と第１のレジスタ群への読込という二つのアクセスが必要になるだけであり、演算速度の低下を来たすことがない。更には、独立して交互に読み書き可能な二つのＳＲＡＭを設けているから、ＳＲＡＭから第１のレジスタ群への読み込みと、第２のレジスタ群の一つからＳＲＡＭへの書込とを同時に行なっている。したがって、１画素について誤差拡散に要する総時間を、ＳＲＡＭの１回のアクセス時間と略等しくできる。
【００１１】
こうした階調データ変換装置では、レジスタを、該レジスタに記憶されたデータと前記重み付けを施した濃度誤差とを加算した結果または該レジスタの前段のレジスタの出力のいずれか一方を記憶可能なレジスタとすることも好適である。こうすれば、データのシフトと分配加算とを一つの回路で実現することができる。
【００１２】
なお、上記の構成では、レジスタには、濃度誤差のみを分配し加算するものとしたが、着目画素が移動して新たな画素が前記誤差拡散範囲に入ってきた場合に、その画素の階調データをレジスタに読み込み、順次これをシフトしつつ、着目画素の濃度誤差を重み付けして分配加算するものとしても差し支えない。この場合は、レジスタの最終段の出力と着目画素の階調データとを加算する必要ない。
【００１３】
ここで、各レジスタを、誤差の配分加算とデータのシフトとを、同時に可能なレジスタとしても良い。前のレジスタに保持されていたデータに、新たな濃度誤差を拡散して加えた結果は、着目画素の移動に伴って順次移動されるので、配分演算とデータのシフトとを同時に行なうとことができれば、処理を一層高速化することができる。
【００１４】
なお、こうした変換装置における階調変換により得られる階調は、元の画像の階調数より低ければ足り、２階調でも３階調以上でも差し支えない。変換回路は、一つの閾値を用いれば、原画像の階調データを２階調に変換することは容易である。同様に、二以上の閾値を用いて、原画像の階調データを３階調以上に変換することも容易である。
【００１５】
階調データ変換装置の各回路は、原画像データが、原色の組み合わせにより原画像を表現する各色の階調データとして構成されている場合には、各色毎に設ければよい。
【００１６】
この階調データ変換装置は、印刷装置に組み込むことができる。即ち、本発明の印刷装置は、階調表現を有する画像データを受け取り、複数種類のインクのドットを形成することにより、該画像データに対応した画像を、記録媒体上に形成する印刷装置であって、
上述した階調データ変換装置と、
前記画像データを、該階調データ変換装置に入力するデータ入力手段と、
前記階調データ変換装置による変換結果を受け取り、変換結果に対応した階調のインクのドットを、印刷媒体上に形成するドット形成手段と
を備えることを要旨とする。
【００１７】
かかる印刷装置は、原画像データの階調を、低階調に変換しつつ、印刷媒体上にドットを形成して、印刷を行なうことができる。
【００１８】
【発明の他の態様】
この発明は、以下のような他の態様も含んでいる。第１の態様は、本発明のデータ変換装置を、コンピュータの拡張スロットに装着する態様とするものである。こうすれば、コンピュータとデータ変換装置をコンパクトに構成することができるので好適である。また、プリンタに限らず、種々のハードコピー装置を用いても、本発明のデータ変換装置による高速な誤差拡散処理の恩恵を被ることができる。
【００１９】
第２の態様は、本発明のデータ変換装置を、印刷装置の拡張スロットに装着した態様、若しくは印刷装置と一体に構成した態様である。このようにすれば、データ変換装置と印刷装置をコンパクトに構成することができるので好適である。また、デジタルカメラやデジタルビデオからの原画像データを直接処理することが可能となり、コンピュータなどを介することなく高品質の印刷物を高速に得ることが出来る。
【００２０】
【発明の実施の形態】
Ａ．装置の構成
本発明の実施の形態を実施例に基づき説明する。図１は、本発明の実施例としての階調データ変換装置（以下、単にデータ変換装置とも呼ぶ）１０を備えた印刷装置の構成を示す説明図である。図示するように、この印刷装置は、コンピュータ８０とデータ変換装置１０とカラープリンタ２０とから構成されている。印刷装置は、コンピュータ８０上で動作するグラフィックソフト等のアプリケーションソフトが処理・出力する画像データを、階調データ変換装置１０により階調変換し、これを用いてカラープリンタ２０で印刷することにより、全体として印刷装置として機能する。コンピュータ８０は、カラー画像データＯＲＧをデータ変換装置１０に出力し、データ変換装置１０は、受け取ったカラー画像データＯＲＧをカラープリンタ２０で印刷可能なデータ形式に変換して、カラープリンタ２０に出力する。カラープリンタ２０は、データ変換装置１０から受け取った変換済みの画像データＦＮＬに基づいて、印刷用紙上にドットを形成することによってカラー画像を印刷する。この結果、コンピュータ８０から出力されたカラー画像データに対応したカラー画像が、印刷用紙上に得られることになる。
【００２１】
コンピュータ８０は、各種の演算処理を実行するＣＰＵ８１、ＲＯＭ８２，ＲＡＭ８３，ハードディスク８４，およびインターフェイス８５等から構成されており、これらは図示しないバスによって接続され、相互にデータのやり取りが可能になっている。ＲＯＭ８２は、ＣＰＵ８１で各種の演算処理を実行する際に必要なプログラムやデータを予め格納するために使用される。ＲＡＭ８３は、ＣＰＵ８１で各種演算処理を行なうために必要なプログラムやデータを一時的に記憶するために使用される。ハードディスク８４は、ＲＯＭ８２やＲＡＭ８３に記憶しきれないプログラムやデータを記憶しておくために使用される。インターフェイス８５は、コンピュータ８０が外部とデータをやり取りするために使用される。
【００２２】
コンピュータ８０の外部に接続されたカラースキャナ２４は、カラー原稿を読み取ってコンピュータ８０が解釈可能な画像データに変換する。また、コンピュータ８０を、モデム９１を介して公衆電話回線ＰＮＴに接続すれば、外部のネットワーク上にあるサーバＳＶから必要なデータを受け取ることが可能となる。
【００２３】
コンピュータ８０に電源を入れると、ＲＯＭ８２およびハードディスク８４に記憶されていたオペレーティングシステムが起動し、オペレーティングシステムの管理の下で、各種アプリケーションプログラムが動くようになっている。印刷すべきカラー原稿はアプリケーションプログラムを使用して作成され、インターフェイス８５を介してデータ変換装置１０に出力される。また、カラースキャナ２４やモデム９１を介して外部から取り込んだカラー画像を、アプリケーションプログラムで加工してカラー原稿を作成する場合もある。
【００２４】
データ変換装置１０は、図示するように、外部からデータを受け取る入力モジュール（ＩＮＭ）１１、ＩＮＭ１１から入力された原画像の解像度をいわゆるバイリニアやバイキュービックなどの補完処理によりカラープリンタ２０の解像度に変換すると共に原画像のデータが赤・緑・青の三原色表現の場合にはカラープリンタ２０にて採用されるＣＹＭの三原色表現に変換するカラールックアップモジュール（ＣＬＭ）１２、ディザ法や本実施例に特徴的な誤差拡散方法により濃度誤差を補正するハーフトーンモジュール（ＨＴＭ）１３、ＨＴＭ１３により生成された印刷データをカラープリンタ２０の処理に適した順序で記憶してマイクロウェーブなどの独特な印刷を可能とする画素再配置モジュール（ＭＷＭ）１４、カラープリンタ２０にデータを出力する出力モジュール（ＯＴＭ）１５、データを一時的に蓄えておくＳＲＡＭ１６、これらを相互に接続しデータのやり取りを可能とするバス１７、とから構成されている。バス１７は、詳しくはアドレス値が流れるアドレスバスとデータが流れるデータバスとから構成されているが、図１では両者をまとめてバス１７と表している。
【００２５】
なお、図１では、ＳＲＡＭ１６は、各モジュールからアクセスできる一つのメモリとして記載したが、各モジュールごとに分割して設けるものとしても良い。図１に示した構成より、データ変換装置１０は、コンピュータ８０から供給された画像データＯＲＧを、ＩＮＭ１１を介して受け取り、初めにＣＬＭ１２がバス１７上にある画像データを取り込んで、色変換を行なう。色変換されたデータを、ＨＴＭ１３が取り込んでハーフトーン処理を行ない、最終的に、ＭＷＭ１４により、カラープリンタ２０がそのまま使用できるデータＦＮＬとして出力している。なお、ＭＷＭ１４は、変換結果をＳＲＡＭ１６に一旦蓄えており、ＯＴＭ１５により、カラープリンタ２０が要求するタイミングで、ＳＲＡＭ１６に蓄えられている画像データを順次読み出してカラープリンタ２０に供給される。この結果、コンピュータ８０から供給された画像データＯＲＧは、プリンタで印刷可能な画像データＦＮＬとしてカラープリンタ２０に出力されるのである。
【００２６】
カラープリンタ２０は、カラー画像の印刷が可能なプリンタであり、本実施例では、印刷用紙上にシアン・マゼンタ・イエロ・ブラックの４色のドットを形成することによって、カラー画像を印刷するインクジェットプリンタを使用している。もちろん、レーザープリンタや熱転写式プリンタ等の、他の方式のカラープリンタを使用することも可能である。
【００２７】
このカラープリンタ２０は、シアン、マゼンタ、イエロの三原色および黒色インクにより、幅広い階調および色範囲の画像を形成することができるが、シアン，マゼンタについては、濃淡２種類のインクを吐出可能である。更に、各色インクについては、小ドット、中ドット、大ドットの３種類のインク滴を吐出可能である。このため、データ変換装置１０も、このプリンタ２０に応じた階調変換を行なっている。そこで、まずカラープリンタ２０の概略構成について説明する。
【００２８】
図２に、本実施例のカラープリンタ２０の概略構成を示す。このカラープリンタ２０は、図示するように、キャリッジ４０に搭載された印字ヘッド４１を駆動してインクの吐出およびドット形成を行なう機構と、このキャリッジ４０をキャリッジモータ３０によってプラテン３６の軸方向に往復動させる機構と、紙送りモータ３５によって印刷用紙Ｐを搬送する機構と、制御回路６０とから構成されている。キャリッジ４０をプラテン３６の軸方向に往復動させる機構は、プラテン３６の軸と並行に架設されたキャリッジ４０を摺動可能に保持する摺動軸３３と、キャリッジモータ３０との間に無端の駆動ベルト３１を張設するプーリ３２と、キャリッジ４０の原点位置を検出する位置検出センサ３４等から構成されている。印刷用紙Ｐを搬送する機構は、プラテン３６と、プラテン３６を回転させる紙送りモータ３５と、図示しない給紙補助ローラと、紙送りモータ３５の回転をプラテン３６および給紙補助ローラに伝えるギヤトレイン（図示省略）とから構成されている。制御回路６０は、プリンタの操作パネル５９と信号をやり取りしつつ、紙送りモータ３５やキャリッジモータ３０、印字ヘッド４１の動きを適切に制御している。カラープリンタ２０に供給された印刷用紙Ｐは、プラテン３６と給紙補助ローラの間に挟み込まれるようにセットされ、プラテン３６の回転角度に応じて所定量だけ送られる。
【００２９】
キャリッジ４０には黒（Ｋ）インクを収納するインクカートリッジ４２と、シアン（Ｃ１）・ライトシアン（ＬＣ）・マゼンタ（Ｍ１）・ライトマゼンタ（ＬＭ）・イエロ（Ｙ１）の合計５色のインクを収納するインクカートリッジ４３とが装着されている。もちろん、ＫインクとＬＣインク・ＬＭインクとを同じインクカートリッジに収納したり、ＫインクとＹインクとを同じインクカートリッジに収納させる等してもよい。複数のインクを１つのカートリッジに収納可能とすれば、インクカートリッジをコンパクトに構成することができる。キャリッジ４０の下部にある印字ヘッド４１には、Ｋ・Ｃ・Ｍ・Ｙ・ＬＣ・ＬＭの各インクに対して、インク吐出用ヘッド４４・４５・４６・４７・４８・４９がそれぞれ形成されている。キャリッジ４０の底部には図示しない導入管が各インク毎に立設されており、キャリッジ４０にインクカートリッジを装着すると、カートリッジ内の各インクは導入管を通じて、それぞれのインク吐出用ヘッド４４ないし４９に供給される。各ヘッドに供給されたインクは、以下に説明する方法によって印字ヘッド４１から吐出され、印刷用紙上にドットを形成する。
【００３０】
図３（ａ）は各色ヘッドの内部構造を示した説明図である。各色のインク吐出用ヘッド４４ないし４９には、各色毎に４８個のノズルＮｚが設けられていて、各ノズルには、インク通路５０とその通路上にピエゾ素子ＰＥが設けられている。ピエゾ素子ＰＥは、周知のように、電圧の印加により結晶構造が歪み、極めて高速に電気−機械エネルギの変換を行なう素子である。本実施例では、ピエゾ素子ＰＥの両端に設けられた電極間に所定時間幅の電圧を印可することにより、図３（ｂ）に示すように、ピエゾ素子ＰＥが電圧の印加時間だけ伸張し、インク通路５０の一側壁を変形させる。この結果、インク通路５０の体積はピエゾ素子ＰＥの伸張に応じて伸縮し、この収縮分に相当するインクが、粒子ＩｐとなってノズルＮｚから高速で吐出される。このインクＩｐがプラテン３６に装着された印刷用紙Ｐに染み込むことにより、印刷用紙Ｐの上にドットが形成される。
【００３１】
図４は、インク吐出用ヘッド４４ないし４９におけるインクジェットノズルＮｚの配列を示す説明図である。図示するように、インク吐出用ヘッドの底面には、各色毎のインクを吐出する６組のノズルアレイが形成されており、１組のノズルアレイ当たり４８個のノズルＮｚが一定のノズルピッチｋで千鳥状に配列されている。尚、各ノズルアレイに含まれる４８個のノズルＮｚは、千鳥状に配列されている必要はなく、一直線上に配列されていてもよい。ただし、図４に示すように千鳥状に配列すれば、製造上、ノズルピッチｋを小さく設定し易いという利点がある。
【００３２】
図４に示すように、各色のインク吐出用ヘッド４４ないし４９は、キャリッジ４０の搬送方向にヘッドの位置がずれている。また、各色ヘッド毎のノズルに関しても、ノズルが千鳥状に配置されている関係上、キャリッジ４０の搬送方向に位置がずれている。カラープリンタ２０の制御回路６０は、キャリッジ４０を搬送しながらノズルを駆動する際に、ノズルの位置の違いによるヘッド駆動タイミングの違いを考慮しながら、適したタイミングでそれぞれのヘッドを駆動している。
【００３３】
本実施例のカラープリンタ２０は、図３，図４に示したように一定径のノズルＮｚを備えているが、かかるノズルＮｚを用いて、互いに大きさの異なる３種類のドットを形成することができる。以下に、この原理について説明する。図５は、インクが吐出される際のノズルＮｚの駆動波形と吐出されるインクＩｐとの関係を示した説明図である。図５において破線で示した駆動波形が通常のドットを吐出する際の波形である。区間ｄ２において一旦、基準電圧よりも低い電圧をピエゾ素子ＰＥに印加すると、先に図３で説明したのとは逆にインク通路５０の断面積を増大する方向にピエゾ素子ＰＥが変形する。ノズルへのインクの供給速度には限界があるため、インク通路５０の拡大に対してインクの供給量が不足して、インク通路内の圧力が低下する。この結果、図５の状態Ａに示した通り、インク界面ＭｅはノズルＮｚの内側にへこんだ状態となる。これは、インク通路の負圧とインク界面での表面張力とが釣り合っている状態である。また、図５の実線で示す駆動波形を用いて区間ｄ１に示すように電圧を急激に低くすると、インク通路の圧力は更に低下し、状態ａで示すように状態Ａに比べて大きく内側にへこんだ状態となる。
【００３４】
次に、ピエゾ素子ＰＥに高い電圧を印加すると（区間ｄ３）、インク通路５０の断面積の減少により通路内のインクが圧縮され、インク圧力の増加に対応して、インク滴がインクノズルから吐出される。このとき、圧縮開始時のインク圧力が低いと、圧縮後の圧力も低くなるので、吐出されるインク滴も小さくなる。従って、インク圧力があまり低くない状態、すなわちインク界面があまり内側にへこんでいない状態（状態Ａ）からは、状態Ｂおよび状態Ｃに示すごとく大きなインク滴が吐出され、インク界面が大きくへこんだ状態（状態ａ）からは状態ｂおよび状態ｃに示すごとく小さなインク滴が吐出される。このように、駆動電圧を低くする際（区間ｄ１，ｄ２）の変化率を変えれば、ドット径を変化させることができる。
【００３５】
カラープリンタ２０は、２種類の駆動波形を連続的に出力する。この様子を図６に示した。電圧を低くする際の変化率を比べれば、駆動波形Ｗ１とＷ２は、それぞれ小さなインク滴Ｉｐｓと大きなインク滴Ｉｐｍとに対応していることが分かる。キャリッジ４０が主走査方向に移動しながら、駆動波形Ｗ１を出力し、次いで駆動波形Ｗ２を出力する場合を考える。駆動波形Ｗ１により吐出される小さなインク滴Ｉｐｓは飛翔速度が比較的小さく、駆動波形Ｗ２により吐出される大きなインク滴Ｉｐｍは飛翔速度が大きいので、吐出されてから印刷用紙に到着するまでの所要時間は、小さなインク滴ＩＰｓの方が長くなる。当然、インクの吐出位置から印刷用紙に到着した位置の主走査方向へ移動距離も、小さなインク滴ＩＰｓの方が大きなインク滴ＩＰｍより長くなる。従って、駆動波形Ｗ１と駆動波形Ｗ２のタイミングを調節すれば、図６に示すように、小さなインク滴ＩＰｓと大きなインク滴ＩＰｍとを同一画素に吐出することが可能となる。
【００３６】
本実施例のカラープリンタ２０では、駆動波形Ｗ１のみをピエゾ素子ＰＥに供給することによって小さなドットを、駆動波形Ｗ２のみをピエゾ素子ＰＥに供給することによって中ドットを、駆動波形Ｗ１とＷ２をともに供給し、２つのインク滴を同一画素に吐出することによって大ドットを形成している。もちろん、駆動波形の種類を増やすことによって、更に多種類の大きさのドットを形成することも可能である。
【００３７】
図７は、カラープリンタ２０の制御回路６０の内部構成を示す説明図である。図示するように、制御回路６０の内部には、ＣＰＵ６１・ＰＲＯＭ６２・ＲＡＭ６３・コンピュータ８０とのデータのやり取りを行なうＰＣインターフェース６４・紙送りモータ３５やキャリッジモータ３０等とデータのやり取りを行なう周辺機器入出力部（ＰＩＯ）６５・タイマ６６・駆動バッファ６７等が設けられている。駆動バッファ６７は、インク吐出用ヘッド４４ないし４９にドットのオン・オフ信号を供給するバッファとして使用される。これらは互いにバス６８で接続され、相互にデータにやり取りが可能となっている。また、制御回路６０には、所定周波数で駆動波形を出力する発振器７０、および発振器７０からの出力をインク吐出用ヘッド４４ないし４９に所定のタイミングで分配する分配出力器６９も設けられている。
【００３８】
図７に示す構成を有する制御回路６０は、コンピュータ８０から画像データＦＮＬを受け取ると、ドットのオン・オフ信号を一時ＲＡＭ６３に蓄える。ＣＰＵ６１は、紙送りモータ３５やキャリッジモータ３０の動きと同期を採りながら、所定のタイミングでドットデータを駆動バッファ６７に出力する。
【００３９】
次に、ＣＰＵ６１が駆動バッファ６７にドットのオン・オフ信号を出力することによって、ドットが吐出されるメカニズムについて説明する。図８は、インク吐出用ヘッド４４ないし４９の１つのノズル列を例にとって、その接続を示す説明図である。インク吐出用ヘッド４４ないし４９のノズル列は、駆動バッファ６７をソース側とし、分配出力器６９をシンク側とする回路に介装されており、ノズル列を構成する各ピエゾ素子ＰＥは、その電極の一方が駆動バッファ６７の各出力端子に、他方が一括して分配出力器６９の出力端子に、それぞれ接続されている。分配出力器６９からは、図８に示す通り、発振器７０の駆動波形が出力されている。ＣＰＵ６１が駆動バッファ６７に、各ノズル毎のドットのオン・オフ信号を出力すると、オン信号を受け取ったピエゾ素子ＰＥだけが駆動波形によって駆動される。この結果、駆動バッファ６７からオン信号を受け取っていたピエゾ素子ＰＥのノズルから一斉にインク粒子Ｉｐが吐出される。
【００４０】
以上のようなハードウェア構成を有するカラープリンタ２０は、キャリッジモータ３０を駆動することによって、各色のインク吐出用ヘッド４４ないし４９を印刷用紙Ｐに対して主走査方向に移動させ、また紙送りモータ３５を駆動することによって、印刷用紙Ｐを副走査方向に移動させる。制御回路６０の制御の下、キャリッジ４０の主走査および副走査を繰り返しながら、適切なタイミングで印字ヘッド４１を駆動することによって、カラープリンタ２０は印刷用紙上にカラー画像を印刷している。
【００４１】
尚、本実施例では、上述のようにピエゾ素地ＰＥを用いてインクを吐出する方式のカラープリンタ２０を用いているが、他の方式によるプリンタを用いるものとしてもよい。例えば、インク通路に配置したヒータに通電し、インク通路内に発生する泡（バブル）によってインクを吐出する方式のプリンタや、熱転写等の他の方式のプリンタに適用するものとしてもよい。また、形成するドットの大きさ、インクの濃淡を更に増加させて濃度表現の解像度を更に向上させてもよい。
【００４２】
Ｂ．データ変換処理
カラープリンタ２０は、上述のようにカラー画像を印刷する機能を有するが、カラープリンタ２０が扱うことのできる画像データの形式は、コンピュータ８０が扱うことのできる画像の形式とは異なっている。一般には、解像度、色表現形式、濃度表現の階調などが異なる。このため、コンピュータ８０上にあるカラー画像をカラープリンタ２０で印刷するためには、データ形式をカラープリンタ２０の扱うことができるものに変換する必要がある。このデータ変換を行なうのが、階調データ変換装置１０である。
【００４３】
階調データ変換装置１０の内部構成は、図１によって既に大まかには説明した。本実施例では、このデータ変換装置１０は、いわゆるディスクリートな回路構成によりハードウェアとして実現されている。かかるデータ変換装置１０の内部で実行されるデータ変換処理の概要について、図９を用いて簡単に説明する。なお、図９は、データ変換装置１０が行なう処理の概要を示しており、プリンタ２０内部やコンピュータ８０内部のＣＰＵが実行するソフトウェアを示すものではない。
【００４４】
コンピュータ８０の中では、画像はマトリックスデータとして、つまり数字を縦・横に多数（例えば１０００行ずつ）並べた大きな表のようなものとして扱われている。表を構成している各マスは画素と呼ばれていて、コンピュータ８０は画素の値（階調値）をその地点での明るさと解釈する。階調値が８ビットで表現されている場合は、それぞれの階調値は０から２５５の間の値を取ることができ、階調値０は最も暗い状態を、階調値２５５は最も明るい状態を表している。このようにしてコンピュータ８０の中では、白黒画像は１枚のマトリックスデータによって表現されている。また、カラー画像もマトリックスデータを用いて表現することができる。すなわち、色彩学の教えるところによれば、赤色・緑色・青色の３色の光を適切に混合することであらゆる色を表現することができるので、赤色・緑色・青色の各色の明暗画像を表すマトリックスデータ、すなわちＲ画像・Ｇ画像・Ｂ画像が合成されたものとして、カラー画像を扱うことができる。
【００４５】
このような画像データをカラープリンタ２０で印刷するために、データ変換装置１０は、解像度変換処理を行なう（ステップＳ１００）。この処理の内容を以下に説明する。例えば、縦・横１０００×１０００の画素からなる画像データを、縦・横１０ｃｍの大きさに印刷する場合を考える。この場合は１画素が印刷用紙上では０．１ｍｍに相当する。１画素が印刷用紙上の何ｍｍに相当するかは、画像を印刷しようとする大きさによって、当然変わってくる。ここで、プリンタが単位長さ当たりに形成するドットの数（これをプリンタの解像度と呼ぶ）は、プリンタ機種によって決まっているから、画像を印刷しようとする大きさによって、原画像の解像度とプリンタの解像度とが一致する場合としない場合が生じる。プリンタの解像度が原画像の解像度と異なっているのでは、データ処理の都合上不便なので、画素を間引いて原画像の画素の数を減らしたり、逆に補間により画素の数を増やす等して、原画像の解像度をプリンタの解像度に一致させておくと便利である。解像度変換処理では、このような処理を行なう。
【００４６】
解像度変換処理が終わると、データ変換装置１０は、色変換処理を行なう（ステップＳ１０２）。前述したように、コンピュータは一般に、カラー画像を赤色（Ｒ）・緑色（Ｇ）・青色（Ｂ）の３色で表現するが、プリンタは一般にカラー画像を、シアン色（Ｃ）・マゼンタ色（Ｍ）・イエロ色（Ｙ）の３色で表現する。従って、カラー画像の印刷に際しては、Ｒ・Ｇ・Ｂの３色による色の表現方法を、Ｃ・Ｍ・Ｙの３色による色の表現方法に変更する必要がある。色変換処理はこのような変換を行なう処理である。色変換処理を行なうと、それぞれ２５６階調を持ったＲ・Ｇ・Ｂ階調画像データが、２５６階調を持ったＣ・Ｍ・Ｙの階調画像データに変換される。
【００４７】
実際には、コンピュータは、図１０に示すような色変換表を参照して、Ｒ・Ｇ・Ｂ階調値をＣ・Ｍ・Ｙの階調値に変換している。図示するように、変換表は、Ｒ・Ｇ・Ｂの階調値を軸とする３次元の数表であり、各軸の値は０から２５５の値を採りうる。このように１辺の長さが２５５で、各辺がＲ・Ｇ・Ｂ軸となっているような立方体を色立体と呼ぶ。また、互いに直交するＲ・Ｇ・Ｂ各軸が張る空間を色空間と呼ぶ。変換表は、色立体を小さな立方体に細分し、小さな各立方体の頂点毎に、対応するＣ・Ｍ・Ｙの階調値を記憶したものである。変換表を参照して色変換を行なうには、次のようにして行なう。例えば、Ｒ・Ｇ・Ｂ階調値がそれぞれＲＡ・ＧＡ・ＢＡで表される色をＣ・Ｍ・Ｙ階調値で表現する場合、色空間上で座標（ＲＡ，ＧＡ，ＢＡ）の点Ａを考え、点Ａを含むような小さな立方体（ｄＶ）を見つけ出す。この立方体の各頂点のＣ・Ｍ・Ｙ階調値を、変換表を参照して求め、得られたＣ・Ｍ・Ｙ階調値から、補間によって点ＡのＣ・Ｍ・Ｙ階調値を求める。
【００４８】
また、ほとんどの場合は、色変換処理の中で色補正や下色除去も併せて行なう。色補正とは、Ｒ・Ｇ・Ｂそれぞれの階調値を補正することによって、カラー画像を読み込む際に装置毎に感度特性が違う影響を除いたり、または、Ｃ・Ｍ・Ｙの各階調値を予め補正して印刷装置毎の色再現特性の違いを除くための処理をいう。色補正を行なうことにより、画像を読み込む機器や印刷装置の違いによらず、正確な色を表現することが可能となる。
【００４９】
下色除去とは、Ｃ・Ｍ・Ｙ階調画像から黒色（Ｋ）成分を抽出し、Ｃ・Ｍ・Ｙ・Ｋの階調画像データに変換する処理である。下色除去を行なうことにより、等量ずつのＣ・Ｍ・Ｙ３色のインクを同量のＫインク１色で置き換えることができるので、インク使用量を減少させることができ、インクデューティの面からも好ましい。
【００５０】
色変換処理を終了すると、データ変換装置１０は、ハーフトーニング処理を行なう（ステップＳ１０４）。以下にこの処理の内容について説明する。色変換後の画像データは、Ｃ・Ｍ・Ｙ・Ｋの４色のマトリックスデータとなっていて、それぞれの画素は２５６階調のいずれかの値を採る。一方プリンタは、印刷用紙上にドットを形成することによって画像を印刷しており、ドットは形成するか否かの２つの状態しか採り得ない。これを改善するために、前述のようにドットの大きさを変える、インクとして淡い三原色を用意するなどして中間状態を含めた多値のドットを印刷可能なプリンタも存在するが、これら機械的な対処では依然として表現しうる階調値には限界がある。従って、２５６階調を有する画像を、プリンタが表現できる非常に少ない階調で表現された画像に変換する必要がある。このような変換を行なう処理がハーフトーニング処理である。
【００５１】
図１１は、ハーフトーニング処理を行なった様子を示す説明図であり、図１１（ａ）はハーフトーニング処理を行なう前の色変換後の画像データを、また図１１（ｂ）はハーフトーニング処理を行なった後の画像データの原理を示している。図示するように、ハーフトーニング処理前の画像を構成する各画素には、２５６階調のいずれかの値が書き込まれているが、ハーフトーニング処理後の画素には、ドットを形成する（ＯＮ）か、しないか（ＯＦＦ）を表すいずれかの値が書き込まれている。尚、図１１（ｂ）では、ドットの分布状況を分かり易くするために、ＯＮが書き込まれている画素にはハッチを施し、ＯＦＦが書き込まれている画素は白抜きで表している。なお、この図１１は、シアン，マゼンタ，イエロ，ブラックの４色について、ドットを形成する・しないという単純な２値化の例を示しているが、本実施例のプリンタ２０は、通常のシアン，マゼンタインクの他に、濃度の低いライトシアンインク，ライトマゼンタインクによりドットが形成可能であり、更に、各色について大中小のドットが形成可能である。従って、実施例におけるハーフトニングは、単純な２値化ではなく、シアン，マゼンタについては、最大７値化が可能であり、イエロ，ブラックについては、最大４値化が可能である。
【００５２】
２５６階調を有する画像データを、プリンタで表現可能な階調数に応じて単に２値化もしくは３値化等するだけなら、所定の閾値と各画素の階調値とを比較し、値の大小によって多値化することも可能である。しかし、このように多値化した画像を印刷すると、原画像には存在しないいわゆる疑似輪郭が印刷画像に現れるという問題が生じる。そこで、この問題を回避すべく、ハーフトーニングの手法には多くの方法が提案されており、代表的なものに、組織的ディザ法と呼ばれる方法と、誤差拡散法と呼ばれる方法とがある。これらの処理は、通常は、コンピュータ８０にインストールされたプリンタドライバ内で実行されるが、本実施例では、データ変換装置１０の内部で、ハードウェアにより実行される。その具体的構成については後述する。
【００５３】
ハーフトーニング処理が終了すると、画素の再配置を行なう（ステップＳ１０６）。この処理は、ハーフトーニング処理によってドット形成の有無を表す形式に変換された画像データを、カラープリンタ２０に転送すべき順序に並べ替える処理である。すなわち、前述のようにカラープリンタ２０は、キャリッジ４０の主走査と副走査を繰り返しながら、印字ヘッド４１を駆動して、印刷用紙Ｐの上にドット列を形成していく。図４を用いて説明したように、各色毎のインク吐出用ヘッド４４ないし４７には、複数のノズルＮｚが設けられているので、１回の主走査で複数本のドット列を形成することができるが、それらのドット列は、互いにノズルピッチｋだけ離れている。ノズルピッチｋはできるだけ小さな値とすることが望ましいが、ヘッド製造の都合上、ノズルピッチｋを画素の間隔（ノズルピッチｋが１の場合に相当）まで小さくすることは困難である。その結果、画素間隔で並ぶドット列を形成するには、先ず、ノズルピッチｋだけ離れた複数のドット列を形成し、次にヘッド位置を少しずらして、ドット列の間に新たなドット列を形成していくといった制御が必要となる。
【００５４】
また、印刷画質を向上させるために、１本のドット列を複数回の主走査に分けて形成したり、更には、印刷時間を短縮するため、主走査の往動時と復動時のそれぞれでドットを形成するといった制御も行なわれる。これらの制御を行なうと、カラープリンタ２０が実際にドットを形成する順序は、画像データ上で画素の順序と異なったものとなるので、画素再配置処理において、データの並べ替えを行なうのである。画素再配置処理を行なうと、画像データはプリンタ２０が印刷可能な形式の画像データＦＮＬに変換される。
【００５５】
Ｃ．データ変換装置の内部構成および動作
前述したようにデータ変換装置１０は、ディスクリートな回路構成により実現されたＣＬＭ（カラールックアップモジュール）１２を初めとする複数のモジュールによって構成されている。各モジュールは、前述した画像データ変換の各工程（図９参照）を、分担して行なっており、コンピュータ８０から供給された画像データＯＲＧは、それぞれのモジュールで所定の処理を加えられ、最終的には、カラープリンタ２０で印刷可能な画像データＦＮＬに変換される。以下に、それぞれのモジュールの動作について説明する。
【００５６】
（１）カラールックアップモジュール（ＣＬＭ）
ＣＬＭ（カラールックアップモジュール）１２は、解像度変換（ステップＳ１００）と色変換（ステップＳ１０２）とを行なうモジュールであり、図１２に、その構成を、ブロック図として示した。図１２に示すように、このモジュールは、バス１７からデータの取り込みを行なうＩＰＭ１２０と、取り込んだデータの解像度変換を行なうスキャンコンバータ（以下、ＳＣＶ）１２１、変換されたデータの色変換を行なうカラーコンバータ（ＣＣＶ）１２２、変換したデータをバス１７に出力するＯＰＭ（アウトプットインターフェイスモジュール）１２３、ＳＲＡＭ１６との間でデータのやり取りを司るメモリインタフェースモジュール（ＭＩＦ）１２６の５つのサブモジュールから構成されている。ＯＰＭ１２３には、次段のハーフトーンモジュール（ＨＴＭ）１３に割り付けられたアドレス値が予め設定されており、該アドレス値とともに、ＣＣＶ１２２の変換結果をバス１７に出力する。また、ＳＲＡＭ１６には解像度変換に必要なバイリニアあるいはバイキュービクルのマップ、色変換処理に必要な色立体（図１０参照）データが記憶されており、ＳＣＶ１２１、ＣＣＶ１２２は、受け取った画像データを、メモリインターフェース（ＭＩＦ）１２６によりアドレスに変換し、このアドレスを用いてＳＲＡＭ１６内を参照することにより、ＳＲＡＭ１６から、解像度変換されたデータおよびこれを色変換されたデータを読み出すことができる。
【００５７】
通常の場合、すなわちコンピュータ８０から出力されるデータがＲＧＢの階調画像データである場合は、ＣＬＭ１２のＳＣＶ１２１、ＣＣＶ１２２による上記変換処理が必要となる。ところが、コンピュータ８０から供給される画像データが、解像度に関する指定が無く、白黒画像である場合または色変換済みの画像データである場合などには、データ変換装置１０で色変換処理を行なう必要はない。このような場合は、ＩＰＭ１２０が入力したデータは、図１２に示したように、ＳＣＶ１２１，ＣＣＶ１２２を介することなく、ＯＰＭ１２３からバス１７に出力される。なお、図１では、前段のモジュールが処理したデータは、次段のモジュールが直接受け取るものとして描いてあるが、データに、次に処理を行なうべきモジュールに予め割り当てられたアドレス値を付加しておき、各モジュールがバス１７に現われたデータから、自分が取り込むべきデータを判断して処理を行なうものとしてもよい。この場合には、各モジュールのＯＰＭが出力するデータに付加するアドレス値を変更することによって、そのデータを受け取って処理を行なうモジュールを自由に指定することができる。
【００５８】
なお、これらの演算を実行するには相応の処理能力を有する制御回路が必要となる。この様な複雑な処理を実行する制御回路には、２つの方式が知られている。１つ目の方式はランダムロジック方式と呼ばれる方式であって、フリップフロップと、ＡＮＤゲートやＯＲゲート等の基本ゲートとを組み合わせ、いわゆる順序回路を形成し、所定の制御信号を発生させるものである。もう１つの方式は、マイクロプログラム方式と呼ばれる方式と呼ばれるものであって、一連の制御信号を予め記憶しておき、記憶しておいた制御信号を次々と読み出して演算回路部に供給することにより、演算回路部に所定の演算を行なわせるものである。どちらの方式を採用することもできるが、本実施例の各モジュールでは、動作の迅速性に優れるランダムロジック方式を採用している。
【００５９】
（２）ハーフトーンモジュール（ＨＴＭ）
ハーフトーンモジュール（ＨＴＭ）１３の構成を、図１３に示す。このＨＴＭ１３は、色補正済みのデータを用いて多値化の処理を行なうモジュールである。図示するように、このモジュールも、他のモジュールと同様に、バス１７からデータの取り込みを行なうＩＰＭ（インプットサブモジュール）１３０と、取り込んだデータに対して、ハーフトーニング処理のための予備的な処理を行なうプレディザテーブルモジュール（ＰＲＤＴ）１３１、ＰＲＤＴ１３１の出力するデータを用いて誤差拡散法を基本とするハーフトニング処理を行なうハーフトーンブロックモジュール（ＨＢ）１３２、変換したデータをバス１７に出力するＯＰＭ（アウトプットインタフェースモジュール）１３３、ＳＲＡＭ１６との間でデータのやり取りを司るメモリインタフェースモジュール（ＭＩＦ）１３６の５つのサブモジュールから構成されている。
【００６０】
ＰＲＤＴ１３１は、ハーフトニングのための予備的な処理を行なうモジュールであり、次の処理を行なう。まず、階調データＤＳを入力し、１ビットモードが指定されている場合には、図１４により、他方２ビットモードが指定されている場合には、図１５により、それぞれ、各ドットのドット記録率の期待値のデータに変換する処理を行なう。１ビットモードとは、形成されるドットが各色について単一の場合を言う。また、２ビットモードとは、形成されるドットが各色について、大中小の３種類である場合を言う。後者においては、ドットなし、小ドット、中ドット、大ドットの４階調が一つの画素について実現可能であり、４階調＝２ビットであることから、２ビットモードと呼んでいる。カラープリンタ２０が発生し得るドットが、複数種類（例えば本実施例のように大中小の３種類）の場合、図１５に示した例では、階調値が増加するにつれて、小ドット記録率が増加し、階調値がある値ＤＳ１以上になると中ドットか形成されるようになり、更に階調値ＤＳが所定値ＤＳ２以上になると大ドットが形成されるように設計されている。また、濃度表現力の分解能が最も高い小ドットは、濃度階調の総ての範囲において出現するように設計されている。
【００６１】
ＰＲＤＴ１３１の内部構成は特に図示しないが、与えられた階調データを用いて、ＳＲＡＭ１６内に記憶されたテーブルを参照することにより、大中小の各ドットの記録率の期待値のデータを読み出す簡易な構成により、ハードウェアとして容易に実現可能である。例えば、入力階調値をアドレスの下位ビットに割り当て、各色の違いを上位ビットに割り当て、両者を合成して得られたアドレスによりＳＲＡＭ１６からデータを読み出す構成などが考えられる。読み出された各データ、即ち大中小のドットの記録率の期待値を、それぞれ大ドットデータＬｉｎ、中ドットデータＭｉｎ、小ドットデータＳｉｎと呼ぶものとする。変換後のデータを単にドット記録率とせず、ドット記録率の期待値と呼ぶのは、最終的に各ドットを形成するか否かは、ＨＢ１３２により判断されるからである。ＨＢ１３２内部の処理については、後で詳しく説明する。
【００６２】
１ビットモードまたは２ビットモードのいずれにせよ、ＰＲＤＴ１３１により、原画像の階調データＤＳは、ドット記録率に対応したデータに置き換えられることになる。なお、図１４では、階調値とドット記録率との関係をほぼ直線的に描いているが、階調値とドット記録率との関係は、カラープリンタ２０が有する画像再現上のγ特性などを補正して原稿画像の濃度を正確に再現するよう定められるので、必ずしも直線的な関係になるとは限らない。
【００６３】
次に、ＨＢ１３２の内部構成とその働きについて説明する。ＨＢ１３２の内部構成は、処理の高速化のために、ディスクリートなハードウェア構成により実現されている。この構成を、図１６〜図２２に階層的に示す。各図の関係を予め説明すると、図１６はＨＢ１３２の概略構成を示すブロック図である。図１７は、ＨＢ１３２内部で多値化の処理をしている第１のハーフトーン回路２１０の構成を示すブロック図、図１８は、同じく第２のハーフトーン回路２２０の構成を示すブロック図である。更に、図１９は、ディザマトリクスの考え方を示す説明図、図２０は、第２のドット形成判定回路２１２，小ドット形成判定回路２２３の内部構成を示す機能ブロック図、図２１は、ドットデータ出力回路ＥＥの機能ブロック図である。更に図２２は、誤差拡散範囲を示す説明図、図２３は、ＨＢ１３２における誤差演算回路２５０の内部構成を示すブロック図、図２４は、誤差演算回路２５０における主走査バッフアＭＢおよび副走査バッファＳＢの内部構成を示すブロック図である。
【００６４】
図１６に示したように、ＨＢ１３２は、シアン，マゼンタ，イエロ，ブロックの４色についてハーフトーン処理を行なうハーフトーン回路２１０、ライトシアン，ライトマゼンタの２色に対応したハーフトーン処理を行なうハーフトーン回路２２０、これらのハーフトーン回路２１０，２２０の動作を制御する制御回路２３０、各ハーフトーン回路２１０，２２０の動作を受けて誤差拡散の計算を行なう誤差演算回路２５０、各ハーフトーン回路２１０，２２０の出力を受けてこれをフォーマットしかつ選択的に出力する出力回路２７０等を備える。なお、シアン，マゼンタ，イエロ，ブロックの４色についてハーフトーン処理を行なうハーフトーン回路２１０は、４つとも同一の構成を有するが、以下の説明で区別が必要になる場合には、それぞれハーフトーン回路２１０Ｋ１，２１０Ｃ１，２１０Ｍ１，２１０Ｙ１と表記する。また、ライトシアン，ライトマゼンタの２色に対応したハーフトーン処理を行なうハーフトーン回路２２０も、同様に、ハーフトーン回路２２０Ｃ２，２２０Ｍ２として区別する。
【００６５】
ハーフトーン回路２１０は、図１７に示すように、組織的ディザ法により大ドットおよび中ドットのオン・オフを判定する第１のドット形成判定回路２１１と、誤差拡散により小ドットのオン・オフを判定する第２のドット形成判定回路２１２とを備える。他方、ハーフトーン回路２２０は、図１８に示すように、組織的ディザ法により大ドットのオン・オフを判定する大ドット形成判定回路２２１と、誤差拡散により中ドットのオン・オフを判定する中ドット形成判定回路２２２と、同じく小ドットの判定を行なう小ドット形成判定回路２２３とを備える。各図に示したように、ハーフトーン回路２１０は、大ドットおよび中ドットのドット形成を、一括してディザ法により判定し、小ドットのドット形成を誤差拡散により判定する構成となっている。他方、ハーフトーン回路２２０は、大ドットのドット形成をディザ法により判定し、中ドットおよび小ドットの判定を、誤差拡散により行なう構成となっている。
【００６６】
ハーフトーン回路２１０および２２０には、前段のＰＲＤＴ１３１による処理によって求められた大中小ドットそれぞれの記録率の期待値のデータ、即ち大ドットデータＬｉｎ、中ドットデータＭｉｎ、小ドットデータはＳｉｎを入力し、これらのデータに対して組織的ディザ法及び誤差拡散法による濃度調整を行ない、最終的に大ドット、中ドット、小ドットの形成を行なうか否かの二値的なデータ（Ｌｏｎ、Ｍｏｎ、Ｓｏｎ）を出力する。
【００６７】
そこで、次に第１のドット形成判定回路２１１の内部構成とその働きについて簡略に説明する。なお、入出力の信号線は異なるものの、大ドット形成判定回路２２１もほぼ同様の回路構成を備える。第１のドット形成判定回路２１１には、各画素の各色（Ｃ，Ｍ，Ｙ，ＬＣ，ＬＭ，Ｋ）について大ドットおよび中ドットのドット記録率の期待値である大ドットデータＬｉｎ，中ドットデータＭｉｎと、ディザマトリクスからの閾値データＤｔｈとが入力される。即ち、第１のドット形成判定回路２１１は、ＳＲＡＭ１６に記憶したディザマトリクスから得られる閾値データＤｔｈを参照して、ドットのオン・オフの割合を決定する回路である。閾値データＤｔｈは、次のように決定する。ＳＲＡＭ１６の所定のアドレスには、図１９に示すように、横方向のサイズがＤＸ、縦方向のサイズがＤＹの分散型ディザマトリクスを大中のドット用にそれぞれ記憶しておく。第１のドット形成判定回路２１１には、各画素の位置の情報（Ｘ，Ｙ）を入力し、この画素の位置情報（Ｘ，Ｙ）を、ディザマトリクスのサイズＤＸ，ＤＹでそれぞれ除した余りを求める演算器が設けられている。この演算器からの出力をＭＩＦ１３６によりアドレスに変換し、変換済みのアドレスを用いて、ＳＲＡＭ１６に記憶されたディザマトリクスから大中のドットについての閾値データＤｔｈを読み出す。第１のドット形成判定回路２１１の内部には、二つの比較器が設けられており、それぞれの比較器により、大ドット用の閾値データＤｔｈｌと大ドットデータＬｉｎ、中ドット用の閾値データＤｔｈｍと中ドットデータＭｉｎとを比較する。大ドットデータＬｉｎの方が大きければ、大ドットをオン（ドットを形成）とし、閾値データＤｔｈｌより大ドットデータＬｉｎが小さければ、大ドットをオフ（ドットを非形成）とする。なお、大ドットを形成しない場合のみ、中ドットについても同様の判断を行ない、中ドットの形成について判断する。
【００６８】
分散型のディザマトリクスは、一様なドットデータが入力されたとき、ドットの分散性を確保して、ドットが順次オンになっていくように、閾値を定めてあるから、このディザマトリクスを用いて、各画素のドットのオン・オフを決定することにより、原画像の階調値を反映させたハーフトニングを、高速に完了することができる。なお、上記の説明では、大ドットと中ドットについて、別々の閾値データＤｔｈｌ，Ｄｔｈｍを用いるものとして説明したが、実際の回路では単一の閾値データＤｔｈを入力し、これをシフトすることにより、両ドットで共用している。この場合には、大ドットや中ドット単独での分散性に加えて、大中の両ドット全体での分散性も確保されることになり好適である。
【００６９】
以上第１のドット形成判定回路２１１の構成と働きについて説明したが、大ドット形成判定回路２２１もほぼ同一の回路構成を有する。異なるのは、大ドット形成判定回路２２１が、大ドットデータＬｉｎと閾値データＤｔｈのみを入力しており、大ドットについてのみドット形成の有無を判断する点だけである。
【００７０】
次に、第２のドット形成判定回路２１２の構成と働きについて説明する。なお、中ドット形成判定回路２２２，小ドット形成判定回路２２３も、この第２のドット形成判定回路２１２とほぼ同一の回路構成を有する。基本的な考え方、回路構成、動作は同一であり、判断の対象のみ異なる。そこで、第２のドット形成判定回路２１２を代表例として、以下誤差拡散を用いてハーフトニングする回路について説明する。第２のドット形成判定回路２１２は、前段のＰＲＤＴ１３１から出力される小ドットデータＳｉｎと、誤差拡散により周辺の画素から拡散されてきた誤差の累積値ｅｒ００とを外部から受け取り、更に内部的には、第１のドット形成判定回路２１１によるドット形成の判断結果Ｌｏｎ，Ｍｏｎとを入力する。第１のドット形成判定回路２１１からのその判断結果を受け取るのは、大ドットや中ドットが形成された場合には、小ドットを形成しないからである。即ち、判断結果を示す信号Ｌｏｎ，Ｍｏｎは、第２のドット形成判定回路２１２の動作において小ドットの形成を行なわせないためのマスク信号として働いている。
【００７１】
第２のドット形成判定回路２１２は、小ドットデータＳｉｎに誤差の累積値ｅｒ００を加えた値と予め内部に用意した閾値とを比較し、加算値が閾値より大きければ小ドットを形成するものと判断し、逆の場合には、小ドットを形成しないと判断する回路である。このドット形成の判定結果が、信号Ｓｏｎとして出力される。また、小ドットがオン・オフいずれかに決定されると、小ドットの形成の有無に応じて、その画素における濃度誤差が求められる。これが、周辺に拡散すべき濃度誤差ｅｒｗとして、誤差演算回路２５０に出力される。
【００７２】
第２のドット形成判定回路２１２の動作の概要は、以上の通りであるが、実際には、更に種々の条件を考慮して、小ドットのオン・オフを判定している。図２０は、実際の第２のドット形成判定回路２１２の内部構成を示すブロック図である。図２０に示すように、第２のドット形成判定回路２１２は、ドットデータ生成回路２１３、閾値生成回路２１４、比較器２１５、マスク回路２１６、ホワイトフラグ回路２１７および誤差算出回路２１８から構成されている。ドットデータ生成回路２１３は、修正ドットデータｐｄｓｒｃと誤差の累積値ｅｒ００とを加算する加算回路ａｄｄ１と、その加算値を保持するラッチＬＬ１とからなる。誤差の累積値ｅｒ００は、誤差演算回路２５０により演算されるが、その詳細については後述する。
【００７３】
ドットデータ生成回路２１３に入力される修正ドットデータｐｄｓｒｃは、図２１に示したドットデータ出力回路ＥＥにより生成される信号であり、図示するように、小ドットデータＳｉｎのみならず、大ドットデータＬｉｎ，中ドットデータＭｉｎ、更には黒色インクについてのドットデータＫｉｎ、ペアレントカラーについてのドットデータＰＣｉｎをも考慮して生成される値である。ここで、ペアレントカラーとは、淡インクの場合の濃インクを意味しており、ライトシアンインクについての判定を行なう場合には、シアンインクのドットデータを参照することになる。このドットデータ出力回路ＥＥは、ゲートアレイにより形成されており、ドット形成判定回路が判定する対象が小ドットである場合には、小ドットデータＳｉｎに基づき、これを他のドットデータで補正した信号を出力する。例えば、ハーフトーン回路２１０がライトシアンの小ドットについて判定を行なう場合には、ライトシアンインクの小ドットのドットデータＳｉｎをそのまま誤差拡散によるハーフトニングに供するのではなく、その周辺に仮に黒色のドットが形成されている場合には、ここにライトシアンのインクによる小ドットが形成されにくくなるように、局所的に小ドットデータを小さくするよう局所的に補正を行なうのである。こうした補正を受けたドットデータを修正ドットデータｐｄｓｒｃと呼んでいる。
【００７４】
併せて、図２１に示したドットデータ出力回路ＥＥが生成する信号を説明する。ドットデータ出力回路ＥＥは、上述した修正ドットデータｐｄｓｒｃの他、後段のハーフトニング処理における閾値を決めるためのデータａｔｓｒｃ、着目画素にドットを形成した際の影響の及ぶ範囲を決定する信号ｐｏｇｓｒｃなども出力している。信号ａｔｓｒｃは、この値を利用してＳＲＡＭ１６を参照し、閾値データｓｒｍｄｉｎを求めるために利用される信号である。閾値データｓｒｍｄｉｎについては、後述する。また、信号ｐｏｇｓｒｃは、ポストガンマ補正などに用いられる信号であり、ドットを形成した場合の影響の度合いを、ドット形成の状況により変更する目的で用いられる。本実施例では、この信号についての説明は省略する。
【００７５】
図２０に示したドットデータ生成回路２１３に入力される修正ドットデータｐｄｓｒｃは、上記の通り、他のドットデータによっても影響を受けたデータではあり、判断しようとする画素自体の小ドットデータＳｉｎのみならず、他のドットデータの影響を考慮したものとなっている。これらを考慮したドットデータと周辺の画素から配分された誤差の累積値ｅｒ００とが、ドットデータ生成回路２１３の加算器ａｄｄ１により加算され、ラッチＬＬ１により保持され、出力されることになる。
【００７６】
他方、閾値生成回路２１４は、ドット形成の判定を行なう閾値データｓｒｍｄｉｎとノイズ信号ｎｏｓとを加算する加算器ａｄｄ２と、その加算値を保持するラッチＬＬ２とからなる。ここで、閾値データｓｒｍｄｉｎは、先に図２１に示したゲートアレイにより生成される信号ａｔｓｒｃに基づいて、ＳＲＡＭ１６を参照することにより得られた信号である。閾値データｓｒｍｄｉｎは、誤差拡散における尾引きなどの問題解消するために、ドットデータに応じた値が生成されるが、平均値は、小ドットデータの平均値と略同一の値となる。また、ノイズ信号ｎｏｉｓｅは、誤差拡散における疑似輪郭の発生などを防止するために、閾値に加えられるランダムノイズである。この閾値生成回路２１４により、誤差拡散法の判断における閾値が適切に求められ、これがラッチＬＬ２により保持され出力されることになる。
【００７７】
ドットデータ生成回路２１３および閾値生成回路２１４からの出力は、比較器２１５に入力され、ここでその大小の比較が行なわれる。比較器２１５による比較の結果は、マスク回路２１６および誤差算出回路２１８に出力される。マスク回路２１６に出力された判定結果は、最終的には、小ドットのオン・オフを示す信号Ｓｏｎとして出力される。また、小ドットデータＳｉｎを入力しているホワイトフラグ回路２１７の出力も、マスク回路２１６および誤差算出回路２１８に入力されている。更に、誤差算出回路２１８には、ドットデータ生成回路２１３の出力や、小ドットを形成した場合のドットの濃度評価値（オンバリュー）ｏｎｖなどの信号も入力されている。
【００７８】
マスク回路２１６には、この他、他の色や他の大きさのドットに関するドット形成の判定結果も入力されている。即ち、黒色インク用のハーフトーン回路２１０Ｋ１の判定結果Ｋｏｎ、同じ色のインクの大ドットの判定結果Ｌｏｎ、同じく中ドットの判定結果Ｍｏｎ、更にペアレントカラーについての判定結果ＰＣｏｎが入力されている。ペアレントカラーについての判定結果ＰＣｏｎは、ライトシアンインクについてのドット形成判定回路ではシアンインクについての判定結果Ｃｏｎが、ライトマゼンタインクについてのドット形成判定回路ではマゼンタインクについての判定結果Ｍｏｎが、それぞれ相当する。マスク回路２１６は、これらの判定結果を入力し、比較器２１５による判定結果がオン、即ちその画素に小ドットを形成すると判断した場合でも、黒色ドットやペアレントカラーのドット、あるいは同じ色のインクの大または中ドットが形成されている場合には、小ドットをオンにする信号をマスクして、判定結果Ｓｏｎをオフとする。なお、マスク回路２１６により信号がマスクされたことは、誤差算出回路２１８にも出力され、通知される。
【００７９】
ホワイトフラグ回路２１７は、修正ドットデータｐｄｓｒｃを入力し、この修正ドットデータｐｄｓｒｃが値０の場合に、ホワイトフラグと呼ばれるフラグ信号を出力する回路である。この信号が出力されると、マスク回路２１６はドットが形成されないように比較器２１５の判定結果をマスクし、誤差算出回路２１８は誤差計算を一旦打ち切る。これは、濃度の高い二つの領域の間に真っ白の細い領域が存在する場合で、この白い領域が誤差拡散の範囲を超えている場合に有用な技術である。誤差拡散の範囲については、まだ説明していないが、通常ラスタ方向に数画素から十数画素、場合によっては数十画素の範囲に亘って、誤差は拡散される。この場合、白い細い領域の幅が、誤差拡散の範囲より狭いと、誤差は、真っ白な領域を越えて、隣接する領域に影響を与えることがあり得る。こうした場合にホワイトフラグ回路２１７が出力するホワイトフラグを用いてこの影響を除くのである。また、真っ白な領域では、ドットを強制的に形成しないようにマスクするのである。
【００８０】
誤差算出回路２１８は、誤差の演算をするものであり、基本的には、比較器２１５および誤差算出回路２１８の出力を参照して、ドットを形成するとの判断がなされた場合には、ドットデータ生成回路２１３の出力と評価値ｏｎｖとの差分を、濃度誤差ｅｒｗとして演算、ドットを形成しないと判断された場合には、ドットデータ生成回路２１３の出力を濃度誤差として演算する回路である。
【００８１】
以上図１７ないし図２１を用いて説明した回路構成により、シアン，マゼンタ，イエロ，ブラックインクのドットについては、大ドットデータＬｉｎおよび中ドットデータＭｉｎを分散型ディザにより処理して大ドットおよび中ドットのオン・オフを決定し、この判定結果その他を利用して、小ドットデータＳｉｎと周辺画素からの濃度誤差の累積値ｅｒ００に基づいて、誤差拡散法により小ドットのオン・オフを決定することができる。また、ライトシアン，ライトマゼンタインクのドットについては、大ドットデータＬｉｎについては分散型ディザにより処理して大ドットのオン・オフを決定し、中ドットおよび小ドットについては、それぞれ誤差拡散方により、各ドットのオン・オフを決定することができる。
【００８２】
以上の説明したように、第２のドット形成判定回路２１２や中ドット形成判定回路２２２，小ドット形成判定回路２２３による誤差拡散処理では、現在処理中である画素に中ドットや小ドットを形成するか否かを判断するために、各画素で発生した濃度誤差ｅｒｗに所定重み付けをしつつ累積した濃度誤差の累積値ｅｒ００のデータが必要となる。本実施例では、誤差拡散の範囲は、図２２に示すように、着目している画素Ｐと同じラスタ内で主走査方向に１６画素分、着目画素Ｐが属するラスタに副走査方向に隣接するラスタ内で１８画素分、計３４画素分となっている。したがって、一つの画素についてドットを形成するか否かの判断を行なうと、ドット形成の有無により生じた濃度誤差ｅｒｗを、所定の重み付けを行ないつつ、３４個のデータに分けてこれを逐次累積していくことが必要になる。この様な時系列的に過去のデータを累積したデータである累積値ｅｒ００は、通常ならば各画素の処理によって濃度誤差ｅｒｗが発生するたびにＳＲＡＭ１６の３４画素分のアドレスに一旦記憶し、着目画素Ｐについての判断を行なう際にＳＲＡＭ１６から読み出して処理することが情報処理の技術分野では一般的である。しかし、この様に多数のデータをＳＲＡＭ１６を介して得ていたのでは、処理時間が長いＳＲＡＭ１６へのアクセス処理を多数回に亘って行なうことになり、誤差拡散処理に多大な処理時間を必要とする。ＳＲＡＭ１６の参照などをＣＰＵを用いず、ハードウェアにより行なっても、アクセスの回数が多いため、処理時間が長くかかることには変わりがなかった。
【００８３】
本実施例では、かかる問題を考慮して、高速アクセス可能なレジスタ群からなる誤差演算回路２５０を採用している。そこで、以下この誤差演算回路２５０の構成と働きについて、詳しく説明する。なお、図２２に例示したように、本実施例では、着目している画素Ｐについて発生した誤差を、周辺の３４の画素に配分するが、その際の重み付けは、着目画素に主走査方向または副走査方向に隣接する画素については１／８、主走査方向に一つ隔たった画素については１／１６、二つおよび三つ隔たった画素については１／３２、主走査方向にそれ以上に隔たった残り１２の画素については１／６４である。また着目画素が属するラスタに隣接するラスタ内では、着目画素に隣接する１／８の重み付けの画素の両隣が１／１６、このラスタ内で主走査方向に一つ戻った位置の画素については１／１６、更に二つおよび三つ戻った位置の画素については１／３２、このラスタ内でそれ以上に隔たった残り１２の画素については１／６４となっている。これらの重み付けの総和は、値１（＝２×１／８＋４×１／１６＋４×１／３２＋２４×１／６４）である。
【００８４】
誤差演算回路２５０は、ＳＲＡＭ１６へのアクセスを最小限度としつつ上記誤差拡散処理に必要なデータであるｅｒ００を演算し、図１６に示したように、各ハーフトーン回路２１０，ハーフトーン回路２２０に出力する回路である。図２３は、この誤差演算回路２５０の内部構成を示すブロック図である。誤差演算回路２５０は、図２３に示すように、階調変換する着目画素の階調変換により生じた濃度誤差ｅｒｗを主走査方向に分配する画素数（実施例では１６個）に対応して設けられた主走査バッファＭＢと、着目画素の階調変換により生じた濃度誤差ｅｒｗを着目画素の隣接ラスタ上で主走査方向に分配する画素数（実施例では１８個）に対応して設けられた副走査バッファＳＢと、着目画素の階調変換により生じた濃度誤差ｅｒｗに主走査バッファＭＢと副走査バッファＳＢの各バッファに応じた所定の重み付けを施すシフトレジスタ群ＳＲと、各シフトレジスタ群ＳＲに動作信号を出力するレジスタ群制御回路２５１と、このレジスタ群制御回路２５１を更に制御する重み付け切り換え回路２５５を備える。
【００８５】
シフトレジスタ群ＳＲは、着目している画素Ｐについて第２のドット形成判定回路２１２や小ドット形成判定回路２２３により求められた濃度誤差ｅｒｗを入力し、これをレジスタ群制御回路２５１から指示された回数右シフトすることにより、１／２のべき乗で小さくする、即ち割り算するために設けられている。濃度誤差ｅｒｗは、８ビットのディジタルデータとして与えられるから、これを右シフトすれば、シフト回数に応じて、順次１／２，１／４，１／８，１／１６，１／３２，１／６４にすることができる。シフト回数は、レジスタ群制御回路２５１から出力され、シフトレジスタ群ＳＲは、この信号を受けて、濃度誤差ｅｒｗのデータを所定回数右シフトする。どのシフトレジスタ群ＳＲのデータをどれだけ右シフトさせるかは、図２２に示したように、どの範囲にどのような重みを付けて、誤差を配分するかにより決定される。本実施例では、上述したように、着目画素Ｐに隣接する２画素では１／８の重み付けで、その外側の４画素に１／１６の重み付けで、更にその外側の４画素に１／３２の重み付けで、それ以外の２４画素に１／６４の重み付けで、それぞれ誤差を配分するものを標準としているが、この誤差拡散範囲は、修正ドットデータｐｄｓｒｃや着目している画素Ｐにドットを形成するか否かを示す信号Ｓｏｎにより可変することができる。これを決定しているのが、重み付け切り換え回路２５５である。重み付け切り換え回路２５５は、修正ドットデータｐｄｓｒｃや着目している画素Ｐにドットを形成するか否かを示す信号Ｓｏｎにより、例えば形成されるドットが周辺にない場合とある場合等で、誤差拡散の範囲を変更するようレジスタ群制御回路２５１に制御信号を出力している。レジスタ群制御回路２５１は、重み付け切り換え回路２５５からの信号を受けて、シフトレジスタ群ＳＲに出力する信号を一斉に切り換え、重み付けの総和が１であるという条件を守りつつ、誤差拡散の範囲を、条件に応じて適正に切り換えている。
【００８６】
各シフトレジスタ群ＳＲで１／２n にされた濃度誤差（以下、これを重み付け濃度誤差ｅｒｗｓと呼ぶ）は、主走査バッファＭＢおよび副走査バッファＳＢに、出力される。主走査バッファＭＢは、図２２に示した誤差拡散範囲ＰＥＲＡのうち、着目画素Ｐと同じラスタに属する１６個の画素に対応して設けられている。また副走査バッファＳＢは、図２２に示した誤差拡散範囲ＰＥＲＡのうち、着目画素Ｐとは副走査方向に隣接するラスタに属する１８個の画素に対応して設けられている。符号は異なるが、主走査バッファＭＢと副走査バッファＳＢは、内部構成は同一である。各バッファ内部の構成は、後述するが、これらのバッファは、基本的には、前段のバッファからの出力と、シフトレジスタ群ＳＲからの出力とを加算して、後段に出力する機能を有する。
【００８７】
１８個の副走査バッファＳＢは、前段の出力が後段の入力となるように接続されており、初段の副走査バッファＳＢには、誤差拡散による誤差の配分が初めて行なわれることから、値０が入力される。副走査バッファＳＢの最終段からの出力ｓｒｍｅは、ＳＲＡＭ１６の対応するアドレスに、ＭＩＦ１３６を介して書き込まれる。最終段の出力をＳＲＡＭ１６に書き戻すのは、この実施例では、濃度誤差は、２つのラスタに亘る画素に拡散されるから、着目している画素Ｐが属するラスタに隣接するラスタの画素については、配分された濃度誤差は、一旦ＳＲＡＭ１６に書き戻しておき、次の主走査で再度読み出して、誤差の配分を受けるからである。１６個の主走査バッファＭＢも、副走査バッファＳＢ同様、前段の出力が後段の入力となるように接続されている。但し、初段の主走査バッファＭＢには、ＳＲＡＭ１６から読み出された対応画素の濃度誤差の累積値ｓｒｍｅが入力される。これは、一つ前のラスタにおける主走査で配分された誤差の累積値である。また、最終段の主走査バッファＭＢの出力は、着目画素Ｐについての濃度誤差の累積値ｅｒ００に相当し、これが、先に説明したハーフトーン回路２１０，ハーフトーン回路２２０に出力され、誤差拡散による判定に用いられるのである。
【００８８】
各バッファＭＢ，ＳＢの内部構成について、図２４を参照して説明する。バッファＭＢ，ＳＢは、図示するように、二つの入力値に対して加算演算を行なう加算器３０１，二つの信号のいずれか一方を択一的に出力する入力用セレクタ３１０，８本のレジスタ３２１ないし３２８，これら８本のレジスタ３２１ないし３２８のいずれかのデータを択一的に出力する出力用セレクタ３３０から構成されている。レジスタ３２１ないし３２８は、シアン，マゼンタ，イエロ，ブラックの各色用に各１本、ライトシアン，ライトマゼンタの各色用に各２本、それぞれ用意されている。なお、レジスタの本数は８個以外にすることも差し支えない。たとえば、イエロをディザ法のみで処理することにし、誤差拡散を用いないものとしたり、ライトシアン，ライトマゼンタの各色について誤差拡散を１段（小ドットについて）のみ行なうものしてレジスタの数をそれぞれ１個としたりすれば、レジスタの総数を低減することができる。また、誤差拡散を各ドットについて行なう場合には、レジスタの本数を増やせばよい。レジスタの本数の増減はいずれの場合でも容易に行なうことができる。加算器３０１は、各シフトレジスタＳＲから出力される重み付け濃度誤差ｅｒｗｓとバッファＭＢ，ＳＢの出力用セレクタ３３０の出力値ｅｒ（ｎ）とを加算する。入力用セレクタ３１０は、前段のバッファからの出力値ｅｒ（ｎ−１）と、加算器３０１の出力とを選択的に出力する。レジスタ３２１ないし３２６は、データを高速に書き込み・読み出し可能な１６ビットのレジスタであり、誤差拡散を行なっている色を選択する選択信号ＳＥＬにより、いずれか一つのレジスタが読み書きの対象に切り換えられる構成となっている。
【００８９】
以上回路構成を説明した誤差演算回路２５０の働きを、図２３および図２４を中心に説明する。まずどの色についての誤差拡散を行なうかにより、レジスタ３２１ないし３２６のいずれか一つが選択される。画像のデータを読み出しながら誤差拡散の演算を行なう際、着目画素Ｐから主走査前後方向に誤差が配分される領域がそれぞれＭ画素およびＮ画素分存在するのであれば、端部処理として、原画像の先端にＭ画素分のダミー領域を、後端にＮ画素分のダミー領域を、それぞれ設けておくことが望ましい。図２５に示すようにダミー領域を設け、誤差拡散の処理を、このダミー領域を含んだ範囲に対して行なうものとすれば処理を簡略化できるからである。誤差拡散の処理をこのダミー領域の端から開始すると、主走査方向先端から１６画素については、画像の階調値は値０なので総てのドットはオフとされ、拡散される濃度誤差も値０、延いてはシフトレジスタＳＲを介して各バッファＭＢ，ＳＢに書き込まれる重み付け濃度誤差ｅｒｗｅも値０である。もとよりこれらの処理の間にも、ＳＲＡＭ１６から累積誤差Ｓｒｃｅは順次読み込まれるが、画像の最初のラスタについては、累積誤差は値０である。後述するように、画像の上端から２番目のラスタ以降は、その前のラスタを主走査した際に演算され拡散された誤差のそれまでの累積値が、ＳＲＡＭ１６から順次読み出され、主走査バッファＭＢの初段のレジスタに書き込まれる。
【００９０】
ダミー領域が終了し、原画像の最初の画素のデータが読み込まれると、その画像の階調に応じて、大中小のドットのオン・オフが判定され、第２のドット形成判定回路２１２または小ドット形成判定回路２２３により、濃度誤差ｅｒｗが演算され、出力される。この濃度誤差ｅｒｗは、直ちにシフトレジスタＳＲにより所定量だけシフトされることで１／２n に重み付けされ、各バッファＭＢ，ＳＢに出力される。このとき、各バッファ内では、その内部のレジスタが記憶しており出力用セレクタ３３０を介して出力されていた値と、重み付けされた濃度誤差ｅｒｗｓとを、加算器３０１により加算し、入力用セレクタ３１０を介して、同じレジスタに書き込む処理を行なう。この結果、既にバッファＭＢ，ＳＢ内のレジスタに記憶されていた累積誤差が更新されたことになる。このとき、副走査バッファＳＢの最終段の出力は、ＳＲＡＭ１６の所定のアドレスに書き込まれる。これは、次の主走査時に読み込まれ、再度、濃度誤差の拡散を受ける対象となるデータである。
【００９１】
こうして誤差拡散の処理を瞬時に完了した後、各バッファＭＢ，ＳＢは、入力用セレクタ３１０を切り換えることにより、着目画素を一つ進める処理を行なう。入力用セレクタ３１０を切り換えることにより、図２６に示したように、主走査バッファＭＢの初段には、新しく誤差拡散範囲に入ってきた画素に関して一つ前の主走査時に記憶された累積誤差が、ＳＲＡＭ１６から読み込まれる。と同時に、前段のバッファの出力用セレクタ３３０が出力している累積誤差のデータが、次段のレジスタに読み込まれる。この動作により、誤差拡散範囲の各画素のそれまでの累積誤差が一つずつ隣のバッファに移されることになる。かかる処理は、バッファＭＢ，ＳＢ内のレジスタ間のデータ転送として実現されているので、極めて高速に完了する。主走査バッファＭＢの最終段にも、同様にして一つ前のバッファの出力が読み込まれる。主走査バッファＭＢの最終段は、着目画素に対応したバッファなので、このバッファＭＢの出力は、そのまま誤差拡散における累積値ｅｒ００として用いれば良い。したがって、主走査バッファＭＢの最終段は、各色いんくについての判断に応じて各レジスタを切り換えるためにのみ用いられている。
【００９２】
画像データの両端にダミー領域を設けることは既に説明した。着目画素が画像の終端まで至れば、本来は、もはや誤差拡散の処理をそれ以上同じラスタについて行なう必要はない。但し、その場合には、１８個の副走査バッファＳＢのデータを直接ＳＲＡＭ１６に書き出す構成が必要となる。これに対して、図２５に示したように、１８画素分のダミー領域を設けておけば、着目画素Ｐをダミー領域内において順次進めて行くだけで、副走査バッファＳＢの最終段から順次必要な累積誤差が出力され、ＳＲＡＭ１６の所定の領域に書き込まれて行くことになり、好適である。着目画素がダミー領域の端まで至ったときは、そのラスタについての画像処理を終了するものとし、総ての主走査バッファＭＢ，副走査バッファＳＢのレジスタの内容を図示しないリセット信号を用いて値０にリセットし、着目画素の位置を示すポインタを次のラスタの先頭に移動する。ここで、次のラスタの先頭とは、先に説明したダミー領域を含んだ処理領域の先頭である。
【００９３】
以上説明した処理を、原画像の先頭から終端まで繰り返すことにより、また各インク色についてレジスタを切り換えつつ処理を繰り返すことにより、原画像について、ハーフトニングの処理が完了することになる。なお、着目画素Ｐに対して副走査方向に隣接するラスタに拡散される誤差は、一旦ＳＲＡＭ１６に書き戻しておくが、ハーフトニングの対象となる画素が主走査方向にＬ個存在する場合、ダミー領域を加えてＬ＋１８個の領域をＳＲＡＭ１６上に確保すれば足りる。着目画素から主走査方向に並んだ拡散範囲については、一旦ＳＲＡＭ１６からデータを読み出してしまえば、その後、新しいデータにより書き直しても何ら差し支えないからである。
【００９４】
以上説明した誤差拡散の処理を行ないつつ、一方で、各色インクの大中小のドットのオン・オフがハーフトーン回路２１０およびハーフトーン回路２２０により決定される。この判定結果Ｌｏｎ，Ｍｏｎ，Ｓｏｎは、ＨＢ１３２から、ＳＲＡＭ１６内の所定のアドレスに書き込まれる。この結果、以上説明したＨＴＭ１３によるハーフトニングの処理が完了すると、ＳＲＡＭ１６には、各画素について、各インク色の大中小のドットのオン・オフの情報が記憶される。ＨＴＭ１３によりＳＲＡＭ１６に書き込まれたデータは、実際のカラープリンタ２０におけるヘッド４４ないし４９のノズル配置を考慮した順序とはなっていない。そこで、次に、ＭＷＭ１４により、ハーフトニング済みのデータの並べ替えを行なう。
【００９５】
（３）画素再配置モジュール（ＭＷＭ１４）
ＭＷＭ１４の内部構成を、図２７に示した。図示するように、ＭＷＭ１４は、データを入力するインプットモジュール（ＩＰＭ）１４０と、ＳＲＡＭ１６内のデータを再配置する画素再配置サブモジュール（ＭＷＳＭ）１４１と、データを出力するアウトプットモジュール（ＯＰＭ）１４３と、ＳＲＡＭ１６とのインタフェースを司るメモリインタフェース（ＭＩＦ）１４５とから構成されている。ＩＰＭ１４０、ＯＰＭ１４３の動作は、前述したＣＬＭ１２やＨＴＭ１３におけるＩＰＭ１２０，１３０やＯＰＭ１２３，１３３の動作と同様である。
【００９６】
画素再配置サブモジュール（ＭＷＳＭ）１４１は、画素再配置処理を行なうモジュールである。ＭＷＳＭ１４１の内部構成も、ＳＣＭ（解像度変換サブモジュール）１２１等と同様に、演算回路部と制御回路部とから構成されている。前述したように、画素再配置処理は、ハーフトーニング処理によってドット形成の有無を表す形式に変換された画像データを、カラープリンタ２０に転送すべき順序に並べ替える処理である。ＭＷＳＭ１４１の演算回路部は、制御回路部から供給される制御信号に従って、アドレス計算を行ない、ハーフトーニング処理済みのデータを、ＭＩＦ１４５を介してＳＲＡＭ１６上の所定位置に書き込んでいく。本実施例では、そのデータ変換は図２８に示すように行なわれる。すなわち、同色のデータを副走査方向のライン順番に並べることにより、後段の出力モジュールＯＴＭ１５からさまざまなデータの読み出しに応える。
【００９７】
（４）出力モジュール（ＯＴＭ）
出力モジュール（ＯＴＭ）１５は、ＳＲＡＭ１６からデータを読み出して、外部に出力するモジュールである。ＯＴＭ１５は、他のモジュールと同様、ＳＲＡＭ１６からデータを読み出すことが可能となっており、ＭＷＭ１４がＳＲＡＭ１６上に配置したドットデータを、順に読み出してカラープリンタ２０に出力する。その結果、データ変換装置１０に供給された画像データは、印刷可能な画像データＦＮＬとしてカラープリンタ２０に出力される。ＭＷＭ１４は、インク吐出用ヘッド４４ないし４９の構成に合わせて、各色のデータの配置を決定し、ＳＲＡＭ１６に書き戻すことにより、各色のデータを、再配置している。したがって、ＯＴＭ１５は、ＳＲＡＭ１６の所定の領域のデータを連続的に読み出すことにより、カラープリンタ２０のインク吐出用ヘッド４４ないし４９のノズル構成に適したデータを出力することができる。カラープリンタ２０は、階調データ変換装置１０から受け取ったデータをそのままヘッドに出力すればよい。したがって、コンピュータ８０側はもとより、カラープリンタ２０側の処理も簡略なものとすることができる。
【００９８】
上記詳しく説明したように、本実施例のＨＴＭ１３によれば、誤差拡散の演算を行なう誤差演算回路２５０を、図２３，図２４に示したとおり、ハードウェアにより構成しており、かつＳＲＡＭ１６のアクセスは、ＳＲＡＭ１６から主走査バッファＭＢの初段への読み込みと、副走査バッファＳＢの最終段からＳＲＡＭ１６への書き込みに限られている。しかも、誤差拡散領域内のデータの受け渡しを、高速動作可能なレジスタを用いて、同時並列的に実行し、濃度誤差の配分に必要なデータを、いちいちＳＲＡＭ１６に書き戻すことなく処理している。従って、誤差拡散処理の中で所要時間の長いＳＲＡＭ１６のアクセスは、１画素の処理に対して読み書き各１回だけで足りることになり、誤差拡散処理の高速化を実現している。また、濃度誤差の重み付けはシフトレジスタＳＲによって行なわれており、その濃度誤差の累積はバッファＭＢ，ＳＢという純粋なハード処理によって行なわれる。しかも、こうして得られた誤差の累積値ｅｒ００を用いた誤差拡散処理も、図１７、図１８に示したように第１のドット形成判定回路２１１，第２のドット形成判定回路２１２，大ドット形成判定回路２２１，中ドット形成判定回路２２２，および小ドット形成判定回路２２３という各々ディスクリートなハードウェアにより構成された回路によって瞬時に、即ち回路を構成する各ゲートの遅れ時間の累積時間程度で実行される。このため、誤差拡散処理に要する総時間は、ＳＲＡＭ１６の２回のアクセス時間と略等しくなり、高速化が実現される。即ち、ハーフトーニング処理を行なう処理中で最も処理時間を要する誤差拡散の回路が、純粋にハード構成され、かつ、ＳＲＡＭ１６のアクセスを最小限度に抑えているのて、誤差拡散処理が高速に実行され、極めて高速に高画質の印刷物を得ることができるのである。更に、この処理のために必要となるＳＲＡＭ１６の記憶容量は、主走査方向の画素数に対応した僅かな容量で足りる。
【００９９】
なお、本実施例のここまでの説明は、ＳＲＡＭ１６に対するアクセスは、読み書き各１回、計２回行なわれるものとしてきたが、１回分のアクセス時間で処理を完了している。つまり、ＳＲＡＭ１６を２組で構成し、ＳＲＡＭ１６から主走査バッファＭＢの初段への読み込みと、副走査バッファＳＢの最終段からＳＲＡＭ１６への書込とを、それぞれ独立に行なえるように構成し、前者の読込と後者の書込とを同時に行なう。かかる構成によれば、１画素について誤差拡散に要する総時間を、ＳＲＡＭ１６の１回のアクセス時間と略等しくすることができる。
【０１００】
また、本実施例のデータ変換装置１０では、各種処理を行なうモジュール毎に固有のアドレス値が設定されていて、アドレス値を指定してデータを供給するだけで、所望のモジュールにより処理を行なうことができる。従って、コンピュータ８０等から画像データを供給する際に、データの処理内容を指定するコマンドを出力する必要がない。更に、データ変換装置１０においては、コマンドを受け取って解釈する必要がない。これらの手間を省くことによっても、データ変換処理の迅速化を図ることが可能となっている。
【０１０１】
なお、実施例のデータ変換装置１０は、コンピュータ８０から画像データを受け取るものとして説明してきたが、画像データを出力する機器はコンピュータに限られるものではない。例えば、デジタルカメラや、カラースキャナ、ビデオプリンタ，フィルムスキャナ等の各種の画像機器から画像データの供給を受け、画像データを変換するものであっても構わない。こうすれば、コンピュータ８０を介さずに、画像機器から直接画像データを受け取って、カラープリンタ２０で印刷することができるので好適である。
【０１０２】
また、以上、各種の実施例について説明してきたが、本発明は上記実施例における実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。例えば、誤差拡散を行なう範囲を、上記実施例では、着目画素と同じラスタおよびこれに隣接するラスタ内の３４画素分としているが、画素数は適宜設定することができる。また、拡散範囲を、着目画素の属するラスタのみに限ったり、これに副走査方向に隣接するラスタとさらに隣のラスタまで拡張することも可能である。重み付けの係数も適宜設定することができる。また、上記実施例では、データ変換装置１０はコンピュータ８０やカラープリンタ２０とは、外見的に別体に存在するものとして説明してきたが、外見上は何ら別体である必要はない。例えば、データ変換装置１０、をコンピュータ８０あるいはカラープリンタ２０の拡張スロットに装着し、外見上はこれらと一体に構成するものとしてもよい。
【０１０３】
同様に、これまで説明してきたデータ変換装置１０においては、それぞれのデータ変換を行なう各モジュールは、外見的に１つのデータ変換装置１０を形成するものとして説明してきたが、各モジュールを分離可能に構成しておき、必要に応じて適宜組み合わせて用いるものとしてもよい。
【図面の簡単な説明】
【図１】本発明の実施例としての階調データ変換装置１０を備えた印刷装置の説明図である。
【図２】本実施例で使用されているプリンタの概要説明図である。
【図３】本実施例で使用されているプリンタのドット形成原理の説明図である。
【図４】本実施例で使用されているプリンタのノズル配列を示す説明図である。
【図５】本実施例のプリンタにより大きさの異なるドットを形成する原理を説明する説明図である。
【図６】本実施例のプリンタにおけるノズルの駆動波形および該駆動波形により形成されるドットの様子を示す説明図である。
【図７】本実施例のプリンタの制御装置の内部構成を示す説明図である。
【図８】本実施例のプリンタヘッドが駆動バッファからデータを受けてドットを形成する様子を示す説明図である。
【図９】本実施例のデータ変換工程の概要を示すフローチャートである。
【図１０】本実施例における色変換表とこれを用いた色変換の概要を説明する概念図である。
【図１１】ハーフトーニング処理の概要を説明する概念図である。
【図１２】本実施例におけるカラールックアップモジュール（ＣＬＭ）１２の構成を示すブロック図である。
【図１３】本実施例におけるハーフトーンモジュール（ＨＴＭ）１３の構成を示すブロック図である。
【図１４】ハーフトーンモジュールのプレディザテーブルモジュールで１ビットモードの際に利用されるテーブルを示す説明図である。
【図１５】ハーフトーンモジュールのプレディザテーブルモジュールで２ビットモードの際に利用されるテーブルを示す説明図である。
【図１６】ＨＴＭ１３におけるＨＢ１３２の内部構成を示すブロック図である。
【図１７】実際にハーフトーニングを行なうハーフトーン回路２１０の内部構成を示すブロック図である。
【図１８】同じくハーフトーン回路２２０の内部構成を示すブロック図である。
【図１９】ディザマトリクスの概念を示す説明図である。
【図２０】ＨＢ１３２内の誤差拡散によりドット形成の判定を行なう回路を示すブロック図である。
【図２１】各ドットデータから、誤差拡散のために必要な信号を生成するドットデータ出力回路ＥＥを示す説明図である。
【図２２】誤差拡散範囲と、重み付け係数を示す説明図である。
【図２３】ＨＴＭ１３の誤差演算回路２５０の内部構成を示すブロック図である。
【図２４】誤差演算回路２５０のバッファＭＢ，ＳＢの内部構成を示すブロック図である。
【図２５】誤差拡散範囲とこれに設けられるダミー領域を示す説明図である。
【図２６】本実施例における誤差拡散処理のデータの転送の様子を示す説明図である。
【図２７】本実施例におけるＭＷＭ１４の内部構成を示すブロック図である。
【図２８】本実施例におけるデータ変換によるデータの配置の様子をメモリマップとして示す説明図である。
【符号の説明】
１０…階調データ変換装置
１１…ＩＮＭ
１２…ＣＬＭ
１３…ＨＴＭ
１４…ＭＷＭ
１５…出力モジュールＯＴＭ
１６…ＳＲＡＭ
１７…バス
２０…カラープリンタ
２４…カラースキャナ
３０…キャリッジモータ
３１…駆動ベルト
３２…プーリ
３３…摺動軸
３４…位置検出センサ
３５…紙送りモータ
３６…プラテン
４０…キャリッジ
４１…印字ヘッド
４２…インクカートリッジ
４３…インクカートリッジ
４４〜４９…インク吐出用ヘッド
５０…インク通路
５９…操作パネル
６０…制御回路
６１…ＣＰＵ
６２…ＰＲＯＭ
６３…ＲＡＭ
６４…ＰＣインターフェース
６６…タイマ
６７…駆動バッファ
６８…バス
６９…分配出力器
７０…発振器
８０…コンピュータ
８１…ＣＰＵ
８２…ＲＯＭ
８３…ＲＡＭ
８４…ハードディスク
８５…インターフェイス
９１…モデム
１２０…ＩＰＭ
１２１…ＳＣＶ
１２２…ＣＣＶ
１２３…ＯＰＭ
１３１…ＰＲＤＴ
１３６…ＭＩＦ
１４０…ＩＰＭ
１４１…ＭＷＳＭ
１４３…ＯＰＭ
１４５…ＭＩＦ
２１０…第１のハーフトーン回路
２１０Ｋ１，２１０Ｃ１，２１０Ｍ１，２１０Ｙ１…ハーフトーン回路
２１１…第１のドット形成判定回路
２１２…第２のドット形成判定回路
２１３…ドットデータ生成回路
２１４…閾値生成回路
２１５…比較器
２１６…マスク回路
２１７…ホワイトフラグ回路
２１８…誤差算出回路
２２０…第２のハーフトーン回路
２２０Ｃ２，２２０Ｍ２…ハーフトーン回路
２２１…大ドット形成判定回路
２２２…中ドット形成判定回路
２２３…小ドット形成判定回路
２３０…制御回路
２５０…誤差演算回路
２５１…レジスタ群制御回路
２５５…回路
２７０…出力回路
３０１…加算器
３１０…入力用セレクタ
３２１…レジスタ
３３０…出力用セレクタ
【図１】
0003870604.tif 000002
【図２】
0003870604.tif 000003
【図３】
0003870604.tif 000004
【図４】
0003870604.tif 000005
【図５】
0003870604.tif 000006
【図６】
0003870604.tif 000007
【図７】
0003870604.tif 000008
【図８】
0003870604.tif 000009
【図９】
0003870604.tif 000010
【図１０】
0003870604.tif 000011
【図１１】
0003870604.tif 000012
【図１２】
0003870604.tif 000013
【図１３】
0003870604.tif 000014
【図１４】
0003870604.tif 000015
【図１５】
0003870604.tif 000016
【図１６】
0003870604.tif 000017
【図１７】
0003870604.tif 000018
【図１８】
0003870604.tif 000019
【図１９】
0003870604.tif 000020
【図２０】
0003870604.tif 000021
【図２１】
0003870604.tif 000022
【図２２】
0003870604.tif 000023
【図２３】
0003870604.tif 000024
【図２４】
0003870604.tif 000025
【図２５】
0003870604.tif 000026
【図２６】
0003870604.tif 000027
【図２７】
0003870604.tif 000028
【図２８】
0003870604.tif 000029