(57)【特許請求の範囲】
【請求項１】
ディザボリュームを備える多重閾値ディザ（２０３）によるハーフトーン化方法であって、前記多重閾値ディザ（２０３）は、コントーンカラーピクセル値のアレイ形態のコントーンカラー画像を、ハーフトーン化することによってバイレベルの出力ドット値にし、
前記ハーフトーン化方法は、
ｎ個の閾値の固定された組によって、前記ディザボリュームのそれぞれディザセルの位置を示すディザセル位置を表わす表示ステップであって、前記ディザセル位置は、前記出力ドット値の位置に対応し、ｎ個の前記閾値は、ｎ＋１個の明暗度間隔を規定し、ｎ＋１個の前記明暗度間隔は、前記出力ドット値が未設定状態であることを示す０と、前記出力ドット値が設定状態であることを示す１とに交互に規定されることと；
ｎ＋１個の前記明暗度間隔のうちの一つを一意に選択するために前記コントーンカラーピクセル値をｎ個の前記閾値と比較することによって、前記コントーンカラーピクセル値に対応する前記出力ドット値を決定する決定ステップと
を有する、ハーフトーン化方法。
【請求項２】
前記多重閾値ディザ（２０３）は更に、前記コントーンカラー画像の色成分ごとに、多重閾値ユニット（２０４）を１つずつ備え、
それぞれ前記多重閾値ユニット（２０４）は、互いに異なるｎ個の前記閾値を有する多重閾値を備え、
前記多重閾値ユニット（２０４）の全ては、前記ディザボリュームに作動可能に接続し、
前記決定ステップでは、
前記ディザセル位置に対応する前記コントーンカラーピクセル値が、ｎ＋１個の前記明暗度間隔のうちのいずれに規定されるか判定することによって、それぞれ前記多重閾値ユニット（２０４）が前記出力ドット値を決定する、
請求項１記載のハーフトーン化方法。
【請求項３】
前記ｎは３である、請求項２記載のハーフトーン化方法。
【請求項４】
前記閾値は８ビットである、請求項３記載のハーフトーン化方法。
【請求項５】
前記コントーンカラー画像は、色成分ごとに前記コントーンカラーピクセル値を備え、
色成分ごとの前記コントーンカラーピクセル値の間でディザセル位置合わせが必要な場合、前記ハーフトーン化方法は更に、
前記多重閾値を１回だけ検索するステップと；
検索した前記多重閾値を使用することによって、それぞれ前記コントーンカラーピクセル値をディザするステップと
を有する、
請求項２記載のハーフトーン化方法。
【請求項６】
前記コントーンカラー画像は、色成分ごとに前記コントーンカラーピクセル値を備え、
色成分ごとの前記コントーンカラーピクセル値の間でディザセル位置合わせが必要ない場合、前記ハーフトーン化方法は更に、
前記ディザセルをサブセル（２０５）に分割するステップと；
前記サブセル（２０５）を個々のアドレス可能なメモリに記憶するステップと；
前記サブセル（２０５）ごとに、互いに異なる前記多重閾値を並列に検索するステップと
を有する、
請求項２記載のハーフトーン化方法。
【請求項７】
前記サブセル（２０５）の数は４つであり、
前記多重閾値ディザ（２０３）は、ディザセルアドレスジェネレータを備え、
前記多重閾値は、それぞれ互いに異なる３つの前記閾値を有する３重閾値であり、
それぞれ前記多重閾値ユニット（２０４）は、前記３重閾値を有する３重閾値ユニット（２０４）であり、
前記ハーフトーン化方法は更に、
前記３重閾値ユニット（２０４）が、前記コントーンカラーピクセル値を受信するステップと；
前記ディザセルアドレスジェネレータが、４つの前記サブセル（２０５）に対応する前記３重閾値ユニット（２０４）のために４つの四方向マルチプレクサと共に動作することによって、４組の互いに異なる前記３重閾値の検索を制御するステップであって、４組の前記３重閾値のそれぞれは、４個の前記サブセル（２０５）のそれぞれに対応することとを有する、
請求項６記載のハーフトーン化方法。
【請求項８】
前記３重閾値ユニット（２０４）は、下記の表に示すように、前記３重閾値の値Ｔ１、Ｔ２、およびＴ３を、前記明暗度値Ｖと比較することによって、そこから１ビットまたは０ビットに変換する、
請求項７記載のハーフトーン化方法。
【表１】
0004621766.tif 000052
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ幅ドロップ・オン・デマンドインクジェットプリントヘッドを使用するプリンタのような高性能カラープリンタ用のドライバに関する。別の観点から見た場合、本発明は印刷方法に関する。
【０００２】
本発明は、カラープリンタ用のモジュラプリントヘッドに関する。別の観点から見た場合、本発明は、プリントヘッドを使用する印刷及びローディング方法に関する。
【０００３】
本発明は、カラープリンタ用のモジュラプリントヘッドに関する。別の観点から見た場合、本発明は、プリントヘッドを使用する印刷及びローディング方法に関する。
【０００４】
本発明は、通常、ページ幅ドロップ・オン・デマンドインクジェットプリントヘッドを使用する高性能カラープリンタに関する。特に、本発明は、コントーンカラー層をバイレベルにデジタル的にハーフトーン化し、ハーフトーン化されたコントーン層上に黒色層を合成するためのハーフトーン化／合成ユニットに関する。別の観点から見た場合、本発明は、ハーフトーン化及び合成に関する。
【０００５】
本発明は、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットにハーフトーン化するためのディザユニットに関する。他の観点から見た場合、本発明は、ディザユニットの操作方法に関する。
【０００６】
本発明は、プリントヘッド用の予熱サイクルに関する。本発明は、例えば、ドロップ・オン・デマンドインクジェットプリントヘッドを使用する高性能カラープリンタで使用することができる。
【０００７】
本発明は、リソースに同時アクセスを必要とするコンピュータメモリ及び複数の並列プロセッサ内に保持されるリソースに関する。上記リソースは、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットにデジタル的にハーフトーン化するために使用されるディザマトリックス又はディザボリュームであってもよい。このリソースには、異なる閾値ユニットにより並列にアクセスしなければならない場合がある。他の観点から見た場合、本発明は、このようなリソースにアクセスするための方法である。
【０００８】
本発明は、プリンタシステム、及びプリンタ用のインクタンクのインクが空になる時期を予測するための方法に関する。プリンタは、例えば、ドロップ・オン・デマンドインクジェットプリントヘッドを使用し得る。
【０００９】
本発明は、高性能カラープリンタのようなプリンタ用のプリントヘッドの吐出パルス継続時間の制御に関する。特に、本発明は、制御システム及び方法に関する。プリンタは、例えば、ページ幅ドロップ・オン・デマンドインクジェットプリントヘッドを使用し得る。
【背景技術】
【００１０】
通常の２５６階調のディザボリュームを使用すると、異なる明暗度レベルを分離することによりディザセルの設計を非常に柔軟に行うことができる。最適な確率的なディザを設計すると（非特許文献１２）、ディザボリュームはディザマトリックスは余分な自由度を与える。通常のディザボリュームは、６４×６４×２５６の大きさにすることができ、例
えば、１２８ＫＢの大きさを有する。また、各色成分がボリュームからの異なるビットの検索を必要とし得るため、ディザボリュームはアクセスが非効率的となり得る。
【００１１】
ドロップ・オン・デマンドインクジェットプリントヘッドの場合には、印刷したドットの大きさは、インクの温度により異なる。インクの滴を吐出するためにエネルギを使用すると、インクの温度は上昇する。インクの滴が実際に吐出されると、インクの滴は、自分自身と一緒にインクの温度の一部を運び去る。複数のインクの滴を吐出している間にインクの温度は平衡状態に達する。一旦、平衡状態に達すると、印刷プロセスは、平衡状態に留まろうとする傾向がある。
【００１２】
本発明は、プリントヘッドの温度を示す信号を発生するための温度センサを備えるタイプのプリントヘッド用のプリントヘッドコントローラ、及び、各々がタンクからインクの供給を受けるためのインク供給ポートを有する複数のノズルと、インクドットを吐出するためのインク配置ポートと、及びプリントヘッドの吐出サイクル中に、配置ポートからインクドットを配置するために信号を受信するための吐出制御ポートとを備える。この場合、プリントヘッドコントローラは、温度センサからプリントヘッドの温度を示す信号を受信するための手段、及びノズルの吐出制御ポートへ吐出信号を供給するための手段とを備える。上記プリントヘッドコントローラは、各印刷ジョブの前に、すべてのノズルを吐出させるよう設定し、各ノズルに一連の短い吐出パルスを供給するために、一連の修正した吐出サイクルを実行するために作動可能である。各パルスの継続時間は、インクの滴を吐出させるには短すぎるが、プリントヘッドの温度を示す信号がその動作平衡温度に達したことを示すまでインクを加熱するのには十分長い時間である。
【００１３】
予熱モード中のフィードバックは、Ｔｓｅｎｓｅ（以下に定義する）により供給され得、温度が周囲温度より約３０℃高い温度に達するまで継続的に行われる。時間及び温度はインクの組成に捕縄に依存するので、平衡温度に達したころに温度情報をフィードバックさせることは重要である。
【００１４】
ある実施形態の場合には、各ノズルに対して約２００個のパルスが必要である。
予熱モードの継続時間は、約５０ミリ秒であり、この時間はインクの組成により異なる。
【００１５】
予熱は性能には影響を与えないが、データはプリンタに送られる。
予熱サイクルは、１を有するすべてのノズル（すなわち、すべてのノズルの吐出状態に設定）に対する１回のロードサイクルと、各ノズルに対する多数の短い吐出パルスとを伴う。パルスの継続時間は、インク滴の吐出させるには短過ぎるが、インクを加熱するには十分長い。パルスの継続時間は、プリンタで使用する各インクにより異なる。各ノズルに対しては、全部で約２００個のパルスが必要であり、標準印刷サイクルと同じシーケンスが反復して実行される。
【非特許文献１】ANSI/EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Equipment, August 1988．
【非特許文献２】Humphrey, G. W., and V. Bruce, Visual Cognition, Lawrence Erlbaum Associates, 1989, p.15．
【非特許文献３】IEEE Std 1284-1994, IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers, Dec. 2, 1994．
【非特許文献４】Intel Corp. and Microsoft Corp., PC 98 System Design Guide, 1997．
【非特許文献５】Intel Corp. and Microsoft Corp., PC 99 System Design Gidde, 1998．
【非特許文献６】ISO/IEC 19018-1:1994, Information technology-Digital compression and coding of continuous-tone still images: Requirements and guidelines, 1994．
【非特許文献７】Loeffler, C., A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT Algorithms with 11 Multiplications", Proceedings of the International Conference on Acoustics, Speech, and Signal Processing 1989 (ICASSP '89), pp.988-991．
【非特許文献８】Microsoft Corp., Microsoft Windows NT 4.0 Device Driver Kit, 1997．
【非特許文献９】Microsoft Corp., Microsoft Windows NT 5.0 Device Driver Kit, 1998．
【非特許文献１０】Olsen, J. "Smoothing Enlarged Monochrome Images", in Glassner, A. S. (ed.), Graphics Gems, AP Professional, 1990．
【非特許文献１１】Schmit, M. L., Pentium Processor Optimization Tools, AP Professional, 1995．
【非特許文献１２】Thompson, H. S., Multilingual Corpus 1 CD-ROM, European Corpus Initiative．
【非特許文献１３】Urban, S. J., "Review of standards for electronic imaging for facsimile systems", Journal of Electronic Imaging, Vol.1(1), January 1992, pp.5-21．
【非特許文献１４】USB Implementers Forum, Universal Serial Bus Specification, Revision 1.0, 1996．
【非特許文献１５】USB Implementers Forum, Universal Serial Bus Device Class Definition for Printer Devices, Version 1.07 Draft, 1998．
【非特許文献１６】Wallace, G. K., "The JPEG Still Picture Compression Standard", Communications of the ACM, 34(4), April 1991, pp.30-44．
【非特許文献１７】Yasuda, Y., "Overview of Digital Facsimile Coding Techniques in Japan", Proceedings of the IEEE, Vol. 68(7), July 1980, pp.830-845．
【発明の開示】
【発明が解決しようとする課題】
【００１６】
複数の並列プロセッサが、コンピュータメモリに内蔵されているリソースに同時にアクセスしなければならない場合には、いくつかの方法をとることができる。第１の方法の場合は、複数のプロセッサは、順番にリソースにアクセスし得るが、この方法だとプロセッサの性能が低下する。第２の方法の場合には、複数のポートを有するメモリを使用することができる。第３の方法の場合には、全リソースを異なるメモリバンク内にコピーすることが可能である。後の２つの方法は双方とも高価である。
【００１７】
コンピュータメモリに内蔵されているリソースの特定の例としては、コントーンカラー画像をデジタル的にハーフトーン化するために使用されるディザマトリックス又はディザボリュームがある。画像の異なる色平面の間で、ディザセルを位置合わせする必要がない場合には、個々の色成分のディザを処理する１組の閾値ユニットは、異なるディザセルへの同時アクセスを必要とし得る。
【００１８】
プリントヘッドへの吐出パルスの継続時間は、温度及びインク特性に依存するインク粘度と、プリントヘッドに供給可能な電力量により異なる。通常のパルスの継続時間は、１．３〜１．８ミリ秒の範囲である。
【課題を解決するための手段】
【００１９】
本発明は、高性能のプリンタ用のプリンタドライバである。該プリンタドライバは、印刷対象の１ページを表わす２層ページバッファを管理する。該バッファの第１の層は、背
景コントーンデータを有し、第２の層は、前景のバイレベルデータを有する。プリンタドライバは、そのページの印刷が完了すると、プリンタにバッファを送信し、プリンタは、コントーン層をハーフトーン化した後、上記２つの層を合成する。プリンタドライバは、コントーン層と合成しているコントーンデータが、バイレベルの層のデータを覆い隠すと判断した場合には、覆い隠されているバイレベルデータをバイレベルの層から除去するか、廃棄し、あるいは覆い隠しているコントーンデータにより表わされる画像と、覆い隠されているバイレベルデータによって表わされる画像との間に相互作用がある場合には、覆い隠しているコントーンデータが、コントーン層と合成される前に、覆い隠されているバイレベルデータをコントーン層と合成する。
【００２０】
コントーンデータの解像度は、バイレベルデータの解像度より低くてもよい。
２層ページバッファには、コントーンデータの第３の層を追加し得る。この場合、第３の層は、第１の層の解像度でサブサンプリングされた第２の層のバイレベルデータのコントーンバージョンを含む。プリンタドライバが、第１の層と合成中のコントーンデータは第３の層のデータを覆い隠していると判断した場合に、覆い隠されているコントーンデータは第３層から除去され、覆い隠しているコントーンデータは、コントーン層と合成される前に、コントーン層と合成され、第３の層の覆い隠されているコントーンデータに対応する第２の層のバイレベルデータが第２の層から除去される。
【００２１】
相互作用は、通常、覆い隠しているコントーンデータにより表わされる画像と覆い隠されているバイレベルデータとの間で発生し、この場合、コントーンデータは、不透明でない画像オブジェクトを表わす。
【００２２】
コントーンデータは、通常、カラーデータであり、一方、バイレベルデータは、通常、黒色のデータである。しかし、バイレベルデータは他の色であってもよい。付加的な色の付加的な前景のバイレベルの層を収容するために付加的な層が与えられてもよい。
【００２３】
プリンタドライバは、ホストグラフィックスシステムに密に結合しており、そのため、プリンタドライバは、異なるグラフィックス用のデバイスに特有な処理及びイメージング動作、特に合成動作及びテキスト動作を提供し得る。
【００２４】
ホストは、カラー管理をサポートし、そのため、デバイスに依存するカラーを標準的な方法でプリンタのタイプ特有のカラーに変換することが可能である。プリンタに送られるページの記述は、通常、デバイス特有のカラーを有する。
【００２５】
ホストグラフィックスシステムは、画像及びグラフィックスをプリンタドライバが指定する公称解像度にするが、ホストグラフィックスシステムは、プリンタドライバにレンダリングテキストを制御させる。より詳細に説明すると、グラフィックスシステムは、プリンタドライバが、公称デバイス解像度より高い解像度でテキストを再現し、配置することが可能であるようにプリンタドライバに十分な情報を供給する。
【００２６】
ホストグラフィックスシステムは、このシステムが、グラフィックス及び画像オブジェクトを合成するが、プリンタドライバがページバッファを管理すると予想される実際の合成を制御することが可能である公称デバイス解像度で、コントーンページバッファにランダムアクセスをする必要がある。
【００２７】
プリンタのページ記述は、２６７ｐｐｉのコントーン層及び８００ｄｐｉの黒色層を含むことが可能である。プリンタドライバはグラフィックシステムに対し、２６７ｐｐｉの公称ページ解像度を指定し得る。可能な場合には、プリンタドライバは、黒色のテキストを除いて、画像及びグラフィックスオブジェクトを２６７ｐｐｉのピクセルレベルにする
ためにグラフィックスシステムに依存する。プリンタドライバは、すべてのテキストの再現要求をうまく処理し、黒色のテキストを検出して、８００ｄｐｉで再現するが、２６７ｐｐｉで再現するために、グラフィックスシステムに黒でないテキストの再現要求を返信する。
【００２８】
下記の規則は、プリンタドライバにより実行することが可能である。
黒色のオブジェクトがページバッファにより合成される場合には、黒色のオブジェクトはバイレベルの黒色層と合成される。黒色層は、単に黒色層の不透明性とオブジェクトの不透明性との論理和をとることにより更新され、中間解像度のコントーンの黒色層の対応する部分は、高い解像度の黒色層から再計算される。
【００２９】
コントーンカラーオブジェクトが、ページバッファにより合成される場合には、上記カラーオブジェクトはコントーン層と合成される。コントーン層及び黒色層は、下記のように更新される。
【００３０】
コントーンオブジェクトが黒色層を覆い隠す場合は何時でも、完全に不透明でない場合でも、影響を受けた黒色層のピクセルは、黒色層からコントーン層に押し出される。すなわち、コントーン層と合成され、黒色層から除去される。その後で、コントーンオブジェクトはコントーン層と合成される。
【００３１】
コントーンオブジェクトのピクセルが、完全に不透明である場合には、対応する黒色のピクセルを背景のコントーン層内に押し出す必要はない。何故なら、背景のコントーンピクセルは、後で前景のコントーンピクセルにより完全に抹消されるからである。
【００３２】
バイレベルの黒色層のデータは、圧縮した形でプリンタに送ることが可能である。グループ４のファクシミリのコーディングをこの目的のために使用することが可能であるが、水平走行距離の修正ハフマンコーディングが除去される場合、又はもっと高い解像度に調整される場合に使用した方がよい結果が得られる。別の方法としては、ＥＤＲＬ圧縮を使用することも可能である。
【００３３】
コントーン層のデータも、圧縮した形でプリンタに送ることが可能である。ＪＰＥＧ又はウェーブレット圧縮をこの目的のために使用することが可能である。
別の態様において、本発明は、プリンタドライバが、２層ページバッファを管理する場合に、高性能プリンタ用のプリンタドライバを動作するための方法である。第１の層はコントーンデータ用であり、第２の層はバイレベルデータ用であり、この場合、バイレベルデータは、プリンタによりコントーンデータと合成される。上記方法は、コントーン層と合成中のコントーンデータが、バイレベルの層のデータを覆い隠す場合には、バイレベルの層から覆い隠されているバイレベルデータを除去し、それを放棄するか、あるいは覆い隠しているコントーンデータにより表わされる画像と覆い隠されているバイレベルデータによって表わされる画像との間に何等かの相互作用がある場合には、コントーンデータがコントーン層と合成される前に、覆い隠されているバイレベルデータをコントーン層と合成するかに決定するステップを有する。
【００３４】
本発明は、それぞれが、インク供給ポートと、インク配置ポートと、及びプリントヘッドの吐出サイクル中に配置ポート（吐出）からインクドットを配置するために信号を受信するための吐出制御ポートを備える複数のノズルとを備えるカラープリンタ用のモジュラプリントヘッドである。プリントヘッドのノズルは、グループ又はポッドの形で配置されている。この場合、各ポッドのノズルのインク供給ポートは、共通のインク供給ラインに接続している。各ポッドのノズルは複数の列（印刷対象のページを横切る方向に延びる列）に配列されていて、複数の列のノズルは互いに偏位しており、そのため、各行のノズルは
、吐出した場合異なるライン上に同時にドットを配置する。異なる各色のポッドは、共に作動グループ内に配置されていて、ノズルの選択された相互に排他的なサブグループは、吐出サイクルの所定の段階で同時に吐出することが可能であるようにゲート制御されている吐出制御ポートを有する。
【００３５】
一例において、各ポッドは２列のノズルを有し、一方の列のノズルは、ページ上の１本のラインに沿って偶数ドットを配置し、他方の列のノズルは、ページ上の隣接するラインに沿って奇数ドットを配置する。
【００３６】
ノズル列の間の偏位は、ノズルの下方にある紙の流れに合致するように形成される。
各ポッドのノズルは、第１の側面から出発して第１の列に沿って、次に、他方の側面で終結するもう１つの列に同じ方向で沿って順次吐出を行うことが可能である。
【００３７】
１つのポッドは、共通のインクタンクを共有する１０本のノズルから構成され得る。一方の列が５本のノズルを備え、他方の列が５本のノズルを備える。各ノズルは、１５．８７５ｍｍの格子上に間隔をおいて直径２２．５ｍｍのドットを形成する。
【００３８】
各異なる色につき１つのポッドを共にグループ化して１つのクロマポッドを形成する。前記クロマポッドにおいて、１つの色のノズルにより印刷したドットが同時に他の色により印刷されたドットとは異なるラインに位置するが、クロマポッドの各ポッドが、順次同じグループのドットを印刷するように、異なる色のポッドが配置されている。
【００３９】
シアン、マゼンタ、黄色及び黒色の１つのポッドを１つのクロマポッドにグループとして形成することが可能である。クロマポッドは、異なるライン上にある１０個のドットからなる同一の水平方向のセットの異なる色成分を表わす。異なる色ポッドの間の正確な距離は、ドット幅の一定の数であり、それ故、印刷の際にはそれを考慮に入れなければならない。印刷アルゴリズムは、各色の間のドット幅の長さの変化を許容しなければならない。
【００４０】
１つ又はそれ以上のクロマポッドは位相グループに形成され得る。前記位相グループにおいて、作動可能なポッドグループ内のノズルのグループは、所与の吐出段階で同時に吐出させられる。位相グループの１つ又はそれ以上のポッドグループは、必要な印刷速度に依存して、同時に作動可能にされる。
【００４１】
５つのクロマポッドを１つのポッドグループに形成することが可能である。各クロマポッドは４０本のノズルを備え得るので、各ポッドグループは、２００本のノズル、すなわち、５０本のシアンノズル、５０本のマゼンタノズル、５０本の黄色ノズル、及び５０本の黒色ノズルを備え得る。
【００４２】
２つのポッドグループを１つの位相グループに形成することが可能である。位相グループという名前がつけられたのは、１つの位相グループ内におけるノズルのグループが、所与の吐出段階で同時に吐出するからである。２つのポッドグループから１つの位相グループを形成することにより、２つのＰｏｄｇｒｏｕｐＥｎａｂｌｅラインにより低速及び高速の双方で印刷することが可能である。
【００４３】
２つの位相グループを１つの吐出グループにすることが可能である。この場合、各セグメントの吐出グループの数は４つである。吐出グループという名前がついたのは、これらの吐出グループが、すべて同時に吐出するからである。２つのイネーブルラインにより、位相グループのノズルを異なる吐出位相として別々に吐出させることが可能である。
【００４４】
４インチプリントヘッドは、通常、横に並んだ８つのセグメントからなり、各セグメントは４つの吐出グループを有する。
２つのプリントヘッドを組合せることにより、より幅広なプリントヘッドを形成することが可能である。それ故、８インチプリントヘッドは、２つの４インチプリントヘッドからなり、ノズル数は全部で５１，２００本となる。
【００４５】
ノズルの階層構造は、同じ電力消費を維持している間に、位相のオーバーラップ及び複数の速度を可能にする。さらに、ノズルグループ化しているポッドは物理的に安定している。
【００４６】
電力消費という点からいって、ノズルをグループ化することにより、低速印刷モード及び高速印刷モードが可能になり、異なる製品構成において、速度／電力消費の間で折り合いをつけることが可能である。
【００４７】
１つの４インチのプリントヘッドは、２５，６００本のノズルを備え得る。１つの印刷サイクルは、印刷されるべき情報によって、最高でこれらのノズルのすべての吐出を伴う。これらのノズルすべてを同時に吐出させると、余りに多くの電力が消費され、インクの再充填及びノズル干渉の点で問題を有する。さらに、ノズルの吐出は、ノズルポッドの共通のインクタンク内において制限された時間の間、音響的混乱をも発生させる。この混乱は、同じポッド内の他のノズルの吐出と干渉する恐れがある。従って、あるポッド内でのノズルの吐出は、可能である限り相互に偏位させる必要がある。
【００４８】
この問題を解決するために、１つのクロマポッドから各色の１本のノズルを吐出させ、その後、ポッドグループ内の次のクロマポッドからのノズルを吐出させることが可能である。
【００４９】
２つの吐出モード、すなわち低速印刷モード及び高速印刷モードが定義され得る。
低速印刷モード中においては、各位相グループの１つのポッドグループだけに吐出パルスが供給されるので、２つのうちの一方のポッドグループだけがノズルを吐出させる。低速印刷モード中は、双方のポッドグループ内のクロマポッドは、第１のクロマポッドが再び吐出する前にすべてのノズルを吐出させなければならない。
【００５０】
低速印刷モード中においては、各４インチのプリントヘッドから１２８本のノズルを同時に吐出させることが可能である。吐出させられるノズルの間隔は、最も遠く離れていなければならない。それ故、８つの各グメントから１６本のノズルが吐出する。２５，６００のノズルすべてを吐出させるには、１２８本のノズルからなる異なる２００組を吐出させなければならない。
【００５１】
高速印刷モード中は、双方のポッドグループが設定される。それ故、双方のポッドグループがノズルを吐出させる。高速印刷モード中、１つのポッドグループ内のクロマポッドは、第１のクロマポッドが再度吐出する前にすべて吐出しなければならない。
【００５２】
高速印刷モード中は、各４インチのプリントヘッドから２５６本のノズルを同時に吐出させることが可能である。吐出させられるノズルの間隔は最も遠く離れていなければならない。それ故、各セグメントから３２本のノズルが吐出させられる。２５，６００本のノズルすべてを吐出するには、２５６本のノズルからなる異なる１００組を吐出させなければならない。
【００５３】
従って、低速印刷の所要時間は、高速印刷の所要時間の２倍掛かる。何故なら、高速印刷の場合には、一度に２倍のノズルを吐出させるからである。低速印刷モードの場合の消
費電力は、高速印刷モードの場合の消費電力の半分である。しかし、１枚のページを印刷するのに消費されるエネルギは、双方の場合同じである。
【００５４】
プリントヘッドは、吐出パルスのタイミングを調整するためにいくつかのフィードバック線を印刷する。１つのフィードバック信号は、コントローラに、プリントヘッドの温度を知らせる。それにより、コントローラは、吐出パルスのタイミングを調整することが可能である。何故なら、温度によりインクの粘度が変化するからである。第２のフィードバック信号は、コントローラにアクチュエータに供給可能な電圧を知らせる。これは、コントローラが、パルス幅を調整することにより、フラットバッテリー又は高圧源を補償することを許容する。第３のフィードバック信号は、コントローラにアクチュエータヒータの比抵抗（オーム毎平方（Ｏｈｍｅｓ  ｐｅｒ  ｓｑｕａｒｅ）を知らせる。これにより、コントローラは、ヒータの比抵抗とは無関係に、一定のエネルギを維持するためにパルス幅を調整することが可能である。第４のフィードバック信号は、コントローラに、リソグラフィ及びエッチングの変動により、±５％まで変化し得るヒータの重要部分の幅を知らせる。これにより、コントローラは、パルス幅を適当に調整することが可能である。
【００５５】
ロードサイクルは、プリントヘッドに、以降の印刷サイクル中に印刷される情報をロードする。各ノズルの吐出制御ポートは、印刷サイクル中にノズルを吐出させるかどうかを決定する関連するＮｏｚｚｌｅＥｎａｂｌｅビットを有することが可能である。ＮｏｚｚｌｅＥｎａｂｌｅビットは、ロードサイクル中に、１組のシフトレジスタによりロードされる。すべてのシフトレジスタが完全にロードされると、すべてのビットは、平行して適当なＮｏｚｚｌｅＥｎａｂｌｅビットに転送される。この転送が行われると、印刷サイクルは開始し得る。印刷サイクル及びロードサイクルは、すべてのＮｏｚｚｌｅＥｎａｂｌｅビットの平行したローディングが印刷サイクルの終わりに行われる限りは、同時に行うことが可能である。
【００５６】
印刷プロセスは、プリントヘッドに対して正しいシーケンスで、データを印刷しなければならない。一例を挙げると、第１のクロックパルスは、次の印刷サイクルの０番、８００番、１６００番、２４００番、３２００番、４０００番、４８００番及び５６００番のドットに対して、ＣＭＹＫビットを転送することが可能である。第２のクロックパルスは、次の印刷サイクル１番、８０１番、１６０１番、２４０１番、３２０１番、４００１番、４８０１番及び５６０１番のドットに対して、ＣＭＹＫビットを転送することが可能である。８００個のＳＲクロックパルスの後で、転送パルスが供給される。
【００５７】
もちろん、８００個のＳＲクロックパルス内において、ＮｏｚｚｌｅＥｎａｂｌｅビットへの最後の転送に対応してシフトレジスタをローディングしなければならない。この場合、多数の異なる書込みの可能性が存在する。一方のローディング（すなわち、書込み）の可能性は、ポッドの順序でビットをローディングする方法であり、各ポッドにおいては、ビットはポッドの一方の側面から他方の側面に配置されている各ノズルを表わす（第１の列内の第２のノズルに移動する前に、第１の列から最後の列にわたる第１のノズルを効率的にロードすること）。２列を有するポッドにおいては、このことは、目に明らかなジグザグ状でのノズルのローディングを意味する。もう１つの可能性は、ポッドの順序でビットをローディングする方法であり、この場合は、各ポッドにおいて、複数のビットが各列を表わし、各列は、ポッドの一方の側面のノズルから出発して他方の側面のノズルに至る。
【００５８】
重要なことは、同じ印刷サイクル中に印刷した場合でも、奇数及び偶数のＣＭＹＫ出力は、同じ物理的出力ライン上に印刷されないという事実に注意することである。プリントヘッド内における奇数ノズルと偶数ノズルとの間の物理的な間隔、及び異なる色のノズル同士の間隔によって、ドットがページの異なるライン上に印刷されることが保証される。
データをプリントヘッドにローディングする場合には、この相対的な違いを考慮に入れなければならない。ライン内の実際の違いは、プリントヘッドで使用するインクジェット機構の特性により異なる。この違いは、異なる色のノズル間の距離を表わす変数、及び同じ色のノズル間の距離により定義することが可能である。
【００５９】
本発明は、それぞれが、インク供給ポートと、インク配置ポートと、及びプリントヘッドの吐出サイクル中に、配置ポート（吐出）からインクドットを配置するために、信号を受信するための吐出制御ポートとを備える複数のノズルを備えるカラープリンタ用のモジュラプリントヘッドである。プリントヘッドのノズルは、グループ又はポッドの形で配置されている。この場合、各ポッドのノズルのインク供給ポートは、共通のインク供給ラインに接続している。各ポッドのノズルは、複数の列（印刷されるべきページを横切る方向に延びる列）に配列されており、複数の列のノズルは互いに偏位しており、そのため、各列のノズルは、同時に吐出させた場合、異なるライン上にドットを配置する。各々の異なる色のポッドは、一緒に作動グループ内に配置されており、そのグループにおいては、選択された相互に排他的なノズルのサブグループが、吐出サイクルの所定の段階で同時に吐出することが可能であるようにゲート制御されている吐出制御ポートを有する。
【００６０】
一例において、各ポッドは２列のノズルを有し、一方の列のノズルは、ページ上の１本のラインに沿って偶数ドットを配置し、他方の列のノズルは、ページ上の隣接するラインに沿って奇数ドットを配置する。
【００６１】
ノズル列の間の偏位は、ノズルの下方に位置する紙の流れに合致するように形成される。
各ポッドのノズルは、第１の側面から出発する第１の列に沿って、次に、同じ方向で他方の側面で終結する他方の列に沿って順次吐出し得る。
【００６２】
１つのポッドは、共通のインクタンクを共有する１０本のノズルから構成され得る。一方の列が５本のノズルを備え、他方の列も５本のノズルを備える。各ノズルは、１５．８７５ｍｍの格子上に間隔をおいて直径２２．５ｍｍのドットを形成する。
【００６３】
異なる各色の１つのポッドをグループ化して１つのクロマポッドを形成する。前記クロマポッドにおいて、１つの色のノズルにより印刷したドットは、同時に他の色により印刷されたドットとは異なるラインに位置するが、クロマポッドの各ポッドが、順次同じグループのドットを印刷するように、異なる色のポッドが配置されている。
【００６４】
シアン、マゼンタ、黄色及び黒色の１つのポッドを１つのクロマポッドにグループ化し得る。クロマポッドは、異なるライン上に、１０個のドットからなる同一の水平方向の組の異なる色成分を表わす。異なる色ポッド同士の間の正確な距離は、ドット幅の一定の数であり、それ故、印刷の際にはそれを考慮に入れなければならない。印刷アルゴリズムは、各色間のドット幅の長さの変化を許容しなければならない。
【００６５】
１つ又はそれ以上のクロマポッドは、作動可能なポッドグループにおけるノズルのグループが、所与の吐出位相で同時に吐出させられる位相グループに形成され得る。位相グループの１つ又はそれ以上のポッドグループは、必要な印刷速度に依存して、同時に作動可能にされる。
【００６６】
５つのクロマポッドを１つのポッドグループに編成することが可能である。各クロマポッドは、４０本のノズルを備え得るるので、各ポッドグループは、２００本のノズル、すなわち、５０本のシアンノズル、５０本のマゼンタノズル、５０本の黄色ノズル、及び５０本の黒色ノズルを備え得る。
【００６７】
２つのポッドグループを１つの位相グループに編成することが可能である。位相グループという名前がつけられたのは、１つの位相グループ内のノズルのグループが、所与の吐出段階で同時に吐出するからである。２つのポッドグループから１つの位相グループを形成することにより、２つのＰｏｄｇｒｏｕｐＥｎａｂｌｅラインにより低速及び高速の双方で印刷することが可能である。
【００６８】
２つの位相グループを１つの吐出グループに編成することが可能である。この場合、各セグメント内の吐出グループの数は４つである。吐出グループという名前がついたのは、これら吐出グループが、すべて同時に同じノズルを吐出するからである。２つのイネーブルラインにより、位相グループのノズルを異なる吐出位相として別々に吐出させることが可能である。
【００６９】
４インチプリントヘッドは、通常、横に並んだ８つのセグメントからなり、各セグメントは４つの吐出グループを有する。
２つのプリントヘッドを組合せることにより、より幅広なプリントヘッドを形成することが可能である。それ故、８インチプリントヘッドは、２つの４インチプリントヘッドからなり、ノズル数は全部で５１，２００本となる。
【００７０】
ノズルの階層構造により、同じ電力消費を維持している間に、オーバーラップした位相及び複数の速度を有することが可能である。さらに、ノズルをグループ化したポッドは、物理的に安定している。
【００７１】
電力消費という点からいって、ノズルをグループ化することにより、低速印刷モード及び高速印刷モードが可能になり、異なる製品構成において速度／電力消費の間で折り合いをつけることが可能である。
【００７２】
１つの４インチのプリントヘッドは、２５，６００本のノズルを備えることが可能である。１つの印刷サイクルは、印刷されるべき情報によって、最高でこれらのノズルのすべての吐出を伴う。これらのノズルすべてを同時に吐出させると、余りに多くの電力が消費され、インクの再充填及びノズル干渉の点で問題がある。さらに、ノズルの吐出は、またそのノズルポッドの共通のインクタンク内において制限された時間の間、音響的混乱を発生させる。この混乱は、同じポッド内の他のノズルの吐出と干渉する恐れがある。従って、あるポッド内でのノズルの吐出は、可能である限り相互にずらす必要がある。
【００７３】
この問題を解決するために、１つのクロマポッドから各色の１本のノズルを吐出させ、その後、ポッドグループ内の次のクロマポッドからのノズルを吐出させることが可能である。
【００７４】
２つの吐出モードは、低速印刷モード及び高速印刷モードと定義することが可能である。
低速印刷モード中は、各位相グループの１つのポッドグループだけに吐出パルスが供給されるので、２つのうちの一方のポッドグループだけが、ノズルを吐出させる。低速印刷モード中は、双方のポッドグループ内のクロマポッドは、第１のクロマポッドが再び吐出する前にすべてのノズルを吐出させなければならない。
【００７５】
低速印刷モード中は、各４インチのプリントヘッドから１２８本のノズルを同時に吐出することが可能である。吐出させられるノズルの間隔は最も遠く離れていなければならない。それ故、８つの各グメントから１６本のノズルが吐出する。２５，６００本のノズルすべてを吐出させるには、１２８本のノズルからなる異なる２００組を吐出させなければ
ならない。
【００７６】
高速印刷モード中は、双方のポッドグループが設定される。それ故、双方のポッドグループが、ノズルを吐出させる。高速印刷モード中、１つのポッドグループ内のクロマポッドは、第１のクロマポッドが再度吐出する前にすべて吐出させなければならない。
【００７７】
高速印刷モード中は、各４インチのプリントヘッドから２５６本のノズルを同時に吐出することが可能である。吐出させられるノズルの間隔は、最も遠く離れていなければならない。それ故、各グメントから３２本のノズルが吐出する。２５，６００本のノズルすべてを吐出させるには、２５６本のノズルからなる異なる１００組を吐出させなければならない。
【００７８】
従って、低速印刷の所要時間は、高速印刷の所要時間の２倍掛かる。何故なら、高速印刷の場合には、一度に２倍のノズルを吐出させるからである。低速印刷モードの場合の消費電力は、高速印刷モードの場合の消費電力の半分である。しかし、１枚のページを印刷するのに消費されるエネルギは、双方の場合同じである。
【００７９】
プリントヘッドは、吐出パルスのタイミングを調整するために、数行のフィードバックを印刷する。１つのフィードバック信号は、コントローラにプリントヘッドの温度を知らせる。それにより、コントローラは、吐出パルスのタイミングを調整することが可能である。何故なら、温度によりインクの粘度が変化するからである。第２のフィードバック信号は、コントローラにアクチュエータに供給可能な電圧を知らせる。これにより、コントローラは、パルス幅を調整することによって、フラットバッテリー又は高圧源を補償することが可能である。第３のフィードバック信号は、コントローラにアクチュエータヒータの比抵抗（オーム毎平方）を知らせる。これにより、コントローラは、ヒータの比抵抗とは無関係に一定のエネルギを維持するために、パルス幅を調整することが可能である。第４のフィードバック信号は、コントローラに、リソグラフィ及びエッチングの変動により±５％まで変化し得るヒータの重要部分の幅を知らせる。これにより、コントローラは、パルス幅を適当に調整することが可能である。
【００８０】
ロードサイクルは、プリントヘッドに、以降の印刷サイクル中に印刷される情報をローディングする。各ノズルの吐出制御ポートは、印刷サイクル中にノズルを吐出するかどうかを決定する関連ＮｏｚｚｌｅＥｎａｂｌｅビットを有することが可能である。ＮｏｚｚｌｅＥｎａｂｌｅビットは、ロードサイクル中に、１組のシフトレジスタによりロードされる。すべてのシフトレジスタが完全にロードされると、すべてのビットは、並列に適当なＮｏｚｚｌｅＥｎａｂｌｅビットに転送される。この転送が行われると、印刷サイクルは開始し得る。印刷サイクル及びロードサイクルは、すべてのＮｏｚｚｌｅＥｎａｂｌｅビットの平行したローディングが印刷サイクルの終わりで行われる限りは、同時に行うことが可能である。
【００８１】
印刷プロセスは、プリントヘッドに対して、正しいシーケンスでデータを印刷しなければならない。一例を挙げると、第１のクロックパルスは、次の印刷サイクルの０番、８００番、１６００番、２４００番、３２００番、４０００番、４８００番及び５６００番のドットに対して、ＣＭＹＫビットを転送することが可能である。第２のクロックパルスは、次の印刷サイクルの８０１番、１６０１番、２４０１番、３２０１番、４００１番、４８０１番及び５６０１番のドットに対して、ＣＭＹＫビットを転送することが可能である。８００個のＳＲクロックパルスの後で、転送パルスが供給される。
【００８２】
もちろん、８００個のＳＲクロックパルス内において、ＮｏｚｚｌｅＥｎａｂｌｅビットの最後の転送に対応して、シフトレジスタをローディングしなければならず、多数の異
なる書込みの可能性が存在する。１つのローディング（すなわち、書込み）の可能性は、ポッドの順序でビットをロードすることであり、各ポッドにおいて、ビットはポッドの一方の側面から他方の側面にわたる各ノズルを表わす（第１の列の第２のノズルに移動する前に、第１の列から最後の列にわたって第１のノズルを効率的にロードすること）。２列のポッドにおいては、これは、目に明らかなジグザグの形でノズルをロードすることを意味する。もう１つの可能性は、ポッドの順序でビットをロードすることである。各ポッドにおいて、ビットが各列を表わし、各列は、ポッドの一方の側面のノズルから出発して、他方の側面に至る。
【００８３】
重要なことは、同じ印刷サイクル中に印刷した場合でも、奇数及び偶数のＣＭＹＫ出力は、同じ物理的出力ライン上に印刷されないという事実に注意することである。プリントヘッドでの奇数ノズル及び偶数ノズルの間の間隔、及び異なる色のノズルの間の間隔により、ドットがページの異なるライン上に印刷されることが保証される。データをプリントヘッドにロードする場合には、この相対的な違いを考慮に入れなければならない。ライン内の実際の違いは、プリントヘッドで使用するインクジェット機構の特性により異なる。この違いは、異なる色のノズル間の距離を表わす変数、及び同じ色のノズル間の距離により定義することが可能である。
【００８４】
本発明は、コントーンカラー層をバイレベルにハーフトーン化し、ハーフトーン化したコントーン層上に黒色層を合成するためのハーフトーン化装置／コンポジタユニットである。前記ハーフトーン化装置／コンポジタユニット本発明は、一連のコントーンカラーピクセル値の形態にある展開されたコントーンカラー層、及び一連の黒色のドット値の形態にある展開された黒色層を受け入れるための入力ポートと、入力ポートで受け入れた各コントーンカラーピクセル値をディザさせ、各色成分用のバイレベルの出力ドットの値を決定するためのディザユニットと、ディザユニットからバイレベルの出力ドットの値、及び入力ポートから黒色のドット値を受け入れ、例えば、黒色のドットの値が完全な不透明を表わす場合には、各色に対するハーフトーン化されたドットの値を無色に表わすように設定されるように、ハーフトーン化された層の上に黒色層を合成するための合成ユニットと、コントーンカラーピクセル入力、黒色のドット入力、及びドット出力をクロック制御するために、イネーブル信号を発生するためのクロックイネーブルジェネレータと、独立した色平面を有し得る一連のバイレベルのドットの形態にある１組のバイレベルの画像ラインを供給するための出力ポートとを備える。
【００８５】
出力は、１セットの１６００ｄｐｉのバイレベルの画像ラインであってもよい。
カラーコントーン層は、ＣＭＹＫコントーン層であってもよい。
入力コントーンＣＭＹＫ  ＦＩＦＯは、８ＫＢのラインバッファを備えることが可能である。各ラインは、一度に読み出され、その後で、ラインの複製ーにより、垂直方向の拡大を行うために、コントーン基準倍率の回数だけ使用される。クロックイネーブルジェネレータが、ラッピングを可能にするコントーンライン前進イネーブル信号（ｃｏｎｔｏｎｅ  ｌｉｎｅ  ａｄｖａｎｖｅ  ｅｎａｂｌｅ  ｓｉｇｎａｌ）を発生する、最後の繰返されたラインの使用が開始する時点まで、ＦＩＦＯ書込みアドレスラッピングは不能になる。
【００８６】
別の方法としては、メモリトラフィックを６５ＭＢ／ｓだけ増大するが、オンチップ８ＫＢラインバッファは使用しないで、メインメモリから、コントーン基準倍率の回数だけラインを読み出すという方法がある。
【００８７】
上記ユニットが形成したデータを消費者は、通常、プリントヘッドインターフェースである。プリントヘッドインターフェースは、平面フォーマットの、すなわち、独立した色平面を備えるバイレベル画像データを必要とし得る。しかし、プリントヘッドは、また、
偶数及び奇数のピクセルが分離されていることを必要とする場合もある。カラーコントーン層がＣＭＹＫコントーン層である場合には、上記ユニットの出力段は、その各々が、偶数のシアン、奇数のシアン、偶数のマゼンタ、奇数のマゼンタ、偶数の黄色、奇数の黄色、偶数の黒、及び奇数の黒用の８つの並列ピクセルＦＩＦＯを使用することが可能である。
【００８８】
この目的のために、クロックイネーブルジェネレータは、また、出力ドットＦＩＦＯの偶数の組又は奇数の組を選択するために使用する偶数信号を発生することが可能である。
【００８９】
一旦開始すると、上記ユニットは、自分がページの終わりを検出するまで、又はその制御レジスタにより、はっきりと停止されるまで処理を続行する。
上記ユニットは、１ページ分の指定の幅及び長さのドットを発生するが、ページ構造及びパラメータを制御する目的のデータを供給するために多くのレジスタを使用することが可能である。
【００９０】
ページ幅レジスタは、プリントヘッドの幅に対応するページ幅データを受信するためのものである。
ページ長レジスタは、目標ページの長さに対応するページ長さデータを受信するためのものである。
【００９１】
左マージンレジスタは、左のマージンの位置を示すデータを受信するためのものである。
右マージンレジスタは、右のマージンの位置を示すデータを受信するためのものである。
【００９２】
左マージンから右マージンまでの距離は、目標のページ幅に対応する。ハーフトーン化装置／コンポジタユニットは、ページ幅に対して、指定された左右のマージンの間の目標ページ幅を発生する。
【００９３】
黒色ページ幅レジスタは、黒色ページ幅を示すデータを受信するためのものである。
コントーンページ幅レジスタは、コントーンページ幅を示すデータを受信するためのものである。
【００９４】
ハーフトーン化装置／コンポジタユニットは、指定の黒及びコントーンページ幅に従って黒及びコントーンデータを使用する。
ハーフトーン化装置／コンポジタユニットは、目標ページ幅に従って、黒及びコントーンデータをクリップする。それにより、入力ＦＩＦＯレベルのところで、特殊なラインの終了ロジックを必要とすることなく、黒色及びコントーンページ幅は、目標ページ幅を超えることが可能である。
【００９５】
この目標のために、クロックイネーブルジェネレータは、また、現在のドット位置がページの左又は右のマージン内に位置している場合、白い点を発生するために使用するマージン信号を発生することが可能である。
【００９６】
ハーフトーン化装置／コンポジタユニットは、指定の基準倍率に基づいて、水平方向及び垂直方向の双方のプリンタの解像度においてコントーンデータをスケーリングする。コントーン基準倍率を受信するために、コントーン基準倍率レジスタを設置することが可能である。この基準倍率は、ハーフトーン化装置／コンポジタユニットをスタートする前にコントーン基準倍率レジスタに書き込まなければならない。
【００９７】
下記の表は、ハーフトーン化装置／コンポジタ制御及び構成レジスタの概要を示す。
【表１】
0004621766.tif 000002
【００９８】
ディザセルにおいては、ボリュームの各ドットの列を２５６個の個々のビットとして実行することが可能である。
【００９９】
別の方法としては、ボリュームの各ドット列を閾値の一定の組として実行することも可能である。例えば、３つの８ビットの閾値を使用した場合には、２４のビットしか必要としない。ｎ個の閾値は、対応するディザセルの位置が、設定されていない状態、設定されている状態に交互になっているｎ＋１個の明暗度間隔を定義する。ディザしているコントーンピクセル値は、ｎ＋１個の間隔の中の一つを一意に選択し、そうすることにより、対応する出力ドットの値を決定する。
【０１００】
コントーンデータは、３つの閾値、すなわち、６４×６４×３×８ビット（１２ＫＢ）のディザボリュームを使用してディザさせることが可能である。上記３つの閾値は、１回のサイクル中に、ディザセルＲＯＭから検索することが可能である便利な２４ビット値を形成する。
【０１０１】
色平面の間で、ディザセル位置合わせが必要な場合には、同じ３つの閾値の値を１回検索することができ、各色成分をディザするために使用することが可能である。
【０１０２】
ディザセル位置合わせが必要ない場合には、ディザセルを４つのサブセルに分割し、そこから４つの異なる３つの閾値を１回のサイクル中に、並列に検索することが可能である４つの個々のアドレス可能なＲＯＭに記憶することが可能である。４つの色平面は、相互に垂直方向及び／又は水平方向に３２ドットずれた位置で同じディザセルを共有する。
【０１０３】
多重閾値ディザユニットを使用することが可能である。例えば、３つの閾値ユニットは、３つの閾値の値及び１つの明暗度の値を１つの間隔に、すなわち、１ビット又は０ビットに変換する。下記表は、３つの閾値規則を示す。
【表２】
0004621766.tif 000003
【０１０４】
合成ユニットは、ハーフトーン化されたＣＭＹＫ層ドット上で黒色層ドットを合成する。黒色層の不透明度が１である場合には、ハーフトーン化されたＣＭＹはゼロに設定される。
【０１０５】
４ビットのハーフトーン化されたカラーＣcＭcＹcＫc、及び１ビット黒色層不透明度Ｋbである場合には、合成ロジックは、下記の表のようになる。
【表３】
0004621766.tif 000004
【０１０６】
クロックイネーブルジェネレータは、１組のカウンタを使用する。下記表は、カウンタの内部ロジックの定義を示す。
【表４】
0004621766.tif 000005
【０１０７】
下記表は、クロックイネーブル信号のロジックの定義を示す。
【表５】
0004621766.tif 000006
【０１０８】
本発明は、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットにデジタル的にハーフトーン化するためのディザユニットである。上記ディザユニットは、各ディザセル位置に対する、対応するディザセルの位置が、交互に設定されていない状態、設定されている状態になるように定義されているｎ＋１個の明暗度間隔を定義するｎ個の閾値の固定の組を含むディザボリュームを備える。
【０１０９】
上記ディザユニットは、ディザボリュームを参照することによって、各色成分に対するバイレベルの出力ドットの値を決定することにより、入力ポートにおいて受信した各コントーンカラーピクセル値をディザするように動作することが可能である。
【０１１０】
ディザボリュームの１つのビット列を効果的にランレングスコード化するために、すなわち、１つのビット列を圧縮するために使用することが可能である。この処理は、上記列内の隣接するビットの間には、通常、コーヒレンスが存在するという事実に依存している。閾値の数が制限されているか、固定されている場合には、一般的なディザボリュームは、もはや必ずしも表示されることはできず、それ故、ディザボリュームが生成された場合、制限された数の閾値を尊重する必要がある。閾値の数が１に制限されている場合には、従来のディザマトリックスが得られる。
【０１１１】
画像の各色成分に対して、多重閾値ユニットが供給される。すべての多重閾値ユニットは、ディザボリュームに作動可能に接続している。各多重閾値ユニットは、出力ドットの位置に対応するディザセルの位置が、コントーン値が一意に選択する明暗度間隔内に設定されるように定義されているかどうかを判断することによって、コントーンカラーピクセル成分値に対応する出力ドットの値を決定する。
【０１１２】
３つの閾値を使用することが可能であるが、これらの閾値は８ビット閾値であってもよい。
色平面の間で、ディザセル位置合わせが必要な場合には、多重閾値の値を１回検索することができ、各色成分をディザするために使用することが可能である。
【０１１３】
色平面間で、ディザセル位置合わせが必要ない場合には、ディザセルを分割し、そこから異なる多重閾値の値を平行して検索することが可能である個々のアドレス可能なメモリに記憶することが可能である。
【０１１４】
４つの色成分コントーン層をハーフトーン化する必要がある場合には、４つの個々の３成分閾値ユニット（ｔｒｉｐｌｅ  ｔｈｒｅｓｈｏｌｄ  ｕｎｉｔ）は、それぞれ、各色成分に対する一連のコントーンカラーピクセル値を受信し得、ディザセルアドレスジェネレータは、ディザユニットのサブセルから４つの個々の３成分閾値の値の検索を制御するために、各３成分閾値ユニットのために、４つの四方向マルチプレクサと共に動作することが可能である。
【０１１５】
３成分閾値ユニットは、３組の閾値の値を、Ｔ1、Ｔ2及びＴ3に変換することができ、
下記の表に従って、明暗度の値Ｖを、インターバルへ、そこから１ビット又は０ビットに変換することが可能である。
【表６】
0004621766.tif 000007
【０１１６】
さらなる態様において、本発明は、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットにデジタル的にハーフトーン化するためのディザユニットである。この場合、上記ディザユニットは、ディザボリュームを有する。ハーフトーン化方法は、上記ディザセルの位置が、設定されていない状態、設定されている状態に交互に定義されているｎ＋１個の明暗度間隔を定義するｎ個の閾値の固定された組により、上記ディザボリュームの各ディザセルの位置を表示するステップと、上記コントーンピクセル成分の値に対応する出力ドットの値を決定する目的で、ｎ＋１個の明暗度間隔の内から１つを一意に選択するためにディザしているコントーンピクセル成分の値を使用するステップとを有する。
【０１１７】
ディザユニットが、さらに、画像の各色成分に対して、１つの多重閾値ユニットを備えている場合には、上記多重閾値ユニットのすべては、ディザボリュームに作動可能に接続している。上記方法は、さらに下記のステップ、すなわち上記各多重閾値ユニットにおいて、上記出力ドットの位置に対応するディザセルの位置が、上記コントーン値が一意に選択する明暗度間隔内に設定されるように定義されているかどうかを判断することによって、コントーンカラーピクセル成分値に対応する出力ドットの値を決定するステップを有する。
【０１１８】
本発明は、プリントヘッドの温度を示す信号を発生するための温度センサを含むタイプのプリントヘッド用のプリントヘッドコントローラと、それぞれがタンクからインクの供給を受けるためのインク供給ポートを有する複数のノズルと、インクドットを吐出するためのインク配置ポートと、及びプリントヘッドの吐出サイクル中に配置ポートからインクドットを配置するために信号を受信するための吐出制御ポートとを備えるプリンタである。この場合、プリントヘッドコントローラは、温度センサからプリントヘッドの温度を示す信号を受信するための手段と、ノズルの吐出制御ポートへ吐出信号を供給するための手段とを有する。上記プリントヘッドコントローラは、各印刷ジョブの前にすべてのノズルを吐出させるように設定し、各ノズルに一連の短い吐出パルスを供給するために、一連の修正した吐出サイクルを実行するよう作動可能である。各パルスの継続時間は、インクの滴を吐出させるには短すぎるが、プリントヘッドの温度を示す信号が動作平衡温度に達したことを示すまでインクを加熱するのには十分長い時間である。
【０１１９】
予熱モード中のフィードバックは、Ｔｓｅｎｓｅ（以下に定義する）により供給し得、温度が周囲温度より約３０℃高い温度に達するまで継続的に行われる。時間又は温度は、インクの組成により変化するため、平衡温度に達したころに、温度情報をフィードバックさせることは重要である。
【０１２０】
一例において、各ノズルに対して約２００個のパルスが必要になる。
予熱モードの継続時間は、約５０ミリ秒であり、この時間はインクの組成により異なる。
予熱は性能には影響を与えないが、データはプリンタに送られる。
予熱サイクルは、１を有するすべてのノズル（すなわち、すべてのノズルの吐出状態に設定）に対する１回のロードサイクルと、各ノズルに対する多数の短い吐出パルスとを伴う。パルスの継続時間は、インクの滴の吐出させるには短過ぎるが、インクを加熱するには十分長い。パルスの継続時間は、プリンタで使用する各インクにより異なる。各ノズルに対しては、全部で約２００個のパルスが必要であり、標準印刷サイクルと同じシーケンスが反復して実行される。
【０１２１】
本発明は、コンピュータメモリに内蔵されているリソースであって、リソースへの同時アクセスを必要とする複数の並列プロセッサ及びリソース内に座標を形成するためのリソースアドレスジェネレータを備える。この場合、上記リソースは、いくつかの部分に分割され、分割された各部分は、異なるメモリバンク内に記憶され、リソースアドレスジェネレータは、各プロセッサが使用するリソースの一部を選択するために使用される座標を発生する。選択は、各部分が一度に１つのプロセッサによってだけ使用されることを保証する。また、この選択により、各プロセッサは、リソース内に位置する順番に従って各部分を使用することも保証する。
【０１２２】
リソースは、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットにデジタル的にハーフトーン化するための多重閾値ディザマトリックスであってもよい。上記ディザマトリックスは、各ディザセル位置に対して、ディザセル位置が設定されていない状態、設定されている状態に交互になっているｎ＋１個の明暗度間隔を定義するｎ個の閾値の固定された組を有することが可能である。
【０１２３】
リソースへの同時アクセスを必要とする複数の並列プロセッサは、画像の各色成分用の多重閾値ユニットであってもよい。すべての多重閾値ユニットは、多重閾値ディザマトリックスに作動可能に接続していて、各多重閾値ユニットは、上記出力ドットの位置に対応するディザセルの位置が、コントーン値が一意に選択する明暗度間隔内に設定されるように定義されているかどうかを判断することによって、コントーンカラーピクセル成分値に対応する出力ドットの値を決定する。
【０１２４】
上記ディザユニットは、多重閾値ディザマトリックスを参照することによって、各色成分に対するバイレベルの出力ドットの値を決定することにより、入力ポートのところで受信した各コントーンカラーピクセル値をディザするように動作することが可能である。
【０１２５】
ディザセルはサブセルに分割され、個々にアドレス可能なメモリに記憶され得、前記メモリからは異なる多重閾値の値が平行して検索される。
４つの色成分コントーン層をハーフトーン化する必要がある場合には、４つの個々の３成分閾値ユニットは、それぞれ、各色成分に対する一連のコントーンカラーピクセル値を受信することができ、ディザセルアドレスジェネレータは、ディザマトリックスの４つの異なるサブセルから４つの異なる３成分閾値の値の検索を制御するために、各閾値ユニットのために、４つの四方向マルチプレクサと一緒に動作する。
【０１２６】
アドレスジェネレータは、色平面間でディザセル位置合わせを必要としない場合には、２つの閾値ユニットが、同じサブセルに対して同時アクセスを要求しないように、容易に配置され得る。
【０１２７】
さらに他の観点から見た場合、本発明は、コンピュータメモリに内蔵されているリソースにアクセスするための方法である。この場合、複数の並列プロセッサは、リソースへの
同時アクセスを必要とし、リソース内に座標を形成するためのリソースアドレスジェネレータが設置されている。上記方法は、
リソースをいくつかの部分に分割するステップと、異なるメモリバンク内に各部分を記憶するステップと、
各プロセッサが使用するリソースの一部を選択するために使用される座標を形成するためのリソースアドレスジェネレータを動作するステップとを備え、選択は各部分が一度に１つのプロセッサによってだけ使用されることを保証する。
【０１２８】
この選択により、各プロセッサは、リソース内に位置する順番に従って、各部分を使用することを保証する。
リソースは、コントーンカラーピクセル値のアレイの形態にあるコントーンカラー画像をバイレベルのドットに、デジタル的にハーフトーン化するための、多重閾値ディザマトリックスであってもよい。上記ディザマトリックスは、各ディザセル位置に対して、ディザセル位置が設定されていない状態、設定されている状態に交互になっているｎ＋１個の明暗度間隔を定義するｎ個の閾値の固定された組を含むことが可能である。
【０１２９】
リソースへの同時アクセスを必要とする複数の並列プロセッサは、画像の各色成分用の多重閾値ユニットであってもよい。すべての多重閾値ユニットは、多重閾値ディザマトリックスに作動可能に接続していて、各多重閾値ユニットは、出力ドットの位置に対応するディザセルの位置が、上記コントーン値が一意に選択する明暗度間隔内に設定されるように定義されているかどうかを判断することによって、コントーンカラーピクセル成分値に対応する出力ドットの値を決定する。
【０１３０】
ディザセルはサブセルに分割され、個々にアドレス可能なメモリに記憶され得る。前記メモリからは異なる複数の閾値の値が平行して検索される。
４つの色成分コントーン層をハーフトーン化する必要がある場合には、４つの個々の３成分閾値ユニットは、それぞれ、各色成分に対する一連のコントーンカラーピクセル値を受信することができ、ディザセルアドレスジェネレータは、ディザマトリックスの４つの異なるサブセルから、４つの異なる３成分閾値の値の検索を制御するために、各閾値ユニットのために、４つの四方向マルチプレクサと一緒に動作する。
【０１３１】
ディザセルアドレスジェネレータは、ディザセルの大きさの以外の現在のドット座標を反映するディザセル座標を発生することが可能である。ディザセル座標の低次のビットは、各ディザサブセル内の位置をアドレスするために使用することができ、ディザセル座標の高次のビットは、各多重閾値ユニットにより使用されるディザサブセルを選択するために使用することが可能である。上記選択は、各サブセル分が一度に１つの多重閾値ユニットによってだけ使用されることを保証する。また、この選択により、各多重閾値ユニットは、ディザセル内に位置する順番に従ってディザサブセルを使用することを保証する。
【０１３２】
本発明は、それぞれが、インク供給ポートと、インク配置ポートと、及びプリントヘッドの吐出サイクル中に、配置ポート（吐出）からインクドットを配置するために、信号を受信するための吐出制御ポートを備える複数のノズルとを備えるタイプのプリントヘッドを有するプリンタで使用するためのプリンタシステムである。プリンタは、また、上記ノズルのインク供給ポートにインクを供給するための（カートリッジのような）インクタンクを備え、前記プリンタシステムは、インクタンクが空になる時点を予測するために動作する。プリンタシステムは、プリンタにより印刷された、又は印刷されるべきインクドットの数を示す信号を受信するための入力ポートと、上記タンク内に残っているインクドットの数を示すデータを記憶するためのメモリと、上記入力ポートから信号を受信し、印刷が行われる場合に、上記メモリを更新するためのプロセッサとを備える。プリンタが印刷するインクドットの数を示す信号は、上記ノズルの吐出制御ポートにおいて受信する信号
と関連する。
【０１３３】
所定数のページの終わりがくると、他のページを印刷するのに十分なインクが、タンク内に残っているかどうかを示す表示を発生することが可能である。
十分なインクが残っていない場合には、新しいページは印刷されない。
印刷されたドット数、又は印刷されるべきドット数を示す信号は、プリントヘッド用のコントローラ、プリントヘッド自身、又はインクタンクから入手することが可能である。
【０１３４】
ドットカウンタは、プリントヘッドから吐出したインクドットの数の計数を維持することが可能である。ドットの計数は、周期的に消去することが可能である。ドットカウンタは、ドットが印刷された場合は、何時でも信号を受信するための入力ポートと、クロックターミナル及び入力クリアターミナルを備えるビットカウンタと、このカウンタの周囲の正のフィードバック接続と、現在の計数を示すカウンタからの出力とを有することが可能である。
【０１３５】
エンコーダは、受信した信号を変換するために、ドットカウンタへの入力ライン内に設置することが可能である。
プリンタが１つ以上のインクタンクを有している場合には、プリンタシステムは、プリンタにより印刷した、又は印刷しようとするインクドットの数を示す信号をタンクから受信するために、各インクタンクに対する入力ポートを備えることができ、メモリは、各タンク内に残っているインクドットの数を示すデータを記憶することが可能である。
【０１３６】
別の態様において、本発明は、上記インクタンクが空になる時点を予測するためのプリンタの動作方法である。上記方法は、下記のステップ、すなわち、プリンタにより印刷されたインクドットの数、又は印刷されるべきインクドットの数を示す信号を受信するステップと、各タンク内に残っているインクドットの数を示すデータを記憶するステップと、印刷が行われた場合に、メモリを更新するステップとを有する。この場合、プリンタにより印刷されたインクドットの数、又は印刷され得るインクドットの数を示す信号は、上記ノズルの吐出制御ポートにおいて受信される信号に関連する。
【０１３７】
所定数のページの終わりのところで、他のページを印刷するのに十分なインクがタンク内に残っているかどうかを示す表示を発生することが可能である。十分なインクが残っていない場合には、新しいページは印刷されない。
【０１３８】
本発明は、プリンタ用の吐出パルス継続時間制御システムである。上記システムは、
使用可能な電圧を示す信号を受信するための第１の入力ポートと、
吐出パルスの所定の継続時間を示す制御信号を発生するために、第１の入力ポートにおいて受信した信号により索引付けされた（ｉｎｄｅｘｅｄ）プログラム可能なパルス継続時間表と、
制御信号を送信するための出力ポートとを備える。
【０１３９】
プリンタのプリントヘッドの温度を示す信号を受信するために、第２の入力ポートを設置することが可能である。この場合、プログラム可能なパルス継続時間表は、制御信号を発生するために、第１の入力ポート及び第２の入力ポートの双方から受信した信号により索引付けされる。
【０１４０】
パルス継続時間表により、より低コストの電源を使用することができ、より正確なインク滴吐出を楽に維持することを援助する。
表の入力は、０〜４ミリ秒の範囲の値を表わすことができ、制御出力は索引付けされた入力により発生する。
【０１４１】
使用において、パルス幅ジェネレータは、その制御出力を受信し、プリントヘッド用の吐出パルスを発生するために、制御システムの下流に設置され得る。
表は、印刷する最初のページを印刷する前に書き込まれることが可能である。所望により、表は印刷時にページ間において更新され得る。
【０１４２】
表内の各入力は、下記の１つ又はそれ以上の特徴からの重み付けを有し得る。
・ユーザーの明暗度設定
・インクの粘度曲線
・Ｔｓｅｎｓｅは、コントローラに、プリントヘッドの温度を知らせる。これにより、コントローラは吐出パルスのタイミングを調整することが可能である。何故なら、温度によりインクの粘度が変化するからである。
・Ｖｓｅｎｓｅは、コントローラに、アクチュエータに供給可能な電圧を知らせる。これにより、コントローラは、パルス幅を調整することによって、フラットバッテリー又は高圧源を補償することが可能である。
・Ｒｓｅｎｓｅは、コントローラに、アクチュエータヒータの比抵抗（オーム毎平方）を知らせる。これにより、コントローラは、ヒータの比抵抗とは無関係に一定のエネルギを維持するためにパルス幅を調整することが可能である。
・Ｗｓｅｎｓｅは、コントローラに、リソグラフィ及びエッチングの変動により、±５％まで変化し得るヒータの重要部分の幅を知らせる。これにより、コントローラは、パルス幅を正しく調整することが可能である。
【０１４３】
パルス継続時間表は、２５６個の入力を有し得、各入力は８ビットであり得る。電圧を示す信号は、Ｖｓｅｎｓｅからのものであり、温度を示す信号は、Ｔｓｅｎｓｅからのものである。この場合、入力ポートにおいて受信される信号は、表を索引付けする目的で使用するために、変換されることが可能である。表への８ビットの入力は、２つの４ビットの数で索引付けすることができ、よって、上位４ビットはＶｓｅｎｓｅから由来し、下位４ビットはＴｓｅｎｓｅから由来する。
【０１４４】
さらなる態様において、本発明は、プリンタ用の吐出パルス継続時間制御システムに関する。上記システムは、
第１の入力ポートと、
プログラム可能なパルス継続時間表と、
出力ポートとを備え、吐出パルス継続時間制御信号を発生するための方法は、
使用することが可能である電圧を示す信号を受信するステップと、
吐出パルスの所定の継続時間を示す制御信号を発生するために、第１信号によりプログラム可能なパルス継続時間表を索引付けするステップと、
制御信号を送信するステップとを有する。
【発明を実施するための最良の形態】
【０１４５】
１．  緒言
写真画質画像再現と雑誌画質テキスト再現とを組み合わせる高性能カラープリンタを参照しながら、本発明を説明する。このプリンタは、１６００ドット／インチ（ｄｐｉ）の２値ＣＭＹＫ（シアン、マゼンタ、黄色、黒色）を与える約２０．３ｃｍ（８インチ）ページ幅ドロップオンデマンド超小型電気機械式インクジェット（「メムジェト（Ｍｅｍｊｅｔ）」プリントヘッドを使用する。このプリンタは、フルカラーＡ４又はレターページを毎分３０枚を印刷し、入門レベルのデスクトッププリンタとして意図されている。このプリンタは、ｉプリント（ｉＰｒｉｎｔ）として設計されたものであり、以下の説明ではこの名称で呼ぶ。
【０１４６】
１．１  動作の概要
ｉプリントは、２値黒色を直接用いる黒色テキスト及びグラフィック、並びにディザリングされた２値ＣＭＹＫを用いる連続階調（コントーン（ｃｏｎｔｏｎｅ））画像及びグラフィックを再現する。実用的にはｉプリントは黒色解像度８００ｄｐｉ及びコントーン解像度２６７ピクセル／インチ（ｐｐｉ）を可能とする。
【０１４７】
使用する際にはｉプリントは、比較的低速の（１．５Ｍバイト／秒）ユニバーサルシリアルバス（ＵＳＢ）接続［非特許文献１４］を介して作業端末又はパーソナルコンピュータ（ＰＣ）に取り付けられる。ｉプリントはＰＣによって、各ページをコントーン画素及び黒色ドットのレベルまでレンダリングする。ＰＣは、レンダリングされた各ページを３ＭＢ未満まで圧縮して、プリンタに２秒以下で送る。ｉプリントはメムジェットプリントヘッドの速度でラインごとにページを解凍・印刷する。ｉプリントは圧縮したページの２ページ分には十分なバッファメモリ（６ＭＢ）を有していることから、次のページを受信しながら１ページを印刷することが可能である。但し、圧縮されていない１ページ分（１１９ＭＢ）に十分なバッファメモリは備えていない。
【０１４８】
１．２  ページ幅
標準的なメムジェットノズルの構成には、約１．２７ｃｍ（１／２インチ）の単位セルを有することから、約１．２７ｃｍ（１／２インチ）の複数倍であるページ幅に簡易に調整することが可能である。専門化が妥当である市場においては、特注のノズルレイアウトによって任意のページ幅を得ることが可能である。最初のメムジェット組立ブロックは、広範囲で有用な約１０．２ｃｍ（４インチ）プリントヘッドであり、それによって約１５．２ｃｍ（６インチ）シリコンウェハを有効に用いることが可能である。従って、ｉプリントの設計は、約１０．２ｃｍ（４インチ）プリントヘッド２個を合体させて構成されている約２０．３ｃｍ（約８インチ）メムジェットプリントヘッドを想定している。さらに幅の大きいプリントヘッドを用いてＡ４／レターページ上でフルブリードを得るようにしても、ｉプリントの設計のわずかな点、具体的には正確な機械的設計及びプリントヘッドインターフェースの論理に影響があるのみである。
【０１４９】
２．  メムジェット印刷
メムジェットプリントヘッドは１６００ｄｐｉの２値ＣＭＹＫを与える。低拡散紙上では、各吐出液滴はほぼ完全な円形の直径２２．５μｍのドットを形成する。ドットは独立させて得ることが容易であり、拡散ドットディザをその最大まで活用することが可能である。メムジェットプリントヘッドはページ幅であり、一定の紙送り速度で動作することから、４色面が完全な位置合わせ精度をもって印刷され、理想的なドット・オン・ドットの印刷が可能となる。結果的に色平面間には空間的相互作用がないことから、同じディザマトリクスを各色平面に用いる。
【０１５０】
ページレイアウトには、画像、グラフィック及びテキストが混在していても良い。連続階調（コントーン）画像及びグラフィックは、確率的拡散ドットディザを用いて再現される。クラスタードット（又は振幅変調）ディザとは異なり、拡散ドット（又は周波数変調）ディザは高い空間周波数（すなわち、画像の詳細）をドット解像度のほぼ限界まで再現し、同時に相対的に低い空間周波数をそのフルカラーの色数（ｆｕｌｌ  ｃｏｌｏｒ  ｄｅｐｔｈ）まで再現する。確率的ディザマトリクスを注意深く設計して、画像全体にタイル表示する際に好ましくない低周波数パターンがないようにする。それ自体のサイズは、多くの強度レベルをサポートする上で必要な最小サイズ（すなわち、２５７強度レベルでは１６×１６×８ビット）を超えるのが普通である。ｉプリントは、サイズ６４×６４×３×８ビットのディザ容量を用いる。その容量は、１個のドットが強度範囲を通じて複数回（従来のディザマトリクスの場合のようにただ１回ではなく）状態を変えることが可能であるようにすることで、ディザ設計時にかなりの自由度を提供するものである。
【０１５１】
人間のコントラスト感度は視野１度当たり約３周期の空間周波数でピークとなり、それから対数的に下降して係数１００で低下し、１度当たり約４０周期を超えて測定することは困難となる［非特許文献２］。４００ｍｍ〜２５０ｍｍという通常の目視距離では、それは印刷ページ上で１５０〜２５０周期／インチ（ｃｐｉ）又はナイキストの定理によれば３００〜５００サンプル／インチに相当する。色感度はグレースケール感度ほど鋭くないことを考慮すると、約４００画素／インチ（ｐｐｉ）を超えるコントーン解像度は用途が限られ、実際にはディザによる色誤差にわずかに寄与するものである。
【０１５２】
黒色のテキスト及びグラフィックは２値黒色ドットを直接用いて再現されることから、印刷に先だってアンチエリアジング（すなわち低域能動フィルター処理）されない。従ってテキストは、上記で説明した知覚範囲を超えてサンプリングされ、空間的に統合されると滑らかなエッジを与える。約１２００ｄｐｉまでのテキスト解像度はやはり、知覚されたテキストの鮮明度（ｓｈａｒｐｎｅｓｓ）に寄与する（当然のことながら、低拡散紙と仮定して）。
【０１５３】
３．１  制約
ＵＳＢ（ユニバーサルシリアルバス）は、新しいＰＣでの標準的な低速周辺機器接続である［非特許文献４］。標準的な高速周辺機器接続ＩＥＥＥ１３９４が望ましいが、残念ながらやはりＰＣ９９仕様で動作可能であることから［非特許文献５］、ｉプリントが最初に発売される頃には広く使用され得ない。従ってｉプリントは、ＵＳＢを介してパーソナルコンピュータ（ＰＣ）や作業端末に接続されることから、ＵＳＢ接続の速度がｉプリントシステム構成に対する最も大きい制約となる。３０ページ／分という一定の印刷速度では、１．５ＭＢ／秒のＵＳＢでは平均限界が３ＭＢ／ページとなる。ページ印刷時にメムジェットに基づくプリンタを中断するという動作は肉眼で観察される不連続を生じることから、プリンタが印刷を始める前に全ページを受信し、バッファ不足の可能性を排除することが有利である。プリンタは限られたバッファメモリ、すなわち２ページ相当又は６ＭＢのみを備えることが可能であることから、３ＭＢ／ページという限界は絶対的と考えなければならない。
【０１５４】
図１には、プリンタにおける二重バッファリングで得ることが可能である定常印刷速度を示してある。第１段階１では、最初のページをＰＣでレンダリングする必要があり、それには２秒以下の時間を要する。第２段階２では、次のページをレンダリングし、最初のページをプリンタに転送するが、やはりそれには２秒以下の時間を要する。第３段階３では、最初のページを印刷し、第２のページを送り、第３のページをレンダリングし、それに２秒を要する。その結果、最初のページを印刷するのに最高で６秒を要し、その後２秒ごとに１ページを印刷することが可能である。
【０１５５】
他のデスクトップ接続オプションはＵＳＢと同様のバンド幅を提供することから、構成に対して同様の制約がある。それには、２ＭＢ／秒のパラレルポート、約１ＭＢ／秒の１０ベース−Ｔイーサネットなどがある。
【０１５６】
３．２  ページのレンダリング及び圧縮
ページレンダリング（又はラスター化）は、各種方法によってＰＣとプリンタとの間で分割することが可能である。一部のプリンタは、ポストスクリプトなどの全ページ記述言語（ＰＤＬ）をサポートし、それに応じて複雑なレンダラーを有する。他のプリンタは、テキストのレンダリング専用の特別なサポートを提供して、高いテキスト解像度を実現する。これは、通常、内蔵又はダウンロード可能なフォントのサポートを含む。そのような場合、埋込レンダラーを用いることでＰＣへのレンダリング負担が軽減され、ＰＣからプリンタに転送されるデータ量が減少する。しかしそれには代償が伴う。そのプリンタは予
想された以上に複雑となり、多くの場合、アプリケーションプログラムがページの構成、レンダリング及び印刷を行うＰＣのグラフィックシステムを完全にサポートすることができない。上記は、大抵、現行のＰＣの高性能を利用できず、ＰＣ性能における予定された級数的成長を利用できない。
【０１５７】
ｉプリントはＰＣ４によってページ、すなわちコントーン画像及びグラフィックを画素レベルまでレンダリングし、黒色のテキスト及びグラフィックをドットレベルまでレンダリングする。ｉプリント５は、コントーンデータをディザ処理し、結果をフォアグラウンドの２値式黒色テキスト及びグラフィックと結合させる簡単なレンダリングエンジンのみを有する。この戦略によってプリンタは簡素であり、かつページ記述言語やグラフィックシステムに依存しなくなる。それは現行のＰＣの高性能を完全に利用するものである。この戦略の欠点は、ＰＣからプリンタに転送しなければならないデータ量が大きくなる可能性があることである。そこで我々は、一定の印刷速度３０ページ／分を可能とする上で必要な３ＭＢ／ページまでそのデータを減少させるために圧縮を用いる。
【０１５８】
図２は、アプリケーション６から印刷ページ７への概念的なデータの流れを示すフローチャートである。
約２０．３ｃｍ（８インチ）×約２９．７ｃｍ（１１．７インチ）のＡ４ページは、１６００ｄｐｉで１１４．３Ｍバイトの２値ＣＭＹＫページサイズを有し、３００ｐｐｉで３２．１ＭＢのコントーンＣＭＹＫページサイズを有する。
【０１５９】
プリンタドライバ８においては、ＪＰＥＧ圧縮を用いて、コントーンデータを圧縮する。ＪＰＥＧは性質上損失が大きいが、１０：１以下の圧縮率では、通常、その損失は無視できる程度である［非特許文献１６］。２値比までの積算コントーンを得、かつある程度の圧縮許容差を得るために、２６７ｐｐｉのコントーン解像度を選択する。これは、２５．５ＭＢのコントーンＣＭＹＫページサイズと、３ＭＢ／ページという制限内に合致する８．５：１という対応する圧縮比と、コントーンを各次元において１．６という２値比（ｂｉ−ｌｅｖｅｌ  ｒａｔｉｏ）とする。
【０１６０】
プリンタの解像度（１６００ｄｐｉ）でラスター化した黒色テキスト（及び／又はグラフィック）の全ページは２８．６ＭＢの２値画像を与える。１６００ｄｐｉでのテキストのラスター化は小さい利得を得るのにＰＣにかなりの負担を負わせることから、完全に許容される８００ｄｐｉでテキストをラスター化することを選択する。これにより、７．１ＭＢの２値画像が得られ、３ＭＢ／ページという制限内に適合するために２．５：１未満の損失のない圧縮比が必要となる。いずれも符号１０で示したグループ４ファクシミリ（Ｇｒｏｕｐ  ４  Ｆａｘｃｓｉｍｉｌｅ）から採用した２次元圧縮法にて、これを行っている。
【０１６１】
ページの画像領域とテキスト領域が重なっていない限り、これら２つの組合せは３ＭＢの制限内に適合する。テキストが背景画像の上部にあると、最悪の場合には６ＭＢに近い圧縮ページサイズとなる（実際のテキスト圧縮率によって決まる）。これは、プリンタのページバッファメモリ内に適合するが、プリンタにおけるページの二重バッファリングを防止することで、プリンタのページ速度を２／３、すなわち１０ページ／分まで低下させる。
【０１６２】
３．３  ページ拡大と印刷
前述のように、ＰＣはコントーン画像及びグラフィックを画素レベルまでレンダリングし、黒色のテキスト及びグラフィックをドットレベルまでレンダリングする。それらは、工程１１において異なる手段によって圧縮され、一緒にプリンタに転送される。
【０１６３】
プリンタには２つの３ＭＢページバッファを備え、一方はＰＣから受信するページ用のバッファ１２であり、もう一方は印刷されるページ用のバッファ１３である。プリンタは圧縮されたページを印刷時に展開する。その展開は、２６７ｐｐｉコントーンＣＭＹＫ画像データを解凍する工程１４と、得られたコントーン画素を１６００ｄｐｉ２値ＣＭＹＫドットまで階調表現する工程１５と、８００ｄｐｉの２値黒色テキストデータを解凍する工程１６と、相当する２値ＣＭＹＫ画像ドット上に得られた２値黒色テキストドットを合成する工程１７とからなる。
【０１６４】
アプリケーションから印刷ページへの概念的なデータの流れを図２に示す。４．  プリンタハードウェア
ページ幅メムジェットプリントヘッドが簡素であることから、ｉプリントは非常に小型である。その寸法は、閉じた状態で幅２７０ｍｍ×奥行き８５ｍｍ×高さ７７ｍｍしかない。図３は、閉じた状態でのｉプリント２１の模式図である。
【０１６５】
カバー２２は開くと、図４に示したように紙トレイの一部を形成する。第２の部分２３はカバー内に蝶番止めされており、開くと紙トレイが広がる。排紙トレイ２４はプリンタの正面から摺動して伸長可能である。
【０１６６】
カバー２２を開くと現れるフロントパネル２５には、ユーザーインターフェース（すなわち電源ボタン２６及び電源インジケータＬＥＤ２７）、給紙ボタン２８、ならびに用紙切れＬＥＤ２９及びインク切れＬＥＤ３０がある。
【０１６７】
４．１  用紙経路
ｉプリントは標準的な紙送り機構を用いる。用紙経路５０は図５に示してあり、図中において１個のステッパモータ５１がシート送りローラ５２と紙搬送手段の両方を駆動する。順方向に動作すると、それぞれ能動的用紙経路のそれぞれ始点と終点でステッパモータが紙駆動ローラ５３とピンチホイール５４を駆動させる。逆方向の場合、ステッパモータは、シートフィーダから最も上のシートを掴み、そのシートを紙駆動ローラ５３までの短い距離で搬送するシート送りローラ５２を駆動し、ローラ５３では自動媒体センサー５５によってシートを検出する。
【０１６８】
紙センタリングスライダー５６によって、紙の中心合わせが行われる。それによって、１個の中央にある媒体センサーによるシート検出が行われ、やはりプリントヘッドより広いシートが均衡の取れたマージンを有して印刷される。
【０１６９】
４．１．１  メムジェットプリントヘッド
交換可能なメムジェットプリントヘッドカートリッジ６０も図５に示してある。これは、ｉプリントなどの製品におけるインクカートリッジに関して、プリントヘッドを備えるための以下の４つの可能な方法の一つを代表するものである。
・恒久型プリントヘッド、交換可能インクカートリッジ（本明細書に示したもの）、
・独立した交換可能なプリントヘッド及びインクカートリッジ、
・再充填可能な一体型のプリントヘッド及びインクカートリッジ、
・使い捨ての一体型のプリントヘッド及びインクカートリッジ。
【０１７０】
プリントヘッドカートリッジ６０の下にはプリントヘッドアセンブリ６１とプリントヘッドキャッピング機構６２とがあり、それらは図６の模式的破断図と図７の断面図に示してある。用時以外は、メムジェットプリントヘッド６３はインクが充填された状態であることから、キャップを施してノズルからのインク蒸発を防止しなければならない。インクが蒸発すると、インク成分が徐々に堆積する場合があり、それによってノズル動作に支障が生じる場合がある。
【０１７１】
ｉプリントは、自動ページ幅キャッピング機構６２を備え、同機構６２は弾性シール６５とスポンジ６６とを有する回動式キャッピング成形物６４から構成されている。プリントヘッドを使用していない時には、キャッピング成形物６４はバネによって、プリントヘッドアセンブリ６１の面に当接されており、弾性シール６５はプリントヘッドアセンブリの面と合致し、プリントヘッド６３周囲で気密シールを行う。スポンジ６６は、プリントヘッドクリーニングサイクル中に吐出される液滴を捕捉するのに使用される。プリントヘッド使用中には、キャッピング成形物６４はプリントヘッドアセンブリ６１から離れて、用紙経路から外部に保持されている。
【０１７２】
キャッピング成形物６４は、ロッド６９から一対の可撓性アーム６８によって偏位している。キャッピング成形物６４とアーム６８は、ロッド６９に対してその軸線を中心として回動する。ロッド６９の端部にはスリップホイール７０が取り付けられている。スリップホイール７０は駆動ホイール７１と接触している。印刷を行っている時は、駆動ホイール７１は紙搬送モータと組み合って、キャッピングしない方向７２において駆動される。それによって、スリップホイール７０とロッド６９がその軸を中心として回転して、キャッピング成形物６４をプリントヘッドから離反する方向に回転させる。スリップホイールがキャッピングしないスリップ点７３の間で回転すると、スリップホイールとキャッピング成形物は回転を停止する。印刷が完了すると、駆動ホイールが逆転し、キャッピング方向７４に駆動される。スリップホイールがキャッピングスリップ点７５まで回転すると、スリップホイール及びキャッピング成形物が回転を停止し、キャッピングバネがプリントヘッドアセンブリ面に当接するような位置でキャッピングプレートを保持する。可撓性アーム６８はキャッピングプレート６７がプリントヘッドアセンブリ６１の面に一致するようにする。
【０１７３】
４．２  プリンタ制御装置
プリンタ制御装置８０を図８に示す。プリンタ制御装置８０は、６４ＭビットＲＤＲＡＭ８２と、ｉプリント中央処理装置（ＩＣＰ）チップ８３と、エラー状態をユーザーに知らせるためのスピーカ８４と、ＱＡチップ８５と、外部３ボルトＤＣ電源接続部８６と、外部ＵＳＢ接続部８７と、紙搬送ステッパモータへの接続部８８と、媒体センサー５５、ＬＥＤ類７，９，１０、ボタン６，８に接続する可撓性ＰＣＢへの接続部８９と、プリントヘッド６３のリンク９０などの、いくつかの構成要素のみを有する小型ＰＣＢ８１から構成されている。
【０１７４】
４．３  インクカートリッジ及びインク経路
インクカートリッジには、大型のインクカートリッジと小型のインクカートリッジとの２種類がある。いずれもｉプリントユニットの背後にある同じインクカートリッジ溝に嵌合する。
【０１７５】
５．  プリンタ制御プロトコル
このセクションは、ホストとｉプリントとの間で使用されるプリンタ制御プロトコルについて説明するものである。本セクションは、制御及びステータスの取り扱いならびに実際のページ記述を有する。
【０１７６】
５．１  制御及びステータス
プリンタについてのＵＳＢ機器クラスの定義［非特許文献１５］は、単方向性及び双方向性の双方のＩＥＥＥ１２８４パラレルポートのエミュレーションを規定するものである［非特許文献３］。最も基本的なレベルでは、それによってホストはプリンタの能力を決定し（ＧＥＴ＿ＤＥＶＩＣＥ＿ＩＤによって）、プリンタステータスを把握し（ＧＥＴ＿ＰＯＲＴ＿ＳＴＡＴＵＳによって）、プリンタをリセットする（ＳＯＦＴ＿ＲＥＳＥＴに
よって）ことが可能である。以下の表１には、セントロニクス／ＩＥＥＥ１２８４プリンタステータスフィールドを示してある。
【表７】
0004621766.tif 000008
【０１７７】
パーソナルコンピュータの印刷サブシステムは、一般的には、ある程度ＩＥＥＥ１２８４をサポートする。従って、プリンタにおけるＩＥＥＥ１２８４との適合性があれば、相当するプリンタドライバの開発が容易となる。プリンタに関するＵＳＢ機器クラス定義は、この同じ適合性を利用するためのものである。
【０１７８】
ｉプリントは、プリンタについてのＵＳＢ機器クラス定義を超えて制御プロトコルをサポートすることはない。留意すべき点として、さらに高レベルの制御プロトコルが定義されていれば、インク切れなどの状態もユーザーに報告されると考えられる（プリンタのインク切れＬＥＤによるだけではなく）。
【０１７９】
ｉプリントは未処理転送データ、すなわち、さらに高レベルの制御プロトコルでカプセル化されていない未処理転送データとしてページ記述を受信する。５．２  ページ記述
ｉプリントはフルドット解像度（１６００ｄｐｉ）で黒色を再現するが、コントーン色については階調表現を用いて若干低い解像度で再現する。従ってページ記述は、黒色層とコントーン層とに分割される。黒色層はコントーン層の上に合成されるものと定義される。
【０１８０】
この黒色層は、各画素当たり１ビットの不透明度を有するビットマップからなる。この黒色層マット（ｍａｔｔｅ）は、プリンタのドット解像度の整数倍率である解像度を有する。サポートされた最高解像度は１６００ｄｐｉ、すなわちプリンタのフルドット解像度である。
【０１８１】
コントーン層は、各ピクセルにつき３２ビットＣＭＹＫ色を有するビットマップからなる。このコントーン画像は、プリンタのドット解像度の整数倍率である解像度を有する。サポートされた最高解像度は２６７ｐｐｉ、すなわちプリンタのドット解像度の１／６である。
【０１８２】
コントーン解像度も一般的には黒色解像度の整数倍率とすることで、プリンタドライバでの計算を単純化する。しかしながらそれは必要条件ではない。
黒色層とコントーン層はいずれも圧縮型として、低速のＵＳＢ接続によるプリンタへの効率的な転送を行うようにする。
【０１８３】
５．２．１  ページ構造
ｉプリントは、そのプリントヘッド幅、その用紙経路の特性及び現在選択されているプリント媒体の大きさによって決定される印字可能ページ領域を有する。
印字可能ページ領域は、約２０．３ｃｍ（８インチ）の最大幅を有する。物理的なページ幅が約２０．３ｃｍ（８インチ）を超えた場合、対称な左マージン及び右マージンが必ず設けられる。物理的なページ幅が約２０．３ｃｍ（８インチ）未満であれば、印字可能ページ幅はそれに応じて小さくなる。印字可能ページ領域は、最大長を有さない。最大長
は単に、用紙経路の特性によって決まる上マージン及び下マージンを除いた物理的なページ長である。
【０１８４】
目標ページサイズは、ページ記述で具体的に述べた明瞭な（所望の）左マージン及び右マージンを除く印字可能ページ領域によって制限される。
理論的にはｉプリントは、上マージンや下マージンを規定するものではない。すなわち、垂直方向ではフルブリードが可能である。しかし実際には、ｉプリントは約２０．３ｃｍ（８インチ）プリントヘッドを用いるためにフルブリードＡ４／レタープリンタとしては設計されていないことから、強制的な上下マージンを設けて、通常のエッジ外印刷に対処するのに十分な大きさのスポンジを備えなければならない事態を回避させる。
【０１８５】
５．２．２  ページ記述フォーマット
表２には、ｉプリントによって期待されるページ記述のフォーマットを示してある。
【表８】
0004621766.tif 000009
【０１８６】
印刷可能ページ領域に関連して明瞭に定義される場合は別として、各ページ記述は完全であり、かつ自己独立型である。ページ記述が言及しているプリンタに、ページ記述とは別に送られるデータはない。
【０１８７】
ページ記述は、プリンタにページ記述フォーマットを確認させる記号及びバージョンを有する。記号及び／又はバージョンが欠落していたりプリンタと適合しない場合、プリンタはそのページを拒否する場合がある。
【０１８８】
ページ記述は、目標ページの解像度とサイズを定義するものである。必要に応じて、黒色層及びコントーン層を目標ページにクリップする。黒色又はコントーン倍率が目標のページ幅やページ高さの倍数ではない場合には必ずそれを行う。
【０１８９】
目標の左及び上マージンは、印刷可能ページ領域内での目標ページの位置決めを規定するものである。
黒色層パラメータは、黒色層の画素のサイズ、その目標解像度に対する整数倍率、その圧縮ページデータのサイズを定義するものである。サイズ可変の黒色ページデータは、ページ記述のサイズが固定された部分の次にある。
【０１９０】
コントーン層パラメータは、コントーン層の画素のサイズ、その目標解像度に対する整数倍率、その圧縮ページデータのサイズを定義するものである。サイズ可変のコントーンページデータは、サイズ可変黒色ページデータの次にある。
【０１９１】
ページ記述中の整数はいずれも、ビッグエンディアンバイトで保存される。
サイズ可変黒色ページデータ及びサイズ可変コントーンページデータは、８バイト境界で位置合わせされる。必要なパディングのサイズは、ページ記述構造のサイズ固定部分及びサイズ可変黒色データのサイズに含まれる。
【０１９２】
全ページ記述は、プリンタにおけるページバッファメモリに従って、３ＭＢ未満の目標サイズ及び６ＭＢの最大サイズを有する。
以下のセクションでは、圧縮黒色層及び圧縮コントーン層のフォーマットについて説明する。
【０１９３】
５．２．３  ２値黒色層圧縮
５．２．３．１  グループ３及び４ファクシミリ圧縮
グループ３ファクシミリ圧縮アルゴリズム［非特許文献１］は、低速でノイズの多い電話回線での転送のために損失なく２値データを圧縮するものである。２値データは、白色背景上で走査された黒色のテキスト及びグラフィックを表すものであり、アルゴリズムはそのクラスの画像用に調整される（例えば階調表現された２値画像については明瞭には調整されない）。１Ｄグループ３アルゴリズムが各走査線をランレングスコード化し、次に得られたランレングスをハフマンコード化する。０〜６３の範囲のランレングスは停止コードでコード化される。６４〜２６２３の範囲のランレングスは、それぞれが６４の整数倍を表す構成（ｍａｋｅ−ｕｐ）コードとそれに続く停止コードでコード化される。２６２３を超えるランレングスは、複数の構成コードとそれに続く停止コードでコード化される。ハフマンコード表は固定されるが、黒色ランと白色ランについて別々に調整される（一般的である１７２８より上の構成コードを除く）。可能であれば、２Ｄグループ３アルゴリズムは、前記走査線に関しての１組の短エッジデルタ値（ｓｈｏｒｔ  ｅｄｇｅ  ｄｅｌｔａｓ）（０、±１、±２、±３）として走査線をコード化する。デルタ記号はエントロピーコード化される（従って、ゼロデルタ記号は１ビット長のみとなる等である）。デルタコード化できない２Ｄコード化ライン内のエッジはランレングスコード化され、接頭部によって識別される。１Ｄ及び２Ｄコード化ラインは区別してマークされる。１Ｄコード化ラインは、実際に必要であるか否かとは無関係に、一定の間隔で設けられて、デコーダが画像劣化を最小限としながらラインノイズから再生可能であるようにする。２Ｄグループ３は６：１までの圧縮比を与える［非特許文献１３］。
【０１９４】
グループ４ファクシミリアルゴリズム［非特許文献１］は、エラーフリー通信ライン（すなわち、ラインが真にエラーを有さないか、あるいは比較的低いプロトコルレベルでエラー補正が行われる）での転送のために２値データを損失なく圧縮する。グループ４アルゴリズムは２Ｄグループ３アルゴリズムに基づいたものであり、転送がエラーを有さない
と仮定されることから、１Ｄコード化ラインがエラー復旧の補助として一定間隔で設けられないという本質的な変更を有する。グループ４は、ＣＣＩＴＴセットの試験画像について２０：１〜６０：１の範囲の圧縮比を達成する［非特許文献１３］。
【０１９５】
グループ４圧縮アルゴリズムの設計目的と性能により、グループ４圧縮アルゴリズムは２値黒色層の圧縮アルゴリズムとして適している。しかしそのハフマンコード表は比較的低い走査解像度（１００〜４００ｄｐｉ）に調整されており、２６２３を超えるランレングスを無駄にコード化する。８００ｄｐｉでは、我々の最大ランレングスは現在のところ６４００である。グループ４デコーダコアはプリンタ制御装置チップに利用可能であり得ることから（セクション７）、グループ４デコーダコアは４００ｄｐｉファクシミリの利用で通常生じるランレングスを超えるランレングスを扱うことはできないと考えられる。従って、変更を行う必要があると考えられる。
【０１９６】
グループ４の利点のほとんどがデータコード化に由来するものであることから、デルタコード化のみに基づく比較的単純なアルゴリズムが我々の要件を満足するものと考えられる。このアプローチについて以下に詳細に説明する。
【０１９７】
５．２．３．２  ２値エッジデルタ及びランレングス（ＥＤＲＬ）圧縮フォーマット
エッジデルタ及びランレングス（ＥＤＲＬ）圧縮フォーマットは、ある程度グループ４圧縮フォーマット及びその先行形式に基づいたものである［非特許文献１］［非特許文献１７］。
【０１９８】
ＥＤＲＬは、適切にエントロピーコード化された３種類の記号を用いる。それはエッジ作成（ｃｒｅａｔｅ  ｅｄｇｅ）、エッジ消去（ｋｉｌｌ  ｅｄｇｅ）及びエッジデルタ（ｅｄｇｅ  ｄｅｌｔａ）である。各線はその先行者（   ｐ
ｒｅｄｅｃｅｓｓｏｒ）を参照してコード化される。第１線の先行者は白色線と定義される。各線は白色を開始すると定義される。線が実際には黒色で開始すると（比較的起こりにくい状況）、それはオフセットゼロで黒色エッジを規定しなければならない。各線はその左端、すなわちオフセットページ幅でそのエッジを規定する。
【０１９９】
同じ意味を有する（白色−黒色又は黒色−白色）最大デルタ範囲内にエッジがある場合、前の線でのエッジを参照してエッジをコード化することが可能である。それはエッジデルタコードの一つを利用する。デルタが短く、しかも可能性の高いものであるほど、コードが短い。最大デルタ範囲（±２）を選択して、代表的なシンボルエッジにデルタの分布を適合させる。その分布はほとんどの場合、ポイント数とは独立である。代表的な例を表３に示してある。
【表９】
0004621766.tif 000010
【０２００】
エッジも、同じ線における前のエッジからランレングスを用いてコード化することが可能である。それは、短（７ビット）ランレングス及び長（１３ビット）ランレングスについてエッジ作成コードの一つを用いる。簡明さを期すと、グループ４とは異なり、ランレングスはエントロピーコード化されない。エッジデルタが前の線におけるエッジと明瞭に同期化した状態とするために、現在の線を通過する際に前の線における各未使用エッジを「消去する」。これはエッジ消去コードを用いる。ページ終了コードは、デコーダにペー
ジの終端を知らせる。
【０２０１】
留意すべき点として、７ビットランレングスと１３ビットランレングスを具体的に選択して、８００ｄｐｉにてＡ４／レターページをサポートする。比較的長いランレングスは圧縮性能に対してほとんど影響なくサポート可能であると考えられる。例えば、１６００ｄｐｉ圧縮をサポートする場合、ランレングスはそれぞれ少なくとも８ビット及び１４ビットなければならない。一般用途での選択は８ビット及び１６ビットであると考えられることから、幅約１０１．６ｃｍ（４０インチ）１６００ｄｐｉページまでがサポートされる。
【０２０２】
表４に、全組合せのコードを示してある。留意すべき点として、線終端コードはない。デコーダはページ幅を用いて線終端を検出する。コードの長さは、コード発生の相対的確率によって配列してある。
【表１０】
0004621766.tif 000011
【０２０３】
図９には、簡単な黒色及び白色画像９０のコード化例を示してある。画像は画素９２の線９１として配列してある。第１の線９１が白色であると仮定すると、白色であることからΔ０とコード化される。留意すべき点として、別の全白線に続く全白線の一般的状況は単一ビット（Δ０）を用いてコード化され、別の全黒線に続く全黒線は２つのビット（Δ０，Δ０）を用いてコード化される。第４線９３のようにエッジが線にある場合、作成コードを用いてエッジを規定する。次の線９４では、Δ−１及びΔ＋１コードを用いてエッジを移動させる。次の線９５では、新たなエッジを作成し、前のエッジは移動させずに消去するのがより簡便である。
【０２０４】
ＥＤＲＬコード化例
上記のものは圧縮アルゴリズム自体ではなく、圧縮フォーマットについて説明していることに留意されたい。同一画像について各種の同等のコード化を行い、一部はそれ以外のものより小型にすることが可能である。例えば、純粋なランレングスコード化は圧縮フォーマットに適合する。圧縮アルゴリズムの目的は、最良ではないとしても、所定画像についての良好なコード化を発見することにある。
【０２０５】
以下は、先行者を参照した線のＥＤＲＬコード化を行うための簡単なアルゴリズムである。
【表１１】
0004621766.tif 000012
0004621766.tif 000013
【０２０６】
アルゴリズムは線間の実際のエッジ連続性については分からず、実際には２本の線間で「誤った」エッジに合致し得ることに注意されたい。幸運にも、圧縮フォーマットは正しくデコードすることから、「誤った」マッチングが圧縮比に悪影響を与えることは困難であるので、本件ついては言及しない。
【０２０７】
完全を期するため、相当する解凍アルゴリズムを以下に示す。同アルゴリズムは、プリンタ制御装置チップでのＥＤＲＬエキスパンダユニットの中核を形成している（セクション７）。  
【表１２】
0004621766.tif 000014
【０２０８】
５．２．３．３  ＥＤＲＬ圧縮性能
表５には、グループ４アルゴリズムを選択するのに使用されるＣＣＩＴＴ試験ドキメントについてのグループ４及びＥＤＲＬの圧縮性能を示してある。各ドキメントは、４００ｄｐｉで走査された単一のページを表す。グループ４の優れた性能は、４００ｄｐｉの特徴に調整されたそのエントロピーコード化ランレングスによるものである。
【表１３】
0004621766.tif 000015
【０２０９】
雑誌テキストは一般的には、ポイントサイズ１０の活字（Ｔｉｍｅｓなど）書体で植字されている。そのサイズでは、Ａ４／レターページは１４０００文字まで有する、代表的な雑誌のページは約７０００文字を有する。テキストは５未満のポイントサイズで植字されることは希である。８００ｄｐｉにおいてテキストは、標準的な書体を用いて２未満のポイントサイズとすることは実用上不可能である。表６には、各種ポイントサイズの判読性を示してある。
【表１４】
0004621766.tif 000016
【０２１０】
表７には、８００ｄｐｉで表現した各種ポイントサイズのテキストページについてのグループ４及びＥＤＲＬの圧縮性能を示してある。ＥＤＲＬによって、ポイントサイズ３で植字されたテキストの全ページについて必要な圧縮比２．５が得られることに留意されたい。テキストページ上の文字分布は、英語統計学に基づいている［非特許文献１２］。
【表１５】
0004621766.tif 000017
【０２１１】
９以上のポイントサイズでは、単にグループ４のランレングスコードが４００ｄｐｉに調整されているという理由で、ＥＤＲＬはグループ４よりわずかに性能が優れている。
【０２１２】
これらの圧縮結果は、非常に小さい文字の場合のように、データの垂直方向での関連づけが低くない限り、エントロピーコード化ランレングスが２Ｄコード化ほど圧縮に寄与しないという所見を裏付けるものである。
【０２１３】
５．２．４  コントーン層圧縮
５．２．４．１  ＪＰＥＧ圧縮
ＪＰＥＧ圧縮アルゴリズム［非特許文献６］は、指定の画質レベルにて、損失を伴って、コントーン画像を圧縮する。ＪＰＥＧ圧縮アルゴリズムは、５：１以下の圧縮比で知覚できない程度の画像劣化、及び１０：１以下の圧縮比では無視可能であるほどの画像劣化を伴う［非特許文献１６］。
【０２１４】
ＪＰＥＧは一般的には、最初に明るさとクロミナンスを別個の色チャンネルに分ける色空間に画像を変換する。人間の視覚系はクロミナンスより明るさに対する感度が相対的に高いことから、それによってクロミナンスチャンネルはほとんど損失なくサブサンプリングすることが可能である。この第１段階の後、各色チャンネルを別個に圧縮する。
【０２１５】
画像は８×８画素ブロックに分割される。次に、各ブロックを離散余弦変換（ＤＣＴ）を介して周波数ドメインに変換する。この変換は、比較的低い周波数係数で画像エネルギを集中する効果があり、それによって比較的高い周波数係数のより粗の量子化が行われる。その量子化はＪＰＥＧにおける主要な圧縮源である。係数を周波数ごとに配列することによりさらに圧縮が行われて、隣接するゼロ係数の見込みを最大にし、次にゼロのランレングスコード化ランを最大にする。最終的に、ランレングス及びゼロ以外の周波数係数をエントロピーコード化する。解凍は圧縮の逆のプロセスである。
【０２１６】
５．２．４．２  ＣＭＹＫコントーンＪＰＥＧ圧縮フォーマット
ＣＭＹＫコントーン層は、インターリーブド・カラーＪＰＥＧバイト流（ｂｙｔｅｓｔｒｅａｍ）に圧縮される。インターリービングは、プリンタにおける空間効率的解凍に必要であるが、デコーダを４組（すなわち、色チャンネル当たり１）ハフマンコード表ではなく、２組のハフマンコード表に制限する場合がある［非特許文献１６］。明るさとクロミナンスを分離すると、明るさチャンネルは一方の組の表を共有することができ、クロミナンスチャンネルは他方の組を共有することが可能である。
【０２１７】
表の共有又はクロミナンスのサブサンプリングのいずれかのために明るさ／クロミナンスの分離が必要と思われる場合、ＣＭＹをＹＣｒＣｂに変換し、Ｃｒ及びＣｂについて妥当なサブサンプリングを行う。Ｋは明るさチャンネルとして処理され、サブサンプリングされない。
【０２１８】
ＪＰＥＧバイト流は完全かつ自己独立型である。ＪＰＥＧバイト流は、量子化及びハフマンコード表を含む解凍に必要な全てのデータを有している。
６．  メムジェットプリントヘッド
８インチメムジェットプリントヘッドは、２個の標準的な約１０．２ｃｍ（４インチ）メムジェットプリントヘッドを並べて合体させた構成となっている。
【０２１９】
その２個の約１０．２ｃｍ（４インチ）プリントヘッドはｉプリントで使用するように特定の方法で一体に結束されている。結束を行うには約１０．２ｃｍ（４インチ）プリントヘッドについて理解しておく必要があることから、約１０．２ｃｍ（４インチ）プリントヘッドの概観をここでは示してある。
【０２２０】
６．１  約１０．２ｃｍ（４インチ）プリントヘッドの構成
各約１０．２ｃｍ（４インチ）プリントヘッドは８個のセグメントからなり、各セグメ
ントは長さ約１．３ｃｍ（１／２インチ）である。各セグメントは、ページの異なるセグメント上に２値のシアン、マゼンタ、黄色及び黒色のドットを印刷して最終画像を与える。
【０２２１】
プリントヘッドが１６００ｄｐｉでドットを印刷することから、各ドットは直径約２２．５ミクロンであり、１５．８７５ミクロンの間隔を有する。そこで各約１．３ｃｍ（１／２インチ）のセグメントが８００ドットをプリントし、８つのセグメントは表８に示した位置に相当する。
【表１６】
0004621766.tif 000018
【０２２２】
各セグメントは最終画像の８００ドットを生成するが、各ドットは２値のシアン、マゼンタ、黄色及び黒色のインクの組合せによって表される。印刷は２値であることから、入力画像についてディザリング又はエラー拡散を行って、最良の結果を得るようにしなければならない。
【０２２３】
各セグメントには３２００のノズル、すなわち各８００個のシアン、マゼンタ、黄色及び黒色のノズルを有する。約１０．２ｃｍ（４インチ）プリントヘッドは、このようなセグメントを８個有することから合計で２５６００個のノズルを有する。
【０２２４】
６．１．１  セグメント内のノズルのグループ化
一つのセグメント内にあるノズルは、物理的安定性ならびに印刷時の電力消費節減の理由からグループ化される。物理的安定性に関しては、計１０個のノズルが同じインク貯留部を共有する。電力消費に関しては、グループ化を行って、低速印刷モード及び高速印刷モードを可能とする。
【０２２５】
プリントヘッドは２種類の印刷速度をサポートしていることから、異なる製品形状で速度／電力消費のトレードオフを行うことが可能である。
低速印刷モードでは、１２８個のノズルが各約１０．２ｃｍ（４インチ）プリントヘッドから同時に吐出される。吐出ノズルは間隔が最大となるようにして、１６個のノズルが各セグメントから吐出されるようにする。２５，６００個のノズル全てを吐出させるには、１２８個のノズルの２００の異なる組合せを吐出させなければならない。
【０２２６】
高速印刷モードでは、２５６個のノズルが各約１０．２ｃｍ（４インチ）プリントヘッドから同時に吐出される。吐出ノズルは間隔が最大となるようにして、３２個のノズルが各セグメントから吐出されるようにする。２５，６００個のノズル全てを吐出させるには、２５６個のノズルの１００の異なる組合せを吐出させなければならない。
【０２２７】
低速モードでの電力消費は、高速モードでの消費の１／２である。しかしながら、ページを印刷するのに消費されるエネルギはいずれの場合も同じであることに留意されたい。
【０２２８】
６．１．１．１  ノズル１０個での１ポッドの形成
１個のポッド１００は、共通のインク貯留部を共有する１０個のノズル１０１からなる。５個のノズルで１列であり、５個で別の列となっている。各ノズルによって、１５．８７５ミクロン格子上に隔たった直径２２．５ミクロンのドットが形成される。図１０には、吐出させなければならない順序に従って番号を施したノズル１０１を有する１個のポッド１００の配置を示してある。
【０２２９】
ノズルはその順序で吐出されることから、ノズルと印刷ページ上のドットとの物理的位置の関係は異なっている。一方の列からのノズルはページ上の一方の列からの偶数ドットを示し、他方の列のノズルはそのページで隣接する線からの奇数ドットを示す。図１１には、負荷すべき順序に従って番号割り付けされたノズルを有する同じポッド１００を示してある。
【０２３０】
従って、ポッド内のノズルは１ドット幅だけ論理的に離間されている。ノズル間の正確な距離は、メムジェット吐出機構の特性によって決まる。プリントヘッドは、紙の流れに適合するよう設計された波形ノズルを用いて設計されている。
【０２３１】
６．１．１．２  各色１個のポッドによる色ポッド（ｃｈｒｏｍａｐｏｄ）の形成
各色１個のポッド、すなわちシアン１２１、マゼンタ１２２、黄色１２３及び黒色１２４を色ポッド１２５にグループ化する。色ポッドは異なる線上の同じ水平方向の１０ドット１組の異なる色成分を表す。異なる色ポッド間の正確な距離はメムジェット動作パラメータによって決まり、メムジェット設計ごとに変動し得る。その距離は一定数のドット幅であると考えられることから、印刷時に考慮しなければならない。シアンノズルが印刷するドットは、マゼンタ、黄色及び黒色ノズルが印刷するものとは異なる線のものである。印刷アルゴリズムは、色間で約８ドット幅までの可変距離を許容するものでなければならない。図１２には、１個の色ポッドを示してある。
【０２３２】
６．１．１．３  ５個の色ポッドによるポッドグループの構成
５個の色ポッド１２５を１個のポッドグループ１２６に編成する。各色ポッドは４０個のノズルを有することから、各ポッドグループは２００個のノズル、すなわちシアン５０個、マゼンタ５０個、黄色５０個及び黒色５０個のノズルを有する。配置は図１３に示してあり、色ポッドには０〜４の番号が施してある。留意すべき点として、隣接する色ポッド間の距離は明瞭を期すために誇張してある。
【０２３３】
６．１．１．４  ２個のポッドグループによる位相グループの構成
２個のポッドグループ１２６を１個の位相グループ１２７に編成する。位相グループ内のノズルグループは所定の吐出位相時に同時に吐出されることから、位相グループという呼称を与えている（それについては以下の詳細に説明する）。２個のポッドグループからの位相グループの形成は専ら、２つのポッドグループイネーブル（ＰｏｄｇｒｏｕｏｐＥｎａｂｌｅ）線を介した低速印刷及び高速印刷のためである。
【０２３４】
低速印刷時には、２つのポッドグループイネーブル線のうちの一方のみを所定の吐出パルスにセットすることから、２グループのうちの一方のポッドグループのみがノズルを吐出させる。高速印刷時には、両方のポッドグループイネーブル線をセットすることから、両方のポッドグループがノズルを吐出させる。結果的に、高速印刷では１回で２倍の数のノズルを吐出させることから、低速印刷は高速印刷の２倍の時間を必要とする。
【０２３５】
図１４には、位相グループの構成を示してある。隣接する位相グループ間の距離は、明瞭を期すために誇張してある。
６．１．１．５  ２つの位相グループによる吐出グループの構成
２つの位相グループ１２７（位相グループＡ及び位相グループＢ）を１個の吐出グループ１２８に編成し、各セグメント１２８には４つの吐出グループがある。吐出グループは、それらが全て同時に同じノズルを吐出させることからその名称となっている。２つのイネーブル線すなわちＡイネーブルとＢイネーブルによって、異なる吐出位相として独立に位相グループＡノズルと位相グループＢノズルの吐出が可能となる。配置を図１５に示してある。隣接するグループ間の距離は明瞭を期して誇張してある。
【０２３６】
６．１．１．６  ノズルグループ化の要約
表９は、プリントヘッドにおけるノズルグループ化の要約を示す。
【表１７】
0004621766.tif 000019
【０２３７】
６．１．２  ロード及び印刷サイクル
単一の１０．２ｃｍ（４インチ）プリントヘッドは合計で２５，６００個のノズルを有する。印刷サイクルは、印刷されるべき情報に依存してこれらのノズルの全てを吐出する段階を備える。ロードサイクルは、引き続く印刷サイクルの間に印刷されるべき情報をプリントヘッドにロードする段階を有する。
【０２３８】
各ノズルは、印刷サイクルの間において該ノズルが吐出するか否かを決定する関連ＮｏｚｚｌｅＥｎａｂｌｅビットを有する。（ノズル毎に１個の）該ＮｏｚｚｌｅＥｎａｂｌｅビットは、一グループのシフトレジスタを介してロードされる。
【０２３９】
論理的に、セグメント毎（ひとつのカラー毎に１個の）に、各々が８００深度（ｄｅｅｐ）の４個のシフトレジスタが在る。所定のカラーに対してシフトレジスタに各ビットがシフトされると、各ビットは交番のパルスにて上側及び下側ノズルに導向される。内部的には、各８００深度シフトレジスタは２個の４００深度シフトレジスタから成り、一方は上側ノズル用であり他方が下側ノズル用である。上記の交番的な内部レジスタに対して、交番的なビットがシフトされる。但し、外部インターフェースに関する限り、単一の８００深度シフトレジスタが在る。
【０２４０】
全てのシフトレジスタが完全にロードされた（８００個のロード・パルス）なら、全てのビットが適切なＮｏｚｚｌｅＥｎａｂｌｅビットへと平行して転送される。これは、２５，６００ビットの単一並列転送に相当する。上記転送が生じると、上記印刷サイクルが開始する。上記印刷サイクルの最後において全てのＮｏｚｚｌｅＥｎａｂｌｅビットに対する並列ロードが生ずる限りにおいて、上記印刷サイクル及びロードサイクルは同時に生
じ得る。
【０２４１】
６．１．２．１  ロードサイクル
ロードサイクルは、プリントヘッド用シフトレジスタに対して次の印刷サイクルの各ＮｏｚｚｌｅＥｎａｂｌｅビットをロードする段階に関する。
各セグメントは、シアン、マゼンタ、黄色及び黒色・シフトレジスタに直接的に関連付けられた４個の入力を有する。これらの入力は、ＣＤａｔａＩｎ、ＭＤａｔａＩｎ、ＹＤａｔａＩｎ及びＫＤａｔａＩｎと称される。８個のセグメントが在ることから、１０．２ｃｍ（４インチ）プリントヘッド毎に合計で３２本のカラー入力ラインが在る。（全ての８個のセグメントで共有された）ＳＲＣｌｏｃｋラインへの単一パルスにより、上記３２ビットは適切な各シフトレジスタへと転送される。交互的パルスにより各ビットは夫々上記上側ノズル及び下側ノズルへと転送される。２５，６００個のノズルが在ることから、上記転送に対しては合計で８００個のパルスが必要である。２５，６００ビットの全てが転送されたなら、共有されたＰＴｒａｎｓｆｅｒライン上の単一パルスにより、各シフトレジスタからのデータは適切な各ＮｏｚｚｌｅＥｎａｂｌｅビットへと並列転送される。
【０２４２】
ＰＴｒａｎｓｆｅｒ上のパルスによる上記並列転送は、上記印刷サイクルが終了した後に生ぜねばならない。さもないと、印刷されつつあるラインに対するＮｏｚｚｌｅＥｎａｂｌｅビットは誤りとなる。
【０２４３】
全ての８個のセグメントは単一のＳＲＣｌｏｃｋパルスによりロードされることから、一切の印刷プロセスは上記プリントヘッドに対する正しいシーケンスでデータを生成せねばならない。一例として、第１のＳＲＣｌｏｃｋパルスは次の印刷サイクルのドット０、８００、１６００、２４００、３２００、４０００、４８００及び５６００に対するＣＭＹＫビットを転送する。第２のＳＲＣｌｏｃｋパルスは次の印刷サイクルのドット１、８０１、１６０１、２４０１、３２０１、４００１、４８０１及び５６０１に対するＣＭＹＫビットを転送する。８００個のＳＲＣｌｏｃｋパルスの後、上記ＰＴｒａｎｓｆｅｒパルスが与えられ得る。
【０２４４】
奇数番目及び偶数番目のＣＭＹＫ出力は、同一の印刷サイクル内において印刷されるが、同一の物理的出力ライン上には現れないことに注意することは重要である。上記プリントヘッド内において奇数番目及び偶数番目のノズルを物理的に分離すると共に、異なるカラー間を分離すると、それらは確実にページの別ライン上に各ドットを生成する。この相対的差異は、データをプリントヘッドにロードするときに考慮されねばならない。各ラインにおける実際の差異は、上記プリントヘッドに使用されるインクジェットの特性に依存する。上記差異は、変数Ｄ１  及びＤ２  により定義され、Ｄ１  は異なるカラーの各ノズル間の距離であり、Ｄ２  は同一カラーの各ノズル間の距離である。表１０は、最初の４個のパルスに関してプリントヘッドのセグメントｎに転送されるドットを示している。
【表１８】
0004621766.tif 000020
【０２４５】
以下、全ての８００個のパルスに対して同様である。
データは２０ＭＨｚの最大速度でプリントヘッドにクロック入力され得るが、これは次ラインに対して４０μｓ内に全データをロードするものである。
【０２４６】
６．１．２．２  印刷サイクル
１０．２ｃｍ（４インチ）プリントヘッドは２５，６００個のノズルを含む。それらの全てを一度に吐出させる電力の消費が多すぎ、インクの再充填及びノズル干渉に関して問題となる。故に、２種類の吐出モード、すなわち低速印刷モード及び高速印刷モードが定義される。
・低速印刷モードにおいては２００個の位相があり、各位相は１２８個のノズルを吐出する。これは、セグメント毎の１６個のノズルもしくは吐出グループ毎の４個のノズルに等しい。
・高速印刷モードにおいては１００個の位相があり、各位相は２５６個のノズルを吐出する。これは、セグメント毎の３２個のノズルもしくは吐出グループ毎の８個のノズルに等しい。
【０２４７】
而して、所定の吐出パルス内に吐出されるべきノズルは、  ・３ビットのＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ（吐出グループからの５個のクロマポッドの内から１個を選択する）
・４ビットのＮｏｚｚｌｅＳｅｌｅｃｔ（ひとつのポッドからの１０個のノズルの内の１個を選択する）
・２ビットのＰｏｄｇｒｏｕｐＥｎａｂｌｅライン（吐出すべき０組、１組もしくは２組のポッドグループを選択する）
により決定される。
【０２４８】
上記各ＰｏｄｇｒｏｕｐＥｎａｂｌｅラインのひとつがセットされたとき、ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ及びＮｏｚｚｌｅＳｅｌｅｃｔにより決定されるように特定されたポッドグループの４個のノズルのみが吐出される。上記各ＰｏｄｇｒｏｕｐＥｎａｂｌｅラインの両者がセットされたとき、上記ポッドグループの両者がそれらのノズルを吐出する。上記低速モードに対しては、２個の吐出パルスが必要とされ、それぞれ、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ＝１０及び０１である。高速モードに対しては、唯一個の吐出パルスが必要とされ、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ＝１１である。
【０２４９】
上記吐出パルスの存続時間は、ＡＥｎａｂｌｅライン及びＢＥｎａｂｌｅラインにより与えられるが、これらのラインは夫々、全ての吐出グループからＰｈａｓｅｇｒｏｕｐＡノズル及びＰｈａｓｅｇｒｏｕｐＢノズルを吐出させる。吐出パルスの典型的な存続時間は１．３〜１．８μｓである。パルスの存続時間は、（温度とインク特性とに依存する）インクの粘度と、上記プリントヘッドに対して利用可能な電力量とに依存する。温度変化を補償すべき上記プリントヘッドからのフィードバックの詳細に関しては、第６．１．３節を参照されたい。
【０２５０】
上記ＡＥｎａｂｌｅ及びＢＥｎａｂｌｅは、各吐出パルスが重複し得るべく、別々のラインである。故に低速印刷サイクルの２００個の位相は、１００個のＡ位相及び１００個のＢ位相から成り、実効的に１００組の位相Ａ及び位相Ｂを与える。同様に、高速印刷サイクルの１００個の位相は５０個のＡ位相及び５０個のＢ位相から成り、実効的に５０組の位相Ａ及び位相Ｂを与える。
【０２５１】
図１６は、典型的な印刷サイクルの間におけるＡＥｎａｂｌｅライン１３０及びＢＥｎａｂｌｅライン１３１を示している。高速印刷においては、各々が２μｓの５０サイクルが在る一方、低速印刷では各々が２μｓの１００サイクルが在る。該図に示された如く、呼び値に関しては最小及び最大の半サイクル時間における僅かな変動は容認され得る。
【０２５２】
高速印刷モードに対し、吐出順序は次の通りである。
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ２、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
【０２５３】
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、ＮｏｚｚｌｅＳｅｌｅｃｔ  １、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・．．．．
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１（位相Ａ及びＢ）
【０２５４】
低速印刷モードに対し、吐出順序は同様である。ＰｏｄｇｒｏｕｐＥｎａｂｌｅが１１である高速モードの各位相に対し、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ＝０１及び１０の２つの位相は次の様に置換される。
【０２５５】
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０（位相Ａ及びＢ）
・．．．
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１（位相Ａ及びＢ）
・ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０（位相Ａ及びＢ）
【０２５６】
ノズルが吐出するとき、再充填には約１００μｓを要する。そのノズルは該再充填時間が経過するまで吐出され得ない。このため、最高印刷速度は１００μｓ／ラインに制限される。高速印刷モードにおいて１ラインを印刷する時間は１００μｓであることから、１つのラインのノズルの吐出から次のラインのノズル吐出までの時間は再充填時間と整合する。上記低速印刷モードはこれより低速であることから、これもまた容認可能である。
【０２５７】
ノズルを吐出すると、そのノズルのポッドの共通インクリザーバ内における限定時間内
での音響的摂動も引き起こされる。この摂動は、同一のポッド内における他のノズルの吐出と干渉する可能性がある。故にポッド内の各ノズルの吐出は、可及的に長時間に亙り相互からオフセットされねばならない。故に本発明では、ひとつのクロマポッド（１つのカラー毎に１個のノズル）からの４個のノズルを吐出してから、そのポッドグループ内における次のクロマポッドへと移動する。
【０２５８】
低速印刷モードにおいて各ポッドグループは別々に吐出される。故に両ポッドグループ内における５個のクロマポッドは第１クロマポッドが再び吐出される前に全て吐出されねばならず、合計で１０×２μサイクルとなる。その結果、各ポッドは２０μｓ毎に１度吐出される。
【０２５９】
高速印刷モードにおいて各ポッドグループは一緒に吐出される。故に単一のポッドグループ内の５個のクロマポッドは第１クロマポッドが再び吐出される前に全て吐出されるべきことから、合計で５×２μサイクルとなる。その結果、各ポッドは１０μｓ毎に１度吐出される。
【０２６０】
上記インクチャネルは３００ミクロン長であると共にインク内の音速は約１，５００ｍ／ｓであることから、インクチャネルの共振周波数は２．５ＭＨｚである。故に、音響パルスの減衰に対して低速モードは５０個の共振サイクルを許容し、高速モードは２５個の共振サイクルを許容する。その結果、いずれの場合においても一切の音響的干渉は最小である。
【０２６１】
６．１．３  プリントヘッドからのフィードバック
上記プリントヘッドは（８個のセグメントから集中された）数本のフィードバックのラインを生成する。これらのフィードバック用ラインは、各吐出パルスのタイミングを調節すべく使用される。各セグメントは同一のフィードバックを生成するが、全てのセグメントからのフィードバックは同一のトライステートバスラインを共有する。その結果、一度に１個のセグメントのみがフィードバックを提供し得る。
【０２６２】
シアン上のデータとＡＮＤされたＳｅｎｓｅＳｅｇＳｅｌｅｃｔライン上のパルスは、どのセグメントがフィードバックを提供するかを選択する。次のＳｅｎｓｅＳｅｇＳｅｌｅｃｔパルスまで、上記フィードバック検知ラインは選択されたセグメントに由来する。各フィードバック検知ラインは次の通りである。
【０２６３】
・Ｔｓｅｎｓｅは上記コントローラに対し、プリントヘッドの温度を知らせる。温度はインクの粘度に影響するので、これにより上記コントローラはパルス吐出のタイミングを調節し得る。
・Ｖｓｅｎｓｅはコントローラに対し、上記アクチュエータが利用し得る電圧を知らせる。これによりコントローラはパルス幅を調節することにより、低電圧バッテリもしくは高電圧源に対処し得る。
・Ｒｓｅｎｓｅはコントローラに対し、アクチュエータヒータの抵抗率（単位面積当たりのオーム値）を知らせる。これによりコントローラはパルス幅を調節し、上記ヒータの抵抗率に関わりなく一定エネルギを維持し得る。
・Ｗｓｅｎｓｅはコントローラに対し、リソグラフ及びエッチングの変動により±５％まで変化し得るヒータの重要部分の幅を知らせる。これによりコントローラは、パルス幅を適切に調節し得る。
【０２６４】
６．１．４  予備加熱サイクル
上記印刷プロセスは平衡温度に留まるという強い傾向を有する。印刷された写真の第１の部分が一貫したドット・サイズを有するのを確かなものとすべく、上記平衡温度は一切
のドットを印刷する前に満足されねばならない。これは予備加熱サイクルにより達成される。
【０２６５】
該予備加熱サイクルは、全てのノズルに対する１（すなわち全てのノズルの吐出を設定）による単一のロードサイクルと、各ノズルに対する多数の短時間吐出パルスとを有する。パルスの存続時間は、インク滴を吐出するには不十分であり乍らも、インクを加熱するには十分とされねばならない。故に各ノズルに対しては、標準的な印刷サイクルと同一のシーケンスで反復される全部で約２００個のパルスが必要とされる。
【０２６６】
予備加熱モードの間におけるフィードバックはＴｓｅｎｓｅにより提供されると共に、（周囲よりも約３０℃高い）平衡温度に到達するまで継続される。予備加熱モードの存続時間は約５０ミリ秒であり、かつインク組成に依存する。
【０２６７】
予備加熱は、各印刷ジョブの前に実施される。予備加熱はデータがプリンタに転送されている間に行われるため、これが性能に影響することは無い。
６．１．５  清掃サイクル
各ノズルが詰まる可能性を減少すべく、各印刷ジョブの前に清掃サイクルが行われ得る。各ノズルは、吸収スポンジに向けて多数回吐出させられる。
【０２６８】
該浄化サイクルは、全てのノズルに対する１（すなわち全てのノズルの吐出を設定）による単一のロードサイクルと、各ノズルに対する多数の吐出パルスとを有する。各ノズルは、標準的印刷サイクルと同一のノズル吐出シーケンスにより清掃される。各ノズルが吐出される回数は、インク組成と、それまでのプリンタのアイドル時間とに依存する。予備加熱と同様に、清掃サイクルはプリンタの性能には影響しない。
【０２６９】
６．１．６  プリントヘッドインターフェースの概要
単一の１０．２ｃｍ（４インチ）プリントヘッドは表１１に示された接続を有する。
【表１９】
0004621766.tif 000021
【０２７０】
１０．２ｃｍ（４インチ）プリントヘッドの内部的に、各セグメントは表１２に示された結合パッドへの接続を有する。
【表２０】
0004621766.tif 000022
【０２７１】
６．２  ２０．３ｃｍ（８インチ）プリントヘッドの考察
８インチのメムジェットプリントヘッドは、２個の１０．２ｃｍ（４インチ）プリントヘッドを物理的に結合したにすぎない。制御チップからのピンの本数が減少されると共に２個のプリントヘッドが同時に印刷を行い得るべく、各プリントヘッドは相互に結線されて多くの共通接続を共有する。以下においては、上記に関する多くの詳細事項を考察せねばならない。
【０２７２】
６．２．１  接続
２個のプリントヘッドからのノズルの吐出は同時に生ずることから、ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ、ＮｏｚｚｌｅＳｅｌｅｃｔ、ＡＥｎａｂｌｅ及びＢＥｎａｂｌｅの各ラインは共有される。各プリントヘッドにデータをロードするために、ＣＤａｔａＩｎ、ＭＤａｔａＩｎ、ＹＤａｔａＩｎ及びＫＤａｔａＩｎの３２ラインは共有されると共に２本の異なるＳＲＣｌｏｃｋラインは、２個のプリントヘッドのいずれに対してロードされるかを決定すべく使用される。ロードされたデータを両プリントヘッドに対するＮｏｚｚｌｅＥｎａｂｌｅビットに転送するために、単一のＰＴｒａｎｓｆｅｒパルスが使用される。同様に、Ｔｓｅｎｓｅ、Ｖｓｅｎｓｅ、Ｒｓｅｎｓｅ及びＷｓｅｎｓｅの各ラインが共有され、２本のＳｅｎｓｅＥｎａｂｌｅラインは２個のプリントヘッド間を区別する。
【０２７３】
故に上記２個の１０．２ｃｍ（４インチ）プリントヘッドは、ＳＲＣｌｏｃｋ及びＳｅｎｓｅＥｎａｂｌｅを除き、全ての接続を共有する。これらの２本の接続は、各プリント
ヘッドに対して１度ずつ接続される様に反復される。此処で、実際の接続は表１３に示す。
【表２１】
0004621766.tif 000023
【０２７４】
６．２．２  タイミング
２個の１０．２ｃｍ（４インチ）プリントヘッドを結合して適切な接続を結線すると、８インチ幅の画像が４インチ幅の画像と同様に高速に印刷され得る。但し次のラインが印刷される前に、２個のプリントヘッドに対して転送する２倍のデータが在る。継続するた
めには、印刷されるべき出力画像に対する所望速度に依存して適切な速度でデータが生成かつ転送されねばならない。
【０２７５】
６．２．２．１  例
一例として、２秒で２０．３×３０．４８ｃｍ（８”×１２”）のページを印刷するタイミングを考察する。このページを２秒で印刷するために、２０．３ｃｍ（８インチ）プリントヘッドは１９，２００ライン（１２×１６００）を印刷せねばならない。２０，０００ラインを２秒で切り上げると、１００μｓのライン時間となる。単一の印刷サイクル及び単一のロードサイクルの両者がこの時間内に終了せねばならない。これに加え、プリントヘッドの外部の物理的プロセスは用紙を適切な量だけ移動せねばならない。
【０２７６】
印刷の観点からは、上記高速印刷モードによれば１０．２ｃｍ（４インチ）プリントヘッドはライン全体を１００μｓで印刷し得る。故に双方の１０．２ｃｍ（４インチ）プリントヘッドは、高速印刷モードで走行して同時に印刷せねばならない。故に、１個の吐出パルス毎に５１２個のノズルが吐出することにより、指定時間内において２０．３ｃｍ（８インチ）のラインの印刷が可能とされる。
【０２７７】
上記１００μのライン時間内に、双方の１０．２ｃｍ（４インチ）プリントヘッドに対して８００個のＳＲＣｌｏｃｋパルス（各クロック・パルスは３２ビットを転送する）も生ぜねばならない。もし両プリントヘッドが同時にロードされるのであれば（６４本のデータライン）、ひとつのＳＲＣｌｏｃｋパルスの長さは１００μｓ／８００＝１２５ナノ秒を超えることはできず、プリントヘッドは８ＭＨｚでクロック供給されるべきことを示している。もし２個のプリントヘッドが一度にロードされるのであれば（３２本の共有データライン）、ＳＲＣｌｏｃｋパルスの長さは１００μｓ／１６００＝６２．５ナノ秒を超えることはできない。故に上記プリントヘッドは、１６ＭＨｚでクロック供給されねばならない。いずれの場合においても、（５１，２００個のノズルの各々に対する）各ビット値を計算する平均時間は１００μｓ／５１，２００＝２ナノ秒を超えてはならない。これは、ドット生成器が次の速度のいずれかで作動することを要する。
・サイクル毎に１ビット（ドット）を生成する５００ＭＨｚ、
・サイクル毎に２ビット（ドット）を生成する２５０ＭＨｚ、
・サイクル毎に４ビット（ドット）を生成する１２５ＭＨｚ。
【０２７８】
７  印刷コントローラ
７．１  印刷コントローラの構造
図８に示された如く、上記印刷コントローラはｉＰｒｉｎｔ中央プロセッサ（ＩＣＰ）チップ８３、６４ＭビットＲＤＲＡＭ８２及びマスタＱＡチップ８５から成る。
【０２７９】
また、図１７に示された如くＩＣＰ  ８３は、汎用プロセッサ１３９と、プロセッサ・バスを介して上記プロセッサにより制御される一グループの目的別機能ユニットとを含む。３個の機能ユニットのみが標準的でなく、それは、ＥＤＲＬエキスパンダ１４０、ハーフトーン化装置／コンポジタ（ｈａｌｆｔｏｎｅｒ／ｃｏｍｐｏｓｉｔｏｒ）１４１、及び、上記メムジェットプリントヘッドを制御するプリントヘッドインターフェース１４２である。
【０２８０】
上記プロセッサ上で作動するソフトウェアは、各ページを受信、展開（ｅｘｐａｎｄ）及び印刷する種々の機能ユニットを連携させる。これについては、次の節で記載する。
【０２８１】
上記ＩＣＰの種々の機能ユニットについては続く各節で記載する。
７．２  ページの展開及び印刷
ページの展開及び印刷プロセスは以下の通りである。ページ記述（ｐａｇｅ  ｄｅｓｃ
ｒｉｐｔｉｏｎ）は、ＵＳＢインターフェース１４６を介して上記ホストから受信されて、メインメモリ内に記憶される。メインメモリの６ＭＢがページ記憶に割り当てられる。これは、各々が３ＭＢを超えない２頁、又は、６ＭＢまでの１頁を保持し得る。もし上記ホストが３ＭＢを超えないページを生成するならば上記プリンタはストリーミングモードで作動し、すなわち、プリンタは１ページを印刷し乍ら次のページを受信する。ホストが３ＭＢを超えるページを生成するならば上記プリンタは単一ページモード、すなわちプリンタは各ページを受信し、次のページを受信する前に該ページを印刷して作動する。ホストが６ＭＢを超えるページを生成したならば、それらのページはプリンタにより拒否される。実用的に、上記プリンタドライバはこの状態が生ずるのを防止する。
【０２８２】
１ページは２つの部分、すなわち、２値（ｂｉ−ｌｅｖｅｌ）黒色層と、コントーン層（ｃｏｎｔｏｎｅ  ｌａｙｅｒ）とから成る。これらの層は異なるフォーマットで圧縮され、すなわち２値黒色層はＥＤＲＬフォーマットで且つコントーン層はＪＰＥＧフォーマットで圧縮される。ページ展開の第１段階は、２つの層を並列に解凍する段階から成る。上記２値層は、工程１６においてＥＤＲＬエキスパンダ１４０により解凍され、上記コントーン層は工程１４にてＪＰＥＧデコーダ１４３により解凍される。
【０２８３】
ページ展開の第２段階は、上記コントーンＣＭＹＫデータを２値ＣＭＹＫにハーフトーン化（ｈａｌｆｔｏｎｅ）する工程１５と、次に、上記２値黒色層を記２値ＣＭＹＫ層に合成する工程１７とから成る。上記ハーフトーン化及び合成は、ハーフトーン化装置／コンポジタ１４１により実行される。
【０２８４】
最後に上記の合成された２値ＣＭＹＫイメージは、工程１８にて上記メムジェットプリントヘッドを制御するプリントヘッドインターフェースユニット１４２により印刷される。
【０２８５】
上記メムジェットプリントヘッドは高速で印刷することから、用紙は上記プリントヘッドを一定速度で通過して移動せねばならない。プリントヘッドに対してデータが十分に高速に供給されずに用紙が停止されると、視認可能な印刷の不整合が生ずる。故に、要求される速度で上記プリントヘッドインターフェースに対して２値ＣＭＹＫデータを転送することが重要である。
【０２８６】
完全に展開された１６００ｄｐｉの２値ＣＭＹＫページは、１１４．３ＭＢのサイズを有する。展開されたページをプリンタメモリに記憶するのは非実用的であることから、各ページは印刷の間に即時に展開される。故に、ページの展開及び印刷の種々の過程はパイプライン化される。ページの展開及び印刷のデータフローは、表１４に記述される。メインメモリへの、又はメインメモリからの１７４ＭＢ／ｓの集合体トラフィックは十分に、Ｒａｍｂｕｓなどの現在の技術の能力内である。
【表２２】
0004621766.tif 000024
【０２８７】
各段階は、メインメモリにおける共有ＦＩＦＯを介して次の過程と通信する。各ＦＩＦＯは各ラインへと構成され、各ＦＩＦＯの最小サイズ（ライン数）は、生成側の出力ウィンドウ（ライン数）と消費側の入力ウィンドウ（ライン数）に対処すべく設計される。過程間のメインメモリバッファは表１５に記述される。バッファ空間を総計で６．３ＭＢ使用すると、プログラムコード及びスクラッチメモリに対しては（利用可能な８ＭＢの内の）１．７ＭＢが残る。
【表２３】
0004621766.tif 000025
【０２８８】
各ＦＩＦＯを含む全体的なデータフローは図１８に示されている。
コントーンページの解凍は、ＪＰＥＧデコーダ１４３により実行される。２値ページ解凍はＥＤＲＬエキスパンダ１４０により実行される。ハーフトーン化及び合成は、ハーフトーン化装置／コンポジタ１４１により実行される。これらの機能ユニットは次の各節で記載する。
【０２８９】
７．２．１  ＤＭＡ方法
各機能ユニットは、一個以上のオンチップ入力及び／又は出力ＦＩＦＯを備える。各ＦＩＦＯには、マルチチャネルＤＭＡコントローラ１４４内の別個のチャネルが割り当てられる。ＤＭＡコントローラ１４４は２重アドレス転送では無く単一アドレス転送を処理することから、各チャネルに対して別々の要求／受取通知インターフェースを提供する。
【０２９０】
各機能ユニットは、入力ＦＩＦＯが消尽するか、又は出力ＦＩＦＯが満たされると常に適切に停止する。
プロセッサ１３９は、各ＤＭＡ転送をプログラムする。ＤＭＡコントローラ１４４は、そのチャネルに接続された機能ユニットからの要求時に、転送の各ワードに対するアドレスを生成する。その機能ユニットは、自身の要求がＤＭＡコントローラ１４４により受取通知されたときに上記ワードをデータバス１４５上に／からラッチする。上記転送が完了したときにＤＭＡコントローラ１４４はプロセッサ１３９に割り込みを掛けることから、プロセッサ１３９は同一チャネル上で別の転送を適時な様式でプログラムし得る。
【０２９１】
一般的に、対応するメインメモリＦＩＦＯが利用可能となれば（すなわち、読取りのための空でない状態、書込みのための非充填状態）、プロセッサ１３９は直ちにチャネル上の別の転送をプログラムする。
【０２９２】
ＤＭＡコントローラ１４４で実施されるチャネルサービスの細分性は、或る程度メインメモリの待ち時間に依存する。
７．２．２  ＥＤＲＬエキスパンダ
図１９に示されたＥＤＲＬエキスパンダユニット（ＥＥＵ）１４０は、ＥＤＲＬ圧縮された２値画像を解凍する。
【０２９３】
上記ＥＥＵへの入力は、ＥＤＲＬビットストリーム１５０である。上記ＥＥＵからの出力は、展開された２値画像の解像度から、整数の基準倍率により、１６００ｄｐｉへと水平方向に換算された一グループの２値画像ライン１５１である。
【０２９４】
一旦開始されると、上記ＥＥＵはＥＤＲＬビットストリーム内のｅｎｄ−ｏｆ−ｐａｇｅコードを検出するまで、又は該ＥＥＵの制御レジスタにより明示的に停止されるまで、動作を続行する。
【０２９５】
上記ＥＥＵは、ビットストリームをデコードすべく明示的ページ幅に依存する。この明示的ページ幅は、上記ＥＥＵを開始する前にページ幅レジスタ１５２に書き込まれねばならない。
【０２９６】
展開された２値画像の換算は、明示的基準倍率に頼る。該明示的基準倍率は、上記ＥＥＵを開始する前に基準倍率レジスタ１５３に書込まれねばならない。
【表２４】
0004621766.tif 000026
【０２９７】
上記ＥＤＲＬ圧縮フォーマットは、５．２．３節に記述されている。該フォーマットは、その各エッジに関する２値画像を表現する。各ラインにおける各エッジは、先行ラインにおけるエッジに対して、又は、同一ラインにおける先行エッジに対してコード化される
。如何にしてコード化されるかに関わらず各エッジは最終的に、同一ラインにおける先行エッジからの該エッジの距離へとデコードされる。この距離すなわちランレングスはその後、画像の対応部分を表現する１の各ビットもしくはゼロの各ビットのストリングへとデコードされる。解凍アルゴリズムもまた、５．２．３．２節に定義されている。
【０２９８】
上記ＥＥＵは、ビットストリームデコーダ１５４、状態マシン１５５、エッジ計算ロジック１５６、２個のランレングスデコーダ１５７及び１５８、及び、ランレングス（再）エンコーダ１５９から成る。
【０２９９】
ビットストリームデコーダ１５４は、ビットストリームからのエントロピーコード化（ｅｎｔｒｏｐｙ−ｃｏｄｅｄ）されたコードワードをデコードし、それを状態マシン１５５へと受け渡す。状態マシン１５５はビットストリームデコーダ１５４に対して上記コードワードのサイズを戻すことから、デコーダ１５４は次のコードワードへと進み得る。エッジ生成コードの場合、状態マシン１５５は上記ビットストリームデコーダを使用して、そのビットストリームからの対応ランレングスを抽出する。上記状態マシンは、表１８で定義された如く上記エッジ計算ロジック及びランレングスのデコード／コード化を制御する。
【０３００】
エッジ計算ロジックは極めて簡易である。先行する（基準）ライン及び現在の（コード化中）ラインの現在エッジオフセットは、夫々、基準エッジレジスタ１６０及びエッジレジスタ１６１に保持される。エッジ生成コードに関連するランレングスは上記ランレングスデコーダへと直接的に出力され、上記現在エッジへと加算される。デルタコードは、上記基準エッジに対して関連デルタを加算し、且つ、現在のエッジを減算することによりランレングスへと書き換えられる。生成されたランレングスは上記ランレングスデコーダへと出力されると共に、上記現在エッジに加算される。次のランレングスはランレングスエンコーダ１５９から抽出されると共に、基準エッジ１６０へと加算される。エッジ消去（ｋｉｌｌ
ｅｄｇｅ）コードによれば単に、現在基準エッジがスキップされるだけである。再び、次のランレングスが上記ランレングスエンコーダから抽出され、上記基準エッジに加算される。
【０３０１】
エッジ計算ロジック１５６がエッジを表すランレングスを生成する毎に、該ランレングスは上記ランレングスデコーダへと受け渡される。上記ランレングスデコーダはランをデコードする一方、上記状態マシンへの停止信号を生成する。ランレングスデコーダ１５７は上記エッジ計算ロジックよりも低速であることから、ランレングスデコーダ１５７を結合解除（ｄｅｃｏｕｐｌｅ）する点は多くない。展開されたラインは、２０．３ｃｍ（８インチ）８００ｄｐｉライン（８００バイト）を保持する上で十分に大きいラインバッファ１６２に蓄積される。
【０３０２】
工程１６３において、先行して展開されたラインもまたバッファされる。それは、現在ラインのデコードに対する基準として作用する。先行ラインは、要求があると再コード化される。これは、先行ラインのデコード済ランレングスをバッファするよりも安価である、と言うのも、最悪の場合は各ピクセルに対して１本の１３ビットランレングス（１６００ｄｐｉで２０ＫＢ）だからである。ランレングスエンコーダ１５９はランをコード化する一方、上記状態マシンに対して停止信号を生成する。上記ランレングスエンコーダはページ幅１５２を使用してｅｎｄ−ｏｆ−ｌｉｎｅを検出する。（現在）ラインバッファ１６２及び先行ラインバッファ１６３は、単一のＦＩＦＯとして連結かつ管理され、ランレングスエンコーダ１５９を簡素化する。
【０３０３】
ランレングスデコーダ１５８は、８”１６００ｄｐｉライン（１６００バイト）を保持
する上で十分な大きさを有するラインバッファ１６４へ出力ランレングスをデコードする。この出力ランレングスデコーダに受け渡されたランレングスは基準倍率１５３と乗算されることから、このデコーダは１６００ｄｐｉのラインを生成する。そのラインは、出力ピクセルＦＩＦＯ１６５を介して基準倍率倍されて出力される。これにより、必要な垂直方向の換算が簡素なライン復元で達成される。上記ＥＥＵは、その画像スケーリングに組み込まれたエッジスムージングと共に設計され得る。テンプレートマッチングに基づく簡素なスムージング方式は極めて効果的であり得る［非特許文献１０］。これは、低解像度ランレングスデコーダとスムーズ換算ユニットとの間にマルチラインバッファを要するが、高解像度ランレングスデコーダを排除するものである。
【０３０４】
図２０に示されたＥＤＲＬストリームデコーダ１５４は、入力ビットストリーム中のエントロピーコード化ＥＤＲＬコードワードをデコードする。該デコーダ１５４は、ビットストリーム内のコードワード境界に左（最上位）エッジが常に整列される１６ビットバレルシフタ１６８を介して視認される２バイト入力バッファ１６７を使用する。バレルシフタ１６８に接続されたデコーダ１６９は表１７に従いコードワードをデコードし、それを対応コードと共に状態マシン１５５へと供給する。
【表２５】
0004621766.tif 000027
【０３０５】
その結果、状態マシン１５５はそのコードの長さを出力する。これは、工程１７０において現在のコードワードビットオフセットに対してｍｏｄｕｌｏ−８にて加算され、次のコードワードビットオフセットを生成する。このビットオフセットはバレルシフタ１６８を制御する。上記コードワードビットオフセットが循環（ｗｒａｐ）したなら、キャリービットは入力ＦＩＦＯ  １６６からの次のバイトのラッチを制御する。このとき、バイト２はバイト１へとラッチされ上記ＦＩＦＯ出力はバイト２へとラッチされる。それは入力バッファを埋めるために長さ８の２サイクルを要する。これは、状態マシン１５５の状態を開始することで処理される。
【０３０６】
７．２．２．２  ＥＤＲＬエキスパンダ状態マシン
ＥＤＲＬエキスパンダ状態マシン１５５はＥＤＲＬストリームデコーダ１５４により供給された各コードに応じてエッジ計算及びランレングス展開ロジックを制御する。該マシンは、現在コードワードの長さを上記ＥＤＲＬストリームデコーダに供給し、且つ、現在のデルタコードに関連するデルタ値を上記エッジ計算ロジックに供給する。上記状態マシンはまた、上記制御レジスタからの開始及び停止制御信号と、上記エッジ計算ロジックからのｅｎｄ−ｏｆ−ｌｉｎｅ（ＥＯＬ）信号とに対して応答する。
【０３０７】
上記状態マシンはまた、エッジ生成コードに関連するマルチサイクルフェッチも制御す
る。
【表２６】
0004621766.tif 000028
【０３０８】
７．２．２．３  ランレングスデコーダ
図２１に示されたランレングスデコーダ１５７／１５８はランレングスを、出力ストリームにおける対応長さの１の各ビットもしくはゼロの各ビットのシーケンスへと展開する。ラインの最初のランは白色（色０）と想定される。各ランは、その先行ランの逆の色であると想定される。最初のランが実際に黒色（色１）であれば、それはゼロ長さの白色ランにより先行されねばならない。上記ランレングスデコーダは、現在の色を内部的に追尾する。
【０３０９】
上記ランレングスデコーダは、クロック毎に上記出力ストリームに対して最大で８ビッ
トを付加する。各ランレングスは典型的に８の整数倍ではないことから、画像における最初のラン以外のランは、一般的にバイト整列されない。上記ランデコーダは、現在において構築されつつあるバイト内で利用可能なビット数を、バイト空間レジスタ１８０内に維持する。これは、デコードの開始時において、且つ、バイト毎の出力時に、８へと初期化される。
【０３１０】
上記デコーダは、“次のラン”ラインがランレングスレジスタ１８１に非ゼロ値をラッチすると直ちに、各ビットのランを出力する。上記デコーダは、上記ランレングスレジスタがゼロになったときに実効的に停止する。
【０３１１】
現状色の所定数のビットは、クロック毎に出力バイトレジスタ１８２へとシフトされる。現状色は、１ビットカラーレジスタ１８３に維持される。実際に出力されるビットの個数は、ランレングス内に残置されたビット数と、出力バイト内に残置されたスペアビットの個数とにより制限される。出力されるビットの個数は上記ランレングス及びバイト空間から減算される。ランレングスがゼロになるときにそれは完全にデコードされているが、そのランの後部ビット（ｔｒａｉｌｉｎｇ  ｂｉｔｓ）は依然として上記出力バイトレジスタ内に在り、出力を未決とする。上記バイト空間がゼロになったとき、上記出力バイトは一杯であり、上記出力ストリームに付加される。  
【０３１２】
１６ビットバレルシフタ１８４、出力バイトレジスタ１８２及びカラーレジスタ１８３は協働して８ビットシフトレジスタを実現するが、該８ビットシフトレジスタは、カラーを並列入力としてクロック毎に複数ビット位置だけシフトされ得る。
【０３１３】
ラインの開始時に上記ランレングスデコーダをリセットすべく、外部リセットラインが使用される。また、新ランレングスのデコードを要求すべく外部“次のラン”ラインが使用される。それに対しては、外部ランレングスラインが伴う。上記“次のラン”ラインは、ｒｅｓｅｔラインと同一のクロックでセットされてはならない。“次のラン”は現状色を反転することから、その色のリセットは該色ーをゼロでは無く１にセットする。外部ｆｌｕｓｈラインは、もし不完全であればランの最後のバイトをフラッシュ（ｆｌｕｓｈ）すべく使用される。それは、ライン毎に基づき使用されることでバイト整列されたラインを生成し、又は、画像に基づき使用されることでバイト整列された画像を生成する。
【０３１４】
外部ｒｅａｄｙラインは、上記ランレングスデコーダがランレングスをデコードする準備ができたか否かを示す。それは、上記外部ロジックを停止すべく使用され得る。
【０３１５】
７．２．２．４  ランレングスエンコーダ
図２２に示されたランレングスエンコーダ１５９は、上記入力ストリームにおけるゼロもしくは１のビットのランを検出する。ラインの最初のランはホワイト（カラー０）と想定される。各ランは、その先行ランの逆のカラーであると想定される。最初のランが実際に黒色（カラー１）であれば、上記ランレングスエンコーダはそのラインの最初にてゼロ長さのホワイトランを生成する。上記ランレングスデコーダは、現在のカラーを内部的に追尾する。
【０３１６】
上記ランレングスエンコーダは、クロック毎に上記入力ストリームから最大で８ビットを読取る。上記ランレングスエンコーダは、ビットストリーム内の現在位置に左（最上位）エッジが常に整列される１６ビットバレルシフタ１９１を介して視認される２バイト入力バッファ１９０を使用する。上記バレルシフタに接続されたエンコーダ１９２は、表１９に従い８ビット（部分的）ランレングスをコード化する。エンコーダ１９２は現状色を使用し、適切な色のランを認識する。
【０３１７】
上記８ビットランレングスエンコーダにより生成された８ビットランレングスは、ランレングスレジスタ１９３内の値に加算される。上記８ビットランレングスエンコーダが現在ランの最後を認識したとき、該８ビットランレングスエンコーダはｒｅａｄｙレジスタ１９４によりラッチされるｅｎｄ−ｏｆ−ｒｕｎ信号を生成する。ｒｅａｄｙレジスタ１９４の出力は、上記エンコーダがランレングスレジスタ１９３内に蓄積された現在ランレングスのコード化を完了したことを表す。ｒｅａｄｙレジスタ１９４の出力は、８ビットランレングスエンコーダ１９２を停止するためにも使用される。停止されたときに８ビットランレングスエンコーダ１９２はゼロ長さラン及びゼロｅｎｄ−ｏｆ−ｒｕｎ信号を出力し、ランレングスエンコーダ全体を実効的に停止する。
【表２７】
0004621766.tif 000029
【０３１８】
８ビットランレングスエンコーダ１９２の出力は、残存ページ幅により制限される。実際の８ビットランレングスは、残存ページ幅から減算されると共に、工程１９５にて、バレルシフタ１９１を制御してバイトストリーム入力にクロック供給すべく使用されるｍｏｄｕｌｏ−８ビット位置に加算される。
【０３１９】
上記外部リセットラインは、１ラインの開始時に上記ランレングスエンコーダをリセットすべく使用される。それは現状色をリセットすると共に、ページ幅をページ幅レジスタへとラッチする。上記外部“次のラン”ラインは、上記ランレングスエンコーダから別のランレングスを要求すべく使用される。それは現状色を反転すると共に、上記ランレングスレジスタ及びｒｅａｄｙレジスタをリセットする。上記外部ｆｌｕｓｈラインは、もし不完全であれば、そのランの最終バイトをフラッシュすべく使用される。それは、ライン毎に基づき使用されることでバイト整列されたラインを処理し、又は、画像に基づき使用されることでバイト整列された画像を処理する。
【０３２０】
外部ｒｅａｄｙラインは、上記ランレングスエンコーダがランレングスをコード化する準備ができると共に現在ランレングスがランレングスライン上で利用可能であることを示す。それは、上記外部ロジックを停止すべく使用され得る。
【０３２１】
７．２．３  ＪＰＥＧデコーダ
図２３に示されたＪＰＥＧデコーダ１４３は、ＪＰＥＧ圧縮されたＣＭＹＫコントーン画像を解凍する。
上記ＪＰＥＧデコーダへの入力は、ＪＰＥＧビットストリームである。上記ＪＰＥＧデコーダからの出力は、１グループのコントーンＣＭＹＫ画像ラインである。
【０３２２】
解凍するとき、上記ＪＰＥＧデコーダはその出力を８×８ピクセルブロックの形態で書込む。これらのブロックは、コーダに緊密に連結されたページ幅×８ストリップバッファを介して全幅ラインに変換される。このためには６７ＫＢのバッファが必要とされる。本発明ではこの代わりに、図２３に示された如く、バスアクセスが共有された８個の並列ピクセルＦＩＦＯと、対応する８個のＤＭＡチャネルとを使用する。
【０３２３】
７．２．４  ハーフトーン化装置／コンポジタ
図２４に示されているハーフトーン化装置／コンポジタユニット（ＨＣＵ）１４１は、コントーンＣＭＹＫ層を２値ＣＭＹＫにハーフトーン化する機能及びハーフトーン化されたコントーン層の上に黒色層を合成する機能を兼ねている。
【０３２４】
ＨＣＵに対する入力は、展開された２６７ｐｐｉのＣＭＹＫコントーン層２００及び展開された１６００ｄｐｉの黒色層２０１である。ＨＣＵからの出力は、１６００ｄｐｉの２値ＣＭＹＫ画像ライン２０２のセットである。
【０３２５】
一旦、始動すると、ＨＣＵは、ページ終了条件を検出するまで、又は制御レジスタを介して明示的に停止させられるまで続行する。
ＨＣＵは、指定された幅及び長さのドットページを生成する。幅及び長さは、ＨＣＵの始動に先立ち、ページ幅レジスタ及びページ長レジスタに書込まれなくてはならない。ページ幅はプリントヘッド１７１の幅に対応する。ページ長は、目標ページの長さに対応する。
【０３２６】
ＨＣＵは、ページ幅との関係において指定された左右マージンの間で目標ページを生成する。左右マージンの位置は、ＨＣＵを始動するに先立ち左マージンレジスタ及び右マージンレジスタに書込まれなくてはならない。左マージンから右マージンまでの距離は、目標ページ幅に対応する。
【０３２７】
ＨＣＵは、指定された黒色１７２及びコントーン１７３ページ幅に従って黒色及びコントーンデータを消費する。これらのページ幅は、ＨＣＵの始動に先立ち、黒色ページ幅及びコントーンページ幅レジスタに書込まれなくてはならない。ＨＣＵは、黒色及びコントーンデータを目標ページ幅１７４にクリップする。こうして、黒色及びコントーンページ幅は、入力ＦＩＦＯレベルで何らかの特別な行の終了論理を必要とすることなく目標ページ幅を上回ることができるようになる。
【０３２８】
ページ幅１７１、黒色ページ幅１７２及びコントーンページ幅１７３とマージンとの間の関係は、図２５に示されている。
ＨＣＵは、指定された基準倍率に基づいて水平方向及び垂直方向の両方向でコントーンデータをプリンタ解像度に合わせて拡縮する。この基準倍率は、ＨＣＵを始動させる前に、コントーン基準倍率レジスタに書込まれなくてはならない。
【表２８】
0004621766.tif 000030
【０３２９】
ＨＣＵによって生成されたデータのコンシューマは、プリントヘッドインターフェースである。プリントヘッドインターフェースは、平面フォーマット（ｐｌａｎａｒ  ｆｏｒｍａｔ）、すなわち色平面が分離された状態における２値ＣＭＹＫ画像データを必要とする。さらに、プリントヘッドインターフェースは、偶数及び奇数の画素が分離されていることも必要とする。従って、ＨＣＵの出力段階は、８つ、すなわち偶数シアン、奇数シアン、偶数マゼンタ、奇数マゼンタ、偶数黄色、奇数黄色、偶数黒色及び奇数黒色に各々１つずつの平行な画素ＦＩＦＯを使用する。
【０３３０】
入力コントーンＣＭＹＫ  ＦＩＦＯは、フル８ＫＢラインバッファである。ラインは、ラインの複製を介して垂直方向の拡大を実施するためコントーン基準倍率回だけ使用される。ラインの最終使用の開始まで、ＦＩＦＯ書込みアドレスラッピングは無効化される。１つの代替案は、メモリトラフィックを６５ＭＢ／秒だけ増大させるとともに、一方オンチップ８ＫＢラインバッファは必要とせずに、メインメモリからコントーン基準倍率回だけそのラインを読取ることである。
【０３３１】
７．２．４．１  多重閾値ディザ
汎用２５６層ディザボリュームは、異なる強度レベルを非干渉化させることにより、ディザセル設計において大きな柔軟性を与える。汎用ディザボリュームは大きいものであり得、例えば６４×６４×２５６ディザボリュームは１２８ＫＢのサイズをもつ。同様に、各色成分がこのボリュームからの異なるビットの検索（ｒｅｔｒｉｅｖａｌ）を必要とすることから、これらのボリュームのアクセス効率は低い。実際には、ディザボリュームの各層を完全に非干渉化させる必要は全くない。ボリュームの各ドット列は、２５６の分離したビットではなくむしろ固定された閾値セットとして実現することが可能である。例えば３つの８ビット閾値を使用すると、２４ビットしか消費されない。ここでｎ個の閾値がｎ＋１個の強度間隔を定義づけ、これらの間隔内で対応するディザセルの場所が交互にセットされないか、又はセットされた状態となる。ディザされているコントーン画素値は、ｎ＋１個の間隔の１つを一意的に選択し、こうして、対応する出力ドットの値が決定され
る。
【０３３２】
３重閾値６４×６４×３×８ビット（１２ＫＢ）のディザボリュームを用いてコントーンデータをディザリングする。これら３つの閾値は、１サイクル内でディザセルＲＯＭから検索され得る適切な２４ビット値を形成する。色平面間でディザセルの位置合わせが望まれる場合には、同じ３重閾値を１回検索し、各色成分をディザリングするために使用することが可能である。ディザセルの位置合わせが望まれない場合には、ディザセルを４つのサブセルに分割し、１回のサイクルで４つの異なる３重閾値を並行して検索可能である別々にアドレス指定可能な４個のＲＯＭの中にこれらを記憶することが可能である。図２６に示されたアドレス指定スキームを用いて、４つの色平面は、互いから３２ドットの垂直方向及び／又は水平方向のオフセットにおいて、同じディザセルを共有する。
【０３３３】
多重閾値ディザ２０３は図２６に示されている。３重閾値ユニット２０４は、３重閾値及び強度値をインターバルへ、そこから１ビット又はゼロビットへと変換する。３重閾値処理規則は表２１に示されている。対応する論理２０８は図２７に示されている。
【０３３４】
ここで図２６をさらに詳しく参照すると、概して符号２０４で表わされている４つの別々の３重閾値は、各々、ＣＭＹＫ信号のそれぞれの色成分について一連のコントーン色画素値を受理する。ディザボリュームは、概して符号２０５で表われさている４つのディザサブセルＡ，Ｂ，Ｃ，Ｄに分割される。ディザセルアドレスジェネレータ２０６及び概して符号２０７で表わされている４つのゲートが、異なる色について１回のサイクルで並行して検索可能である４つの異なる３重閾値の検索を制御する。
【表２９】
0004621766.tif 000031
【０３３５】
７．２．４．２  合成
合成ユニット２０５は、ハーフトーン化されたＣＭＹＫ層ドット全体上に黒色層ドットを合成する。黒色層不透明度が１である場合には、ハーフトーン化されたＣＭＹはゼロにセットされる。
【０３３６】
４ビットのハーフトーン化されたカラーＣｃＭｃＹｃＫｃ及び１ビット黒色層不透明度Ｋｂを仮定すると、合成及びクリップ論理は、表２２に定義されたとおりである。
【表３０】
0004621766.tif 000032
【０３３７】
７．２．４．３  クロック有効化ジェネレータ
クロック有効化ジェネレータ２０６は、コントーンＣＭＹＫ画素入力、黒色ドット入力及びＣＭＹＫドット出力を刻時するため、有効化信号を生成する。
【０３３８】
前述したとおり、コントーン画素入力バッファは、ラインバッファ及びＦＩＦＯの双方として使用される。各々のラインは一回読取られ、次にコントーン基準倍率回使用される。ＦＩＦＯ書込みアドレスラッピングは、そのラインの繰り返された使用の最後の開始まで無効化され、その時点でクロック有効化ジェネレータは、ラッピングを有効化するコントーンライン前進イネーブル信号（ｃｏｎｔｏｎｅ  ｌｉｎｅ  ａｄｖａｎｖｅ  ｅｎａｂｌｅ  ｓｉｇｎａｌ）を生成する。
【０３３９】
クロック有効化ジェネレータは、出力ドットＦＩＦＯの偶数セット又は奇数セットを選択するのに使用される偶数信号及び、現行ドット位置がページの左又は右マージンにあるとき白色ドットを生成するのに使用されるマージン信号をも生成する。
【０３４０】
クロック有効化ジェネレータは、１組の計数器を使用する。計数器の内部論理は表２３に定義されている。クロック有効化信号の論理は、表２４に定義されている。
【表３１】
0004621766.tif 000033
【表３２】
0004621766.tif 000034
【０３４１】
７．３  プリントヘッドインターフェース
プリントヘッドインターフェース（ＰＨＩ）１４２は、プロセッサがメムジェットプリントヘッドに印刷すべきドットをロードし、実際のドット印刷プロセスを制御する手段である。ＰＨＩは以下を備える。
・一定の与えられた印刷ラインのためのドットをローカルバッファ記憶装置内にロードし、それをメムジェットプリントヘッドに必要とされる順序に書式化するラインローダ／フォーマットユニット（ＬＩＦＵ）２０９、  ・データをメムジェットプリントヘッド６３に転送し、印刷中のノズル吐出シーケンスを制御するメムジェットインターフェース（ＭＪＩ）２１０。
【０３４２】
ＰＨＩ内のユニットは、プロセッサ１３９によりプログラミングされる一定数のレジスタによって制御される。さらに、プロセッサは、メモリからＬＩＦＵへの転送のため、ＤＭＡコントローラ１４４内の適切なパラメータを設定することも担当する。これには、ページが明瞭な縁部をもつような形で、１ページの開始と終了中に白色（すべてが０）を適切な色へとロードすることが含まれる。
【０３４３】
プリントヘッドインターフェース１４２の内部構造は、図２８に示されている。
７．３．１  ラインローダ／フォーマットユニット
ラインローダ／フォーマットユニット（ＬＬＦＵ）２０９は、一定の与えられた印刷ラインのためのドットをローカルバッファ記憶装置内にロードし、それらをメムジェットプリントヘッドに必要とされる順序にフォーマットする。ＬＬＦＵは、ページを場合によって印刷するためにメムジェットインターフェースに対し予め計算されたノズル有効化ビットを供給することを担当している。
【０３４４】
２０．３ｃｍ（８インチ）のプリントヘッド内の１本のラインは、１２８００の４色ドットから成る。１色につき１ビットで、単一の印刷ラインは５１２００ビットで構成されている。これらのビットは、プリントヘッド上へ送られるため適正な順序で供給されなくてはならない。ロードサイクルのドットローディング順序に関するさらなる情報については、６．１．２．１  節を参照されたい。但し、要約すると、３２ビットが２つの１０．２ｃｍ（４インチ）プリントヘッドに対し一度に転送され、３２ビットは８セグメント各々について４ドットを表わしている。
【０３４５】
印刷には、ドット−ビット情報を準備しアクセスするため２重バッファリングスキームが用いられる。第１のバッファ２１３に１本のラインがロードされている間に、第２のバッファ２１４内の予めロードされたラインがメムジェットドット順序で読取られている。
ライン全体がひとたび第２のバッファ２１４からプリントヘッドまでメムジェットインターフェースを介して転送された時点で、読取り及び書込みプロセスは、バッファをスワップする。第１のバッファ２１３はここで読取られ、第２のバッファは、新しいデータラインでアップロードされる。これは、図２９の概念的概観を見ればわかるように、印刷プロセス全体を通して反復される。
【０３４６】
ＬＬＦＵの実際の実施は図３０に示されている。１つのバッファはもう１つのバッファが書込まれている間に読出されることから、２セットのアドレスラインが使用されなくてはならない。共通データバスからの３２ビットのＤａｔａＩｎは、ＤＭＡ肯定応答に応えて状態マシンにより生成されるＷｒｉｔｅＥｎａｂｌｅに応じて、ロードされる。
【０３４７】
マルチプレクサ２１５は、バッファ０，２１３及びバッファ１，２１４の２つの４ビット出力の中から選択を行ない、結果を４ビットシフトレジスタ２１６により８−エントリに送る。最初の８回の読取りサイクルの後、アドバンスパルスがＭＪＩからきた時点でつねに、シフトレジスタからの現行の３２ビットの値は３２ビットの転送レジスタ２１７内へとゲートされ、ここでＭＪＩにより使用され得る。
【０３４８】
７．３．１．１  バッファ
２つのバッファ２１３，２１４の各々は、１色につき１つずつの計４つのサブバッファ２２０，２２１，２２２，２２３に分割される。全ての偶数ドットは、図３１に示されているように、各色のバッファ内の奇数ドットの前に置かれる。
【０３４９】
印刷すべき次のライン中のドットを表わす５１２００ビットは、４００個の３２ビットワードとして、１色のバッファあたり１２８００ビットずつ記憶される。第１の２００個の３２ビットワード（６４００ビット）は、その色のための偶数ドットを表わし、一方第２の２００個の３２ビットワード（６４００ビット）は、その色のための奇数ドットを表わす。
【０３５０】
アドレス指定用復号化回路は、一定の与えられたサイクル内で、４つ全てからの読取り又は４つのうちの１つへの書込みのいずれかである単一の３２ビットアクセスが４つのサブバッファ全てに行われ得るというようなものである。各々のカラーバッファから読取られた３２ビットのうちの１つのみが、合計４つの出力ビットについて選択される。プロセスは、図３２に示されている。１３ビットのアドレスは、３２ビットを選択するのに使用されている８ビットのアドレスにより、特定のビットの読取りを許容し、５ビットのアドレスはそれら３２のビットから１ビットを選択する。全てのカラーバッファはこの論理を共有していることから、単一の１３ビットアドレスは、１色に１つずつの計４つのビットを割り当てる。各バッファは、単一の３２ビット値を一定の与えられたサイクル内で特定のカラーバッファに書込むことを可能にさせるため、その独自のＷｒｉｔｅＥｎａｂｌｅラインを有する。実際には１つのバッファしかデータインを刻時しないことから、３２ビットのＤａｔａＩｎが共有される。
【０３５１】
７．３．１．２  アドレス生成
７．３．１．２．１  読取り
読取りのためのアドレス生成は簡単である。サイクル毎に、特定のセグメントについて１色あたり１ビットを表す４ビットを取り出すのに使用される１つのビットアドレスを生成する。現行のラインビットアドレスに４００を加えることにより、次のセグメントの等価ドットまで前進する。バッファ内で奇数及び偶数のドットは分離されていることから、４００（８００ではなく）を加える。偶数ドットを表す８セグメントの２セットについて３２ビットの２セットを検索するため、これを１６回行い（得られたデータは、ＭＪＩ３２ビットに１度に転送される）、奇数ドットをロードするためにさらにもう１６回行う。
この３２サイクルプロセスは４００回くり返され、毎回開始アドレスを増分する。こうして４００×３２サイクルで、合計４００×３２×４（５１，２００）のドット値が、プリントヘッドにより必要とされる順序で転送される。
【０３５２】
さらに、ＴｒａｎｓｆｅｒＷｒｉｔｅＥｎａｂｌｅ制御信号を生成する。ＬＬＦＵはＭＪＩより前に始動することから、ＭＪＩからのアドバンスパルスの前に第１の値を転送しなければならない。同様に、第１のアドバンスパルスのための準備として次の３２ビット値も生成しなければならない。その解決法は、８サイクルの後で転送レジスタに対し最初の３２ビット値を転送し、次にアドバンスパルスが次の８サイクルグループを開始するのを待って、８サイクル後に動作を停止させることである。最初のアドバンスパルスがひとたび到着すると、ＬＬＦＵはＭＪＩに同期化される。しかしながら、ＭＪＩは、初期転送値が有効であり、次の３２ビット値が転送レジスタ内にロードされるのに準備されているように、ＬＬＦＵから少なくとも１６サイクル後に開始されなくてはならない。
【０３５３】
読取りプロセスは、以下の擬似コードに示されている。
【表３３】
0004621766.tif 000035
【０３５４】
ラインが終了すると、ＣｕｒｒＲｅａｄＢｕｆｆｅｒ値は、プロセッサによりトグルされなくてはならない。
【０３５５】
７．３．１．２．２  書込み
書込みプロセスも同様に簡単である。４本のＤＭＡ要求ラインがＤＭＡコントローラに出力される。返信ＤＭＡ肯定応答ライン（ｒｅｔｕｒｎ  ＤＭＡ  Ａｃｋｎｏｗｌｅｄｇｅ  ｌｉｎｅ）により要求が満たされるにつれて、適切な８ビット宛先アドレスが選択され（１３ビット出力アドレスの下部５ビットは考慮しない値（  ｄｏｎ’ｔ  ｃａｒｅ  ｖａｌｕｅ）である）、肯定応答信号は、
適正なバッファのＷｒｉｔｅＥｎａｂｌｅ制御ラインまで移行させられる（現行の書込みバッファはＣｕｒｒｅｎｔＲｅａｄＢｕｆｆｅｒである）  。８ビットの宛先アドレスは、１色につき１アドレスずつ、４つの現行アドレスから選択される。ＤＭＡ要求が満たされるにつれて、適切な宛先アドレスが増分され、対応するＴｒａｎｓｆｅｒｓＲｅｍａｉ
ｎｉｎｇカウンタが減分される。ＤＭＡ要求ラインは、その色について残っている転送の数がゼロでない場合にのみセットされる。
【０３５６】
以下の擬似コードは書込みプロセスを示している。
【表３４】
0004621766.tif 000036
【０３５７】
７．３．１．３  レジスタ
ＬＬＦＵ内には以下のレジスタが収納されている。  
【表３５】
0004621766.tif 000037
【０３５８】
７．３．２  メムジェットインターフェース
メムジェットインターフェース（ＭＪＩ）２１１はデータをメムジェットプリントヘッド６３に転送し、印刷中のノズル吐出シーケンスを制御する。
【０３５９】
ＭＪＩは、単に、６．１．２節に記されているプリントヘッドローディング及び吐出順序に従う状態マシン（図２８参照）であり、６．１．４節及び６．１．５節で記述されて
いるような予熱サイクル及び清浄サイクルの機能を備える。高速及び低速印刷モードの両方が利用可能である。各色についてのドット計数も同様にＭＪＩによって維持される。  ＭＪＩは、次の２つのデータ源の選択からプリントヘッド内にデータをロードする。
【０３６０】
すべて１。これは、全てのノズルがその後の印刷サイクル中に吐出することことを意味し、予熱又は清浄サイクルのためにプリントヘッドをロードするための標準的なメカニズムである。
【０３６１】
ＬＬＦＵの転送レジスタ内に保持された３２ビットの入力から。これは、画像を印刷する標準的手段である。ＬＬＦＵからの３２ビット値は、プリントヘッドに直接送られ、ＬＬＦＵに対し１ビットの「アドバンス」制御パルスが送られる。各ラインの終りで、１ビットの「ＡｄｖａｎｃｅＬｉｎｅ」パルスも利用可能である。
【０３６２】
ＭＪＩは、ＬＬＦＵがすでに第１の３２ビット転送値を準備した後で開始されなくてはならない。これは、３２ビットのデータ入力がプリントヘッドに対する第１の転送について有効であるようにするためである。
【０３６３】
従って、ＭＪＩはＬＬＦＵ及び外部メムジェットプリントヘッドに対し直接接続される。
７．３．２．１  プリントヘッドに対する接続
ＭＪＩ２１１は、ＭＪＩとの関係における入力及び出力の検知と合わせて、プリントヘッド６３に対する以下のような接続を有する。名前は、プリントヘッド上のピン接続に整合する（８インチのプリントヘッドの配線方法の説明については、６．２．１節を参照されたい）。
【表３６】
0004621766.tif 000038
0004621766.tif 000039
【０３６４】
７．３．２．２  吐出パルス継続時間
ＡＥｎａｂｌｅライン及びＢＥｎａｂｌｅライン上の吐出パルスの継続時間は、（温度及びインク特性によって左右される）インクの粘度及びプリントヘッドに利用可能な電力量によって異なる。標準的なパルス継続時間の範囲は１．３〜１．８μｓである。従って、ＭＪＩは、プリントヘッドからのフィードバックによって指標付けされるプログラミング可能なパルス継続時間表２３０を有する。このパルス継続時間表は、より低コストの電源の使用を可能にし、より精確な液滴の噴射の一助となる。
【０３６５】
パルス継続時間表は２５６個のエントリを有し、現行のＶｓｅｎｓｅ設定値２３１及びＴｓｅｎｓｅ設定値２３２により指標づけされる。上部の４アドレスビットはＶｓｅｎｓｅから由来し、下部の４アドレスビットはＴｓｅｎｓｅから由来する。各エントリは８ビットで、０〜４μｓの範囲内の固定小数点値を表わす。ＡＥｎａｂｌｅ及びＢＥｎａｂｌｅ  ラインを生成するプロセスは、図３３に示されている。アナログＶｓｅｎｓｅ信号２３１及びＴｓｅｎｓｅ信号２３２は、それぞれの標本及び保持回路２３３，２３４によって受信され、次に、パルス継続時間表２３０に適用される前にそれぞれの変換器２３５，２３６内でデジタルワードに変換される。パルス接続時間表２３０の出力は、パルス幅ジェネレータ２３７に適用され、吐出パルスを生成する。
【０３６６】
２５６バイト表は、最初のページを印刷する前にＣＰＵにより書込まれる。表は、望まれる場合、ページ間で更新され得る。表中の各々の８ビットのパルス接続時間エントリは、以下のものを組み合わせる。
・ユーザーによる輝度設定値（ページの記述から）
・インクの粘度曲線（ＱＡチップから）
・Ｒｓｅｎｓｅ
・Ｗｓｅｎｓｅ
・Ｖｓｅｎｓｅ
・Ｔｓｅｎｓｅ
【０３６７】
７．３．２．３  ドット計数
ＭＪＩ２１１は、ドット計数レジスタ２４０内のプリントヘッドから吐出された各色の
ドット数の計数を維持する。各色についてのドット計数は、プロセッサ制御下で信号２４１により個々にクリアされる３２ビット値である。３２ビットの長さで、各ドット計数は、３０．４８ｃｍ（１２インチ）ページで１７ページ分の最大被覆率ドット計数を保持することが可能であるが、標準的な利用においては、ドット計数は、各ページの後に読取られてクリアされることになる。
【０３６８】
ドット計数は、インクカートリッジにインクが無くなる時を予測する目的で、ＱＡチップ８５（７．５．４．１節参照）を更新するために、プロセッサにより使用される。プロセッサは、ＱＡチップから、Ｃ、Ｍ、Ｙ及びＫの各々についてカートリッジ内のインク量を知る。液滴数で計数することにより、インクセンサの必要はなくなり、インクチャネルが乾燥するのを防ぐことが可能である。各ページの後で、更新された液滴計数がＱＡチップに書込まれる。充分なインクが残っていないかぎり、新しいページが印刷されることはなく、こうして再び印刷されなければならない無駄な半ページ印刷が発生することなく、ユーザーがインクを交換することが可能となる。
【０３６９】
シアンのためのドットカウンタのレイアウトが図３４に示されている。残りの３ドット計数器（それぞれマゼンタ、黄色及び黒色のためのＭＤｏｔＣｏｕｎｔ、ＹＤｏｔＣｏｕｎｔ及びＫＤｏｔＣｏｕｎｔ）は、同一の構造を有する。
【０３７０】
７．３．２．４  レジスタ
プロセッサ１３９は、レジスタセットを介してＭＪＩ２１１と通信する。レジスタにより、プロセッサは印刷をパラメータ化し、かつ印刷の進度についてのフィードバックを受取ることが可能である。
【０３７１】
ＭＪＩ内には、以下のレジスタが備えられている。
【表３７】
0004621766.tif 000040
0004621766.tif 000041
0004621766.tif 000042
【０３７２】
ＭＪＩのステータスレジスタは、以下のようなビット解釈をもつ１６ビットのレジスタである。
【表３８】
0004621766.tif 000043
【０３７３】
７．３．２．５  予熱及び清浄サイクル
清浄及び予熱サイクルは、単に適切なレジスタをセットすることによって達成される。すなわち、
・ＳｅｔＡｌｌＮｏｚｚｌｅｓ＝１
・低継続時間（予熱モードの場合）又は清浄モードについては適切な液滴吐出継続時間のいずれかにＰｕｌｓｅＤｕｒａｔｉｏｎレジスタをセットする。
・ノズルが吐出されるべき回数となるようＮｕｍＬｉｎｅｓをセットする。
・Ｇｏビットをセットし、印刷サイクルが完了した時点でＧｏビットがクリアされるのを待つ。  
【０３７４】
７．４  プロセッサ及びメモリ
７．４．１  プロセッサ
プロセッサ１３９は、ページ受信、展開及び印刷中にその他の機能ユニットを同期化する制御プログラムを実ラインする。これは、さまざまな外部インターフェースのためのテバイスドライバも実行し、ユーザーインターフェースを介してユーザーの動作にも応答する。
【０３７５】
これは、効率のよいＤＭＡ管理を提供するよう低い割込み待ち時間を有していなくてはならないが、それ以外の点では、特に高性能のＤＭＡコントローラである必要はない。
【０３７６】
ＤＭＡコントローラは、２７本のチャネル上で単一アドレスの転送をサポートする（表
２９参照）。これは、転送完了時点でプロセッサに対しベクトル割込みを生成する。
【表３９】
0004621766.tif 000044
【０３７７】
７．４．３  プログラムＲＯＭ
プログラムＲＯＭは、システムブート中にメインメモリ内にロードされるＩＣＰ制御プログラムを保持する。  
【０３７８】
７．４．４  Ｒａｍｂｕｓインターフェース
Ｒａｍｂｕｓインターフェースは、外部８ＭＢ（６４Ｍｂｉｔ）のＲａｍｂｕｓＤＲＡＭ（ＲＤＲＡＭ）に対する高速インターフェースを提供する。
７．５  外部インターフェース
７．５．１  ＵＳＢインターフェース
ユニバーサルシリアルバス（ＵＳＢ）インターフェースは、標準的なＵＳＢデバイスインターフェースを提供する。
【０３７９】
７．５．２  スピーカインターフェース
スピーカインターフェース２５０（図３５）は、メインメモリからのサウンドクリップのＤＭＡ媒介された転送に用いられる小型ＦＩＦＯ２５１、各々の８ビットのサンプル値を電圧に変換する８ビットのデジタル−アナログ変換器（ＤＡＣ）２５２、及び外部スピーカに供給を行う増幅器２５３を備える。ＦＩＦＯがエンプティであるとき、そのＦＩＦＯはゼロ値を出力する。
【０３８０】
スピーカインターフェースは、サウンドクリップの周波数で刻時される。
プロセッサは、単にスピーカインターフェースのＤＭＡチャンネルをプログラミングすることによってスピーカにサウンドクリップを出力する。
７．５．３  パラレルインターフェース
パラレルインターフェース２３１は、一定数のパラレル外部信号ライン上に入出力を提供する。
【０３８１】
これは、プロセッサが表３０に列挙されているデバイスを検知又は制御することを可能にする。
【表４０】
0004621766.tif 000045
【０３８２】
７．５．４  シリアルインターフェース
シリアルインターフェース２３２は、２つの標準的な低速シリアルポートを提供する。
【０３８３】
１つのポートは、マスタＱＡチップ８５に接続するために用いられる。もう１つのポートは、インクカートリッジ２３３内のＱＡチップに接続するために用いられる。２つの間のプロセッサ媒体プロトコルは、インクカートリッジを認証するために用いられる。プロセッサはこのときＱＡチップからのインク特性ならびに各インクの残量を検索することが可能である。プロセッサは、メムジェットプリントヘッドを適切に構成するために、これらのインク特性を使用する。プロセッサは、プリントヘッドが乾燥状態で作動することにより損傷を受けることを確実に防ぐために、プリントヘッドインターフェースにより蓄積されたインク消費情報を用いてページ毎に基づいて更新されるインク残量を使用する。
【０３８４】
７．５．４．１  インクカートリッジＱＡチップ
インクカートリッジ内のＱＡチップ２３３は、可能なかぎり最良の印刷品質を維持するために必要とされる情報を備えており、認証チップを用いて実現される。認証チップ内の２５６データビットは、以下のように割り当てられる。  
【表４１】
0004621766.tif 000046
【０３８５】
各ページを印刷する前に、プロセッサは、最悪の場合でも１ページ全面を印刷するのに充分なインクが存在することを保証するべく、インク残量を確認しなければならない。ひとたびページが印刷された時点で、プロセッサは（プリントヘッドインターフェースから得られた）各色の液滴合計数に液滴体積を乗算する。印刷されたインクの量は、インク残量から差引かれる。インク残量の測定単位はナノリットルであり、従って３２ビットは４リットル以上のインクを表わすことが可能である。１ページに使用されるインクの量は、最も近いナノリットル（すなわち約１０００の印刷済みドット）に切り上げられなければならない。
【０３８６】
７．５．５  ＪＴＡＧインターフェース
標準的なＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）インターフェースが、テスト用に備えられている。チップの複雑性に起因して、ＢＩＳＴ（Ｂｕｉｌｔ
ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）及び機能ブロック絶縁を含めたさまざまなテスト技術が必要とされる。チップテスト回路全体について、チップ面積の１０％のオーバヘッドが仮定される。
【０３８７】
８．一般的なプリンタドライバ
この節では、ｉプリントのためのあらゆるホストベースのプリンタドライバの一般的態様について説明する。
８．１  グラフィクス及び画像形成モデル
ここで、プリンタドライバがホストグラフィクスシステムと密に結合され、その結果、プリンタドライバがさまざまなグラフィクス及び画像形成操作、特に合成操作及びテキスト操作のためのデバイス特有の処理を提供可能であるとする。
【０３８８】
ホストがカラーマネージメントのためのサポートを提供し、そのため、デバイスとは独
立した色を、ユーザーの選択したｉプリント特有のＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ
Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）カラープロフィールに基づき、標準的な方法でｉプリント特有のＣＭＹＫへと変換することが可能であるとする。カラープロフィールは、通常、ユーザーがプリンタにおける出力媒体（すなわち普通紙、塗被紙、ＯＨＰ用紙など）を指定するときにユーザーにより暗黙の内に選択される。プリンタに送られたページ記述は常に、デバイス特有のＣＭＹＫ色を含んでいる。
【０３８９】
さらに、ホストグラフィクスシステムは、画像及びグラフィクスを、プリンタドライバにより指定された公称解像度までレンダリングするものの、プリンタドライバがテキストのレンダリングを制御することを許容するものとする。特に、グラフィクスシステムは、プリンタドライバが公称デバイス解像度よりも高い解像度でテキストをレンダリングし、配置するのを可能にするために充分な情報をプリンタドライバに提供する。
【０３９０】
また、ホストグラフィクスシステムは、それがグラフィクス及び画像形成オブジェクトを合成する、公称デバイス解像度でのコントーンページバッファに対するランダムアクセスを必要とするが、プリンタドライバが実際の合成を制御することを可能にしている、すなわち、プリンタドライバがページバッファを管理することを期待しているものとする。
【０３９１】
８．２  ２層ページバッファ
プリンタのページ記述は、２６７ｐｐｉのコントーン層と８００ｄｐｉの黒色層を有している。黒色層は概念的に、コントーン層より上方に位置する。すなわち黒色層はプリンタによりコントーン層上にわたって合成される。従って、プリンタドライバは、中解像度のコントーン層２６１と高解像度の黒色層２６２を対応して含むページバッファ２６０を維持する。
【０３９２】
グラフィクスシステムは、オブジェクトをレンダリングし、ページバッファをボトムアップ、すなわち後続オブジェクトが先行オブジェクトを覆い隠して合成する。これは、1
層しか存在しないときには当然作動するが、２層が存在する場合にはそうはいかず、これらの層は後で合成されることになる。従って、何時コントーン層上に配置されようとしているオブジェクトが黒色層上の何かを覆い隠しているかを検知することが必要である。
【０３９３】
覆い隠しが検出された時点で、覆い隠された黒色画素は、コントーン層と合成され黒色層から除去される。覆い隠しているオブジェクトは次にコントーン層上に置かれ、場合によって何らかの形で黒色の画素と相互作用する。覆い隠しているオブジェクトの合成モードが背景との相互作用が全く不可能となるようなものである場合には、黒色画素は、コントーン層と合成されることなく単に廃棄され得る。実際には、当然のことながら、コントーン層と黒色層の間にはわずかな相互作用しか存在しない。
【０３９４】
プリンタドライバは、グラフィクスシステムに対し２６７ｐｐｉという公称ページ解像度を指定する。可能な場合、プリンタドライバは、黒色テキストを除いて２６７ｐｐｉでの画素レベルに画像及びグラフィクスオブジェクトをレンダリングするのにグラフィクスシステムに依存する。プリンタドライバは全てのテキストレンダリング要求に対処し、８００ｄｐｉで黒色テキストを検出しレンダリングするが、２６７ｐｐｉでレンダリングするためグラフィクスシステムに対し非黒色テキストレンダリング要求を返信する。
【０３９５】
理想的には、グラフィクスシステム及びプリンタドライバは、デバイスに依存しないＲＧＢにて色を操作し、ページが完結し、いつでもプリンタに送れる状態になるまでデバイス特有のＣＭＹＫに対する変換を延期する。こうしてページバッファ必要条件は削減され、合成はさらに合理的になる。ＣＭＹＫ色空間内での合成は理想的ではない。
【０３９６】
究極的には、グラフィクスシステムは、プリンタドライバのページバッファ内に、各々のレンダリング済みオブジェクトを合成することをプリンタドライバに要求する。このようなオブジェクトは各々２４ビットのコントーンＲＧＢを使用し、明示的な（又は暗示的に不透明の）不透明チャンネルを有する。
【０３９７】
プリンタドライバは、３つの部分の形で２層ページバッファ２６０を維持する。第１の部分は、中解像度（２６７ｐｐｉ）のコントーン層２６１である。これは２４ビットのＲＧＢビットマップで構成されている。第２の部分は、中解像度の黒色層２６３である。これは、８ビットの不透明ビットマップから成る。第３の部分は、高解像度（８００ｄｐｉ）の黒色層２６２である。これは１ビットの不透明ビットマップから成る。中解像度の黒色層は、高解像度の不透明層のサブサンプリングされたバージョンである。実際には、中解像度が高解像度の整数因数ｎ（例えばｎ＝８００／２６７＝３）であると仮定すると、各々の中解像度の不透明度値は、対応するｎ×ｎの高解像度不透明度を平均することによって得られる。これは、ボックスフィルタにかけられたサブサンプリングに対応する。黒色画素のサブサンプリングは、実際、高解像度の黒色層内の縁部をエイリアス除去し、これにより、コントーン層がその後ＪＰＥＧ圧縮され圧縮解除された時点で、リンギングの人為結果を低減する。
【０３９８】
ページバッファの構造及びサイズは、図３６に示されている。
８．３  合成モデル
ページバッファ合成モデルについて論述する目的で、以下の変数を定義づけする。
【表４２】
0004621766.tif 000047
【０３９９】
不透明度ａＴｘＨの黒色オブジェクトが黒色層と合成される場合、黒色層は以下のように更新される。
【数１】
0004621766.tif 000048
【０４００】
オブジェクトの不透明度は単に黒色層不透明度と論理和され（規則１）、中解像度の黒色層の対応する部分が、高解像度の黒色層から再度計算される（規則２）。
【０４０１】
色ＣＯｂＭ及び不透明度ａＯｂＭのコントーンオブジェクトがコントーン層と合成される場合、コントーン層及び黒色層は以下のように更新される。
【数２】
0004621766.tif 000049
コントーンオブジェクトがたとえ完全に不透明にではなくても、コントーンオブジェクトが黒色層を覆い隠す場合には常に、影響を受けた黒色層の画素は、黒色層からコントーン層へと押し出され、すなわちコントーン層と合成され（規則３）、黒色層から除去される（規則４及び規則５）。コントーンオブジェクトはこのときコントーン層と合成される（規則６）。
【０４０２】
コントーンオブジェクト画素が完全に不透明である場合（すなわちａＯｂＭ（ｘ、ｙ）＝２５５）には、背景コントーン画素が、その後、前景コントーン画素により完全に消し去られることから（規則６）、背景コントーン層内に対応する黒色画素を押し出す必要は全くない（規則３）。
【０４０３】
図３７〜４１は、２層で表わされた画像上へさまざまなタイプのオブジェクトを合成することによって前景黒色層及び背景コントーン層にもたらされる効果について示している。各々の場合において、オブジェクトが合成される前後の２つの層の状態が示されている。前景及び背景層の異なる解像度が、層の異なる画素格子密度によって表示されている。
【０４０４】
２層に表わされた出力画像は、画像の実際のレンダリングがここでの論述の焦点ではないことから、画素格子は有さずに示されている。
中解像度の前景黒色層は示されていないが、潜在的に存在している。規則１が高解像度の前景黒色層に適用される場合には常に、規則２が中解像度前景黒色層に必然的に適用される。規則４が適用される場合にはつねに、規則５も必然的に適用される。
【０４０５】
図３７は、白色画像上への黒色オブジェクト２７０の合成の効果を例示している。黒色オブジェクトは、単純に前景黒色層２７１内に合成される（規則１）。背景コントーン層２７２は影響を受けず、出力画像２７３は黒色オブジェクトである。
【０４０６】
図３８は、白色画像上へのコントーン画像２８０の合成の効果を例示している。コントーンオブジェクト２８０は、単純に背景コントーン層２８２内に合成される（規則６）。前景黒色層２８１は影響を受けず、出力画像２８３はコントーンオブジェクトである。
【０４０７】
図３９は、すでにコントーンオブジェクト２９２を含む画像上への黒色オブジェクト２９０の合成の効果を示している。ここでもまた黒色オブジェクトは、単純に前景黒色層２９１内に合成される（規則１）。背景コントーン層は影響を受けず、出力画像２９３は、コントーンオブジェクト２９２全体にわたり黒色オブジェクト２９０を有する。
【０４０８】
図４０は、すでに黒色オブジェクト３０１を含む画像上への不透明なコントーンオブジェクト３００の合成の効果を示している。コントーンオブジェクトは既存の黒色オブジェクトの一部分を覆い隠していることから、既存の２値オブジェクトの影響を受けた部分は、前景黒色層３０２から除去される（規則４）。コントーンオブジェクトは完全に不透明であることから、影響を受けた部分をコントーン層内に合成する必要は全くなく、従って規則３はスキップされる。コントーンオブジェクトは、通常どおりの背景コントーン層３０３へと合成され（規則６）、出力画像３０４は、黒色オブジェクト全体の上で、かつこ
のオブジェクトを覆い隠すコントーンオブジェクト３００を示す。
【０４０９】
図４１は、すでに黒色オブジェクト３１１を含む画像上への部分的に透明なコントーンオブジェクト３１０の合成の効果を例示している。コントーンオブジェクトは、既存の黒色オブジェクトの一部分を部分的に透過して覆い隠すことから、黒色オブジェクトの影響を受けた部分は、コントーン層３１２内に合成され（規則３）、次に前景黒色層３１３から除去される（規則４）。コントーンオブジェクトは、通常どおりの背景コントーン層３１４内に合成される（規則６）。
【０４１０】
最終画像３１５は、既存の黒色オブジェクトの一部分を透過して覆い隠すようなコントーン画素の暗化を示す。
８．４  ページの圧縮及び送出
ページレンダリングがひとたび完了すると、プリンタドライバはグラフィクスシステム内のカラーマネージメント機能の補助により、コントーン層をｉプリント特有のＣＭＹＫに変換する。
【０４１１】
プリンタドライバは次に黒色層及びコントーン層を、５．２節で記述されているように、ｉプリントページ記述へと圧縮しパッケージ化する。このページ記述は、標準的なスプーラを介してプリンタに送出される。
【０４１２】
黒色層は１組の１ビット不透明度値として操作されるが、１組の１ビット黒色値としてプリンタに送出されるという点に留意されたい。これら２つの解釈は異なっているものの、同じ表現を共有しており、従ってデータ変換は必要とされない。
【０４１３】
９．ウィンドウズ９Ｘ／ＮＴプリンタドライバ
９．１  ウィンドウズ９Ｘ／ＮＴ印刷システム
ウィンドウズ９ｘ／ＮＴ印刷システム（非特許文献８）（非特許文献９）においては、プリンタ３２０は、グラフィクスデバイスであり、１つのアプリケーション３２１がグラフィクスデバイスインターフェース３２２（ＧＤＩ）を介してプリンタ３２０と通信する。プリンタドライバグラフィクスＤＬＬ３２３（ダイナミックリンクライブラリ）は、ＧＤＩによって提供されるさまざまなグラフィクス機能のデバイスに依存する点を実現する。
【０４１４】
スプーラ３３３は、プリンタへのページの送出を処理し、印刷を要求するアプリケーションに向けて異なるマシン上に常駐し得る。これは、プリンタに対する物理的接続を取扱うポートモニター３３４を介してプリンタにページを送出する。任意の言語モニター３３５は、プリンタとの通信に対し付加的なプロトコルを課し、特にスプーラのためにプリンタからの状態応答を復号化するプリンタドライバの一部分である。
【０４１５】
プリンタドライバユーザーインターフェースＤＬＬ３３６は、プリンタ特有の特性を編集しプリンタ特定的事象を報告するためにユーザーインターフェースを実現する。
【０４１６】
ウィンドウズ９ｘ／ＮＴ印刷システムの構造は、図４２に例示されている。
ｉプリントはＵＳＢ  ＩＥＥＥ−１２８４エミュレーションを使用することから、ｉプリントのために言語モニターを実現する必要は全くない。
本節の残りの部分では、プリンタドライバグラフィクスＤＬＬの設計について記述する。これは、適切なウィンドウズ９ｘ／ＮＴ  ＤＤＫ文書（非特許文献８）（非特許文献９）と合わせて読まれるべきものである。
【０４１７】
９．２  ウィンドウズ９ｘ／ＮＴグラフィクスデバイスインターフェース（ＧＤＩ）
ＧＤＩは、１つのアプリケーションがデバイス表面上で描画することを可能にする機能、すなわち表示スクリーン又は印字済みページの抽象化を提供する。ラスターデバイスについては、デバイス表面は概念上１つのカラービットマップである。アプリケーションは、デバイスとは独立して、すなわちデバイスの解像度及び色特性とは独立した形で表面上に描画し得る。
【０４１８】
アプリケーションは、デバイス表面全体にランダムにアクセス可能である。これはすなわち、メモリが制限されたプリンタデバイスがバンド出力を必要とする場合、ＧＤＩは、全ページのＧＤＩ指令をバッファし、次にこれらを各バンド内にウィンドウ処理された状態で再生しなければならないということを意味している。これはアプリケーションに大きな柔軟性を与えるものの、性能に不利な影響を及ぼす可能性がある。
【０４１９】
ＧＤＩは、カラーマネージメントをサポートし、これにより、アプリケーションによって提供されるデバイスに依存しない色は、デバイスの標準的ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）カラープロフィールに従ってデバイスに依存した色へと即応的に変換される。例えば、ドライバにより管理されるプリンタ特性シート上におけるユーザーによる用紙種類の選択などに応じて、プリンタドライバが異なるカラープロフィールを起動することが可能である。
【０４２０】
ＧＤＩは、ライン及びスプラインアウトライングラフィクス（経路）、画像及びテキストをサポートする。アウトラインフォントグリフを含むアウトライングラフィクスは、ストロークされ、ビットマップ化されたブラシパターンにて充填されることが可能である。グラフィクス及び画像は、幾何学的に変形されて、デバイス表面のコンテンツと合成されることが可能である。ウィンドウズ９５／ＮＴ４は、ブールの合成演算子のみを提供するものの、ウィンドウズ９８／ＮＴ５は、適切なアルファブレンディングを提供している（非特許文献９）。
【０４２１】
９．３  プリンタドライバグラフィクスＤＬＬ
ラスタプリンタは、理論的には、ウィンドウズ９ｘ／ＮＴ下で標準的なプリンタドライバコンポーネントを利用することができ、これは、プリンタドライバトリビアルを展開するジョブを行うことが可能である。これは、単一のビットマップとしてデバイス表面をモデリングする能力に依存する。これに付随する問題は、テキスト及び画像が同じ解像度でレンダリングされなくてはならないということである。このことは、テキストの解像度を危険にさらすかあるいは、過度に多い出力データを生成して性能を危うくするかのいずれかである。  
【０４２２】
前出のとおり、ｉプリントのアプローチは、各々の再現を最適化するため異なる解像度で黒色のテキスト及び画像をレンダリングすることにある。従って、プリンタドライバは、第８節に記述されている一般的な設計に従って実現される。
【０４２３】
従って、ドライバは、第８．２節で記述されているように、２層の３部分ページバッファを維持し、これはプリンタドライバがデバイス表面の管理を引き継がなくてはならないことを意味し、それはプリンタドライバがデバイス表面に対する全てのＧＤＩアクセスを媒介しなければならないということを意味している。
【０４２４】
９．３．１  デバイス表面の管理
プリンタドライバは、以下を含む多数の標準機能をサポートしなければならない。
【０４２５】
【表４３】
0004621766.tif 000050
ＤｒｖＥｎａｂｌｅＰＤＥＶは、ＧＤＩに対し、返信されたＤＥＶＩＮＦＯ構造のｆｌＧｒａｐｈｉｃｓＣａｐｓを介して、ドライバのグラフィクスレンダリング能力を指示する。これについては以下でさらに論述する。
【０４２６】
ＤｒｖＥｎａｂｌｅＳｕｒｆａｃｅは、２つの概念上の層と３つの部分すなわち、２６７ｐｐｉのコントーン層２４ビットＲＧＢ色、２６７ｐｐｉの黒色層８ビット不透明度、及び８００ｄｐｉの黒色層１ビット不透明度から成るデバイス表面を生成する。これら２層をカプセル化する仮想デバイス表面は、２６７ｐｐｉの公称解像度をもち、従って、これはＧＤＩオペレーションが行われる解像度である。
【０４２７】
統合ページバッファは約３３ＭＢのメモリを必要とするが、ＰＣ９９オフィス規準（非特許文献５）は６４ＭＢという最小値を規定している。
実際には、デバイス表面の管理及びそれへのＧＤＩアクセスの媒介というのは、プリンタドライバが以下の付加的な機能をサポートしなければならないことを意味している。
【０４２８】
【表４４】
0004621766.tif 000051
画像の複製、描線（ｓｔｒｏｋｉｎｇ  ｐａｔｈ）及び領域の充填は全てコントーン層上で起こるが、一方、黒ベタのテキストのレンダリングは、２値黒色層上で起こる。さらにまた、黒色ではないテキストのレンダリングは、黒色層上でサポートされていないことから、コントーン層上で起こる。換言すると、ストローク又は黒ベタでの充填は、黒色層上でラインなわれ得る（そのように選択した場合）。
【０４２９】
プリンタドライバは、上述の機能をフックせざるを得なくなるものの、コントーン層が標準フォーマットのビットマップであることから、その機能の対応するＧＤＩ実現に戻るように、コントーン層に適用される機能呼出しをパント（放棄）することが可能である。全てのＤｒｖＸｘｘ機能について、ＧＤＩにより対応するＥｎｇＸｘｘ機能が提供されて
いる。
【０４３０】
第８．２節で記述したように、コントーン層向けのオブジェクトが黒色層上の画素を覆い隠す場合、覆い隠された黒色画素は、コントーンオブジェクトがコントーン層と合成される前に黒色層からコントーン層まで転送されなくてはならない。このプロセスがうまくいくための鍵は、覆い隠しが検出されてフックされた呼出しにおいてＧＤＩに戻るようパントされる前にそれが取扱われることにある。これには、コントーンオブジェクトの画素毎の不透明度をその幾何形状から決定すること及び、第８．２項で記述したように黒色層からコントーン層まで黒色画素を選択的に転送するためにこの不透明度を用いることが関与している。
【０４３１】
９．３．２  コントーンオブジェクト幾何形状の決定
レンダリングされる前に各コントーンオブジェクトの幾何形状を決定し、よってコントーンオブジェクトがどの黒色画素を覆い隠しているかを効率よく決定することが可能である。ＤｒｖＣｏｐｙＢｉｔｓ及びＤｒｖＰａｉｎｔの場合、幾何形状は、１組の矩形として列挙可能なクリップオブジェクト（ＣＬＩＰＯＢＪ）によって決定される。
【０４３２】
ＤｒｖＳｔｒｏｋｅＰａｔｈの場合、事はさらに複雑になる。ＤｒｖＳｔｒｏｋｅＰａｔｈは、直線ライン及びベジエ−スプライン曲線セグメント及び単一画素幅ライン及び幾何学幅ラインの両方をサポートする。第１の工程は、ドライバのＤＥＶＩＮＦＯ構造のｆｌＧｒａｐｈｉｃｓＣａｐｓメンバー内の対応する能力フラグ（ＧＣＡＰＳ＿ＢＥＺＩＥＲＳ及びＧＣＡＰＳ＿ＧＥＯＭＥＴＲＩＣＷＩＤＥ）をクリアすることによって、ベジェ−スプライン曲線セグメント及び幾何学的幅ラインの複雑性をまとめて回避することである。こうしてＧＤＩは、ＤｒｖＰａｉｎｔに対するより単純な呼出しセットとして、このような呼出しを再度公式化することになる。一般に、ＧＤＩはドライバに対し高レベルの能力を加速する機会を与えるが、ドライバにより提供されていないあらゆる能力をシミュレートする。
【０４３３】
残るのは単に、単一画素幅の直線の幾何形状を決定することだけである。このような線は、実線であっても装飾線であってもよい。装飾線である場合には、線のスタイルは、指定された線属性内のスタイリングアレイによって決定される（ＬＩＮＥＡＴＴＲＳ）。スタイリングアレイは、線がその長さに沿って不透明であることと透明であることの間でいかに交番するかを特定し、従ってさまざまな破線効果などをサポートする。
【０４３４】
ブラシが黒ベタである場合、８００ｄｐｉの解像度が暗に意味する幅の増大を伴ってではあるが、直線も黒色層へと有用にレンダリングされ得る。
９．３．３  テキストのレンダリング
ＤｒｖＴｅｘｔＯｕｔの場合にも、事はさらに複雑になる。まず第１に不透明な背景がある場合、それは、コントーン層上のその他のいずれかの充填と同様に扱われる（ＤｒｖＰａｉｎｔ参照）。前景ブラシが黒色でない場合、又は混合モードが実際上不透明でない場合、又はフォントが拡大縮小不能である場合、又はフォントがアウトラインストロークを指示している場合、呼出しはコントーン層に適用されるべきＥｎｇＴｅｘｔＯｕｔにパントされる。しかしながら、呼出しがパントされる前に、ドライバは、そのビットマップを（ＦＯＮＴＯＢＪ＿ｃＧｅｔＧｌｙｐｈｓを介して）得ることによって、各グリフの幾何形状を決定し、黒色層に対し通常の覆い隠しチェックをラインなう。
【０４３５】
ＤｒｖＴｅｘｔＯｕｔ呼出しのパントが許されない場合（文書化があいまいである）には、ドライバは複雑なテキストオペレーションを禁じるべきである。これには、（ＧＣＡＰＳ＿ＶＥＣＴＯＲ＿ＦＯＮＴ能力フラグをクリアすることによる）アウトラインストロークの禁止及び（ＧＣＡＰＳ＿ＡＲＢＭＩＸＴＸＴ能力フラグをクリアすることによる）
複雑な混合モードの禁止が含まれる。
【０４３６】
前景ブラシが黒色かつ不透明であり、フォントが拡大縮小可能でストロークされていない場合には、グリフは、黒色層上でレンダリングされる。この場合、ドライバはそのアウトラインを（ここでもまた、ＦＯＮＴＯＢＪ＿ｃＧｅｔＧｌｙｐｈｓを介して、但しＰＡＴＨＯＢＪとして）得ることによって、各グリフの幾何形状を決定する。このときドライバは、８００ｄｐｉでそのアウトラインから各グリフをレンダリングしそれを黒色層に書込む。アウトライン幾何形状は、デバイス座標（すなわち２６７ｐｐｉで）を用いるが、この座標は、より高い解像度のレンダリングのための十分な少数部精度を有する固定少数点フォーマットの形をしている。
【０４３７】
ここで、指定されている場合には、取り消し線及び下線の矩形がグリフ幾何形状に加えられるという点に留意されたい。
ドライバは、８００ｄｐｉにおける正確な位置づけを可能にするため、高精度の固定小数点フォーマットでＧＤＩによりグリフ位置（ここでもまた２６７ｐｐｉのデバイス座標で）が供給されるよう要求するべく、ＤＥＶＩＮＦＯ内でＧＣＡＰＳ＿ＨＩＧＨＲＥＳＴＥＸＴをセットしなければならない。ドライバがビットマップではなくむしろアウトラインとしてグリフをキャッシュすべきであるということをＧＤＩに指示し得るように、同ドライバはＤｒｖＧｅｔＧｌｙｐｈＭｏｄｅ機能の実施も提供しなければならない。理想的には、ドライバは、効率的なメモリを可能にするレンダリングされたグリフビットマップをキャッシュすべきである。一定のポイントサイズ以下のグリフのみがキャッシュされるべきである。
【０４３８】
９．３．４  コントーン層の圧縮
前述したように、コントーン層はＪＰＥＧを用いて圧縮される。順方向離散的余弦変換（ＤＣＴ）は、ＪＰＥＧ圧縮において最もコストが高くなる部分である。現行の高品質ソフトウェア実現においては、各々の８×８ブロックの順方向ＤＣＴは、１２の整数乗算及び３２の整数加算を必要とする（非特許文献７）。ペンティアムプロセッサ上では、整数乗算には１０サイクルが必要であり、整数加算には２サイクルが必要である（非特許文献１１）。これは、１８４サイクルというブロックあたりの合計コストに等しい。
【０４３９】
２５．５ＭＢのコントーン層は、４１７，５８８ＪＰＥＧブロックから成り、全体的順方向ＤＣＴコストは約７７Ｍサイクルとなる。３００ＭＨｚのＰＣ９９デスクトップ規準で（非特許文献５）、これは０．２６秒に等しく、これは１ページあたり２秒の限界内に充分入っている。
【図面の簡単な説明】
【０４４０】
【図１】プリンタ内の二重バッファリングにより達成することが可能である持続印刷速度を示す表。
【図２】印刷したページへの適用からの、概念上のデータの流れを示すフローチャート。
【図３】閉じた場合のｉＰｒｉｎｔプリンタの絵画図。
【図４】開いた場合のｉＰｒｉｎｔプリンタの絵画図。
【図５】プリンタを通る紙の経路を示す断面図。
【図６】Ｍｅｍｊｅｔプリントヘッドカートリッジ、及びプリントヘッド被覆機構の絵画図。
【図７】図６のＭｅｍｊｅｔプリントヘッドカートリッジ及びプリントヘッド被覆機構の断面図。
【図８】プリンタコントローラの絵画面。
【図９】簡単な白黒画像のコード化の一例を示す図。
【図１０】吐出順序に従って番号が付されている１０本の印刷ノズルからなる１つのポッドを示す概略図。
【図１１】ローディング順序に従って番号が付されている１０本の印刷ノズルからなる同じポッドを示す概略図。
【図１２】クロマポッドの概略図。
【図１３】５つのクロマポッドからなるポッドグループの概略図。
【図１４】２つのクロマポッドからなる位相グループの概略図。
【図１５】セグメント、吐出グループ、位相グループ、ポッドグループ及びクロマポッドの間の関係を示す概略図。
【図１６】通常の印刷サイクル中の、ＡＥｎａｂｌｅライン及びＢＥｎａｂｌｅラインの位相図。
【図１７】プリンタコントローラアーキテクチャを示す図。
【図１８】ページの拡張及び印刷データの流れの概要を示すフローチャート。
【図１９】ＥＤＲＬエクスパンダユニットのブロック図。
【図２０】ＥＤＲＬストリームデコーダのブロック図。
【図２１】ランレングスデコーダのブロック図。
【図２２】ランレングスエンコーダのブロック図。
【図２３】ＪＰＥＧデコーダのブロック図。
【図２４】ハーフトーン化装置／コンポジタユニットのブロック図。
【図２５】ページ幅とマージンとの間の関係を示す一連のページライン。
【図２６】多重閾値ディザのブロック図。
【図２７】３成分閾値ユニットのロジックのブロック図。
【図２８】プリントヘッドインターフェースの内部構造のブロック図。
【図２９】印刷ラインＮとＮ＋１との間の二重バッファリングの概念的な概要示す線図。
【図３０】ＬＩＦＵの構造のブロック図。
【図３１】バッファの構造を示すブロック図。
【図３２】バッファの論理構造を示す線図。
【図３３】ＡＥｎａｂｌｅパルス幅及びＢＥｎａｂｌｅパルス幅の発生を示すブロック図。
【図３４】ドットカウントロジックの線図。
【図３５】スピーカインターフェースのブロック図。
【図３６】２層ページバッファの線図。
【図３７】白い画像上における黒色のオブジェクトの合成を示す一連の線図。
【図３８】白い画像上におけるコントーンオブジェクトの合成を示す一連の線図。
【図３９】コントーンオブジェクトを含む画像上での黒色のオブジェクトの合成を示す一連の線図。
【図４０】黒色のオブジェクトを含む画像上での不透明のコントーンオブジェクトの合成を示す一連の線図。
【図４１】黒色のオブジェクトを含む画像上での透明なコントーンオブジェクトの合成を示す一連の線図。
【図４２】プリンタドライバの構成要素によるウィンドウズ９ｘ／ＮＴ印刷システムのブロック図。
【図１】
0004621766.tif 000053
【図２】
0004621766.tif 000054
【図３】
0004621766.tif 000055
【図４】
0004621766.tif 000056
【図５】
0004621766.tif 000057
【図６】
0004621766.tif 000058
【図７】
0004621766.tif 000059
【図８】
0004621766.tif 000060
【図９】
0004621766.tif 000061
【図１０】
0004621766.tif 000062
【図１１】
0004621766.tif 000063
【図１２】
0004621766.tif 000064
【図１３】
0004621766.tif 000065
【図１４】
0004621766.tif 000066
【図１５】
0004621766.tif 000067
【図１６】
0004621766.tif 000068
【図１７】
0004621766.tif 000069
【図１８】
0004621766.tif 000070
【図１９】
0004621766.tif 000071
【図２０】
0004621766.tif 000072
【図２１】
0004621766.tif 000073
【図２２】
0004621766.tif 000074
【図２３】
0004621766.tif 000075
【図２４】
0004621766.tif 000076
【図２５】
0004621766.tif 000077
【図２６】
0004621766.tif 000078
【図２７】
0004621766.tif 000079
【図２８】
0004621766.tif 000080
【図２９】
0004621766.tif 000081
【図３０】
0004621766.tif 000082
【図３１】
0004621766.tif 000083
【図３２】
0004621766.tif 000084
【図３３】
0004621766.tif 000085
【図３４】
0004621766.tif 000086
【図３５】
0004621766.tif 000087
【図３６】
0004621766.tif 000088
【図３７】
0004621766.tif 000089
【図３８】
0004621766.tif 000090
【図３９】
0004621766.tif 000091
【図４０】
0004621766.tif 000092
【図４１】
0004621766.tif 000093
【図４２】
0004621766.tif 000094