(57)【要約】本発明は、プリントヘッド（６３）の不使用時に、プリントヘッドからのインクの蒸発を防ぐためのプリントヘッドキャッピング機構（６２）に関する。本発明は、例えば、ドロップオンデマンド式インクジェット型プリントヘッド（６３）を用いたカラープリンタに有用である。この機構（６２）は、プリントヘッド（６３）の表面をシールするためのエラストマーシール（６５）と、ノズルクリーニングサイクルの間にプリントヘッド（６３）から吐出されたインク滴を捕獲するためのスポンジ（６６）とが取り付けられたキャップ（６４）を備えている。この機構（６２）はまた、プリントヘッド（６３）を押圧当接するための係合位置とプリントヘッド（６３）から離間した係合外れ位置との間でキャップ（６４）を選択的に移動させるように動作可能な作動構造を備えている。【選択図】図７
2005500191.tif 000002
【特許請求の範囲】
【請求項１】
第１方向およびこれと逆の第２方向に回転する円形駆動輪と、
プリントヘッドと、
前記プリントヘッドからのインクの蒸発を防ぐためのキャッピング機構と
を具備し、
該キャッピング機構は、
プリントヘッドキャップと、
前記キャップに取り付けられた作動構造と
を備え、前記作動構造は、前記キャップを、プリントヘッド係合位置と、前記プリントヘッドから離間されている係合外れ位置との間を選択的に動かすものであり、前記作動構造は、固定軸を有する滑り部材を備え、前記固定軸を中心として旋回するものであり、前記滑り部材は、前記第１方向と第２方向のいずれかへの前記駆動輪の回転の少なくとも一部にわたり、前記駆動輪の表面と係合し、前記表面をつかむようにして、前記プリントヘッド係合位置と前記係合外れ位置との間で、前記軸を中心として前記キャップの旋回運動を行わせるものであり、前記駆動輪の更なる回転が生起すると、前記表面に対する前記滑り部材の滑りが生じるように構成されていることを特徴とするプリンタ。
【請求項２】
前記キャップは、エラストマーシールとスポンジとを保持するキャッピングプレートを有することを特徴とする請求項１記載のプリンタ。
【請求項３】
前記エラストマーシールは、前記キャップが前記係合位置にあるときに、前記プリントヘッドをシールするように、成形され、大きさが選定されていることを特徴とする請求項２記載のプリンタ。
【請求項４】
前記スポンジは、前記キャップが前記係合位置にあるときに、前記プリントヘッドから出てくるすべてのインク滴を捕獲するように、成形され、大きさが選定されていることを特徴とする請求項２記載のプリンタ。
【請求項５】
前記キャップの係合外れ位置は、前記プリンタの用紙経路外におかれていることを特徴とする請求項１記載のプリンタ。
【請求項６】
前記軸を中心としての前記滑り部材の旋回が行われると、前記係合位置と係合外れ位置との間の前記キャップの動きが生起するように、前記キャップは、前記軸から横方向へ離間されていることを特徴とする請求項１記載のプリンタ。
【請求項７】
印刷が行われているときに、前記滑り部材は、駆動されて前記キャップが前記係合外れ位置へ動かされるように、前記駆動輪は前記プリンタの給紙モータに結合されていることを特徴とする請求項１記載のプリンタ。
【請求項８】
印刷が停止すると前記滑り部材は、駆動されて前記キャップが前記係合位置へ動かされるように、前記駆動輪は前記プリンタの給紙モータに結合されていることを特徴とする請求項７記載のプリンタ。
【請求項９】
前記キャップを前記係合位置に保持するのを助けるため、弾性部材を使用することを特徴とする請求項７記載のプリンタ。
【請求項１０】
前記滑り部材が取り付けられたロッドを備えており、前記弾性部材は前記キャップと前記ロッドとの間の連結部に組み込まれていることを特徴とする請求項９記載のプリンタ。
【請求項１１】
前記滑り部材は、前記ロッドの一端に配置されていることを特徴とする請求項１０記載のプリンタ。
【請求項１２】
前記連結部は、一連の可撓アームであることを特徴とする請求項１０記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリントヘッドの不使用時にプリントヘッドからのインクの蒸発を防ぐためのプリントヘッドキャッピング機構に関する。本発明は、例えば、ドロップオンデマンド式インクジェット型プリントヘッドを用いたカラープリンタに有用である。
【発明の背景】
【０００２】
ドロップオンデマンド式プリントヘッドは不使用時には一般的にインクが充填されたままになっており、ノズルからインクが蒸発するのを防止するためにキャップを被せなければならない。インクの蒸発によりインク成分が徐々に堆積し、ノズル動作が損なわれる危険性がある。
【発明の概要】
【０００３】
本発明はプリントヘッドからのインクの蒸発を防ぐためのプリントヘッドキャッピング機構に関するものである。この機構は、プリントヘッドキャップと、該キャップに取り付けられて該キャップを、プリントヘッドを押圧当接する係合位置とプリントヘッドから離間した係合外れ位置の間で選択的に移動させる作動構造とを備える。この作動構造は、プリントヘッドが搭載されたプリンタ内の駆動輪と係合する滑り部材を備えており、当該係合の作用は、駆動輪の回転の少なくとも一部にわたりおよぶものであり、第１方向への前記駆動輪の回転により前記キャップを前記係合位置から前記係合外れ位置へ移動させ、第２方向への前記駆動輪の回転により前記キャップを前記係合外れ位置から前記係合位置へ移動させるものである。
【０００４】
使用中は、前記機構は通常、プリンタ内にプリントヘッドに隣接して配される。キャップは、プリントヘッドのすべてのノズルを確実に覆うように設けられた一つ以上のキャッピング成形部材を有することができる。このキャッピング成形部材は、エラストマーシールとスポンジとを保持するキャッピングプレートで構成することができる。このエラストマーシールまたはエラストマーシール群は、前記機構が係合しているときにプリントヘッドの表面をシールするように、形状と大きさが決められている。同様に、スポンジは、前記機構が係合しているときにインク滴をすべて捕獲するように、成形され、大きさが選定されている。作動構造は一般に、プリントヘッドが搭載されたプリンタの機構と協働して、適時に操作されてキャッピング成形部材を係合位置と係合外れ位置の間を確実に移動させるものである。
【０００５】
プリントヘッドが使用中でないときは、作動構造はキャッピング成形部材を係合位置まで動かすように操作され、その位置でキャッピング成形部材がプリントヘッドの表面に保持され、そこでエラストマーシールがプリントヘッドの表面と適合し、プリントヘッドの周りを気密にする。スポンジは、プリントヘッドのクリーニングサイクルの間にプリントヘッド内のノズルから吐出されたインク滴を捕獲するために用いられる。
【０００６】
プリントヘッドが使用中のときは、作動構造はキャッピング成形部材をプリントヘッドアセンブリから離すように操作され、キャッピング成形部材がプリンタの用紙経路外の位置に保持される。
【０００７】
前記機構は係合位置と係合外れ位置の間で旋回することによって動作機能するのが好ましい。これを実現するために、キャッピング成形部材を、回転可能なロッドの長さに沿って連結し、ロッドから横方向へ離間して（オフセットして）設けるとよい。この場合、ロッドの、それの軸を中心としての回転が、係合位置と係合外れ位置の間の動きを生じる。
【０００８】
前記滑り部材はプリンタ内の駆動輪と係合するようにロッドの端部に設けることができる。印刷が行われているときにロッドをキャップ外し方向に駆動するように、駆動輪をプリンタの給紙モータに結合することができる。滑り部材がキャップ外し滑り点まで回転すると、滑り部材とキャッピング成形部材が回転をやめる。印刷が終ると、駆動輪をキャッピング方向に逆駆動する。滑り部材がキャッピング滑り点まで回転すると、滑り部材とキャッピング成形部材が回転をやめ、キャッピングプレートをプリントヘッドアセンブリの表面の適正位置に保持する。
【０００９】
キャッピングプレートをプリントヘッドアセンブリの表面の適正位置に保持するのを助けるため弾性部材を使用することができる。弾性は、キャッピングプレートとロッド間の連結部内に備えられるのが好ましいことが見出されている。これは１つの連続した連結部である必要はなく、一連の可撓アームが、１つの適切な連結部としても、また、１つの適切な弾性部材としても十分機能し得ることが判明している。事実、プラスチック材料を用いてキャッピングプレートとロッドが作られているいくつかの実施態様においては、１つの連続的連結ウェブを十分に可撓もしくは柔軟であるようにするのは難しいことが判明している。
【００１０】
本発明のもう一つの側面においては、プリントヘッドとプリントヘッドキャッピング機構とを備えたプリントヘッドアセンブリが提供される。
【００１１】
本発明の更なる側面においては、プリントヘッドキャッピング機構を備えたプリンタであって、プリンタの給紙システムの駆動輪が前記機構の作動構造を動作させるプリンタが提供される。
【００１２】
本発明を具現化するプリンタの一例を添付図面を参照して説明する。
【好ましい実施形態とその他の実施形態の説明】
【００１３】
１  序論
本発明を、写真品質画像再生と雑誌品質テキスト再生を組み合わせた高性能カラープリンタに関して説明する。このプリンタは、１６００ドットパーインチ（ｄｐｉ）の２階調ＣＭＹＫ（シアン、マゼンタ、黄、黒）を生成する８インチページ幅のドロップオンデマンドマイクロエレクトロメカニカルインクジェット（Ｍｅｍｊｅｔ）プリントヘッドを使用している。それは、フルカラーのＡ４またはレターサイズのページを毎分３０ページ印刷し、初心者向けのデスクトッププリンタとして使用される。このプリンタはｉＰｒｉｎｔと呼ばれており、以下の記述においてはこの名称を使用する。
【００１４】
１．１  動作の概要
ｉＰｒｉｎｔは２階調の黒を用いて直接に黒のテキストとグラフィックスを再生し、ディザリングされた２階調ＣＭＹＫを用いて連続階調の画像とグラフィックスを再生する。実用のためには、ｉＰｒｉｎｔは８００ｄｐｉの黒解像度と２６７ピクセルパーインチ（ｐｐｉ）の連続階調解像度をサポートする。
【００１５】
ｉＰｒｉｎｔは、使用時には、ワークステーションやパソコン（ＰＣ）に、比較的低速（１．５メガバイト／秒）のユニバーサルシリアルバス（ＵＳＢ）接続部を介して取り付けられる［１４］。ｉＰｒｉｎｔは、各ページを連続階調ピクセルと黒ドットのレベルにレンダリングするのをＰＣに頼っている。ＰＣは、レンダリングした各ページを３ＭＢ未満に圧縮して２秒以下でプリンタに配送する。ｉＰｒｉｎｔは、そのページをＭｅｍｊｅｔプリントヘッドの速度でライン毎に伸長し印刷する。ｉＰｒｉｎｔは、２枚の圧縮されたページ（６ＭＢ）に十分であって一つのページを次のページを受け取りながら印刷するのを可能にするバッファメモリを備えているが、一枚の非圧縮ページ（１１９ＭＢ）までも十分なバッファメモリは備えていない。
【００１６】
１．２  ページ幅
標準的なＭｅｍｊｅｔノズルは半インチ単位セルを持って配置されており、半インチの倍数のページ幅に問題なく適応できる。任意のページ幅は、そのような特化の理由付けとなる市場においては、特別注文のノズル配置によって達成可能である。初期のＭｅｍｊｅｔの構成要素は、広範囲に役立つ４インチプリントヘッドであり、それは６インチシリコンウエハを効率的に使用している。ｉＰｒｉｎｔの設計は従って、２つの４インチプリントヘッドを結合して作られた８インチＭｅｍｊｅｔプリントヘッドを想定している。Ａ４／レターページだけについて完全なブリードを達成するためのより幅の広いプリントヘッドの使用は、ｉＰｒｉｎｔ設計のいくつかの側面、特に正確な機械設計とプリントヘッドインタフェースの論理回路に影響を与える。
【００１７】
２  Ｍｅｍｊｅｔによる印刷
Ｍｅｍｊｅｔプリントヘッドは１６００  ｄｐｉ  の２階調  ＣＭＹＫを生成する。
低拡散紙上では、吐出された各インク滴は、直径が２２．５ミクロンのほとんど完全な円形のドットを形成する。ドットは簡単に別々に生成され、散乱ドットディザリングを最大限利用できるようにする。Ｍｅｍｊｅｔプリントヘッドはページ幅であり、一定の紙速度で動作するので、４つの色平面が完全な位置合わせで印刷され、理想的なドットオンドット（ドット重ね式）印刷を可能にする。従って色平面間に空間的な交わりがないので、同じディザーマトリックスが各色平面に対して使用される。
【００１８】
ページ配置は画像とグラフィックスとテキストの混合物を含むことができる。連続階調の画像とグラフィックスは確率的散乱ドットディザーを用いて再生される。クラスタドット（振幅変調）ディザーと違って、散乱ドット（周波数変調）ディザーは、ほとんどドット解像度の限界まで高空間周波数（すなわち、画像詳細）を生成すると同時にその完全な色の深みまで低空間周波数を再生する。確率的ディザーマトリックスは、画像全体にわたって分割表示するときに、好ましくない低周波数パターンがないように注意深く設計される。このように、そのサイズは一般的に数多くの強度レベルをサポートするのに必要な最小サイズ（すなわち、２５７強度レベルに対して１６ｘ１６ｘ８  ビット）より大きい。ｉＰｒｉｎｔはサイズが６４ｘ６４ｘ３ｘ８ビットのディザー量を使用する。この量は、ドットのステートを（通常のディザーマトリックスにおけるようにたった一度というよりもむしろ）強度範囲にわたって複数回変化させることによって、ディザーの設計の際の余分の自由度を提供する。
【００１９】
人間のコントラストの感度は視野１度当たり約３サイクルの空間周波数においてピークがあり、それから対数的に１００倍に低下し、１度当たり約４０サイクルを超えて測定困難となる［２］。４００ｍｍと２５０ｍｍの間の通常の視距離において、これは、印刷されたページ上で約１２０〜２５０サイクルパーインチ（ｃｐｉ）に変わり、ナイキスト理論に従えば３００〜５００サンプルパーインチに変わる。色感度がグレースケール感度よりも鋭くないという事実を考えると、約４００ピクセルパーインチ（ｐｐｉ）より大きい連続階調解像度は従って有用性に劣り、事実、ディザーを通じてわずかながら色彩誤差の原因となる。
【００２０】
黒のテキストとグラフィックスは２階調黒ドットを用いて直接生成されるので、印刷される前にアンチエイリアシング（すなわち、低域ろ過）されない。従ってテキストは、上述の知覚限度を超えてスーパーサンプルされて、空間的に統合されるときに滑らかエッジを生成する。最大約１２００ｄｐｉのテキスト解像度は、知覚されるテキストの鮮明さに貢献し続ける（もちろん低拡散紙を想定）。
【００２１】
３．１  拘束条件
ＵＳＢ（ユニバーサルシリアルバス）は新しいＰＣにおける標準的な低速周辺接続手段である［４］。標準的な高速周辺接続手段であるＩＥＥＥ  １３９４が推奨されるが、残念ながらＰＣ  ９９  仕様においてはなおオプションである［５］ので、ｉＰｒｉｎｔが最初に市場にでるときには普及していない可能性がある。ｉＰｒｉｎｔは従ってＵＳＢを介してパソコン（ＰＣ）やワークステーションと接続されるので、ＵＳＢ接続手段の速度がｉＰｒｉｎｔシステムの構成について最も著しい制約を課す。３０ページ／分の持続印刷速度において、１．５ＭＢ／秒のＵＳＢは３ＭＢ／ページの平均限度を課す。ページの印刷に際してＭｅｍｊｅｔを用いたプリンタを妨げる動作は可視の不連続性を生じるので、プリンタが印刷を開始する前にページ全体を受け取ってバッファアンダーランの可能性をなくすのが好ましい。このプリンタは有限のバッファメモリすなわち２ページ分か６ＭＢのメモリだけを備えることができるので、３ＭＢ／ページの限度が絶対的なものと考えなければならない。
【００２２】
図１は、プリンタ内の二重バッファリングによって達成可能な持続印刷速度を示す。第１段階１は第１ページがＰＣ内でレンダリングされるのを必要とし、これに最大２秒かかる。第２段階２の間、次のページがレンダリングされ、第１ページがプリンタへ転送され、これに再び最大２秒かかる。第３段階３において、第１ページが印刷され、第２ページが転送され、第３ページがレンダリングされ、これに２秒かかる。結果として、第１ページを印刷するのに最大６秒かかり、その後２秒ごとに１ページを印刷できる。
【００２３】
他のデスクトップ接続オプションはＵＳＢと同様な帯域幅を備えているので、前記構成に同様な制限を課す。これには２ＭＢ／秒のパラレルポートと約１ＭＢ／秒の１０Ｂａｓｅ−Ｔイーサネットがある。
【００２４】
３．２  ページレンダリングと圧縮
ページレンダリング（またはラスタ化）は、種々の方法で、ＰＣとプリンタの間で分担し合うことができる。プリンタの中には、Ｐｏｓｔｓｃｒｉｐｔなどの完全ページ記述言語（ＰＤＬ）をサポートし、それに対応した高度なレンダリング手段を備えたものもある。また、テキストをレンダリングするためだけの特別サポートを行って高度なテキスト解像度を達成するようにしたものもある。これには通常、内部フォントとダウンロード可能なフォントのためのサポートが含まれる。いずれの場合においても、組込み型レンダリング手段の使用により、ＰＣのレンダリング負担を減らし、ＰＣからプリンタへ送信するデータ量を減らすことができる。しかしながら、これにはコストがかかる。これらのプリンタは思った以上に複雑であり、アプリケーションプログラムがページを構築レンダリング印刷するＰＣのグラフィックスシステムのための完全なサポートを行うことができないことが多い。これらは現ラインＰＣの高度な性能を活用できないことが多く、予想される急激なＰＣ性能の増大を活かすことができない。
【００２５】
ｉＰｒｉｎｔは、ページをレンダリングするのを、すなわち、連続階調の画像とグラフィックスをピクセルレベルにレンダリングし、黒のテキストとグラフィックスをドットレベルにするのをＰＣに頼っている。ｉＰｒｉｎｔは、連続階調データをディザリングし、その結果をいずれの前景の２階調の黒のテキストおよびグラフィックスとも組み合わせる簡単なレンダリングエンジンだけを備えている。この方法は、プリンタを簡単にすると共に、プリンタをいずれのページ記述言語やグラフィックスシステムとも無関係にする。それは現ラインＰＣの高性能を十分に活用する。この方法のマイナス面は、ＰＣからプリンタに大量のデータを送信しなければならない可能性があるという点にある。このため、圧縮を使ってこのデータを、３０ページ／分の持続印刷速度を可能にするために必要な３ＭＢ／ページに減少させる。
【００２６】
図２は、アプリケーション６から印刷ページ７までの概念的なデータ流れを示すフローチャートである。
【００２７】
１８インチｘ１１．７インチのＡ４ページは、１６００ｄｐｉで１１４．３ＭＢの２階調ＣＭＹＫページサイズと、３００ｐｐｉで３２．１ＭＢの連続階調ＣＭＹＫページサイズとを有している。
【００２８】
プリンタドライバ８では、ＪＰＥＧ圧縮９を使って連続階調データを圧縮する。ＪＰＥＧは本質的に１０：１以下の圧縮比に対してロスが多いが、そのロスは通常無視できる［１６］。連続階調対２階調の整数比を得るためと、ある程度の圧縮余裕をとるために、２６７ｐｐｉの連続階調解像度を選択する。これにより、２５．５ＭＢの連続階調ＣＭＹＫページサイズと、３ＭＢ／ページの限度内に入るための対応する８．５：１の圧縮比と、各次元における１：６の連続階調対２階調比とが得られる。
【００２９】
プリンタ解像度（１６００ｄｐｉ）でラスタ化された黒テキスト（およびグラフィックスまたはそのいずれか）のフルページから２８．６ＭＢの２階調画像が得られる。１６００ｄｐｉでテキストをラスタ化するのは小利得用のＰＣに大きな負担をかけるので、完全に受容可能な８００ｄｐｉでテキストをラスタ化することを選択する。これにより、３ＭＢ／ページの限度に適合するよう２．５：１より小さいロスなし圧縮比を必要とする７．１ＭＢの２階調画像が得られる。一般に１０で示されるように、グループ４ファクシミリに使われている二次元圧縮方法によってこれを達成する。
【００３０】
ページの画像領域とテキスト領域が重ならない限り、この二つの組み合わせは３ＭＢの限度内に入る。もしテキストが背景画像の一番上にあると、最悪のケースは、圧縮されたページサイズが６ＭＢ（実際のテキスト圧縮比による）に近づくことである。これはプリンタのページバッファメモリ内に入るが、プリンタ内でのページの二重バッファリングを妨げるので、プリンタのページ速度を３分の２減らし、すなわち、１０ページ／分にする。
【００３１】
３．３  ページ伸長と印刷
上述したように、ＰＣは連続階調の画像とグラフィックスをピクセルレベルにレンダリングし、黒のテキストとグラフィックスをドットレベルにレンダリングする。これらは別々の手段で圧縮１１され、一緒にプリンタへ送信される。
【００３２】
プリンタは二つの３ＭＢページバッファ、一つはＰＣから受けとったページのためのもの１２であり、一つは印刷するページのためのもの１３である。プリンタは圧縮されたページを、それを印刷しようとするときに伸長する。この伸長は、２６７ｐｐｉ連続階調ＣＭＹＫ画像データを伸長するステップ１４と、その結果得られた連続階調ピクセルを１６００ｄｐｉ２階調ＣＭＹＫドットにハーフトーン化するステップ１５と、８００ｄｐｉ２階調黒テキストデータを伸長するステップ１６と、その結果得られた２階調黒テキストドットを対応する２階調ＣＭＹＫ画像ドット上に合成するステップからなる。
【００３３】
アプリケーションから印刷ページまでの概念的なデータ流れを図２に示す。
【００３４】
４  プリンタハードウェア
ページ幅Ｍｅｍｊｅｔプリントヘッドは簡単であるので、ｉＰｒｉｎｔは非常にコンパクトである。その寸法は、閉じた状態で、ほんの幅２７０ｍｍ、奥行き８５ｍｍ、高さ７７ｍｍである。図３は閉じた状態のｉＰｒｉｎｔ２１を示す図である。
【００３５】
図４に示すようにカバー２２は開いた状態で用紙トレーの一部を形成する。第２部分２３はカバー２２内にヒンジで止められていて、開くと用紙トレーの延長部となる。用紙出口トレー２４はスライド式になっていてプリンタの前方へ引き出すことができる。
【００３６】
カバー２２を開けると現れるフロントパネル２５は、電源ボタン２６、電源表示ＬＥＤ２７、用紙送りボタン２８、用紙切れ表示ＬＥＤ２９、インク低下表示ＬＥＤ３０といったユーザーインタフェースを備えている。
【００３７】
４．１  用紙経路
ｉＰｒｉｎｔは標準的な給紙機構を使用している。用紙経路５０を図５に示す。図５において、一つのステッパーモータ５１がシート送りローラ５２と給紙機構の両方を駆動する。ステッパーモータは前方に回転したときに、用紙経路の始めにある用紙送りローラ５３と、用紙経路の終りにあるピンチ輪５４を駆動する。逆に回転したときに、ステッパーモータはシート送りローラ５２を駆動し、シート送りローラ５２はシートフィーダからの最上部のシートをつかみ、それを少しの距離だけ動かして用紙送りローラ５３へ送り、そこでそのシートを機械式メディアセンサ５５が検出する。
【００３８】
用紙センタリングスライダ５６は確実に用紙を中央に位置付けるためのものである。これにより、中央に置かれた一つのメディアセンサがシートを確実に検知し、プリントヘッドよりも幅の広いシートがマージンを持って確実に印刷される。
【００３９】
４．１．１  Ｍｅｍｊｅｔプリントヘッド
図５には交換可能なＭｅｍｊｅｔプリントヘッドカートリッジ６０も示されている。これは、ｉＰｒｉｎｔなどの製品の中にプリントヘッドをインクカートリッジと共に配置するための４通りの可能な方法の一つを示している。この４通りの方法は以下の通りである。
【００４０】
・  常設プリントヘッドと交換可能インクカートリッジ（図５に示す）
・  別々の交換可能プリントヘッドとインクカートリッジ
・  詰め替え可能な組み合わされたプリントヘッドとインクカートリッジ
・  使い捨ての組み合わされたプリントヘッドとインクカートリッジ
【００４１】
図６の破断図と図７の断面図に示すように、プリントヘッドカートリッジ６０の下に、プリントヘッドアセンブリ６１とプリントヘッドキャッピング機構６２がある。非使用時には、Ｍｅｍｊｅｔプリントヘッド６３はインクで充填されたままになっているので、ノズルを通してインクが蒸発するのを防止するためにキャップを被せなければならない。インクの蒸発によりインク成分が徐々に堆積し、ノズル動作が損なわれる。
【００４２】
ｉＰｒｉｎｔは、エラストマーシール６５とスポンジ６６とを有する回転式キャッピング成形部材６４で構成された機械式ページ幅キャッピング機構６２を備えている。プリントヘッドが使用中でないときは、キャッピング成形部材６４はプリントヘッドアセンブリ６１の表面にバネで保持されており、エラストマーシール６５がプリントヘッドアセンブリの表面と適合し、プリントヘッド６３の周りを気密にする。スポンジ６６は、プリントヘッドのクリーニングサイクルの間に吐出されたインク滴を捕獲するために用いられる。プリントヘッドが使用中のときは、キャッピング成形部材６４はプリントヘッドアセンブリ６１から離れて用紙経路外の位置に保持される。
【００４３】
キャッピング成形部材６４は一組の可撓アーム６８によってロッド６９からオフセットされる。キャッピング成形部材６４とアーム６８はロッド６９と共にその軸回りを回転する。滑り部材７０がロッド６９の端部に取り付けられている。この滑り部材７０は、この滑り部材７０をロッド６９の軸を中心として回転させるとロッド６９も滑り部材７０と共に回転するように、ロッド６９に取り付けられている。滑り部材７０は駆動輪７１と接触する。印刷が生じようとするときは、駆動輪７１を給紙モータに結合させ、キャップ外し方向に駆動する。駆動輪７１の表面と滑り部材７０との摩擦接触により、滑り部材７０とロッド６９がロッド６９の縦軸を中心として回転し、キャッピング成形部材６４をプリントヘッドから離脱させる。滑り部材がキャップ外し滑り点７３まで回転すると、滑り部材７０が駆動輪７１の表面を滑るので、滑り部材とキャッピング成形部材は回転をやめる。印刷が終ると、駆動輪をキャッピング方向７４に逆駆動する。滑り部材がキャッピング滑り点７５まで回転すると、滑り部材７０と駆動輪７１との間で滑りが始まるために、滑り部材とキャッピング成形部材が回転をやめ、キャッピングバネがキャッピングプレートをプリントヘッドアセンブリの表面の適正位置に保持する。キャッピング滑り点とキャップ外し滑り点の間の滑り部材７０の回転運動の間、シャフト６９の縦軸を中心としての滑り部材７０の回転運動を生じるのに十分な滑り部材７０と駆動輪７１の間の静的な摩擦接触があるので、キャッピング成形部材６４の前記運動を生じることができる。可撓アーム６８は、キャッピングプレート６７がプリントヘッドアセンブリ６１の表面と適合するのを助ける。
【００４４】
４．２  プリンタコントローラ
プリンタコントローラ８０は図８に示されており、ほんのいくつかの部品、すなわち、６４ビットＲＤＲＡＭ８２と、ｉＰｒｉｎｔ中央処理装置（ＩＣＰ）チップ８３と、エラー状態をユーザーに知らせるスピーカ８４と、ＱＡチップ８５と、外部３ＶＤＣ電源接続部８６と、外部ＵＳＢ接続部８７と、給紙ステッパーモータへの接続部８８と、メディアセンサ５５に接続する可撓ＰＣＢ８９と、を有する小型ＰＣＢ８１と、ＬＥＤ７、９、１０と、ボタン６、８と、プリントヘッド６３へのリンク９０とから構成される。
【００４５】
４．３  インクカートリッジとインク経路
インクカートリッジには大型と小型の二種類がある。両方ともｉＰｒｉｎｔ装置の後部の同じインクカートリッジスロットにぴったり納まる。
【００４６】
５  プリンタ制御プロトコル
本節ではホストとｉＰｒｉｎｔの間で使用されるプリンタ制御プロトコルについて説明する。それには制御と状態の処理のみならず実際のページ記述も含まれる。
【００４７】
５．１  制御と状態
プリンタのためのＵＳＢ装置分類規定［１５］には、一方向と双方向の両方におけるＩＥＥＥ１２８４パラレルポートのエミュレーションが設けられている［３］。これは、その最も基本的なレベルにおいて、ホストに、（ＧＥＴ＿ＤＥＶＩＣＥ＿ＩＤを介して）プリンタ能力を判定させ、（ＧＥＴ＿ＰＯＲＴ＿ＳＴＡＴＵＳを介して）プリンタ状態を取得させ、（ＳＯＦＴ＿ＲＥＳＥＴを介して）プリンタをリセットさせる。セントロニクス／ＩＥＥＥ１２８４プリンタ状態フィールドを以下の表１に記載する。
【表１】
2005500191.tif 000003
【００４８】
パソコン印刷サブシステムは一般に、あるレベルのＩＥＥＥ１２８４サポートを行う。プリンタにおけるＩＥＥＥ１２８４との適合性は従って対応するプリンタドライバの開発を簡単にする。プリンタのためのＵＳＢ装置分類規定はこの同じ適合性を活かそうとしている。
【００４９】
ｉＰｒｉｎｔはプリンタのためのＵＳＢ装置分類規定を超えた制御プロトコルをサポートしていない。ただし、より高いレベルの制御プロトコルが規定される場合は、インク切れなどの状態も（プリンタのインク切れ表示ＬＥＤを介して行う以外の方法で）ユーザーに知らせることができる。
【００５０】
ｉＰｒｉｎｔは、生転送されたままの、すなわちなんらかのより高いレベルの制御プロトコルでカプセル化されていないページ記述を受け取る。
【００５１】
５．２  ページ記述
ｉＰｒｉｎｔは、黒は全ドット解像度（１６００ｄｐｉ）で再生するが、連続階調色はハーフトーン化を用いていくらか低めの解像度で再生する。ページ記述は従って黒層と連続階調層に分けられる。黒層は連続階調層上の合成のために規定される。
【００５２】
黒層は各ピクセルに対して１ビットの不透明度を含むビットマップで構成される。この黒層艶消しは、プリンタのドット解像度の整数倍の解像度を有している。サポートされる最高解像度は１６００ｄｐｉ、すなわちプリンタの全ドット解像度である。
【００５３】
連続階調層は各ピクセルに対して３２ビットＣＭＹＫ色を含むビットマップで構成される。この連続階調画像はプリンタのドット解像度の整数倍の解像度を有している。サポートされる最高解像度は２６７ｐｐｉ、すなわちプリンタのドット解像度の６分の１である。
【００５４】
この連続階調解像度も一般的に黒解像度の整数倍であって、プリンタドライバにおける計算を簡単にする。しかしながら、これは要件ではない。
【００５５】
黒層と連続階調層は共に、プリンタへの低速ＵＳＢ接続上での効率的な送信のために、圧縮形態にある。
【００５６】
５．２．１  ページ構造
ｉＰｒｉｎｔは、そのプリントヘッドの幅とその用紙経路の特性と現在選択されている印刷媒体のサイズとによって決定される印刷可能ページ領域を持っている。
【００５７】
印刷可能ページ領域は、最大幅が８インチである。物理的なページ幅が８インチを超えると、対称的な左右マージンが暗黙的に作られる。物理的なページ幅が８インチ未満であると、印刷可能ページ幅がそれに応じて少なくなる。印刷可能ページ領域には最大長さはない。それは単に、用紙経路の特性によって課された上下マージンを差し引いた物理的なページ長さである。
【００５８】
ターゲットページサイズは、ページ記述の中で述べられた明白な（ターゲットの）左マージンと上マージンを差し引いた印刷可能ページ領域によって制約される。
【００５９】
理論的にはｉＰｒｉｎｔは上下マージンを課すことはない、すなわち、垂直方向の完全なブリードを可能にする。しかしながら、実際には、ｉＰｒｉｎｔは８インチプリントヘッドを使うために完全ブリードのＡ４／レタープリンタとして設計されないので、人為的な上下マージンを課して、規則的なエッジのない印刷を行うのに十分大きなスポンジを備えなくてもよいようにする。
【００６０】
５．２．２  ページ記述形式
表２はｉＰｒｉｎｔによって想定されるページ記述の形式を示す。
【表２】
2005500191.tif 000004
【００６１】
印字可能ページ領域に関して暗黙的に定義付けられることを別とすれば、各ページ記述は完備性を有し、独立的である。ページ記述が参照する、ページ記述とは別個にプリンタに送信されるデータはない。
【００６２】
ページ記述は、プリンタがページ記述形式を識別できるようにするシグネチャとバージョンを含んでいる。シグネチャ及び／又はバージョンが失われるか、又はプリンタと両立性がない場合、プリンタは、そのページを拒否することができる。
【００６３】
ページ記述はターゲットページの解像度とサイズを規定する。黒層と連続階調層は必要ならばターゲットページにクリッピングされる。
黒スケールファクタか連続階調スケールファクタがターゲットページ幅または高さのスケールファクタでないときはいつもそのようなことが起こる。
【００６４】
ターゲット左マージンとターゲット上マージンは印刷可能ページ領域内のターゲットページの位置決めを規定する。
【００６５】
黒層パラメータは、黒層のピクセルサイズと、ターゲット解像度に対するその整数スケールファクタと、その圧縮されたページデータのサイズとを規定する。可変サイズの黒ページデータがページ記述の固定サイズ部分に続く。
【００６６】
連続階調層パラメータは、連続階調層のピクセルサイズと、ターゲット解像度に対するその整数スケールファクタと、その圧縮されたページデータのサイズとを規定する。可変サイズの連続階調ページデータが可変サイズの黒ページデータに続く。
【００６７】
ページ記述におけるすべての整数は小さいバイト順に格納される。
【００６８】
可変サイズ黒ページデータと可変サイズ連続階調ページデータは８バイト境界に並べられる。必要なパッディングのサイズは、ページ記述構造の固定サイズ部分と可変サイズ黒データのサイズの中に含まれる。
【００６９】
ページ記述全体は、プリンタ内のページバッファメモリに従って、３ＭＢ未満のターゲットサイズと６ＭＢの最大サイズを有している。
【００７０】
以下の節で、圧縮された黒層と圧縮された連続階調層の形式を説明する。
【００７１】
５．２．３  ２階調黒層圧縮
５．２．３．１  グループ３と４のファクシミリ圧縮
グループ３ファクシミリ圧縮アルゴリズム［１］は、低速で雑音の多い電話回線での送信のために２階調データを損失なく圧縮する。２階調データは白の背景上に走査された黒のテキストとグラフィックスとを表し、前記アルゴリズムはこの種の画像用に調整される（それは、例えば、ハーフトーン化された２階調画像用には調整されないことは明白である）。１Ｄグループ３アルゴリズムは各走査ラインをランレングス符号化したのちその結果をハフマン符号化する。５０から６３の範囲のランレングスは終了コードを用いて符号化される。６４から２６２３までの範囲のランレングスは、それぞれ６４の倍数を表し終了コードがあとに続くメークアップコードを用いて符号化される。２６２３より大きいランレングスは、終了コードがあとに続く複数のメークアップコードを用いて符号化される。ハフマンテーブルは固定されているが、白のランと黒のランに対しては別々に調整される（共通である１７２８より大きいメークアップコードを除く）。可能ならば、２Ｄグループ３アルゴリズムは、走査線を、前の走査線を基準にして、一組の短エッジデルタ（０、  ±１、  ±２、  ±３）として符号化する。デルタシンボルは（ゼロデルタシンボルが１ビットだけの長さとなるなどのように）エントロピー符号化される。デルタ符号化できない２Ｄ符号化されたラインの中のエッジはランレングス符号化され、プレフィックスによって識別される。１Ｄ符号化されたラインと２Ｄ符号化されたラインは別々にマークがつけられる。１Ｄ符号化されたラインは、確実にデコーダが最小の画像劣化でライン雑音から復旧できるように、実際に必要か否かにかかわらず、一定間隔で生成される。２Ｄグループ３は最大６：１の圧縮比を実現する［１３］。
【００７２】
グループ４ファクシミリアルゴリズム［１］は、誤りなし通信回線（すなわち、回線が真に誤りなしか、低プロトコル段階において誤り訂正がなされる）上での送信のために２階調データを損失なく圧縮する。グループ４アルゴリズムは、２Ｄグループ３アルゴリズムをベースにしており、この２Ｄグループ３アルゴリズムは、送信が誤りなしと仮定されるために、１Ｄ符号化されたラインが誤り回復のためにもはや一定間隔で生成されないところの必要不可欠な変調を備えている。グループ４はＣＣＩＴＴのテスト画像セットに対して２０：１から６０：１までの範囲の圧縮比を実現する［１３］。
【００７３】
グループ４圧縮アルゴリズムの設計目標と性能は、それを２階調黒層用に適した圧縮アルゴリズムにすることである。しかしながら、そのハフマンテーブルは低走査解像度（１００〜４００ｄｐｉ）に調整され、２６２３より大きいランレングスを拙劣に符号化する。８００ｄｐｉにおいて、我々の最大ランレングスは現在６４００である。グループ４デコーダ要部は、プリンタコントローラチップの中で使用できるけれども（第７節）、通常４００ｄｐｉファクシミリアプリケーションにおいて生じるランレングスより大きいランレングスを扱うことはないので、変更を必要とする。
【００７４】
グループ４の利点のほとんどはデルタ符号化に起因しているので、デルタ符号化に基づくより簡単なアルゴリズムだけが我々の要求を満足すると思われる。この取組み方を以下に詳細に説明する。
【００７５】
５．２．３．２  ２階調エッジデルタランレングス（ＥＤＲＬ）圧縮形式
エッジデルタランレングス（ＥＤＲＬ）圧縮形式は大まかにグループ４圧縮形式とその先行形式をベースにしている［１］［１７］。
【００７６】
ＥＤＲＬは適切にエントロピー符号化された三種類のシンボルを使用する。これらはエッジ作成とエッジ削除とエッジデルタである。各ラインはその前のラインを基準として符号化される。最初のラインの前のラインは白のラインに規定される。各ラインは白で始まるように規定される。ラインが実際には黒で始まる場合は（ほとんどない状態）、オフセットゼロにある黒エッジを規定しなければならない。各ラインはその左端、すなわちオフセットページ幅にあるエッジを規定しなければならない。
【００７７】
エッジは、同じセンス（白から黒または黒から白）をもった最大デルタ範囲内のエッジがある場合は、前のラインのエッジを基準として符号化可能である。これはエッジデルタコードの一つを使用する。より短くより可能性のあるデルタはより短いコードを持っている。最大デルタ範囲（±２）は典型的なグリフエッジのためのデルタの分布と適合するように選ばれる。この分布はポイントサイズとはほとんど無関係である。典型例を表３に示す。
【表３】
2005500191.tif 000005
【００７８】
エッジはまた同じラインの前のエッジからのランの長さを用いて符号化可能である。これは短いランレングス（７−ビット）と長いランレングス（１３ビット）のためのエッジ作成コードの一つを使用する。簡単にするために、そしてグループ４とは異なり、ランレングスはエントロピー符号化されない。エッジデルタを前のラインのエッジと暗黙的に同期させるために、前のラインの各未使用エッジは現在のライン内を通過したときに「削除」される。これはエッジ削除コードを使用する。ページ終了コードはデコーダにページの終了を知らせる。
【００７９】
なお、７ビットランレングスと１３ビットランレングスが、８００ｄｐｉのＡ４／レターページをサポートするために特に選択される。圧縮特性に著しい影響を与えなければもっと長いランレングスをサポートすることができる。例えば、１６００ｄｐｉの圧縮をサポートする場合、ランレングスはそれぞれ少なくとも８ビットと１４ビットでなければならない。多目的選択は８ビットと１６ビットであるので、最大４０インチ幅の１６００ｄｐｉページをサポートできる。
【００８０】
コード一式を表４に定義する。なお、ライン終了コードはない。デコーダはページ幅を使ってラインの終わりを検出する。コードの長さはコードの発生の相対確率によって決められる。
【表４】
2005500191.tif 000006
【００８１】
図９は簡単な白黒画像９０の符号化の一例を示す。この画像はピクセル９２のライン９１として配列されている。最初のラインは白と仮定されており、そのため△０と符号化されている。なお、全白ラインに続く全白ラインは一般に単一ビット（△０）を用いて符号化され、全黒ラインに続く全黒ラインは一般に二つのビット（△０、  △０）を用いて符号化される。エッジがライン、例えば第４ライン９３、の中に発生すると、作成コードを用いてエッジを規定する。次のライン９４では、△−１コードと△＋１コードを用いてエッジを動かす。その次のライン９５では、それを動かすよりも新しいエッジを作成し古いエッジを削除する方が好ましい。
【００８２】
ＥＤＲＬ符号化例
前記は圧縮形式を説明したものであって、それ自体圧縮アルゴリズムではないことに注意すべきである。他のものよりもいくぶんコンパクトな種々の同等のエンコーディングを同じ画像に対して生成可能である。例えば、純粋ランレングスエンコーディングは前記圧縮形式と適合する。圧縮アルゴリズムの目的は任意の画像に対して最善でなければ良好なエンコーディングを発見することにある。
【００８３】
以下は、ラインのＥＤＲＬエンコーディングをその前のラインを基準にして生成するための簡単なアルゴリズムである。
【００８４】
2005500191.tif 000007
2005500191.tif 000008
2005500191.tif 000009
【００８５】
なお、このアルゴリズムはライン間の現実のエッジ連続性は見えず、実際に二つのライン間の「誤った」エッジを一致させるかも知れない。幸い、前記圧縮形式はこれについて云うべきことはなにもない。というのも、それは正しくデコードし、「誤った」一致が圧縮比について損失上の影響を与えがたいからである。
【００８６】
完全を期すために、対応する伸長アルゴリズムを以下に示す。それはプリンタコントローラチップ（第７節）内のＥＤＲＬ伸長器ユニットの要部を形成する。
【００８７】
2005500191.tif 000010
2005500191.tif 000011
【００８８】
５．２．３．３  ＥＤＲＬ圧縮性能
表５は、グループ４アルゴリズムを選択するために使用されるＣＣＩＴＴテスト文書についてのグループ４とＥＤＲＬの圧縮性能を示す。各文書は４００ｄｐｉで走査された単一ページを表す。グループ４の優れた特性は、４００ｄｐｉ機能に調整されたそのエントロピー符号化されたランレングスによっている。
【表５】
2005500191.tif 000012
【００８９】
雑誌テキストは一般に１０ポイントサイズのセリフ書体（Ｔｉｍｅｓなど）で活字が組まれている。このサイズでは、Ａ４／レターページは最大１４，０００文字を収容するが、一般的な雑誌ページは約７，０００文字しか収容できない。テキストはめったに５より小さいポイントサイズで活字が組まれない。８００ｄｐｉでは、テキストを、標準書体を用いて２より小さいポイントサイズで有意義にレンダリングすることができない。表６は種々のポイントサイズの可読性を示す。
【表６】
2005500191.tif 000013
【００９０】
表７は、８００ｄｐｉでレンダリングされた、種々のポイントサイズでのテキストのページについてのグループ４とＥＤＲＬの圧縮性能を示す。なお、ＥＤＲＬは、ポイントサイズ３で活字組みされたテキストのページ全体に対して、必要な圧縮比２．５を実現している。テストページ上での文字の配分は英語統計［１２］に基づいている。
【表７】
2005500191.tif 000014
【００９１】
９以上のポイントサイズに対しては、ＥＤＲＬはグループ４より若干性能がよい。というのは、単に、グループ４のランレングスコードが４００ｄｐｉに調整されているからである。
【００９２】
これらの圧縮結果は、もしデータが、非常に小さい文字の場合におけるように、縦に不十分に相関づけられていないならば、エントロピー符号化されたランレングスは２Ｄエンコーディングに劣らないぐらい圧縮に貢献するという観察を裏付けている。
【００９３】
５．２．４  連続階調層圧縮
５．２．４．１  ＪＰＥＧ圧縮
ＪＰＥＧ圧縮アルゴリズム［６］は指定された品質レベルで連続階調画像を不可逆的に圧縮する。それは、５：１より小さい圧縮比においてはごくわずかな画像劣化を生じ、１０：１より小さい圧縮比においては無視できるほどの画像劣化を生じる［１６］。
【００９４】
ＪＰＥＧは一般的には最初に、画像を、輝度とクロミナンスを別々の色チャンネルに分離する色空間に変換する。これにより、クロミナンスチャンネルを、容易に検出できるほどの損失なしに、サブサンプリングできる。なぜなら、人間の視覚系はクロミナンスよりも輝度に対して感度が大きいからである。この最初のステップの後、各色チャンネルを別々に圧縮する。
【００９５】
画像を８ｘ８ピクセルブロックに分割する。それから各ブロックを離散的コサイン変換（ＤＣＴ）により周波数ドメインに変換する。この変換は画像エネルギーを比較的低い周波数係数に集中させる効果があり、このことはより高い周波数係数をより粗く量子化することができる。この量子化はＪＰＥＧにおける圧縮の主要なソースである。周波数毎に係数を決めることによって更に圧縮を行って、ゼロ係数が隣り合う可能性を最大にしたのち、ゼロのランレングスエンコディングランを最大にする。最後に、ランレングスと非ゼロ周波数係数をエントロピー符号化する。伸長は圧縮の逆プロセスである。
【００９６】
５．２．４．２  ＣＭＹＫ  連続階調ＪＰＥＧ圧縮形式
ＣＭＹＫ  連続階調層をインターリーブされた色ＪＰＥＧバイトストリームに圧縮する。インターリービングはプリンタ内でのスペース効率的な伸長もしくは圧縮解除のために必要であるが、デコーダを４セット（すなわち色チャンネル毎に１セット）よりもむしろ２セットのハフマンテーブルに制限することができる［１６］。輝度とクロミナンスが分離されているならば、輝度チャンネルが一方の組のテーブルを共用し、クロミナンスチャンネルが他方の組のテーブルを共用できる。
【００９７】
テーブル共用のためか又はクロミナンスサブサンプリングのため、輝度／クロミナンス分離が必要と考える場合は、ＣＭＹをＹＣｒＣｂに変換し、ＣｒとＣｂをしかるべくサブサンプリングする。Ｋは輝度チャンネルとして扱われ、サブサンプルされない。
【００９８】
ＪＰＥＧバイトストリームは、完備性を有しており、独立的である。それは、量子化テーブルとハフマンテーブルを含む、伸長もしくは圧縮解除のために必要なすべてのデータを備えている。
【００９９】
６  Ｍｅｍｊｅｔプリントヘッド
８インチＭｅｍｊｅｔプリントヘッドは横に並んで互いに結合された２個の標準的な４インチＭｅｍｊｅｔプリントヘッドで構成される。
【０１００】
この２個の４インチプリントヘッドはｉＰｒｉｎｔ内での使用のために特定の方法で互いに配線されている。配線は４インチプリントヘッドの知識を必要とするので、４インチプリントヘッドの概要をここに示す。
【０１０１】
６．１  ４インチプリントヘッドの構成
各４インチプリントヘッドは、長さがそれぞれ半インチの８個のセグメントで構成される。各セグメントは、ページの異なる部分の上に２階調のシアン、マゼンタ、黄、黒のドットを印刷して、最終画像を生成する。
【０１０２】
プリントヘッドは１６００ｄｐｉでドットを印刷するので、各ドットは直径が約２２．５ミクロンで、互いの間隔は１５．８７５ミクロンである。従って、各半インチセグメントは８００ドットを印刷し、８個のセグメントは表８に示す位置に対応している。
【表８】
2005500191.tif 000015
【０１０３】
各セグメントは最終画像の８００ドットを生成するけれども、各ドットは２階調のシアン、マゼンタ、黄、および黒のインクの組み合わせによって表される。印刷は２階調であるので、最善の結果を得るために入力画像をディザリングするか誤り拡散しなければならない。
【０１０４】
従って各セグメントは３，２００個−シアン、マゼンタ、黄、黒についてそれぞれ８００個−のノズルを備えている。４インチプリントヘッドは合計２５，６００個のノズルのために８個のそのようなセグメントを備えている。
【０１０５】
６．１．１  セグメント内のノズルのグループ分け
一つのセグメント内のノズルは、物理的な安定性のみならず印刷中における電力消費の最小化のためにグループ分けされる。物理的な安定性については、合計１０個のノズルが同じインクリザーバを共用する。電力消費については、グループ分けは低速印刷モードと高速印刷モードを可能にするように行われる。
【０１０６】
プリントヘッドは種々の製品構成において速度と電力消費の兼ね合いがつくようにする、二通りの印刷速度をサポートする。
【０１０７】
低速印刷モードにおいては、１２８個のノズルを各４インチプリントヘッドから同時に噴射させる。噴射させるノズルは最大限離れているべきであるので、１６個のノズルを各セグメントから噴射させる。２５，６００個のノズル全てを噴射させるために、１２８個のノズルセットを２００セット噴射させる必要がある。
【０１０８】
高速印刷モードにおいては、２５６個のノズルを各４インチプリントヘッドから同時に噴射させる。噴射させるノズルは最大限離れているべきであるので、３２個のノズルを各セグメントから噴射させる。２５，６００個のノズル全てを噴射させるために、２５６個のノズルセットを１００セット噴射させる必要がある。
【０１０９】
低速モードにおける電力消費は高速モードにおける電力消費の半分である。しかしながら、ページを印刷するのに消費するエネルギーは両方共同じである。
【０１１０】
６．１．１．１  １０個のノズルがポッドを構成
一つのポッド１００は、共通の一つのインクリザーバを共用する１０個のノズル１０１で構成される。４５個のノズルが一つの列にあり、５個のノズルがもう一つの列にある。各ノズルは、１５．８７５ミクロンのグリッド上に間隔を空けて配置された、直径２２．５ミクロンのドットを生成する。図１０は、ノズル１０１が噴射順に番号付けされている一つのポッドの配置を示す。
【０１１１】
ノズルをこの順で噴射させるけれども、印刷されるページ上のノズルとドットの物理的配置との関係は別である。一つの列のノズルはページ上の一つのラインの偶数ドットを表し、他の列のノズルはページ上のその隣のラインの奇数ドットを表す。図１１は、ロード順に番号付けされたノズルを有する同じポッド１００を示す。
【０１１２】
ポッド内のノズルは従って１ドットの幅で論理的に分離されている。ノズル間の正確な距離はＭｅｍｊｅｔ噴射機構の特性に基づく。プリントヘッドは、用紙の流れと一致するように設計されたジグザグに配置されたノズルと共に設計される。
【０１１３】
６．１．１．２  各色当たり一つのポッドがクロマポッドを構成
各色当たり一つのポッド、すなわち、シアンポッド１２１とマゼンタポッド１２２と黄ポッド１２３と黒ポッド１２４をまとめて一つのクロマポッド１２５とする。クロマポッドは異なるラインの上の１０ドットの同じ水平セットの異なる色成分を表す。異なる色ポッド間の正確な距離は、Ｍｅｍｊｅｔ動作パラメータに基づいており、Ｍｅｍｊｅｔ設計間で変化する。その距離は一定のドット幅数であるとみなされるので、印刷時に考慮しなければならない。シアンノズルによって印刷されるドットは、マゼンタノズル、黄ノズル、または黒ノズルによって印刷されるドットと異なるラインとなる。印刷アルゴリズムは色間の最大約８ドット幅の可変距離を考慮に入れなければならない。図１２は一つのクロマポッドを示す。
【０１１４】
６．１．１．３  ５個のクロマポッドがポッドグループを構成
５個のクロマポッド１２５で一つのポッドグループを構成する。各クロマポッドは４０個のノズルを備えているので、各ポッドグループは２００個のノズル、すなわち、５０個のシアンノズルと５０個のマゼンタノズルと５０個の黄ノズルと５０個の黒ノズルを備えている。その配置を図１３に示す。クロマポッドは０から４まで番号付けされている。隣接するクロマポッド間の距離はわかり易くするために誇張されている。
【０１１５】
６．１．１．４  ２個のポッドグループが位相グループを構成
２個のポッドグループ１２６で一つの位相グループ１２７を構成する。位相グループは、位相グループ内のノズルの集まりが任意の噴射位相の間、同時に噴射する（このことは以下に詳細に説明する）ため、そのように名づけられている。２個のポッドグループから位位相グループを形成するのは、もっぱら２個のＰｏｄｇｒｏｕｐＥｎａｂｌｅラインを介して低速印刷と高速印刷を行うためである。
【０１１６】
低速印刷の間は、２個のＰｏｄｇｒｏｕｐＥｎａｂｌｅラインの１個だけを任意の噴射パルスに設定するので、２個のうち１個のポッドグループだけがノズルを噴射させる。高速印刷の間は、両方のＰｏｄｇｒｏｕｐＥｎａｂｌｅラインを設定するので、両方のポッドグループがノズルを噴射させる。その結果、高速印刷は低速印刷の２倍のノズルを一度に噴射させるので、低速印刷は高速印刷の２倍時間がかかる。
【０１１７】
図１４は位相グループの構成を示す。隣接するポッドグループ間の距離はわかり易くするために誇張されている。
【０１１８】
６．１．１．５  ２個の位相グループが噴射グループを構成
２個の位相グループ１２７（位相グループＡと位相グループＢ）で一つの噴射グループ１２８を構成する。各セグメント１２９には４個の噴射グループがある。噴射グループは、それらがすべて同じノズルを同時に噴射させるので、そのように名づけられている。ＡＥｎａｂｌｅとＢＥｎａｂｌｅの２個のイネーブルラインが位相グループＡのノズルと位相グループＢのノズルを、別々の噴射位相として、独立して噴射させる。その配置を図１５に示す。隣接するグループ間の距離はわかり易くするために誇張されている。
【０１１９】
６．１．１．６  ノズルグループ分けのまとめ
表９はプリントヘッド内のノズルグループ分けをまとめたものである。
【表９】
2005500191.tif 000016
【０１２０】
８インチプリントヘッドは２個の４インチプリントヘッドで構成され、合計５１，２００ノズルとなる。
【０１２１】
６．１．２  ロードサイクルと印刷サイクル
一つの４インチプリントヘッドは計２５，６００個のノズルを備えている。印刷サイクルは、印刷する情報に応じて、これらのノズルのすべてまでの噴射を含んでいる。ロードサイクルは、それに続く印刷サイクルの間に印刷される情報でのプリントヘッドのローディングを含んでいる。
【０１２２】
各ノズルは、印刷サイクルの間にそのノズルを噴射するか否かを決定する関連ＮｏｚｚｌｅＥｎａｂｌｅビットを有している。ＮｏｚｚｌｅＥｎａｂｌｅビット（ノズル当たり１ビット）は一組のシフトレジスタを介してロードされる。
【０１２３】
論理的には、セグメント当たり（色当たり）４個のシフトレジスタがあり、それぞれ８００深さである。ビットは、任意の色に対してシフトレジスタにシフトされるとき、交互パルス上で下部ノズルと上部ノズルに向けられる。内部では、各８００深さシフトレジスタは、上部ノズル用と下部ノズル用の２個の４００深さシフトレジスタで構成される。交互ビットは交互内部レジスタにシフトされる。しかしながら、外部インタフェースに関する限り、１個の８００深さシフトレジスタがあるだけである。
【０１２４】
すべてのシフトレジスタが完全にロード（８００ロードパルス）されると、このすべてのビットが適当なＮｏｚｚｌｅＥｎａｂｌｅビットに並列に転送される。これは１回の２５，６００ビットの並列転送に相当する。転送が行われると、印刷サイクルが始まる。印刷サイクルとロードサイクルは、すべてのＮｏｚｚｌｅＥｎａｂｌｅビットの並列ロードが印刷サイクルの最後に生じる限り、同時に生じることができる。
【０１２５】
６．１．２．１  ロードサイクル
ロードサイクルとは、プリントヘッドのシフトレジスタを次のプリントサイクルのＮｏｚｚｌｅＥｎａｂｌｅビットでロードすることである。
【０１２６】
各セグメントは、シアン、マゼンタ、黄、黒の各シフトレジスタに直接関連した４つの入力を持っている。これの入力をＣｄａｔａＩｎ、ＭｄａｔａＩｎ、ＹＤａｔａＩｎ、ＫｄａｔａＩｎと呼ぶ。８個のセグメントがあるので、４インチプリントヘッド当たり計３２本の色入力ラインがある。ＳＲＣｌｏｃｋライン（８セグメントすべての間で共用される）上の一つのパルスは適当なシフトレジスタに３２ビットを転送する。交互パルスは、下部ノズルと上部ノズルにそれぞれビットを転送する。２５，６００ノズルあるので、計８００パルスが転送のために必要である。２５，６００ビットすべてが転送されると、共用ＰＴｒａｎｓｆｅｒライン上の一つのパルスが、シフトレジスタから適当なＮｏｚｚｌｅＥｎａｂｌｅビットへのデータの並列転送を生じる。
【０１２７】
Ｐｔｒａｎｓｆｅｒ上のパルスを介しての並列転送は、印刷サイクルが終了した後に行われなければならない。さもなければ、印刷されるラインのためのＮｏｚｚｌｅ  Ｅｎａｂｌｅビットが誤ったものになる。
【０１２８】
８個のセグメントすべてが一つのＳＲＣｌｏｃｋパルスでロードされるので、どの印刷プロセスも、プリントヘッドのための正しい順序でデータを生成しなければならない。例えば、最初のＳＲＣｌｏｃｋパルスは、次の印刷サイクルのドット、０、  ８００、  １６００、  ２４００、  ３２００、  ４０００、  ４８００、  ５６００のためにＣＭＹＫビットを転送する。２番目のＳＲＣｌｏｃｋパルスは次の印刷サイクルのドット、１、  ８０１、  １６０１、  ２４０１、  ３２０１、  ４００１、  ４８０１、  ５６０１のためにＣＭＹＫビットを転送する。８００個のＳＲＣｌｏｃｋパルスの後に、ｔｒａｎｓｆｅｒパルスが与えられる。
【０１２９】
奇数と偶数のＣＭＹＫ出力が、同じ印刷サイクルの間に印刷されるにもかかわらず、同じ物理的出力ライン上に現れないということに注目することは重要である。プリントヘッド内の奇数ノズルと偶数ノズルの物理的な分離は、別々の色のノズル間の分離と同様に、確実にそれらのノズルがページの別々のラインの上にドットを生成するようにする。この相対的な差はプリントヘッドにデータをロードするときに考慮しなければならない。ラインにおける実際の差はプリントヘッドの中で使用されるインクジェット機構の特性に依存している。この差は変数Ｄ１とＤ２によって定義することができる。ここで、Ｄ１は異なる色のノズル間の距離であり、Ｄ２は同じ色のノズル間の距離である。表１０は、最初の４パルス上で、プリントヘッドのセグメントｎに転送されるドットを示す。
【表１０】
2005500191.tif 000017
【０１３０】
８００パルスすべてに対して同様である。
【０１３１】
データは、最大２０ＭＨｚの速度でプリントヘッド内に読み込むことができ、これにより次のラインのためのデータすべてを４０Ｔｓでロードする。
【０１３２】
６．１．２．２  印刷サイクル
４インチプリントヘッドは２５，６００個のノズルを備えている。それらすべてを一度に噴射させると、非常に多くの電力を消費し、インクの補充とノズルの干渉について問題がある。従って、低速印刷モードと高速印刷モードの二つの噴射モードを定める。
【０１３３】
・  低速印刷モードにおいては、２００個の位相があり、各位相は１２８個のノズルを噴射させる。これはセグメント当たり１６個か噴射グループ当たり４個のノズルに相当する。
・  高速印刷モードにおいては、１００個の位相があり、各位相は２５６個のノズルを噴射させる。これはセグメント当たり３２個か噴射グループ当たり８個のノズルに相当する。
【０１３４】
任意の噴射パルスの中で噴射されるノズルは以下によって決定される。
【０１３５】
・  ３ビットＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  （噴射グループから５個のクロマポッドの内１個を選択）
・  ４ビットＮｏｚｚｌｅＳｅｌｅｃｔ  （ポッドから１０個のノズルの内の１個を選択）
・  ＰｏｄｇｒｏｕｐＥｎａｂｌｅラインの２ビット（噴射すべき０、１、または２個のポッドグループを選択）
【０１３６】
ＰｏｄｇｒｏｕｐＥｎａｂｌｅラインの一つが選択されると、特定のポッドグループの４個のノズルだけがＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  と  ＮｏｚｚｌｅＳｅｌｅｃｔによって決定されるように噴射される。両方のＰｏｄｇｒｏｕｐＥｎａｂｌｅラインが設定されると、両方のポッドグループがそのノズルを噴射する。低速モードに対しては、２個の噴射パルスが必要であり、ＰｏｄｇｒｏｕｐＥｎａｂｌｅはそれぞれ１０と０１である。高速モードにおいては、１個の噴射パルスだけが必要であり、ＰｏｄｇｒｏｕｐＥｎａｂｌｅは１１である。
【０１３７】
噴射パルスの持続期間はＡＥｎａｂｌｅラインとＢＥｎａｂｌｅ  ラインによって与えられ、それらはすべての噴射グループからそれぞれＰｈａｓｅｇｒｏｕｐＡノズルとＰｈａｓｅｇｒｏｕｐＢノズルを噴射させる。噴射パルスの一般的な持続期間は１．３〜１．８Ｔｓである。パルスの持続期間はインクの粘度（温度とインク特性に依存）とプリントヘッドに供給可能な電力量とに依存している。温度変化を補償するためのプリントヘッドからのフィードバックの詳細については６．１．３節を参照のこと。
【０１３８】
ＡＥｎａｂｌｅとＢＥｎａｂｌｅは、噴射パルスが互いに重なることができるように、別々のラインとなっている。従って、低速印刷サイクルの２００個の位相は、それぞれ１００組の  Ｐｈａｓｅ  Ａと  Ｐｈａｓｅ  Ｂとを与える１００個のＡ位相とＢ位相とで構成される。同様に、高速印刷サイクルの１００個の位相は、それぞれ５０個のＰｈａｓｅ  ＡとＰｈａｓｅ  Ｂとを有効に与える５０個のＡ位相とＢ位相とで構成される。
【０１３９】
図１６は一般的な印刷サイクルの間のＡＥｎａｂｌｅライン１３０とＢＥｎａｂｌｅライン１３１を示す。高速印刷においてはそれぞれ２Ｔｓが５０サイクルあり、低速印刷においてはそれぞれ２Ｔｓが１００サイクルある。図に示すように、最小半サイクル時間と最大半サイクル時間の基準からのわずかな変動は許容可能である。
【０１４０】
高速印刷モードに対して、噴射順は以下の通りである。
【０１４１】
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ２、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、  ＮｏｚｚｌｅＳｅｌｅｃｔ  １、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  …
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
【０１４２】
低速印刷モードに対して、噴射順は同様である。ＰｏｄｇｒｏｕｐＥｎａｂｌｅが１１であった高速モードの各位相に対して、ＰｏｄｇｒｏｕｐＥｎａｂｌｅが  ０１と１０の二つの位相が以下のように取って代わる。
【０１４３】
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ０、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  １、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ０、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  …
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ３、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９，  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  ０１  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
・  ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔ  ４、  ＮｏｚｚｌｅＳｅｌｅｃｔ  ９、  ＰｏｄｇｒｏｕｐＥｎａｂｌｅ  １０  （Ｐｈａｓｅｓ  Ａ  ａｎｄ  Ｂ）
【０１４４】
ノズルが噴射すると、補充するのに約１００Ｔｓかかる。この補充期間が経過する前にノズルを噴射させることはできない。このことは最速印刷速度をライン当たり１００Ｔｓに制限する。高速印刷モードにおいては、１ライン印刷する時間は１００Ｔｓであるので、一つのラインからその次のラインまでノズルを噴射させる間の時間は補充時間と一致する。低速印刷モードはこれより遅いので、それもまた受け入れられる。
【０１４５】
ノズルの噴射はまた、そのノズルのポッドの共通インクリザーバ内で一定時間、音の乱れを生じる。その乱れは同じポッド内のもう一つのノズルの噴射を妨げることが有り得る。従って、ポッド内のノズルの噴射はできるだけ互いと相殺されるべきである。従って、１個のクロマポッドの４個のノズル（色当たり１個のノズル）を噴射させたのち、そのポッドグループ内の次のクロマポッドに移る。
【０１４６】
低速印刷モードにおいては、ポッドグループを別々に噴射させる。従って、両方のポッドグループ内５個のクロマポッドをすべて、最初のクロマポッドが再び噴射する前に、合計１０ｘ２Ｔサイクル、噴射させなければならない。その結果、各ポッドは２０Ｔｓに１回噴射する。
【０１４７】
高速印刷モードにおいては、ポンドグループを一緒に噴射させる。従って、一つのポッドグループ内の５個のクロマポッドをすべて、最初のクロマポッドが再び噴射する前に、合計１０ｘ２Ｔサイクル、噴射させなければならない。その結果、各ポッドは１０Ｔｓに１回噴射する。
【０１４８】
インク路は長さ３００ミクロンであり、インク内の音速は約１５００ｍ／ｓであるので、インク路の共振周波数は２．５ＭＨｚである。従って、低速モードは音響パルスに対する５０共振サイクルを抑制し、高速モードは２５共振サイクルを可能にする。結果として、いかなる音響干渉も両者の場合共最小である。
【０１４９】
６．１．３  プリントヘッドからのフィードバック
プリントヘッドは、（８個のセグメントから集められた）いくつかのフィードバックラインを生成する。フィードバックラインは噴射パルスのタイミングを調整するために用いられる。各セグメントは同じフィードバックを生成するが、すべてのセグメントからのフィードバックは同じ３状態バスラインを共用する。従って同時に１個のセグメントだけがフィードバックを行うことができる。
【０１５０】
シアンについてのデータを持ったＳｅｎｓｅＳｅｇＳｅｌｅｃｔラインＡＮＤｅｄ上のパルスはどのセグメントがフィードバックするかを選択する。フィードバックセンスラインは、次のＳｅｎｓｅＳｅｇＳｅｌｅｃｔパルスまで、選択されたセグメントからやってくる。フィードバックセンスラインは以下の通りである。
【０１５１】
・  Ｔｓｅｎｓｅ：プリントヘッドがどれほど熱いかをコントローラに知らせる。これにより、コントローラが噴射パルスのタイミングを調整する。温度がインクの粘度に影響を与えるためである。
【０１５２】
・  Ｖｓｅｎｓｅ：アクチュエータにどれだけ電圧をかけてよいかをコントローラに知らせる。これにより、コントローラがパルス幅を調整することによって平型バッテリまたは高電圧源を補償する。
【０１５３】
・  Ｒｓｅｎｓｅ：アクチュエータヒータの抵抗率（単位面積当たりのオーム）をコントローラに知らせる。これにより、コントローラがパルス幅を調整してヒータの抵抗率に関係なくエネルギーを一定に保つ。
【０１５４】
・  Ｗｓｅｎｓｅ：リソグラフの違いとエッチングの違いによって最大５％まで変化するヒータの重要部分の幅をコントローラに知らせる。これにより、コントローラはパルス幅を適切に調整する。
【０１５５】
６．１．４  予熱サイクル
印刷プロセスは平衡温度に留まろうとする強い傾向がある。印刷される写真の最初の部分が確実にむらのないドットサイズを有するようにするために、どのドットを印刷するまえでも平衡温度を満たす必要がある。このことは予熱サイクルを介して達成される。
【０１５６】
予熱サイクルは、１ｓ（単一負荷サイクル）のすべてのノズル（すなわち、すべてのノズルを噴射させること）に対する一つのロードサイクルと、各ノズルに対する数多くの短い噴射パルスとを含んでいる。このパルスの持続期間は、インク滴を噴射するのに不十分であって、インクを加熱するには十分でなければなければならない。各ノズルに対して合計約２００パルス必要であり、これらは標準的な印刷サイクルと同じシーケンスを通じて繰り返される。
【０１５７】
予熱モードの間のフィードバックはＴｓｅｎｓｅによって与えられ、平衡温度（周囲温度より約３０°Ｃ高い温度）に達するまで続く。予熱モードの持続期間は約５０ミリ秒であり、インク組成による。
【０１５８】
予熱は各印刷ジョブの前に行われる。このことは、プリンタデータがプリンタに転送される間に予熱が行われるので性能に影響を与えることはない。
【０１５９】
６．１．５  クリーニングサイクル
ノズルが詰まる機会を減らすために、各印刷ジョブの前にクリーニングサイクルを行うことができる。各ノズルを吸収スポンジの中へ何回も噴射させる。
【０１６０】
クリーニングサイクルは、１ｓ（単一負荷サイクル）のすべてのノズル（すなわち、すべてのノズルを噴射させること）に対する一つのロードサイクルと、各ノズルに対する数多くの噴射パルスとを含んでいる。ノズルは標準的な印刷サイクルと同じノズル噴射シーケンスを介してクリーニングされる。各ノズルを噴射させる回数は、インク組成とプリンタが休止していた時間とによる。予熱と同様、クリーニングサイクルはプリンタの性能に影響はない。
【０１６１】
６．１．６  プリントヘッド  インタフェースのまとめ
単一の４インチプリントヘッドは表１１に示すコネクションを有している。
【表１１】
2005500191.tif 000018
【０１６２】
４インチプリントヘッドの内部に、各セグメントは表１２に示すボンディングパッドへのコネクションを有している。
【表１２】
2005500191.tif 000019
【０１６３】
６．２  ８インチプリントヘッドの考察
８インチＭｅｍｊｅｔプリントヘッドは単に、物理的に一緒に置かれた２個の４インチプリントヘッドである。このプリントヘッドは互いに配線され、制御チップのピン数を減らすためと、２個のプリントヘッドが同時に印刷できるようにするために、多くの共通のコネクションを共用している。数多くの詳細な点がこのために考慮されている。
【０１６４】
６．２．１  コネクション
２個のプリントヘッドのノズルの噴射は同時に起こるので、ＣｈｒｏｍａｐｏｄＳｅｌｅｃｔラインと  ＮｏｚｚｌｅＳｅｌｅｃｔラインと  ＡＥｎａｂｌｅラインと  ＢＥｎａｂｌｅラインは共用される。プリントヘッドをデータでロードするために、ＣｄａｔａＩｎとＭｄａｔａＩｎとＹｄａｔａＩｎとＫｄａｔａＩｎの３２本のラインを共用し、２本の異なるＳＲＣｌｏｃｋラインを使用して２個のプリントヘッドのどちらをロードするかを決定する。一つのＰｔｒａｎｓｆｅｒパルスを使って、ロードされたデータを両者のためのＮｏｚｚｌｅＥｎａｂｌｅビットへ転送する。同様に、ＴｓｅｎｓｅラインとＶｓｅｎｓｅラインと  ＲｓｅｎｓｅラインとＷｓｅｎｓｅラインを共用し、２本のＳｅｎｓｅＥｎａｂｌｅラインを使って２個のプリントヘッドを区別する。
【０１６５】
従って、２個の４インチプリントヘッドはＳＲＣｌｏｃｋとＳｅｎｓｅＥｎａｂｌｅを除くすべてのコネクションを共用する。これらの２個のコネクションは各プリントヘッドに対して１回だけ繰り返される。実際のコネクションを表１３に示す。
【表１３】
2005500191.tif 000020
【０１６６】
６．２．２  タイミング
２個の４インチプリントヘッドの結合と適当なコネクションの配線により、８インチ幅の画像を４インチ幅の画像と同様な速さで印刷することができる。しかしながら、次のラインを印刷できる前に２個のプリントヘッドへ転送するデータは２倍である。印刷される出力画像に対する望ましい速度に応じて、その速度を維持するためにデータを適当な速度で生成、転送しなければならない。
【０１６７】
６．２．２．１  実例
一例として、８インチｘ１２インチのページを２秒で印刷するタイミングを考える。このページを２秒で印刷するためには、８インチプリントヘッドは１９，２００ライン（１２  ｘ  １６００）を印刷しなければならない。端数を切り上げて２秒で最大２０，０００ラインとすると、１ライン当たりの時間は１００Ｔｓとなる。１回の印刷サイクルと１回のロードサイクルを両方ともこの時間内に終了しなければならない。また、プリントヘッドの外の物理的なプロセスが用紙を適当量動かさなければならない。
【０１６８】
印刷の観点から見ると、高速印刷モードでは、４インチプリントヘッドは１ライン全部を１００Ｔｓで印刷することができる。両方の４インチプリントヘッドは従って、同時に印刷するために高速印刷モードで動作しなければならない。従って、噴射パルスあたり５１２ノズルが噴射するので、８インチラインの印刷を規定時間内に行うことができる。
【０１６９】
両方の４インチプリントヘッドへの８００個のＳＲＣｌｏｃｋパルスもまた１００Ｔライン時間内に生じなければならない。両方のプリントヘッドを同時にロードする場合は、ＳＲＣｌｏｃｋパルスの長さは１００Ｔｓ  ／  ８００  ＝  １２５ナノ秒を超えることができず、プリントヘッドを８ＭＨｚでクロック制御しなければならない。２個のプリントヘッドを一つずつロードする場合は、ＳＲＣｌｏｃｋパルスの長さは１００Ｔｓ  ／  １６００  ＝  ６２．５ナノ秒を超えることができない。従ってプリントヘッドを１６ＭＨｚでクロック制御しなければならない。両方の場合共、（５１，２００ノズルのそれぞれに対する）各ビット値を計算するための時間は１００Ｔｓ  ／  ５１，２００  ＝  ２ナノ秒を超えてはならない。このことは以下の速度のいずれかで動作するドットジェネレータを必要とする。
【０１７０】
・  サイクル当たり１ビット（ドット）を生成する５００ＭＨｚ
・  サイクル当たり２ビット（ドット）を生成する２５０ＭＨｚ
・  サイクル当たり４ビット（ドット）を生成する１２５ＭＨｚ
【０１７１】
７  プリンタコントローラ
７．１  プリンタコントローラのアーキテクチャ
図８に示したように、プリンタコントローラはｉＰｒｉｎｔ中央プロセッサ（ＩＣＰ）チップ（８３）、６４メガビットＲＤＲＡＭ（８２）、およびマスターＱＡチップ（８５）から構成される。
【０１７２】
図１７に示したように、ＩＣＰ（８３）には汎用プロセッサ（１３９）と、プロセッサバスを介して汎用プロセッサが制御する一連の特定目的機能ユニットが搭載されている。特定目的機能ユニットの中でＥＤＲＬ伸長器（１４０）、ハーフトーン化装置／合成器（１４１）、およびＭｅｍｊｅｔプリントヘッドを制御するプリントヘッドインタフェース（１４２）の３つのユニットだけが非標準である。
【０１７３】
プロセッサ上で実行されるソフトウェアが、ページの受信、伸長、および印刷のために各種機能ユニットを調整する。これについては、次の項で説明する。
【０１７４】
ＩＣＰの各種機能ユニットについては、以降の項で説明する。
【０１７５】
７．２  ページの伸長と印刷
ページの伸長と印刷は、次のように行われる。ページ記述がホストからＵＳＢインタフェース（１４６）を介して受信され、メインメモリに格納される。６ＭＢのメインメモリはページの格納専用である。メインメモリは３ＭＢ未満のページを２つ、または６ＭＢ未満のページを１つ格納することができる。ホストが３ＭＢ未満のページを生成した場合、プリンタはストリーミングモードで動作する。すなわち、現在のページを印刷しながら次のページを受信する。ホストが３ＭＢ以上のページを生成した場合、プリンタはシングルページモードで動作する。すなわち、各ページを受信し印刷してから次のページを受信する。ホストが６ＭＢ以上のページを生成した場合、プリンタはそれらのページを拒否する。実際には、プリンタドライバがこのようなことを防止する。
【０１７６】
ページは、２階調黒層と連続階調層という２つの部分から構成される。これらの部分は別個の形式で圧縮される。すなわち、２階調黒層はＥＤＲＬ形式で、連続階調層はＪＰＥＧ形式で圧縮される。ページ伸長の第１段階で、２つの層が並行して伸長される。２階調層はＥＤＲＬ伸長器ユニット（１４０）によって、連続階調層（１４）はＪＰＥＧデコーダ（１４３）によってそれぞれ伸長（１６）される。
【０１７７】
ページ伸長の第２段階で、連続階調ＣＭＹＫデータが２階調ＣＭＹＫへハーフトーン化（１５）され、次に２階調黒層が２階調ＣＭＹＫ層の上に合成（１７）される。ハーフトーン化と合成は、ハーフトーン化装置／合成器ユニット（１４１）によって実行される。
【０１７８】
最後に、合成された２階調ＣＭＹＫ画像が、Ｍｅｍｊｅｔプリントヘッドを制御するプリントヘッドインタフェースユニット（１４２）によって印刷（１８）される。
【０１７９】
Ｍｅｍｊｅｔプリントヘッドの印刷速度は高速であるため、用紙は一定の速度でプリントヘッドを通過しなければならない。十分な速度でデータをプリントヘッドに送ることができなくて用紙が止まった場合、正しい印刷結果にならない。このため、求められる速度で２階調ＣＭＹＫデータをプリントヘッドインタフェースに転送することが重要になる。
【０１８０】
完全に伸長された１６００ｄｐｉの２階調ＣＭＹＫページのサイズは１１４．３ＭＢである。伸長されたページをプリンタメモリに格納することは事実上不可能であるため、各ページは印刷中にリアルタイムで伸長される。このため、ページの伸長と印刷の各種段階がパイプライン化されている。ページの伸長と印刷のデータフローについて、表１４で説明する。メインメモリへの／からの集合トラフィックは１７４ＭＢ／秒であり、Ｒａｍｂｕｓなどの現在の技術で十分に対応できる。
【表１４】
2005500191.tif 000021
【０１８１】
ある段階と次の段階のやり取りは、メインメモリにおける共有ＦＩＦＯを介して行われる。各ＦＩＦＯは複数のラインで構成され、各ＦＩＦＯの最小サイズ（ライン数）はプロデューサの出力ウィンドウ（ライン数）とコンシューマの入力ウィンドウ（ライン数）を収容できるように設計されている。各段階間のメインメモリバッファについて、表１５で説明する。使用可能な８ＭＢのうち、バッファ空間として利用できるのは６．３ＭＢであり、残りの１．７ＭＢはプログラムコードとスクラッチメモリ用に空けられている。
【表１５】
2005500191.tif 000022
【０１８２】
ＦＩＦＯを含む全体的なデータフローについては、図１８を参照すること。
【０１８３】
連続階調ページの伸長もしくは拡張は、ＪＰＥＧデコーダ（１４３）によって実行される。２階調ページの伸長は、ＥＤＲＬ伸長器（１４０）によって実行される。ハーフトーン化と合成は、ハーフトーン化装置／合成器ユニット（１４１）によって実行される。これらの機能ユニットについては、以降の項で説明する。
【０１８４】
７．２．１  ＤＭＡアプローチ
各機能ユニットには、１または複数のオンチップ入力ＦＩＦＯおよび／またはオンチップ出力ＦＩＦＯが装備されている。各ＦＩＦＯには、マルチチャネルＤＭＡコントローラ（１４４）の個別チャネルが割り当てられている。ＤＭＡコントローラ（１４４）はダブルアドレス転送ではなくシングルアドレス転送を処理し、各チャネルに個別の要求／肯定応答インタフェースを提供する。
【０１８５】
各機能ユニットは、入力ＦＩＦＯが使い果たされたり、出力ＦＩＦＯが満杯になると正常に停止する。
【０１８６】
プロセッサ（１３９）がそれぞれのＤＭＡ転送をプログラムする。ＤＭＡコントローラ（１４４）が、チャネルに接続された機能ユニットからの要求時に、転送の各ワードのアドレスを生成する。機能ユニットの要求に対してＤＭＡコントローラ（１４４）が肯定応答すると、機能ユニットがそのワードをデータバス（１４５）にラッチまたはラッチ解除する。転送が完了すると、ＤＭＡコントローラ（１４４）がプロセッサ（１３９）を中断する。このため、プロセッサ（１３９）は同一チャネル上の別の転送をタイミング良くプログラムできるようになる。
【０１８７】
一般に、プロセッサ（１３９）は、該当するメインメモリＦＩＦＯが使用可能になる（すなわち、読み取りに対して空でなく、書き込みに対して満杯でない）と同時にチャネル上の別の転送をプログラムする。
【０１８８】
ＤＭＡコントローラ（１４４）に実装されるチャネルサービスの精度は、メインメモリのレイテンシによって多少異なる。
【０１８９】
７．２．２  ＥＤＲＬ伸長器
図１９に示したＥＤＲＬ伸長器ユニット（ＥＥＵ）（１４０）が、ＥＤＲＬ圧縮された２階調画像を伸長する。
【０１９０】
ＥＥＵへの入力は、ＥＤＲＬビットストリーム（１５０）である。ＥＥＵからの出力は、整数スケールファクタによって、伸長された２階調画像の解像度から１６００ｄｐｉに水平方向にスケーリングもしくは拡縮された２階調画像ライン（１５１）の１組である。
【０１９１】
一度起動されたＥＥＵは、ＥＤＲＬビットストリームで「ページ終了」コードを検出するか、あるいは制御レジスタによって明示的に停止されるまで、処理を続行する。
【０１９２】
ＥＥＵは、明示的なページ幅に基づいてビットストリームをデコードする。したがって、ＥＥＵを起動する前に、このページ幅を「ページ幅」レジスタ（１５２）に書き込む必要がある。
【０１９３】
伸長された２階調画像のスケーリングは、明示的なスケールファクタによって決まる。したがって、ＥＥＵを起動する前に、このスケールファクタを「スケールファクタ」レジスタ（１５３）に書き込む必要がある。
【表１６】
2005500191.tif 000023
【０１９４】
ＥＤＲＬ圧縮形式については、項５．２．３で説明する。この圧縮形式では、２階調画像がエッジで表現される。行もしくはラインの各エッジが、事前のラインのエッジまたは同じラインの前のエッジとの関係において符号化される。どのように符号化されたエッジであれ、結局各エッジは同じラインの前のエッジからの距離にデコードされる。次に、この距離（ランレングスと呼ぶ）が、画像の該当部分を表す１または０のビット列にデコードされる。この伸長アルゴリズムは、項５．２．３．２でも定義している。
【０１９５】
ＥＥＵは、ビットストリームデコーダ（１５４）、ステートマシン（１５５）、エッジ計算論理回路（１５６）、２つのランレングスデコーダ（１５７および１５８）、およびランレングスエンコーダ（ランレングスリエンコーダ）（１５９）から構成される。
【０１９６】
ビットストリームデコーダ（１５４）は、ビットストリームからエントロピー符号化されたコードワードをデコードし、ステートマシン（１５５）に渡す。ステートマシン（１５５）は、コードワードのサイズをビットストリームデコーダ（１５４）に返す。これにより、ビットストリームデコーダ（１５４）は次のコードワードに進むことができる。「エッジ作成」コードの場合、ステートマシン（１５５）はビットストリームデコーダを使用してビットストリームから該当するランレングスを抽出する。ステートマシンは、表１８で定義したように、エッジ計算論理回路とランレングスデコード／エンコードを制御する。
【０１９７】
エッジ計算論理回路は非常に単純である。すなわち、事前の（基準）ラインと現在の（符号化中の）ラインの現在のエッジオフセットが、基準エッジレジスタ（１６０）とエッジレジスタ（１６１）にそれぞれ保持される。「エッジ作成」コードに関連付けられたランレングスがランレングスデコーダに直接出力され、現在のエッジに加算される。関連付けられたデルタを基準エッジに加算し、現在のエッジを差し引くことで、「デルタ」コードがランレングスに変換される。生成されたランレングスはランレングスデコーダへの出力であり、現在のエッジに加算される。次のランレングスがランレングスエンコーダ（１５９）から抽出され、基準エッジ（１６０）に加算される。「エッジ削除」コードによって、現在の基準エッジは単に無視される。再び、次のランレングスがランレングスエンコーダから抽出され、基準エッジに加算される。
【０１９８】
エッジを表すランレングスはエッジ計算論理回路（１５６）によって生成されるたびに、ランレングスデコーダに渡される。ランレングスデコーダはランをデコードしながら、ステートマシンに対する停止信号を生成する。ランレングスデコーダ（１５７）はエッジ計算論理回路よりも遅いため、切り離してもほとんど意味がない。伸長されたラインは、８インチ８００ｄｐｉのライン（８００バイト）を保持できる十分なサイズのラインバッファもしくは行バッファ（１６２）に集積される。
【０１９９】
事前に伸長されたラインもしくは行は、バッファリングされる（１６３）。このラインは、現在のラインのデコードにおいて基準となる。事前のラインは、要求時にランレングスとしてリエンコードされる。これは、事前のラインのデコードされたランレングスをバッファリングするよりも安上がりな方法である。デコードされたランレングスをバッファリングする場合、最悪のケースでは、ピクセルごとに１３ビットのランレングスを１つバッファリングしなければならないからである（１６００ｄｐｉで２０ＫＢ）。ランレングスエンコーダ（１５９）はランをエンコードしながら、ステートマシンに対する停止信号を生成する。ランレングスエンコーダは、ページ幅（１５２）に基づいてラインの終了もしくは行の終了を検出する。ランレングスエンコーダ（１５９）を簡素化するために、（現在の）ラインバッファ（１６２）と事前ラインバッファ（１６３）が連結され、単一のＦＩＦＯとして管理される。
【０２００】
ランレングスデコーダ（１５８）は、８インチ１６００ｄｐｉのラインを保持できる十分なサイズ（１６００バイト）に出力ランレングスをデコードする。この出力ランレングスデコーダに渡されたランレングスにスケールファクタ（１５３）を乗算して、このデコーダは１６００ｄｐｉのラインを生成する。ラインは、出力ピクセルＦＩＦＯ（１６５）を介して「スケールファクタ」回出力される。このため、ラインを複製するという単純な手順で、求められる垂直方向のスケーリングを実現することができる。「エッジスムージング」を画像スケーリング機能に組み込んだＥＥＵを設計することも可能であろう。テンプレート照合に基づく単純なスムージング方式が非常に効果的な場合がある［１０］。この方式では、解像度が低いランレングスデコーダとスムーズスケーリングユニットとの間にマルチラインバッファが必要になるが、解像度の高いランレングスデコーダは使用しなくて済むものとなる。
【０２０１】
７．２．２．１  ＥＤＲＬストリームデコーダ
図２０に示したＥＤＲＬストリームデコーダ（１５４）は、入力ビットストリームのエントロピー符号化されたＥＤＲＬコードワードをデコードする。このデコーダは、１６ビットバレルシフタ（１６８）の視点から２バイト入力バッファ（１６７）を使用する。バレルシフタの左（最上位）端は常に、ビットストリーム内のコードワード境界に合わされている。バレルシフタ（１６８）に接続されたデコーダ（１６９）が表１７に従ってコードワードをデコードし、対応するコードをステートマシン（１５５）に提供する。
【表１７】
2005500191.tif 000024
【０２０２】
次に、ステートマシン（１５５）がコードの長さを出力する。この長さが、モジュロ８のコードワードビットオフセットに加算されて（１７０）、次のコードワードビットオフセットが得られる。このビットオフセットによって、バレルシフタ（１６８）が制御される。コードワードビットオフセットが重なる場合、キャリービットによって、入力ＦＩＦＯ（１６６）からの次のバイトのラッチが制御される。この時点でバイト２がバイト１にラッチされ、ＦＩＦＯ出力がバイト２にラッチされる。入力バッファを充てんするまで、長さ８のサイクルが２サイクル分離する。このことは、ステートマシン（１５５）においてステートをスタートすることで対処される。
【０２０３】
７．２．２．２  ＥＤＲＬ伸長器ステートマシン
ＥＤＲＬ伸長器ステートマシン（１５５）は、ＥＤＲＬストリームデコーダ（１５４）が提供するコードに応答して、エッジ計算論理回路とランレングス伸長器論理回路を制御する。このステートマシンは、現在のコードワードの長さをＥＤＲＬストリームデコーダに提供し、現在のデルタコードに関連付けられたデルタ値をエッジ計算論理回路に提供する。また、このステートマシンは、制御レジスタからの「起動」および「停止」制御信号と、エッジ計算論理回路からの「ラインの終了（ＥＯＬ）」信号にも応答する。
【０２０４】
さらに、このステートマシンは、「エッジ作成」コードに関連付けられたランレングスのマルチサイクルフェッチも制御する。
【表１８】
2005500191.tif 000025
【０２０５】
７．２．２．３  ランレングスデコーダ
図２１に示したランレングスデコーダ（１５７／１５８）は、ランレングスを、出力ストリーム内の該当する長さのゼロまたは１のビットのシーケンスに伸長する。あるラインにおける最初のランは、白（色０）とみなされる。各ランの色は、先行するランとは逆の色であるとみなされる。最初のランが実際には黒（色１）である場合、長さゼロの白ランが先行しなければならない。ランレングスデコーダは、現在の色を内部で追跡する。
【０２０６】
ランレングスデコーダは、クロックごとに最大８ビットを出力ストリームに付加する。ランレングスは通常、８の整数倍ではないため、画像における最初のラン以外のランは一般にバイトアラインではない。ランデコーダは、現在ビルドされているバイトの中で使用可能なビット数をバイト空間レジスタ（１８０）に保持する。このビット数は、デコードの開始時と各バイトの出力時に８に初期化される。
【０２０７】
「次のラン」ラインがゼロ以外の値をランレングスレジスタ（１８１）にラッチすると同時に、デコーダがビットのランの出力を開始する。デコーダは、ランレングスレジスタがゼロになると効果的に停止する。
【０２０８】
現在の色の複数ビットが、クロックごとに出力バイトレジスタ（１８２）に移される。現在の色は、１ビット色レジスタ（１８３）に保持される。実際に出力されるビット数は、ランレングスに残っているビットの数と、出力バイトに残っている予備ビットの数によって制限される。出力されるビット数がランレングスとバイト空間から差し引かれる。ランレングスがゼロになれば、ランレングスは完全にデコードされている。ただし、ランの終了ビットが出力待ちの状態で出力バイトレジスタに残っていることもある。バイト空間がゼロになれば、出力バイトは満杯であり、出力ストリームに付加される。
【０２０９】
１６ビットバレルシフタ（１８４）、出力バイトレジスタ（１８２）、および色レジスタ（１８３）に８ビットシフトレジスタが備わっている。このシフトレジスタは、色をシリアル入力として、クロックごとに複数のビット位置をシフトすることができる。
【０２１０】
外部の「リセット」ラインを使用して、ラインの最初にランレングスデコーダをリセットする。外部の「次のラン」ラインを使用して、新しいランレングスのデコードを要求する。これには、外部の「ランレングス」ラインのランレングスが伴う。「次のラン」ラインを「リセット」ラインと同じクロックで設定しないほうがよい。「次のラン」によって現在の色が反転されるため、現在の色をリセットするとゼロではなく１に設定される。外部の「フラッシュ」ラインを使用して、ランの最終バイトをフラッシュする（未完了の場合）。これをラインごとに使用して、バイトアラインされたラインを生成したり、画像ごとに使用して、バイトアラインされた画像を生成することができる。
【０２１１】
外部の「レディ」ラインは、ランレングスデコーダがランレングスをデコードする準備ができているかどうかを示す。このラインを使用して、外部論理回路を停止することができる。
【０２１２】
７．２．２．４  ランレングスエンコーダ
図２２に示したランレングスエンコーダ（１５９）は、入力ストリームのゼロまたは１のビットのランを検出する。あるラインにおける最初のランは、白（色０）とみなされる。各ランの色は、先行するランとは逆の色であるとみなされる。最初のランが実際には黒（色１）である場合、ランレングスエンコーダは、ラインの最初に長さゼロの白ランを生成する。ランレングスデコーダは、現在の色を内部で追跡する。
【０２１３】
ランレングスエンコーダは、クロックごとに入力ストリームから最大８ビットを読み取る。ランレングスエンコーダは、１６ビットバレルシフタ（１９１）の視点から２バイト入力バッファ（１９０）を使用する。バレルシフタの左（最上位）端は常に、ビットストリーム内の現在位置に合わされている。バレルシフタに接続されたエンコーダ（１９２）が、表１９に従って８ビットの（部分的）ランレングスをエンコードする。エンコーダ（１９２）は、現在の色を使用して適切な色のランを認識する。
【０２１４】
８ビットランレングスエンコーダによって生成された８ビットのランレングスが、ランレングスレジスタ（１９３）の値に加算される。８ビットランレングスエンコーダは現在のランの終了を認識すると、レディレジスタ（１９４）によってラッチされる「ランの終了」信号を生成する。レディレジスタ（１９４）の出力は、エンコーダが現在のランレングスの符号化を完了し、ランレングスレジスタ（１９３）に集積したことを示す。レディレジスタ（１９４）の出力は、８ビットランレングスエンコーダ（１９２）の停止にも使用される。停止時に、８ビットランレングスエンコーダ（１９２）は長さゼロのランとゼロの「ランの終了」信号を出力し、ランレングスエンコーダ全体が効果的に停止する。
【表１９】
2005500191.tif 000026
【０２１５】
８バイトランレングスエンコーダ（１９２）の出力は、残りのページ幅によって制限される。実際の８ビットランレングスが、残りのページ幅から差し引かれ、バレルシフタ（１９１）の制御とバイトストリーム入力のクロック制御に使用されるモジュロ８のビット位置に加算される（１９５）。
【０２１６】
外部の「リセット」ラインを使用して、ラインのスタートの最初にランレングスエンコーダをリセットする。これにより、現在の色がリセットされ、「ページ幅」がページ幅レジスタにラッチされる。外部の「次のラン」ラインを使用して、ランレングスエンコーダから別のランレングスを要求する。これにより、現在の色が反転され、ランレングスレジスタとレディレジスタがリセットされる。外部の「フラッシュ」ラインを使用して、ランの最終バイトをフラッシュする（未完了の場合）。これをラインごとに使用して、バイトアラインされたラインを処理したり、画像ごとに使用して、バイトアラインされた画像を処理することができる。
【０２１７】
外部の「レディ」ラインは、ランレングスエンコーダがランレングスをエンコードする準備ができていることと、現在のランレングスを「ランレングス」ラインで使用できることを示す。このラインを使用して、外部論理回路を停止することができる。
【０２１８】
７．２．３  ＪＰＥＧデコーダ
図２３に示したＪＰＥＧデコーダ（１４３）は、ＪＰＥＧ圧縮されたＣＭＹＫ連続階調画像を伸長する。
【０２１９】
ＪＰＥＧデコーダへの入力は、ＪＰＥＧビットストリームである。ＪＰＥＧデコーダからの出力は、連続階調ＣＭＹＫ画像ラインの集合である。
【０２２０】
伸長時、ＪＰＥＧデコーダは出力を８×８ピクセルブロックの形式で書き込む。これらのブロックは、コーデックと密接に連係する「ページ幅」×８のストリップバッファを通じて全幅のラインに変換されることがある。この変換には、６７ＫＢのバッファが必要になるであろう。その代わりに、図２３に示したように、共有バスアクセスおよび８つの該当ＤＭＡチャネルを備える８つの並行ピクセルＦＩＦＯを使用する。
【０２２１】
７．２．４  ハーフトーン化装置／合成器
図２４に示したハーフトーン化装置／合成器ユニット（ＨＣＵ）（１４１）は、連続階調ＣＭＹＫ層を２階調ＣＭＹＫにハーフトーン化する機能と、ハーフトーン化された連続階調層の上に黒層を合成する機能を組み合わせたものである。
【０２２２】
ＨＣＵへの入力は、伸長された２６７ｐｐｉのＣＭＹＫ連続階調層（２００）と伸長された１６００ｄｐｉの黒層（２０１）である。ＨＣＵからの出力は、１６００ｄｐｉの２階調ＣＭＹＫ画像ライン（２０２）の集合である。
【０２２３】
一度起動されたＨＣＵは、「ページ終了」条件を検出するか、あるいは制御レジスタによって明示的に停止されるまで、処理を続行する。
【０２２４】
ＨＣＵは、指定された幅と長さ（ドット）のページを生成する。したがって、ＨＣＵを起動する前に、幅と長さを「ページ幅」レジスタと「ページ長さ」レジスタに書き込む必要がある。ページ幅は、プリントヘッド（１７１）の幅に相当する。ページ長さは、ターゲットページの長さに相当する。
【０２２５】
ＨＣＵは、ページ幅との関係において指定された左マージンと右マージンの間にターゲットページデータを生成する。したがって、ＨＣＵを起動する前に、左右マージンの位置を「左マージン」レジスタと「右マージン」レジスタに書き込む必要がある。左マージンから右マージンまでの距離が、ターゲットページ幅に相当する。
【０２２６】
ＨＣＵは、指定された黒ページ幅（１７２）と連続階調ページ幅（１７３）に応じて黒データと連続階調データを消費する。したがって、ＨＣＵを起動する前に、これらのページ幅を「黒ページ幅」レジスタと「連続階調ページ幅」レジスタに書き込む必要がある。ＨＣＵは、黒データと連続階調データをターゲットページ幅（１７４）に合わせてクリップする。これにより、入力ＦＩＦＯレベルで特別な「ラインの終了」論理回路を使用することなく、黒ページ幅と連続階調ページ幅がターゲットページ幅を超えることができる。
【０２２７】
図２５は、ページ幅（１７１）、黒ページ幅（１７２）／連続階調ページ幅（１７３）、およびマージンの相互関係を示している。
【０２２８】
ＨＣＵは、指定されたスケールファクタを基に連続階調データを水平と垂直の両方向でプリンタ解像度にスケーリングする。したがって、ＨＣＵを起動する前に、このスケールファクタを「連続階調スケールファクタ」レジスタに書き込む必要がある。
【表２０】
2005500191.tif 000027
【０２２９】
ＨＣＵによって生成されるデータのコンシューマは、プリントヘッドインタフェースである。プリントヘッドインタフェースは、「平面」形式の（すなわち、色平面が分離された）２階調ＣＭＹＫ画像データを必要とする。さらに、偶数ピクセルと奇数ピクセルが分離されていなければならない。このため、ＨＣＵの出力段階では、８つの並行ピクセルＦＩＦＯが使用される。これらのＦＩＦＯはそれぞれ、「偶数シアン」、「奇数シアン」、「偶数マゼンタ」、「奇数マゼンタ」、「偶数黄」、「奇数黄」、「偶数黒」、「奇数黒」用である。
【０２３０】
入力連続階調ＣＭＹＫ  ＦＩＦＯは、フル８ＫＢラインバッファである。このラインを「連続階調スケールファクタ」回使用してラインを複製することで、垂直方向のアップスケーリングが実現する。ＦＩＦＯ書き込みアドレスラッピングは、ラインの最後の使用が開始されるまで無効である。その代替方法として、メインメモリからラインを「連続階調スケールファクタ」回数読み取る。これにより、メモリトラフィックが６５ＭＢ／秒だけ増加するが、オンチップ８ＫＢラインバッファは不要になる。
【０２３１】
７．２．４．１  マルチスレッショルドディザー
一般的な２５６層の「ディザーボリューム」では、様々な強度レベルを切り離すことでディザーセルを自由に設計できるものである。しかし、一般的なディザーボリュームは大きいことがある。たとえば、６４×６４×２５６のディザーボリュームのサイズは１２８ＫＢである。また、各色成分について異なるビットをボリュームから取得する必要があるため、ディザーボリュームへのアクセス効率は良くない。実際には、ディザーボリュームの各層を完全に切り離す必要はない。ボリュームの各ドット列を、２５６の個別ビットとしてではなく一定数のスレッショルド値として実装することができる。たとえば、３つの８ビットスレッショルド値を使用すれば、消費されるビットは２４で済む。ｎ個のスレッショルド値がｎ＋１の強度インターバルを定義し、その中で、対応するディザーセル位置の設定と非設定が交互にラインわれる。独自にディザー処理される連続階調ピクセル値によって、ｎ＋１のインターバルの１つが選択され、対応する出力ドットの値が決められる。
【０２３２】
トリプルスレッショルド６４×６４×３×８ビット（１２ＫＢ）のディザーボリュームを使用して連続階調データをディザー処理する。３つのスレッショルド値によって、１サイクルでディザーセルＲＯＭから取得できる便利な２４ビット値が形成される。色平面間でディザーセル位置合わせが求められる場合、同一のトリプルスレッショルド値を一度取得して、各色成分のディザー処理に使用することができる。ディザーセル位置合わせが不要な場合、ディザーセルを４つの下位セルに分割して、個別にアドレス可能な４つのＲＯＭに格納することができる。これらのＲＯＭから、４つの異なるトリプルスレッショルド値を１サイクルで同時に取得することができる。図２６に示したアドレス指定方式を利用して、４つの色平面が、互いに垂直方向および／または水平方向のオフセットが３２ドットである同一ディザーセルを共有する。
【０２３３】
図２６は、マルチスレッショルドディザー（２０３）を示している。トリプルスレッショルドユニット（２０４）は、トリプルスレッショルド値及び強度値を１つのインターバルに変換し、次に１またはゼロのビットに変換する。表２１は、トリプルスレッショルドの規則である。図２７は、それに対応する論理回路（２０８）を示している。
【０２３４】
図２６をさらに詳しくみればわかるように、４つの個別トリプルスレッショルドユニット（２０４）は、ＣＭＹＫ信号の各色成分に対する一連の連続階調色ピクセル値を受信する。ディザーボリュームは、４つのディザー下位セルＡ、Ｂ、Ｃ、Ｄ（２０５）に分割される。ディザーセルアドレスジェネレータ（２０６）と、４つのゲート（２０７）が、４つの異なるトリプルスレッショルド値の取得を制御する。これらのスレッショルド値は、各色について１サイクルで同時に取得できる。
【表２１】
2005500191.tif 000028
【０２３５】
７．２．４．２  合成
合成ユニット（２０５）は、ハーフトーン化されたＣＭＹＫ層ドットの上に黒層ドットを合成する。黒層の不透明度が１である場合、ハーフトーン化されたＣＭＹはゼロに設定される。
【０２３６】
４ビットのハーフトーン化された色がＣｃＭｃＹｃＫｃであり、１ビットの黒層の不透明度がＫｂであるとすれば、合成論理回路とクリップ論理回路の定義は表２２のようになる。
【表２２】
2005500191.tif 000029
【０２３７】
７．２．４．３  クロックイネーブルジェネレータ
クロックイネーブルジェネレータ（２０６）は、連続階調ＣＭＹＫピクセル出力、黒ドット入力、およびＣＭＹＫドット出力をクロック制御するためのイネーブル信号を生成する。
【０２３８】
前述のように、連続階調ピクセル入力バッファが、ラインバッファとＦＩＦＯの両方として使用される。各ラインが一度読み取られ、次に「連続階調スケールファクタ」回使用される。ＦＩＦＯ書き込みアドレスラッピングは、ラインの最終複製使用が開始されるまで無効である。この時点で、クロックイネーブルジェネレータが、ラッピングをイネーブリングする「連続階調行前進イネーブル」信号を生成する。
【０２３９】
クロックイネーブルジェネレータは、出力ドットＦＩＦＯの偶数集合または奇数集合の選択に使用される「偶数」信号も生成する。さらに、現在のドット位置がページの左マージンまたは右マージンにあるときに白ドットを生成するために使用される「マージン」信号も生成する。
【０２４０】
クロックイネーブルジェネレータは、一連のカウンタを使用する。表２３は、カウンタの内部論理回路の定義である。表２４は、クロックイネーブル信号の論理回路の定義である。
【表２３】
2005500191.tif 000030
【表２４】
2005500191.tif 000031
【０２４１】
７．３  プリントヘッドインタフェース
プリントヘッドインタフェース（ＰＨＩ）（１４２）は、プロセッサが、印刷するドットをＭｅｍｊｅｔプリントヘッドにロードし、実際のドット印刷プロセスを制御する手段である。ＰＨＩには、以下が装備されている。
【０２４２】
・所定の印刷行のドットをローカルバッファストレージにロードし、これらのドットをＭｅｍｊｅｔプリントヘッドにとって必要な順序にフォーマットするラインローダ／フォーマットユニット（ＬＬＦＵ）（２０９）
【０２４３】
・データをＭｅｍｊｅｔプリントヘッド（６３）に転送し、印刷時にノズル噴射シーケンスを制御するＭｅｍｊｅｔインタフェース（ＭＪＩ）（２１０）
【０２４４】
ＰＨＩに装備されたこれらのユニットは、プロセッサ（１３９）によってプログラムされる複数のレジスタによって制御される。またプロセッサは、メモリからＬＬＦＵに転送するために、ＤＭＡコントローラ（１４４）内の適切なパラメータも設定する。これには、ページのエッジがきれいになるように、ページの開始と終了時に白（すべて０）を適切な色になるようにロードすることが含まれる。
【０２４５】
図２８は、プリントヘッドインタフェース（１４２）の内部構造を示している。
【０２４６】
７．３．１  ラインローダ／フォーマットユニット
ラインローダ／フォーマットユニット（ＬＬＦＵ）（２０９）は、所定の印刷行のドットをローカルバッファストレージにロードし、これらのドットをＭｅｍｊｅｔプリントヘッドにとって必要な順序にフォーマットする。またＬＬＦＵは、ページの最終的な印刷のために、事前に計算されたｎｏｚｚｌｅＥｎａｂｌｅビットをＭｅｍｊｅｔインタフェースに提供する。
【０２４７】
８インチプリントヘッドの１つのラインは、１２，８００の４色ドットから構成される。色ごとに１ビットであるため、１つの印刷行は５１，２００ビットから構成される。プリントヘッドに送信するために、これらのビットを正しい順序で提供する必要がある。ドットサイクルのドットロード順序の詳細については、項６．１．２．１を参照すること。要約すれば、一度に３２ビットが、２つの４インチプリントヘッドに転送される。３２ビットは、８つのセグメントそれぞれに４つのドットがあることを表している。
【０２４８】
印刷では、ドットビット情報の準備とアクセスのための二重バッファリング方式が採用される。すなわち、あるラインが第１バッファ（２１３）にロードされている間に、第２バッファ（２１４）に事前ロードされたラインがＭｅｍｊｅｔドット順序で読み取られる。ライン全体がＭｅｍｊｅｔインタフェースを介して第２バッファ（２１４）からプリントヘッドに転送されると、読み取りプロセスと書き込みプロセスをラインバッファが交替する。すなわち、第１バッファ（２１３）からデータが読み取られ、第２バッファにはデータの新しいラインがロードされるようになる。図２９に示した概要からわかるように、この処理が印刷プロセス全体で繰り返される。
【０２４９】
図３０は、ＬＬＦＵの実装を示している。一方のバッファからデータが読み取られている間に、他方のバッファにデータが書き込まれるため、２つのアドレスラインセットを使用する必要がある。共用データバスからの３２ビットのＤａｔａＩｎが、ＷｒｉｔｅＥｎａｂｌｅに応じてロードされる。ＷｒｉｔｅＥｎａｂｌｅは、ＤＭＡ  Ａｃｋｎｏｗｌｅｄｇｅへの応答としてステートマシンによって生成される。
【０２５０】
マルチプレクサ（２１５）が、バッファ０（２１３）とバッファ１（２１４）の２つの４ビット出力の一方を選択し、結果を８エントリ×４ビットシフトレジスタ（２１６）に送信する。最初の８回の読み取りサイクルの後、ＡｄｖａｎｃｅパルスがＭＪＩから送信されると、シフトレジスタからの現在の３２ビット値がゲート作用を受けて３２ビット転送レジスタ（２１７）に入力される。これで、ＭＪＩは３２ビット値を使用できるようになる。
【０２５１】
７．３．１．１  バッファ
２つのバッファ（２１３および２１４）はそれぞれ、色別に４つの下位バッファ（２２０、２２１、２２２、および２２３）に分けられている。図３１に示したように、すべての偶数ドットが各色のバッファ内で奇数ドットの前に配置される。
【０２５２】
印刷される次のラインのドットを表す５１，２００のビットが、色バッファごとに１２，８００ビットずつ、４００の３２ビットワードとして格納される。最初の２００の３２ビットワード（６４００ビット）が色の偶数ドットを表し、次の２００の３２ビットワード（６４００ビット）が色の奇数ドットを表す。
【０２５３】
アドレスデコード回路は、所定のサイクルにおいて、４つの下位バッファすべてに対する単一の３２ビットアクセス（すべての下位バッファからの読み取り、またはいずれか１つのバッファへの書き込み）が可能であるような構成になっている。各色バッファからの３２ビット読み取りのうち１ビットだけが選択され、合計で４ビットが出力される。図３２は、このプロセスを示している。アドレスが１３ビットであるため、３２ビットの選択に使用されるアドレスの８ビットを利用して特定ビットを読み取ることができ、アドレスの５ビットを利用して３２ビットから１ビットを選択することができる。すべての色バッファでこの論理回路が共有されるため、単一の１３ビットアドレスによって、色ごとに１ビット、合計で４ビットが出力される。各バッファには固有のＷｒｉｔｅＥｎｂｌｅラインがあるため、所定サイクルにおいて単一の３２ビット値を特定の色バッファに書き込むことができる。実際にＤａｔａＩｎをクロック制御するのは１つのバッファだけであるため、３２ビットのＤａｔａＩｎは共有される。
【０２５４】
７．３．１．２  アドレス生成
７．３．１．２．１  読み取り
読み取りのためのアドレス生成は単純である。各サイクルにおいて、特定セグメントについて色ごとに１ビットを表す４ビットをフェッチするために使用するビットアドレスを生成する。現在のビットアドレスに４００を加算することで、次セグメントの同等のドットに進む。４００（８００ではなく）を加算するのは、バッファでは奇数ドットと偶数ドットが分離されているからである。この処理を１６回行って、８セグメントの２セットについて、偶数ドットを表す３２ビットを２セット取得し（得られたデータは３２ビットずつＭＪＩに転送される）、さらに１６回この処理を行って奇数ドットをロードする。この３２サイクルのプロセスが４００回繰り返され、１回ごとに開始アドレスがインクリメントされる。したがって、４００×３２サイクルで、合計４００×３２×４（５１，２００）のドット値が、プリントヘッドが要求した順序で転送される。
【０２５５】
さらに、ＴｒａｎｓｆｅｒＷｒｉｔｅＥｎａｂｌｅ制御信号を生成する。ＭＪＩより前にＬＬＦＵが起動するため、ＭＪＩからのＡｄｖａｎｃｅパルスより前に最初の値を転送しなければならない。また、最初のＡｄｖａｎｃｅパルスの準備が整った状態で次の３２ビット値を生成する必要もある。このためには、８サイクルの後で最初の３２ビット値を転送レジスタに転送し、次いで８サイクルを停止させ、次の８サイクルグループを開始するためのＡｄｖａｎｃｅパルスを待機しなければならない。最初のＡｄｖａｎｃｅパルスが到着すると、ＬＬＦＵがＭＪＩと同期する。ただし、ＬＬＦＵから少なくとも１６サイクル遅れてＭＪＩを起動しなければならない。なぜならば、このタイミングで、最初の転送値が有効になり、次の３２ビット値を転送レジスタにロードする準備が整うからである。
【０２５６】
次の擬似コードは、読み取りプロセスを示している。
【０２５７】
2005500191.tif 000032
【０２５８】
このラインが終了すると、プロセッサがＣｕｒｒＲｅａｄＢｕｆｆｅｒ値を切り替える必要がある。
【０２５９】
７．３．１．２．２  書き込み
書き込みプロセスも単純である。４つのＤＭＡ要求ラインがＤＭＡコントローラに出力される。要求が復帰ＤＭＡ肯定応答ラインで満たされると、適切な８ビット宛先アドレスが選択され（１３ビット出力アドレスの下位５ビットは「無視できる」）、肯定応答信号が適切なバッファのＷｒｉｔｅＥｎａｂｌｅ制御ラインに渡される（現在の書き込みバッファはＣｕｒｒｅｎｔＲｅａｄＢｕｆｆｅｒ）。８ビット宛先アドレスが、現在の４つのアドレスから色ごとに１つ選択される。ＤＭＡ要求が満たされると、該当する宛先アドレスがインクリメントされ、対応するＴｒａｎｓｆｅｒｓＲｅｍａｉｎｉｎｇカウンタがデクリメントされる。ＤＭＡ要求ラインは、その色について残っている転送の数がゼロ以外である場合のみ設定される。
【０２６０】
次の擬似コードは、書き込みプロセスを示している。
【０２６１】
2005500191.tif 000033
【０２６２】
７．３．１．３  レジスタ
次のレジスタがＬＬＦＵに搭載されている。
【表２５】
2005500191.tif 000034
【０２６３】
７．３．２  Ｍｅｍｊｅｔインタフェース
Ｍｅｍｊｅｔインタフェース（ＭＪＩ）（２１１）はデータをＭｅｍｊｅｔプリントヘッド（６３）に転送し、印刷時のノズル噴射シーケンスを制御する。
【０２６４】
ＭＪＩは、項６．１．２で説明したプリントヘッドのロードと噴射の順序に従うステートマシン（図２８参照）であり、項６．１．４と項６．１．５で説明した予熱サイクルとクリーニングサイクルの機能を備えている。高速と低速の両印刷モードが使用可能である。各色のドットカウントもＭＪＩが保持する。
【０２６５】
ＭＪＩは、次の２つのデータソースのいずれかからデータをプリントヘッドにロードする。
【０２６６】
「すべて１」。これは、次の印刷サイクルで全ノズルが噴射されることを意味し、予熱サイクルとクリーニングサイクルでプリントヘッドにデータをロードする標準的な機構である。
【０２６７】
ＬＬＦＵの転送レジスタに保持されている３２ビットインプットからロードする。これは、画像印刷における標準的な方法である。３２ビット値がＬＬＦＵから直接プリントヘッドに送信され、１ビットの「Ａｄｖａｎｃｅ」制御パルスがＬＬＦＵに送信される。各ラインの最後では、１ビットの「ＡｄｖａｎｃｅＬｉｎｅ」も使用できる。
【０２６８】
ＭＪＩは、ＬＬＦＵが最初の３２ビット転送値の準備を整えた後で起動しなければならない。なぜならば、このタイミングで、プリントヘッドへの最初の転送に対して３２ビットデータ入力が有効になるからである。
【０２６９】
このため、ＭＪＩはＬＬＦＵと外部のＭｅｍｊｅｔプリントヘッドに直接接続されている。
【０２７０】
７．３．２．１  プリントヘッドへの接続
表２６はＭＪＩ（２１１）とプリントヘッド（６３）の各種接続を示している（入出力はＭＪＩ側からみたものである）。接続の名前は、プリントヘッド上のピン接続を表している（８インチプリントヘッドの接続方法については、項６．２．１を参照）。
【表２６】
2005500191.tif 000035
【０２７１】
７．３．２．２  噴射パルス持続時間
ＡＥｎａｂｌｅラインとＢＥｎａｂｌｅラインに対する噴射パルスの持続時間は、インクの粘度（粘度は温度とインク特性によって決まる）とプリントヘッドに使用できる電気量によって異なる。一般的なパルス持続時間は１．３〜１．８Ｔｓである。このためＭＪＩには、プリントヘッドからのフィードバックによって索引が付けられるプログラム可能なパルス持続時間テーブル（２３０）が装備されている。これにより、低価格の電源装置を使用し、より正確なインク滴の排出を維持できるようになる。
【０２７２】
パルス持続時間テーブルには２５６のエントリがあり、現在のＶｓｅｎｓｅ（２３１）とＴｓｅｎｓｅ（２３２）の設定によって索引が付けられる。アドレスの上位４ビットはＶｓｅｎｓｅからの値であり、下位４ビットはＴｓｅｎｓｅからの値である。各エントリは８ビットであり、０〜４Ｔｓの範囲の固定小数点値を表す。図３３は、ＡＥｎａｂｌｅラインとＢＥｎａｂｌｅラインの生成プロセスを示している。アナログ信号Ｖｓｅｎｓｅ（２３１）とＴｓｅｎｓｅ（２３２）は、それぞれのサンプル／ホールド回路（２３３および２３４）によって受信され、次にそれぞれのコンバータ（２３５および２３６）でデジタルワードに変換されてから、パルス持続時間テーブル（２３０）に適用される。パルス持続時間テーブル（２３０）の出力がパルス幅ジェネレータ（２３７）に適用されて、噴射パルスが生成される。
【０２７３】
この２５６バイトのテーブルは、最初のページの印刷前にＣＰＵによって書き込まれる。必要であれば、各ページの印刷間でテーブルを更新してもよい。テーブル内の８ビットの各パルス持続時間エントリには、次のデータが含まれている。
【０２７４】
・  ユーザーによる明度設定（ページ記述より）
・  インクの粘度曲線（ＱＡチップより）
・  Ｒｓｅｎｓｅ
・  Ｗｓｅｎｓｅ
・  Ｖｓｅｎｓｅ
・  Ｔｓｅｎｓｅ
【０２７５】
７．３．２．３  ドットカウント
ＭＪＩ（２１１）は、プリントヘッドから噴射される各色のドット数のカウントをドットカウントレジスタ（２４０）に保持する。各色のドットカウントは３２ビット値であり、プロセッサの制御の下で信号（２４１）によって個別にクリアされる。長さが３２ビットである各ドットカウントは、最大１７の１２インチページのドットカウントを保持することができる。ただし通常の使用においては、ドットカウントは各ページの印刷後に読み取られてクリアされる。
【０２７６】
インクカートリッジのインク切れのタイミングを予測するために、プロセッサはドットカウントを使用してＱＡチップ（８５）（項７．５．４．１参照）を更新する。プロセッサは、カートリッジ内のＣ、Ｍ、Ｙ、Ｋそれぞれのインク量情報をＱＡチップから取得する。インク滴数をカウントすることにより、インクセンサが不要になり、インクチャネルが空の状態になることを防止できる。更新されたインク滴カウントが、各ページの印刷後にＱＡチップに書き込まれる。十分な量のインクが残っていなければ、新しいページは印刷されない。ユーザーはその時点でインクを交換できるため、ページが途中までしか印刷されないような事態がなくなる。
【０２７７】
図３４は、シアンのドットカウンタの設計を示している。残りの３つのドットカウンタ（マゼンタ、黄、黒用のＭＤｏｔＣｏｕｎｔ、ＹＤｏｔＣｏｕｎｔ、ＫＤｏｔＣｏｕｎｔ）の構造もこれと同じである。
【０２７８】
７．３．２．４  レジスタ
プロセッサ（１３９）は、レジスタセットを通じてＭＪＩ（２１１）とやり取りする。レジスタは、プロセッサが印刷をパラメータ化すると共に、印刷進行に関するフィードバックを受信することができる。
【０２７９】
ＭＪＩに搭載されているレジスタは次のとおりである。
【表２７】
2005500191.tif 000036
【０２８０】
ＭＪＩのステータスレジスタは１６ビットレジスタである。表２８は、各ビットの説明である。
【表２８】
2005500191.tif 000037
【０２８１】
７．３．２．５  予熱サイクルとクリーニングサイクル
クリーニングサイクルと予熱サイクルは、次のように該当するレジスタを設定するだけで実行することができる。
・  ＳｅｔＡｌｌＮｏｚｚｌｅｓ＝１
・  ＰｕｌｓｅＤｕｒａｔｉｏｎレジスタを、短い持続時間（予熱モードの場合）または適切なインク滴排出持続時間（クリーニングモードの場合）のいずれかに設定する。
・  Ｎｕｍｌｉｎｅｓを、必要なノズル噴射回数に設定する。
・  Ｇｏビットを設定し、印刷サイクルが完了したときにＧｏビットがクリアされるのを待つ。
【０２８２】
７．４  プロセッサとメモリ
７．４．１  プロセッサ
プロセッサ（１３９）は、ページの受信、伸長、および印刷時に別の機能ユニットを同期化する制御プログラムを実行する。また、各種外部インタフェース用のデバイスドライバを実行し、ユーザーインタフェースを介してユーザーのアクションに応答する。
【０２８３】
ＤＭＡを効率的に管理するには、割り込み遅延時間は短くなければならないが、特に高性能なＤＭＡコントローラである必要はない。
【０２８４】
ＤＭＡコントローラは、２７チャネル上でシングルアドレス転送をサポートする（表２９参照）。ＤＭＡコントローラは、転送完了時にプロセッサに対するベクタ割り込みを生成する。
【表２９】
2005500191.tif 000038
【０２８５】
７．４．３  プログラムＲＯＭ
プログラムＲＯＭには、システム起動時にメインメモリにロードされるＩＣＰ制御プログラムが保持される。
【０２８６】
７．４．４  Ｒａｍｂｕｓインタフェース
Ｒａｍｂｕｓインタフェースは、８ＭＢ（６４メガビット）の外部Ｒａｍｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）への高速インタフェースである。
【０２８７】
７．５  外部インタフェース
７．５．１  ＵＳＢインタフェース
ユニバーサルシリアルバス（ＵＳＢ）インタフェースは、標準のＵＳＢデバイスインタフェースを提供する。
【０２８８】
７．５．２  スピーカインタフェース
スピーカインタフェース（２５０）（図３５）には、ＤＭＡを介したメインメモリからの音声クリップ転送に使用される小さいＦＩＦＯ（２５１）、８ビットの各標本値を電圧に変換する８ビットデジタル／アナログコンバータ（ＤＡＣ）（２５２）、および外部スピーカに音声データを供給する増幅器（２５３）が備わっている。空のＦＩＦＯは、ゼロ値を出力する。
【０２８９】
スピーカインタフェースは、音声クリップの周波数でクロック制御される。
【０２９０】
プロセッサは、スピーカインタフェースのＤＭＡチャネルをプログラムするだけで音声クリップをスピーカに出力する。
【０２９１】
７．５．３  パラレルインタフェース
パラレルインタフェース（２３１）は、複数の並列外部信号線に対する入出力を備えている。パラレルインタフェースを介して、プロセッサは表３０に挙げたデバイスを感知または制御できる。
【表３０】
2005500191.tif 000039
【０２９２】
７．５．４  シリアルインタフェース
シリアルインタフェース（２３２）には、標準の低速シリアルポートが２つ装備されている。
【０２９３】
一方のポートは、マスターＱＡチップ（８５）への接続に使用する。他方のポートは、インクカートリッジ（２３３）内のＱＡチップへの接続に使用する。両ポート間のプロセッサを有するプロトコルを使用して、インクカートリッジを認証する。プロセッサは、ＱＡチップからインク特性と各インクの残量を取得することができる。プロセッサはこのインク特性を基に、Ｍｅｍｊｅｔプリントヘッドを正しく構成する。また、プリントヘッドインタフェースによって集積されたインク消耗情報でページごとに更新されるインク残量を基に、インク切れによるプリントヘッドの損傷を防止することができる。
【０２９４】
７．５．４．１  インクカートリッジ内のＱＡチップ
インクカートリッジ内のＱＡチップには、最良の印刷品質を保つために必要な情報が格納される。このＱＡチップは、認証チップを使用して実装される。認証チップの２５６ビットデータの割り当ては次のとおりである。
【表３１】
2005500191.tif 000040
【０２９５】
各ページを印刷する前に、プロセッサはインク残量をチェックして、最悪の場合でも１ページ全体を印刷できる量があることを確認しなければならない。ページを印刷したら、プロセッサは各色のインク滴総数（プリントヘッドインタフェースから取得）とインク滴量を乗算する。印刷に使用されたインク量がインク残量から差し引かれる。インク残量の測定単位はナノリットルであるため、３２ビットで４リットルを超えるインク量を表すことができる。１ページの印刷に使用されたインク量を、直近のナノリットル（すなわち、約１０００の印刷済みドット）に切り上げる必要がある。
【０２９６】
７．５．５  ＪＴＡＧインタフェース
試験目的で、標準のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）インタフェースが装備されている。チップの構造が複雑であるため、ＢＩＳＴ（ビルトインセルフテスト）や機能ブロック絶縁分離など多様な試験手法が必要になる。チップ試験回路全体で、チップ領域に１０％のオーバーヘッドが生じると想定される。
【０２９７】
８  一般的なプリンタドライバ
この項では、ｉＰｒｉｎｔ用のホストベースプリンタドライバの一般的な側面について説明する。
【０２９８】
８．１  グラフィックスと画像のモデル
特に合成処理とテキスト処理において、プリンタドライバが様々なグラフィックスと画像に対してデバイス固有の処理ができるように、プリンタドライバがホストグラフィックスシステムと密接に連結されていることを前提とする。
【０２９９】
ユーザーが選択したｉＰｒｉｎｔ固有のＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）カラープロファイルに基づいて、デバイスに依存しない色をｉＰｒｉｎｔ固有のＣＭＹＫ色に標準的な方法で変換できるように、ホストが色管理をサポートすることを前提とする。カラープロファイルは通常、プリンタの出力媒体（普通紙、コート紙、透過原稿など）を指定する際にユーザーによって非明示的に選択される。プリンタに送られるページ記述には、「デバイス固有の」ＣＭＹＫ色が必ず含まれる。
【０３００】
ホストグラフィックスシステムが画像とグラフィックスを、プリンタドライバが指定した公称解像度でレンダリングするが、テキストレンダリングの制御はプリンタドライバに任せることを前提とする。特に、公称のデバイス解像度よりも高い解像度でテキストの「レンダリングと位置決め」ができるように、グラフィックスシステムはプリンタドライバに十分な情報を提供する。
【０３０１】
ホストグラフィックスシステムが、グラフィックスオブジェクトと画像オブジェクトを合成する連続階調ページバッファに公称のデバイス解像度でランダムにアクセスできなければならないが、ホストグラフィックスシステムは実際の合成の制御をプリンタドライバに任せる（すなわち、プリンタドライバにページバッファの「管理」を求める）ことを前提とする。
【０３０２】
８．２  ２層ページバッファ
プリンタのページ記述には、２７６ｐｐｉの連続階調層と８００ｄｐｉの黒層が含まれる。黒層は概念上、連続階調層の「上に」ある。すなわち、黒層はプリンタによって連続階調層の「上に」合成される。このため、プリンタドライバは、中解像度の連続階調層（２６１）と高解像度の黒層（２６２）を含むページバッファ（２６０）を保持する。
【０３０３】
グラフィックスシステムはオブジェクトをページバッファの下から上に、すなわち後のオブジェクトによって前のオブジェクトが不明瞭になるように、レンダリングし合成する。当然ながら、この方法は後で合成される層が１つしかない場合には機能するが、後で合成される層が２つある場合は機能しない。したがって、連続階調層に配置されるオブジェクトによって、黒層の一部が不明瞭になる場合を検出する必要がある。
【０３０４】
不明瞭になる場合が検出されると、不明瞭になった黒ピクセルが連続階調層に合成され、黒層から削除される。次に、不明瞭にした側のオブジェクトが連続階調層に配置されるため、黒ピクセルと影響し合う可能性がある。不明瞭にする側のオブジェクトを、背景と影響し合わないように合成する方法であれば、黒ピクセルを連続階調層と合成しないで破棄することができる。当然ながら実際には、連続階調層と黒層が影響し合うことはほとんどない。
【０３０５】
プリンタドライバは、公称のページ解像度として２６７ｐｐｉをグラフィックスシステムに指示する。可能であれば、プリンタドライバはグラフィックスシステムを利用して、２６７ｐｐｉで画像オブジェクトとグラフィックスオブジェクトをピクセルレベルにレンダリングする（「黒テキスト」を除く）。プリンタドライバはすべてのテキストレンダリング要求に応え、黒テキストを検出して８００ｄｐｉでレンダリングするが、黒以外のテキストのレンダリング要求は、２６７ｐｐｉでレンダリングするようにグラフィックスシステムに返す。
【０３０６】
グラフィックスシステムとプリンタドライバがデバイスに依存しないＲＧＢで色を処理し、ページが完了してプリンタに送る準備が整うまでデバイス固有のＣＭＹＫへの変換を遅らせることが望ましい。これにより、ページバッファ要件が軽減され、より合理的な合成が可能になる。ＣＭＹＫ色空間での合成は望ましくない。
【０３０７】
最終的に、グラフィックスシステムは、レンダリングされた各オブジェクトをプリンタドライバのページバッファに合成するようプリンタドライバに依頼する。このようなオブジェクトはそれぞれ、２４ビット連続階調ＲＧＢを使用し、明示的な（または暗黙的に不透明な）不透明度チャネルを持つ。
【０３０８】
プリンタドライバは、３つのパートから成る２層ページバッファ（２６０）を保持する。第１パートは中解像度（２６７ｐｐｉ）の連続階調層（２６１）であり、２４ビットＲＧＢビットマップから成る。第２パートは中解像度の黒層（２６３）であり、８ビット不透明度ビットマップから成る。第３パートは高解像度（８００ｄｐｉ）の黒層（２６２）であり、１ビット不透明度ビットマップから成る。中解像度の黒層は、高解像度の不透明層をサブサンプリングしたものである。実際には、高解像度が中解像度の整数倍ｎであるとして（たとえば、ｎ＝８００／２６７＝３）、それぞれの中解像度不透明度値は、該当するｎ×ｎ高解像度不透明度値を平均化することで得られる。これは、ｂｏｘ−ｆｉｌｔｅｒｅｄに相当する。黒ピクセルの二段抽出によって、高解像度の黒層内のエッジが効果的にアンチエイリアス処理されるため、連続階調層が次にＪＰＥＧ圧縮／伸長されるときのリンギングもしくノイズ的アーチファクトを低減することができる。
【０３０９】
図３６は、ページバッファの構造とサイズを示している。
【０３１０】
８．３  合成モデル
ページバッファの合成モデルを説明するために、次の変数を定義する。
【表３２】
2005500191.tif 000041
【０３１１】
不透明度αＴｘＨの黒オブジェクトを黒層と合成する場合、黒層は次のように更新される。
【０３１２】
【数１】
2005500191.tif 000042
【数２】
2005500191.tif 000043
【０３１３】
オブジェクトの不透明度と黒層の不透明度との論理和がとられ（規則１）、中解像度の黒層の該当部分が、高解像度の黒層から再計算される（規則２）。
【０３１４】
色がＣＯｂＭで不透明度がαＯｂＭである連続階調オブジェクトを連続階調層と合成する場合、連続階調層と黒層が次のように更新される。
【０３１５】
【数３】
2005500191.tif 000044
【数４】
2005500191.tif 000045
【数５】
2005500191.tif 000046
【数６】
2005500191.tif 000047
【０３１６】
連続階調オブジェクトによって、完全に不透明ではないにしても黒層が不明瞭になる場合、影響を受ける黒層ピクセルが黒層から連続階調層に「プッシュ」される。すなわち、連続階調層と合成され（規則３）、黒層から削除される（規則４および規則５）。次に、連続階調オブジェクトが連続階調層と合成される（規則６）。
【０３１７】
連続階調オブジェクトのピクセルが完全に不透明である（すなわち、αＯｂＭ［ｘ、ｙ］＝２５５）場合、前景連続階調ピクセルによって背景連続階調ピクセルが以降、完全にみえなくなるため（規則６）、該当する黒ピクセルを背景連続階調層にプッシュする必要はない。
【０３１８】
図３７〜４１は、２つの層で表される画像に様々な種類のオブジェクトを合成した場合の、前景黒層と背景連続階調層への影響を示している。すべての図で、オブジェクトの合成前後における２つの層の状態を示している。層のピクセルグリッドの密度を変えることで、前景層と背景層の解像度が異なることを表している。
【０３１９】
ここでは画像の実際のレンダリングがテーマではないため、２つの層に表される出力画像をピクセルグリッドなしで示している。
【０３２０】
中解像度の前景黒層は示していないが、非明示的には存在する。規則１が高解像度の前景黒層に適用される場合、規則２が中解像度の前景黒層に非明示的に適用される。規則４が適用される場合、規則５も非明示的に適用される。
【０３２１】
図３７は、黒オブジェクト（２７０）を白画像の上に合成した場合の影響を示している。黒オブジェクトが前景黒層（２７１）に合成されるだけである（規則１）。背景連続階調層（２７２）が影響を受けず、出力画像（２７３）は黒オブジェクトである。
【０３２２】
図３８は、連続階調オブジェクト（２８０）を白画像の上に合成した場合の影響を示している。連続階調オブジェクト（２８０）が背景連続階調層（２８２）に合成されるだけである（規則６）。前景黒層（２８１）は影響を受けず、出力画像（２８３）は連続階調オブジェクトである。
【０３２３】
図３９は、連続階調オブジェクト（２９２）を既に含んでいる画像の上に黒オブジェクト（２９０）を合成した場合の影響を示している。この場合も、黒オブジェクトが前景黒層（２９１）に合成されるだけである（規則１）。背景連続階調層は影響を受けず、出力画像（２９３）では、連続階調オブジェクト（２９２）の上に黒オブジェクト（２９０）がある。
【０３２４】
図４０は、黒オブジェクト（３０１）を既に含んでいる画像の上に不透明連続階調オブジェクト（３００）を合成した場合の影響を示している。連続階調オブジェクトによって既存の黒オブジェクトの一部が不明瞭になるため、既存の２階調オブジェクトの中で影響を受ける部分が前景黒層（３０２）から削除される（規則４）。連続階調オブジェクトは完全に不透明であるため、影響を受ける部分を連続階調層に合成する必要はない。したがって、規則３は適用されない。例によって、連続階調オブジェクトが背景連続階調層（３０３）に合成され（規則６）、出力画像（３０４）では、連続階調オブジェクト（３００）に覆われて黒オブジェクトが不明瞭になっている。
【０３２５】
図４１は、黒オブジェクト（３１１）を既に含んでいる画像の上に、一部が透明な連続階調オブジェクト（３１０）を合成した場合の影響を示している。連続階調オブジェクトが、既存の黒オブジェクトの一部を部分的に透過的に隠蔽するので、黒オブジェクトの中で影響を受ける部分が連続階調層（３１２）に合成され（規則３）、前景黒層（３１３）から削除される（規則４）。次に例によって、連続階調オブジェクトが背景連続階調層（３１４）に合成される（規則６）。
【０３２６】
最終画像（３１５）は、既存の黒オブジェクトの一部を透過的に隠蔽する連続階調ピクセルの部分の暗化の状態を示している。
【０３２７】
８．４  ページの圧縮と送信
ページのレンダリングが完了すれば、プリンタドライバはグラフィックスシステムの色管理機能を利用して、連続階調層をｉＰｒｉｎｔ固有のＣＭＹＫに変換する。
【０３２８】
次にプリンタドライバは、黒層と連続階調層を、項５．２で説明したｉＰｒｉｎｔページ記述に圧縮パッケージする。このページ記述が、標準のスプーラを介してプリンタに送信される。
【０３２９】
黒層は１ビット不透明度値の集合として処理されるが、プリンタには１ビット黒値の集合として送信されることに注意すべきである。この２つの解釈は異なるが、表現は同じであるため、データ変換は不要である。
【０３３０】
９  Ｗｉｎｄｏｗｓ  ９ｘ／ＮＴプリンタドライバ
９．１  Ｗｉｎｄｏｗｓ  ９ｘ／ＮＴ印刷システム
Ｗｉｎｄｏｗｓ  ９ｘ／ＮＴ印刷システム［８］［９］では、プリンタ（３２０）は「グラフィックスデバイス」であり、アプリケーション（３２１）が「グラフィックスデバイスインタフェース（ＧＤＩ）」（３２２）を介してグラフィックスデバイスとやり取りする。プリンタドライバの「グラフィックスＤＬＬ（ダイナミックリンクライブラリ）」（３２３）は、ＧＤＩの各種グラフィックス機能の中でデバイスに依存する側面を実装する。
【０３３１】
プリンタへのページ送信を処理する「スプーラ」（３３３）は、印刷を要求するアプリケーションとは異なるコンピュータに常駐してもよい。スプーラは、プリンタへの物理接続を処理する「ポートモニタ」（３３４）を介してページをプリンタに送信する。オプションの「言語モニタ」（３３５）は、プリンタとの通信に対して追加プロトコルを強制する、プリンタドライバの部分であり、特にスプーラに代わってプリンタからのステータス応答をデコードする。
【０３３２】
プリンタドライバの「ユーザーインタフェースＤＬＬ」（３３６）は、プリンタ固有の特性を編集しプリンタ固有のイベントを報告するためのユーザーインタフェースを実装する。
【０３３３】
図４２は、Ｗｉｎｄｏｗｓ  ９ｘ／ＮＴ印刷システムの構造を示している。
【０３３４】
ｉＰｒｉｎｔはＵＳＢ  ＩＥＥＥ−１２８４エミュレーションを使用するため、ｉＰｒｉｎｔ用の言語モニタを実装する必要はない。
【０３３５】
以下では、プリンタドライバのグラフィックスＤＬＬの設計について説明する。この部分を、該当するＷｉｎｄｏｗｓ  ９ｘ／ＮＴのＤＤＫ文書［８］［９］と併せて読むことが望ましい。
【０３３６】
９．２  Ｗｉｎｄｏｗｓ  ９ｘ／ＮＴのグラフィックスデバイスインタフェース（ＧＤＩ）
ＧＤＩは、アプリケーションが「デバイス表面」（一般に、表示画面または印刷されるページを抽象的に表す用語）上に描画できるようにする機能である。ラスタデバイスのデバイス表面は、概念的にはカラービットマップである。アプリケーションは、デバイスに依存しない方法で、すなわちデバイスの解像度および色特性とは無関係にデバイス表面に描画することができる。
【０３３７】
アプリケーションは、デバイス表面全体にランダムにアクセスできる。これは、メモリが限られているプリンタデバイスでバンドの出力が求められる場合、ＧＤＩが全ページのＧＤＩコマンドをバッファリングし、各バンド順にコマンドを再生しなければならないことを意味する。これによりアプリケーションの柔軟性は大いに高まるが、性能が低下することがある。
【０３３８】
ＧＤＩは色管理をサポートしているため、アプリケーションが提供する、デバイスに依存しない色がデバイスの標準ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）カラープロファイルに従って、デバイスに依存する色に透過的に変換される。プリンタドライバは、ドライバが管理するプリンタプロパティシートでユーザーが選択した紙の種類などに応じて、様々なカラープロファイルをアクティブにすることができる。
【０３３９】
ＧＤＩは、線／スプラインのアウトライングラフィックス（経路）、画像、およびテキストをサポートしている。アウトラインフォントグリフなどのアウトライングラフィックスを描画し、ビットマップブラシパターンで塗りつぶすことができる。グラフィックスと画像を幾何学的に変形し、デバイス表面の内容と合成することができる。Ｗｉｎｄｏｗｓ  ９５／ＮＴ４ではブール合成演算子のみ使用できるが、Ｗｉｎｄｏｗｓ  ９８／ＮＴ４では適切なアルファブレンディング［９］を使用できる。
【０３４０】
９．３  プリンタドライバのグラフィックスＤＬＬ
理論上、ラスタプリンタはＷｉｎｄｏｗｓ  ９ｘ／ＮＴで標準のプリンタドライバコンポーネントを利用できるため、プリンタドライバの開発作業が容易になることがある。これは、デバイス表面を単一のビットマップとしてモデル化できるかどうかにかかっている。問題は、テキストと画像を同じ解像度でレンダリングしなければならないということである。その結果、テキストの解像度が損なわれるか、あまりに多くの出力データが生成されて性能が低下する。
【０３４１】
前述のように、ｉＰｒｉｎｔにおけるアプローチは、黒いテキストと画像を異なる解像度でレンダリングすることで、テキストと画像の再生を最適化することである。このためプリンタドライバは、項８で説明した一般的な設計に従って実装される。
【０３４２】
したがってプリンタドライバは、項８．２で説明したように、２層３パートのページバッファを保持する。これは、プリンタドライバがデバイス表面の管理を引き受けなければならないことを意味する。さらにこれは、プリンタドライバがデバイス表面へのＧＤＩアクセスをすべて仲介しなければならないことを意味する。
【０３４３】
９．３．１  デバイス表面の管理
プリンタドライバは、次のような多数の標準関数をサポートしなければならない。
【表３３】
2005500191.tif 000048
【０３４４】
ＤｒｖＥｎａｂｌｅＰＤＥＶは、返されるＤＥＶＩＮＦＯ構造体のｆｌＧｒａｐｈｉｃｓＣａｐｓメンバを通じてＧＤＩに、ドライバがグラフィックスをレンダリングできることを示す。これについては、後で詳しく説明する。
【０３４５】
ＤｒｖＥｎａｂｌｅＳｕｒｆａｃｅは、２６７ｐｐｉの連続階調層（２４ビットＲＧＢ色）、２６７ｐｐｉの黒層（８ビット不透明度）、および８００ｄｐｉの黒層（１ビット不透明度）という、２つの概念層と３つのパートから成るデバイス表面を作成する。これらの２つの層をカプセル化したバーチャルなデバイス表面の公称解像度は２６７ｐｐｉであり、ＧＤＩの処理はこの解像度で行われる。
【０３４６】
集合ページバッファは約３３ＭＢのメモリを必要とするが、ＰＣ  ９９オフィス標準［５］では最低６４ＭＢを指定する。
【０３４７】
実際にデバイス表面を管理し、デバイス表面へのＧＤＩアクセスを仲介するには、プリンタドライバは次の追加関数をサポートしなければならない。
【表３４】
2005500191.tif 000049
【０３４８】
画像のコピー、経路の描画、および領域の塗りつぶしはすべて連続階調層で行われ、黒いソリッドテキストのレンダリングは２階調黒層で行われる。さらに連続階調層では、黒以外のテキストのレンダリングも行われる。このレンダリングが黒層ではサポートされていないからである。逆に黒層では、ソリッドな黒色による描画または塗りつぶしを行うことができる（選択した場合）。
【０３４９】
プリンタドライバは前記の関数を「フック」しなければならないが、連続階調層が標準形式のビットマップであるため、プリンタドライバは連続階調層に適用される関数呼び出しを、これらの関数の対応するＧＤＩによる実装に戻すことができる。すべてのＤｒｖＸｘｘ関数について、ＧＤＩにより提供される対応するＥｎｇＸｘｘ関数がある。
【０３５０】
項８．２で説明したように、連続階調層に向けられたオブジェクトによって黒層のピクセルが隠蔽される場合、連続階調オブジェクトを連続階調層と合成する前に、それらの隠蔽されたピクセルを黒層から連続階調層に移さなければならない。このプロセスが機能する要点は、隠蔽される場合を検出し、フックされた呼び出しで処理して「から」、その呼び出しをＧＤＩに所要変換のため戻されることである。このためには、連続階調オブジェクトの幾何形状からオブジェクトのピクセルごとの不透明度を判定し、項８．２で説明したように、その不透明度に基づいて黒いピクセルを黒層から連続階調層に選択的に移す必要がある。
【０３５１】
９．３．２  連続階調オブジェクトの幾何形状の判定
レンダリングする前に連続階調オブジェクトそれぞれの幾何形状を判定し、連続階調オブジェクトによってどの黒いピクセルが隠蔽され効率的に判定することができる。ＤｒｖＣｏｐｙＢｉｔｓとＤｒｖＰａｉｎｔの場合、幾何形状は、矩形の集合として列挙することができるクリップオブジェクト（ＣＬＩＰＯＢＪ）によって判定される。
【０３５２】
ＤｒｖＳｔｒｏｋｅＰａｔｈの場合、状況は複雑である。ＤｒｖＳｔｒｏｋｅＰａｔｈは直線分とベジエスプライン曲線分の両方、１ピクセル幅の線、および幾何幅の線をサポートしている。最初の手順は、ドライバのＤＥＶＩＮＦＯ構造体のｆｌＧｒａｐｈｉｃｓＣａｐｓメンバの該当する機能フラグ（ＧＣＡＰＳ＿ＢＥＺＩＥＲＳおよびＧＣＡＰＳ＿ＧＥＯＭＥＴＲＩＣＷＩＤＥ）をクリアすることで、ベジエスプライン曲線分と幾何幅の線の複雑さを完全に避けることである。これにより、ＧＤＩはこのような呼び出しを、より単純なＤｒｖＰａｉｎｔの一連の呼び出しに変更する。一般に、ＧＤＩは高水準機能を向上する機会をドライバに提供するが、ドライバが提供しない機能はすべて「シミュレート」する。
【０３５３】
後は、１ピクセル幅の直線の幾何形状を判定するだけである。このような線は、実線か「飾り」線のいずれかである。「飾り」線の種類は、指定された線属性（ＬＩＮＥＡＴＴＲＳ）のスタイル配列によって判定される。スタイル配列は、線の全長にわたって不透明部分と透明部分をどのように交互配置するかを指定するものであり、様々な点線効果などをサポートする。
【０３５４】
ブラシが黒のソリッドである場合、直線を効果的に黒層にレンダリングすることもできる。ただし、解像度が８００ｄｐｉであるため幅が太くなる。
【０３５５】
９．３．３  テキストのレンダリング
ＤｒｖＴｅｘｔＯｕｔの場合も状況は複雑である。まず、不透明な背景が存在すれば、連続階調層上での他の塗りつぶしと同様に処理される（ＤｒｖＰａｉｎｔ参照）。前景ブラシが黒でない場合、混合モードが事実上不透明ではない場合、フォントがスケーラブルでない場合、またはフォントがアウトライン描画されている場合、呼び出しは連続階調層に適用されるように、ＥｎｇＴｅｘｔＯｕｔに変換される。ただしその前に、ドライバはビットマップを取得する（ＦＯＮＴＯＢＪ＿ｃＧｅｔＧｌｙｐｈｓを介して）ことで、各グリフの幾何形状を判定し、黒層が不明瞭になっていないかどうかをチェックする。
【０３５６】
ＤｒｖＴｅｘｔＯｕｔ呼び出しの所要の変換が許容されない場合（ドキュメントが曖昧なため）、ドライバは複雑なテキスト処理を無効にすることが望ましい。このためには、アウトライン描画を無効にし（ＧＣＡＰＳ＿ＶＥＣＴＯＲ＿ＦＯＮＴ機能フラグをクリアする）、複雑な混合モードを無効にする（ＧＣＡＰＳ＿ＡＲＢＭＩＸＴＸＴ機能フラグをクリアする）必要がある。
【０３５７】
前景ブラシが黒で不透明であり、フォントが拡大縮小可能で、フォントが描画されていない場合、グリフが黒層にレンダリングされる。この場合、ドライバは、「アウトライン」を取得する（再びＦＯＮＴＯＢ０Ｊ＿ｃＧｅｔＧｌｙｐｈｓを介して。ただし、ＰＡＴＨＯＢＪとして）ことで各グリフの幾何形状を判定する。次に、ドライバは、アウトラインから各グリフを８００ｄｐｉでレンダリングし、黒層に書き込む。アウトラインの幾何形状ではデバイス座標が使用されるが（すなわち、２６７ｐｐｉで）、この座標は固定小数点形式であり、より高い解像度のレンダリングを可能にする十分な精度を備えている。
【０３５８】
指定があれば、浮き出し矩形と下線矩形がグリフの幾何形状に追加される。
【０３５９】
ドライバはＤＥＶＩＮＦＯ構造体のＧＣＡＰＳ＿ＨＩＧＨＲＥＳＴＥＸＴフラグを設定して、８００ｄｐｉでの正確な位置決めを可能にするためにＧＤＩがグリフ位置（再び、２６７ｐｐｉのデバイス座標）を高精度の固定小数点形式で提供するように要求しなければならない。またドライバは、グリフをビットマップではなくアウトラインとしてキャッシングするようにＧＤＩに指示できるように、ＤｒｖＧｅｔＧｌｙｐｈＭｏｄｅ関数を実装する必要もある。メモリに余裕があれば、効率性の面から、ドライバがレンダリングされたグリフビットマップをキャッシングすることが望ましい。一定のポイントサイズを下回るグリフのみキャッシングすることが望ましい。
【０３６０】
９．３．４  連続階調層の圧縮
既述のように、連続階調層はＪＰＥＧを使用して圧縮される。順方向離散コサイン変換（ＤＣＴ）が、ＪＰＥＧ圧縮の最もコストのかかる部分である。現在の高品質ソフトウェア実装においては、８×８ブロックそれぞれの順方向ＤＣＴで、１２サイクルの整数乗算と３２サイクルの整数加算が必要である［７］。Ｐｅｎｔｉｕｍプロセッサでは、整数乗算が１０サイクル、整数加算が２サイクル必要である［１１］。合計すると、ブロックごとに１８４サイクルのコストがかかることになる。
【０３６１】
２５．５ＭＢの連続階調層は４１７，５８８のＪＰＥＧブロックから構成されるため、全体で約７７メガサイクルのコストが順方向ＤＣＴにかかる。これは、ＰＣ  ９９デスクトップ標準［５］の３００ＭＨｚで０．２６秒に相当し、ページごとの２秒限度の範囲内に十分収まる。
【０３６２】
１０  参考文献
[1]  ANSI/EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsim-ile Equipment, August 1988
[2]  Humphreys, G.W., and V. Bruce, Visual Cognition, Lawrence Erlbaum Associates, 1989, p.15
[3]  IEEE Std 1284-1994, IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Inter-face for Personal Computers, 2 December 1994
[4]    Intel Corp. and Microsoft Corp., PC 98 System Design Guide, 1997
[5]  Intel Corp. and Microsoft Corp., PC 99 System Design Guide, 1998
[6]  ISO/IEC 19018-1:1994, Information technology - Digital compression and coding of continuous-tone still images: Requirements and guidelines, 1994
[7]  Loeffler, C., A. Ligtenberg and G. Moschytz, “Practical Fast 1-D DCT Algorithms with 11 Multiplica-tions”, Proceedings of the International Conference on Acoustics, Speech, and Signal Processing 1989 (ICASSP ‘89), pp.988-991
[8]  Microsoft Corp., Microsoft Windows NT 4.0 Device Driver Kit, 1997
[9]  Microsoft Corp., Microsoft Windows NT 5.0 Device Driver Kit, 1998
[10]   Olsen, J. “Smoothing Enlarged Monochrome Images”, in Glassner, A.S. (ed.), Graphics Gems, AP Professional, 1990
[11]  Schmit, M.L., Pentium Processor Optimization Tools, AP Professional, 1995
[12]  Thompson, H.S., Multilingual Corpus 1 CD-ROM, European Corpus Initiative
[13]  Urban, S.J., “Review of standards for electronic imaging for facsimile systems”, Journal of Electronic Imaging, Vol.1(1), January 1992, pp.5-21
[14]  USB Implementers Forum, Universal Serial Bus Specification, Revision 1.0, 1996
[15]  USB Implementers Forum, Universal Serial Bus Device Class Definition for Printer Devices, Version 1.07 Draft, 1998
[16]  Wallace, G.K., “The JPEG Still Picture Compression Standard”, Communications of the ACM, 34(4), April 1991, pp.30-44
[17]  Yasuda, Y., “Overview of Digital Facsimile Coding Techniques in Japan”, Proceedings of the IEEE, Vol. 68(7), July 1980, pp.830-845
【図面の簡単な説明】
【０３６３】
【図１】プリンタ内の二重バッファリングによって達成可能な持続印刷速度を示す表である。
【図２】アプリケーションから印刷ページまでの概念的なデータ流れを示すフローチャートである。
【図３】閉鎖状態にあるｉＰｒｉｎｔプリンタを示す図である。
【図４】開放状態にあるｉＰｒｉｎｔプリンタを示す図である。
【図５】プリンタを通る用紙経路を示す破断図である。
【図６】Ｍｅｍｊｅｔプリントヘッドカートリッジとプリントヘッドキャッピング機構の破断図である。
【図７】図６のＭｅｍｊｅｔプリントヘッドカートリッジとプリントヘッドキャッピング機構の断面図である。
【図８】プリンタコントローラを示す図である。
【図９】簡単な白黒画像の符号化の一例を示す図である。
【図１０】噴射順に番号付けされた１０個のプリントノズルからなるポッドの概略図である。
【図１１】ロード順に番号付けされた１０個のプリントノズルからなる同じポッドの概略図である。
【図１２】クロマポッドの概略図である。
【図１３】５個のクロマポッドからなるポッドグループの概略図である。
【図１４】２個のポッドグループからなる位相グループの概略図である。
【図１５】セグメントと噴射グループと位相グループとポッドグループとクロマポッドの間の関係を示す概略図である。
【図１６】典型的な印刷サイクルの間のＡＥｎａｂｌｅラインとＢＥｎａｂｌｅラインの位相図である。
【図１７】プリンタコントローラの構成図である。
【図１８】ページ伸長印刷データ流れの概要を示すフローチャートである。
【図１９】ＥＤＲＬ伸長器ユニットのブロック図である。
【図２０】ＥＤＲＬストリームデコーダのブロック図である。
【図２１】ランレングスデコーダのブロック図である。
【図２２】ランレングスエンコーダのブロック図である。
【図２３】ＪＰＥＧデコーダのブロック図である。
【図２４】ハーフトーン化装置／合成器ユニットのブロック図である。
【図２５】ページ幅とマージンの間の関係を示す一連のページラインを示す図である。
【図２６】マルチスレッショルドディザーのブロック図である。
【図２７】トリプルスレッショルドユニットの論理回路のブロック図である。
【図２８】プリントヘッドインタフェースの内部構造のブロック図である。
【図２９】印刷行ＮとＮ＋１の間の二重バッファリングの概念的な概観図である。
【図３０】ＬＬＦＵの構造のブロック図である。
【図３１】バッファの概念構造図である。
【図３２】バッファの論理構造図である。
【図３３】ＡＥｎａｂｌｅパルス幅とＢＥｎａｂｌｅパルス幅の生成を示すブロック図である。
【図３４】ドットカウント論理回路図である。
【図３５】スピーカインタフェースのブロック図である。
【図３６】二層ページバッファを示す図である。
【図３７】白画像への黒オブジェクトの合成を示す一連の図である。
【図３８】白画像への連続階調オブジェクトの合成を示す一連の図である。
【図３９】連続階調オブジェクトを含む画像への黒オブジェクトの合成を示す一連の図である。
【図４０】黒オブジェクトを含む画像への不透明な連続階調オブジェクトの合成を示す一連の図である。
【図４１】黒オブジェクトを含む画像への透明な連続階調オブジェクトの合成を示す一連の図である。
【図４２】プリンタドライバ部品を有するＷｉｎｄｏｗｓ  ９ｘ／ＮＴ印刷システムのブロック図である。
【図１】
2005500191.tif 000050
【図２】
2005500191.tif 000051
【図９】
2005500191.tif 000052
【図１２】
2005500191.tif 000053
【図１３】
2005500191.tif 000054
【図１４】
2005500191.tif 000055
【図１５】
2005500191.tif 000056
【図１６】
2005500191.tif 000057
【図１７】
2005500191.tif 000058
【図１８】
2005500191.tif 000059
【図１９】
2005500191.tif 000060
【図２０】
2005500191.tif 000061
【図２１】
2005500191.tif 000062
【図２２】
2005500191.tif 000063
【図２３】
2005500191.tif 000064
【図２４】
2005500191.tif 000065
【図２５】
2005500191.tif 000066
【図２６】
2005500191.tif 000067
【図２８】
2005500191.tif 000068
【図２９】
2005500191.tif 000069
【図３０】
2005500191.tif 000070
【図３１】
2005500191.tif 000071
【図３２】
2005500191.tif 000072
【図３３】
2005500191.tif 000073
【図３４】
2005500191.tif 000074
【図３５】
2005500191.tif 000075
【図３６】
2005500191.tif 000076
【図３７】
2005500191.tif 000077
【図３８】
2005500191.tif 000078
【図３９】
2005500191.tif 000079
【図４０】
2005500191.tif 000080
【図４１】
2005500191.tif 000081
【図４２】
2005500191.tif 000082
【国際公開パンフレット】
2005500191.tif 000083
2005500191.tif 000084
2005500191.tif 000085
2005500191.tif 000086
2005500191.tif 000087
2005500191.tif 000088
2005500191.tif 000089
2005500191.tif 000090
2005500191.tif 000091
2005500191.tif 000092
2005500191.tif 000093
2005500191.tif 000094
2005500191.tif 000095
2005500191.tif 000096
2005500191.tif 000097
2005500191.tif 000098
2005500191.tif 000099
2005500191.tif 000100
2005500191.tif 000101
2005500191.tif 000102
2005500191.tif 000103
2005500191.tif 000104
2005500191.tif 000105
2005500191.tif 000106
2005500191.tif 000107
2005500191.tif 000108
2005500191.tif 000109
2005500191.tif 000110
2005500191.tif 000111
2005500191.tif 000112
2005500191.tif 000113
2005500191.tif 000114
2005500191.tif 000115
2005500191.tif 000116
2005500191.tif 000117
2005500191.tif 000118
2005500191.tif 000119
2005500191.tif 000120
2005500191.tif 000121
2005500191.tif 000122
2005500191.tif 000123
2005500191.tif 000124
2005500191.tif 000125
2005500191.tif 000126
2005500191.tif 000127
2005500191.tif 000128
2005500191.tif 000129
2005500191.tif 000130
2005500191.tif 000131
2005500191.tif 000132
2005500191.tif 000133
2005500191.tif 000134
2005500191.tif 000135
2005500191.tif 000136
2005500191.tif 000137
2005500191.tif 000138
2005500191.tif 000139
2005500191.tif 000140
2005500191.tif 000141
2005500191.tif 000142
2005500191.tif 000143
2005500191.tif 000144
2005500191.tif 000145
2005500191.tif 000146
2005500191.tif 000147
2005500191.tif 000148
2005500191.tif 000149
2005500191.tif 000150
2005500191.tif 000151
2005500191.tif 000152
2005500191.tif 000153
2005500191.tif 000154
2005500191.tif 000155
2005500191.tif 000156
2005500191.tif 000157
2005500191.tif 000158
2005500191.tif 000159
2005500191.tif 000160
2005500191.tif 000161
2005500191.tif 000162
2005500191.tif 000163
2005500191.tif 000164
2005500191.tif 000165
2005500191.tif 000166
2005500191.tif 000167
2005500191.tif 000168
2005500191.tif 000169
2005500191.tif 000170
2005500191.tif 000171
2005500191.tif 000172
2005500191.tif 000173
2005500191.tif 000174
2005500191.tif 000175
2005500191.tif 000176
2005500191.tif 000177
2005500191.tif 000178
2005500191.tif 000179
2005500191.tif 000180
2005500191.tif 000181
2005500191.tif 000182
2005500191.tif 000183
2005500191.tif 000184
2005500191.tif 000185
2005500191.tif 000186
2005500191.tif 000187
2005500191.tif 000188
2005500191.tif 000189
2005500191.tif 000190
2005500191.tif 000191
2005500191.tif 000192
2005500191.tif 000193
2005500191.tif 000194
2005500191.tif 000195
2005500191.tif 000196
2005500191.tif 000197
2005500191.tif 000198
2005500191.tif 000199
2005500191.tif 000200
2005500191.tif 000201
2005500191.tif 000202
2005500191.tif 000203
2005500191.tif 000204
2005500191.tif 000205
2005500191.tif 000206
2005500191.tif 000207
2005500191.tif 000208
2005500191.tif 000209
【国際調査報告】
2005500191.tif 000210
2005500191.tif 000211