(57)【特許請求の範囲】
【請求項１】
使用可能な補助メモリの集合を有するプリンタのプレラスタ化の方法であって、前記プリンタは受け取ったプリントコマンドをページ・ストリップに割り当てる手段を含んでおり、それぞれのページ・ストリップは受け取ったプリントコマンドに対応するページ中間形式コードの表示リストを有しており、前記方法は、前記受け取ったプリントコマンドが直接ラスタ化しきい値を超えるかどうかを、プリントのための他のプロセスによっても用いられる使用可能な補助メモリに適応させて決定し、超えると決定した場合には前記受け取ったプリントコマンドをプレラスタ化する方法であって、
（ａ）ページに印刷するそれぞれのオブジェクトについて、どのページ・ストリップまたは複数のページ・ストリップ内に前記オブジェクトが存在するか決定するステップと、
（ｂ）第１ページ・ストリップに存在する前記オブジェクトの部分について、前記オブジェクトの前記部分のプリント複雑さ係数を求めるステップと、
（ｃ）前記プリント複雑さ係数を、前記第１ページ・ストリップに存在するオブジェクトについて前に求めたプリント複雑さ係数に加えて、前記第１ページ・ストリップの中間ストリップ複雑さ係数を決定するステップと、
（ｄ）前記プリンタの前記使用可能な補助メモリに適応させて関連付けされている直接ラスタ化しきい値を決定するステップと、
（ｅ）前記中間ストリップ複雑さ係数が前記直接ラスタ化しきい値を超える場合は、前記使用可能な補助メモリの一部を前記第１ページ・ストリップに割り当てるステップと、
（ｆ）すでに受け取られて、前記第１ストリップ内に存在しているオブジェクトの部分をラスタ化し、前記オブジェクトの前記ラスタ化した部分を前記第１ページ・ストリップに割り当てられた使用可能な補助メモリに格納するステップと、
（ｇ）その後に受け取られた前記第１ページ・ストリップに存在するオブジェクトの部分をラスタ化し、前記オブジェクトの前記ラスタ化した部分を前記第１ページ・ストリップに割り当てられた使用可能な補助メモリに格納するステップと
を含むプレラスタ化方法。
【請求項２】
（ａ１）オブジェクトの部分に対応する受け取ったプリントコマンドをページ中間形式コードに変換し、前記ページ中間形式コードを前記第１ページ・ストリップに対する表示リストに配置するステップと、
（ｂ１）前記中間ストリップ複雑さ係数が前記直接ラスタ化しきい値を超えない場合、
次に受け取ったプリントコマンドに対しステップａ〜ｇを実行するステップと、
をさらに含む請求項１に記載の方法。
【請求項３】
ステップｆが前記表示リストからの前記中間形式コードにより定義されたオブジェクトをラスタ化するステップを含み、前記第１ページ・ストリップに対する前記表示リストにより占有されるメモリが他の用途に利用できる請求項２に記載の方法。
【請求項４】
（ｈ）前記ページ・ストリップのすべてのオブジェクト部分が受け取られ、かつ前記すべてのオブジェクト部分に対応する中間形式コードの累積プリント複雑さ係数が前記直接ラスタ化しきい値を超えない場合は、ページ・ストリップに対する表示リストを後のラスタ化に備えて待ち行列内に配置するステップ
をさらに含む請求項１に記載の方法。
【請求項５】
前記直接ラスタ化しきい値が、使用可能補助メモリが減少するときには高レベルに調節され、また使用可能補助メモリが増加するときには低レベルに調節される請求項１に記載の方法。
【請求項６】
前記プリント複雑さ係数が、オブジェクトの部分に対応する中間形式コードをラスタ化するのに必要な時間長さの尺度である請求項１に記載の方法。
【請求項７】
前記プリント複雑さ係数が、ページ・ストリップに対する表示リスト内の中間形式コードのバイト数量の尺度である請求項１に記載の方法。
【請求項８】
オブジェクトの部分が第１ページ・ストリップに割り当てられ、さらにしきい値比較が前記オブジェクト部分に対し省略されると、ステップｇのラスタ化動作が即座に作動する請求項１に記載の方法。
【請求項９】
使用可能な補助メモリの前記集合に割り当てられるメモリ量を、他の動的に発生する手順に対して現在使用されていないメモリの量に従って調整するステップをさらに含む請求項１に記載の方法。
【請求項１０】
使用可能な補助メモリの前記集合に割り当てられるメモリ量を、前記プリンタの構成時に調整するステップをさらに含む請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、プリンタに関し、より詳細には、定速プリント機構がプリント待ちのデータを確実にラスタ化する方法および装置に関する。
【０００２】
【従来の技術】
従来技術のページプリンタには、イメージを紙上に写す前に、ページ全体のイメージを捕捉するものが多い。「プリント機構」としてレーザ・エンジンを用いたプリンタにおいては、データを供給する速度はプリント動作に遅れずについていくのに十分速くなければならない。このようなプリンタにおいては、ホスト・コンピュータがページのフォーマットを行って大量のラスタ化したイメージのデータをプリンタに高速で転送するか、プリンタ自体の中にあるフォーマッタがページのフォーマットを行うかのいずれかである。レーザプリントエンジンは定速で動作するので、あるイメージ・データのある区画のプリントが完了したときに、ラスタ化した次のイメージ・データが使用可能でない場合には、「プリントオーバーラン」が起こり、そのページをプリントすることができなくなる。
【０００３】
プリントオーバーランを避けるために多くの方法が用いられてきた。第１に、プリンタ内にページ全体のフルのラスタ・ビット・マップを記憶して、プリント機構が常にプリント待ちのラスタ化されたデータを有しているようにする。この方法では、それぞれのページについて大量のランダム・アクセス・メモリが必要である。第２の方法では、表示リストを構成して、ページのイメージを２ステップで作り上げる。フォーマットを行う間、ホストから受け取ったページ記述が、プリントしなければならないものを記述する表示コマンドと呼ばれる一連の簡単なコマンドに変換される。表示コマンドは分解され、次に、表示されるべきオブジェクトがイメージのラスタ・ビット・マップにされる。この手続きにより、プリントイメージに用いるランダム・アクセス・メモリの量を減らすことができる。
【０００４】
従来技術においては、さらに第２の方法を改良し、ページ上における表示コマンドを上から順に分類して、次にページをページ・ストリップと呼ばれる断片に分割し、ページ・ストリップを個別にラスタ化してプリントエンジンに送ってプリントする、というものがある。このようなプリンタがイメージコマンドを受け取ると、コマンドは処理されてラスタ・グラフィックス・データが取り出される。このとき、サブイメージが作り出される。次に、サブイメージが連結されてページを表示するための中間言語（ページ中間言語）となる。ページ中間言語というのは、ページ全体の情報をビデオに容易に変換できる形式で表示しながら、できるだけメモリの消費を少なくするする方法である。ページ中間言語処理は基本的に、それぞれのページ・ストリップに、規定した数の「インストラクションバケット」を割り当てる。それぞれのストリップには、高さ（たとえば１２８ドット）が割り当てられ、所定の大きさの一連のバケットへのポインタが含まれる。それぞれの「バケット」には、そのストリップについてどのようにラスタ・ビデオを作り出すべきかを規定するインストラクションが含まれる。複数のストリップに及ぶサブイメージ（および他の中間オブジェクト）は、それらが入っているページ・ストリップごとにインストラクションを有する。
【０００５】
ページ中間言語データがそれぞれのページ・ストリップに割り当てられると、ページ・ストリップは個別にラスタ化され、プリントエンジンに送られプリントされる。ページ中間言語データが十分速い速度でラスタ化されるときには、第１のページ・ストリップを記憶するのに用いた同じメモリをそのページ内のその先のページ・ストリップに再使用することができる。しかし、ある状況の下では、複雑なページ・ストリップの中には大量のページ中間言語データを含み、ラスタ化に通常よりも長い時間を必要とするものがある。このラスタ化時間が長すぎる場合には、継続するストリップが時間どおりに供給されず、プリントオーバーランが起こる可能性がある。
【０００６】
Cuzzo他の米国特許番号第5,129,049号においては、複雑なページ・ストリップが作り出す問題を扱うページプリンタが説明されている。Cuzzo他は、プリンタのページプリント時間をページ・ストリップの数で割って計算したページ・ストリップラスタ化時間を、それぞれのページ・ストリップに割り当てている。次に、ページ・ストリップに割り当てられたページ中間言語データの複雑さに基づいて、ページ・ストリップに割り当てられたページ中間言語データのラスタ化時間（ＲＥＴ）が計算される。ページ・ストリップに割り当てられたページ中間言語データのＲＥＴが、割り当てられたページ・ストリップラスタ化時間を超える複雑なページ・ストリップであることを示す場合には、複雑なページ・ストリップのページ中間言語データが直接ラスタ化される。そうでない場合には、ページ・ストリップのページ中間言語データは待ち行列に挿入され、そのページ・ストリップの番になったときにラスタ化される。複雑なページ・ストリップの処理およびプリントが行われる番になると、そのストリップを前以ってラスタ化しておいたものが直ちにアクセスされてプリント機構に送られ、それによってプリントオーバーランが防がれる。
【０００７】
本発明と同時係属中の、Campbell他の米国特許出願番号第07/940,111号（譲受人が本願と同じ）において、ページ中間言語表示を用いたさらなる手続きが説明されている。ここでは、「メモリ不足」または「メモリ切れ」の状態を避けるための手続が用いられている。これらの手続きの中には、割り当てられたページ中間言語データが固定のしきい値を超えるようなページ・ストリップの事前ラスタ化を行うものがある。このようなページ・ストリップのページ中間言語データはビデオ・ラスタに即時に変換され、次に情報ロスのない圧縮技術を用いて圧縮される。次に、圧縮されたデータは、後でページ・ストリップがプリントエンジンに送られるときに用いるために記憶される。しかし、転送の前に、圧縮したラスタ・データの圧縮を伸張しなければならない。この圧縮および圧縮の伸張の動作には時間がかかり、プリントの高速化を達成するにあたって障害となる。
【０００８】
Campbell他の手続きの実施において、「スラッシング」状態が起こる可能性がある。スラッシングは、ラスタ化されたストリップのイメージ・データ用に使用可能なランダム・アクセス・メモリが「不足」であると示されているときに起こる。このとき、ページ・ストリップのページ中間言語コマンドがラスタ化され、ラスタ化されたデータが圧縮される。ラスタ化したページ・ストリップのページ中間言語データによって占有されていたメモリは割り当てを解除され、圧縮されたラスタ・ストリップ・データはばらばらに分割され、ページ中間言語コマンドの除去によって解放された使用可能なメモリであればどのメモリの中にでも入れられる。同時に、プリンタは他のラスタ・ストリップ・バッファからラスタ・データを読み出す。このすべてが達成された後であっても、メモリ不足状態は依然として起こって、切り分けたページ・ストリップの圧縮を解除して他の圧縮手続きを用いてこの過程を繰り返すことが必要となる可能性がある。これらすべての動作を行うのは時間がかかり、プリンタの動作速度を非常に遅くする可能性がある。バッファ・メモリをさらにつけ加えることで問題は軽減するが、このバッファ・メモリは巧妙に用いなければならない。さもなければ、プリンタの性能およびコストに悪影響を及ぼす可能性がある。
【０００９】
【発明が解決しようとする課題】
従って、本発明の目的は、定速プリント機構におけるプリントオーバーランの可能性を低減する改良した方法および装置を提供することである。
【００１０】
本発明のもう一つの目的は、データの圧縮および圧縮の伸張の必要のないプリントデータを取り扱う、改良した方法および装置を提供することである。
【００１１】
本発明のもう一つの目的は、ラスタ化したプリントデータにとって使用可能なランダム・アクセス・メモリの量に適応するようにページ中間言語処理の使用を調整する、改良した定速プリンタを提供することである。
【００１２】
【課題を解決するための手段】
プリンタは、受け取ったプリントコマンドをプリントするべきページ・ストリップにページ中間言語の形式で割り当てる手続きを備える。続いて、ページ・ストリップはラスタ化される。プリンタは、受け取ったプリントコマンドが、適応するように決定した複雑さしきい値を超えるかどうかをあらかじめ判断する方法を実施し、超えると判断した場合には、受け取ったプリントコマンドは直接ラスタ化され、補助メモリに記憶される。その方法は、次のステップを含む：
ページ上にプリントするべきそれぞれのオブジェクトについて、どのページ・ストリップにオブジェクトが存在しているかを決定する；
オブジェクトのうちの第１のページ・ストリップ内に存在するオブジェクトの部分について、オブジェクトのその部分のプリント複雑さ係数を求める；
求めたプリント複雑さ係数をその前に求めたプリント複雑さ係数と合計して、ページ・ストリップの中間ストリップ複雑さ係数を決定する；
使用可能な補助メモリの量に応じて変化する直接ラスタ化しきい値を定める；
中間ストリップ複雑さ係数を直接ラスタ化しきい値と比較し、中間ストリップ複雑さ係数がしきい値を超える場合には、第１のストリップ内のすべてのオブジェクトをラスタ化し、ラスタ化したデータを補助メモリに記憶する。
【００１３】
【発明の実施例】
図１を参照して、本発明を組み込んだページプリンタはページ２０を一連のストリップとして取り扱う。例として、それぞれページ２０の水平方向をカバーする１０個のストリップが示されている。どの１個のページ・ストリップに現れるテキスト、グラフィックス、等も、ページの処理の際には別個に取り扱われる。ページプリンタに１分あたり８ページをプリントする能力があると仮定すると、それぞれのページは７．５秒で作成されることになる。１０個のストリップがあるので、それぞれのストリップには０．７５秒のページ・ストリップ・ラスタ化時間（ＰＳＲＴ）が任意に割り当てられることになる。概略の話をすれば、ＰＳＲＴはページ・ストリップに割り当てられた一連のページ中間言語ディスプレイコマンドの処理（すなわちラスタ化）に使用可能な時間を示す。ラスタ化がＰＳＲＴ内で行われる場合には、ページプリンタはその仕様のページプリント速度を維持することができ、プリントオーバーランは起こらない。１０個のストリップを選択したのは単に例示しただけであり、ページ・ストリップの他の割り当て方も意図されている。
【００１４】
図２において、高水準ブロック図は本発明を組み込んだページプリンタを示す。ページプリンタはマイクロプロセッサ３０が制御している。マイクロプロセッサ３０はプリンタの他の構成要素とバス３２を通して情報のやりとりをしている。プリントエンジン制御装置３４と、関連するプリントエンジン３６がバス３２に接続され、プリンタにプリント出力能力を与えている。プリントエンジン３６は、当業者に公知の電子写真式イメージングシステムを用いたレーザ・プリンタであることが好ましい。
【００１５】
Ｉ／Ｏポート３８によって、ページプリンタとホスト・コンピュータの間で情報のやりとりがされ、Ｉ／Ｏポート３８はホスト・コンピュータからページ記述を受け取り、ページプリンタ内で処理する。ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）４０は、ページプリンタのランダム・アクセス・メモリとなっている。ＤＲＡＭ４０の一部には、ページ・ストリップ処理の間に用いられる、あらかじめ割り当てられた３個のラスタ・バッファが含まれている。補助ランダム・アクセス・メモリ（ＲＡＭ）４２は、バス３２に接続され、ストリップ複雑さ係数を超える、ラスタ化されたページ・ストリップ・データを記憶するように割り当てることのできる、付加的なＲＡＭである。補助メモリ４２は、ＤＲＡＭ４０とは別個であっても、その一部であってもよい。この説明においては、別個のメモリモジュールとして考える。
【００１６】
読み出し専用メモリ（ＲＯＭ）４４は、ページプリンタの動作を制御するファームウェアを保持する。ＲＯＭ４４中に記憶されているコード手続きには、次のようなものがある：
ページ・コンバータ；
ラスタライザ；
直接モード手続き；
プリントエンジン・マネジャー。
ページ・コンバータのファームウェアは、ホスト・プロセッサから受け取ったページ記述をそれぞれのページ・ストリップの表示コマンドリスト（すなわち、ページ中間言語）に変換する。それぞれの表示コマンドは、そのページ・ストリップにおいてプリントされるべきオブジェクトを規定する。ラスタライザのファームウェアは、それぞれの表示コマンドを適切なビット・マップに変換し、それはページ・ストリップ・バッファにおいて記憶される。ページプリントスケジューラ（図示せず）は、ストリップ・バッファの順序づけおよびＤＲＡＭ４０からプリントエンジン制御装置３４への転送を制御する。プリントエンジン・マネジャーは、プリントエンジン制御装置３４の動作を制御し、結局はプリントエンジン３６の動作を制御する。
【００１７】
直接モード手続き４６により、ページ・ストリップに割り当てられている表示コマンドがストリップ複雑さ係数を超えているかどうかを決定することができる。超えていると決定した場合、直接モード手続き４６は、そのページ・ストリップについてさらにページ中間言語の処理を行うことを阻止し、そのページ・ストリップを直接ラスタ化できるようにする。直接モード手続きは、直接モードでラスタ化されるページ・ストリップに対して割り当て可能な補助メモリ４２の量に適応するように、ストリップ複雑さ係数を調整する。直接モード手続きについては、以下に詳細に説明する。
【００１８】
図２のページプリンタの動作は、ホスト・コンピュータからＩ／Ｏポート３８を通してページ記述を受け取ったときに開始する。ページ記述はＤＲＡＭ４０内に置かれ、次にマイクロプロセッサ３０がページ記述コマンドにアクセスして、ＲＯＭ４４内のページ・コンバータのファームウェアを用いて表示コマンドリストを作り上げる。表示コマンドリストは、プリントしなければならないものを記述する１組のコマンドであり、上述のページ中間言語フォーマットを含む。表示コマンドリストが作成されるとき、それぞれの表示コマンドはそのページ上の位置によって並べ替えられ、１つまたは複数のページ・ストリップに割り当てられる。次に、それぞれのページ・ストリップのページ中間言語コマンド（すなわち、表示リスト）がラスタ化したビット・マップに変換され、プリントエンジン３６に利用される。
【００１９】
ページ記述が表示コマンドに変換されているとき、それぞれの表示コマンドを調べ、そのラスタ化実行時間（ＲＥＴ）を求める。次に、表示コマンドがその位置によって並べ替えられ、ページ・ストリップに割り当てられるとき、ストリップに付け加えられた新しい表示コマンドのＲＥＴが、前にそのストリップに割り当てられた表示コマンドのＲＥＴに加算される。
【００２０】
ＲＥＴというのは、オブジェクトをその表示コマンドの形式からラスタ化した形式にするのに必要な時間である。ラスタ化時間は、３個の別個の係数を合計することで求められることがわかっている。第１の係数は「オーバーヘッド(overhead)」と呼ばれ、オブジェクトの大きさに関係なくオブジェクトに対してマイクロプロセッサ３０が費やす一定量の時間である。第２の係数は「高さコスト」であり、オブジェクトの高さに比例するもので、オブジェクトの幅には関係ない。第３の係数は「語コスト」と呼ばれ、宛先のビット・マップ・ストリップに書き込まれる語の数に比例するもので、オブジェクトの高さには関係ない。オブジェクトの実際のＲＥＴとＲＥＴの予測方法の関係は、使用するラスタ化アルゴリズムとマイクロプロセッサの実行速度によって決まるものである。従って、特別に用いたラスタ化アルゴリズムやオブジェクト・モデルによっては、係数や記述的パラメータをさらに用いることが有用であると考えられるかもしれない。
【００２１】
すべてのオブジェクト（たとえば、ベクトル、台形、ビット・マップ）について、それぞれ異なる１組の係数を有するＲＥＴをあらかじめ決定することができる。様々な予測されるオブジェクトからいったん係数を決定すると、それらの係数はテーブル内に記憶され、プリントするべきオブジェクトのタイプや寸法がわかったときに続いてアクセスされる。従って、いかなる表示コマンドのＲＥＴも、あらかじめ計算した係数のテーブル索引を用いて、係数を合計したりオブジェクトの大きさにより修正したりして、容易に決定することができる。
【００２２】
オブジェクトの「大きさ」は、そのオブジェクトを記述するのに必要な表示リストにおけるバイト数によって決定されるものであり、本発明の直接モードラスタ化手続きを実施するかどうかを決定するときに以下で用いられるような、さらに別の独立な基準である。
【００２３】
ここまででわかるように、ページ構成の際、ページプリンタは、オブジェクトをラスタ化した形式にするのに必要な総時間（ＲＥＴ）およびオブジェクトの表示リストにおけるバイト数によって明白になるオブジェクトの大きさを計算する。大きさとＲＥＴのどちらも、直接モード手続きを実施するべきかどうかを決定するのに利用されるページ・ストリッププリント複雑さ係数である。
【００２４】
次に図３および図４において、図示のフロー図に関して直接モード手続きを説明する。なお、図３、図４における各ボックスの内容は以下の通りである。
５０：Ｉ／Ｏストリームからの次のコマンドを得る。
５２：オブジェクト出力コマンドを受け取ったか。
５４：オブジェクト出力コマンドでないものを実行する。
５６：コマンドによって記述されるオブジェクトを隣接する構成要素の単純な部分に分解し、その単純な部分と交差する最上のストリップを決定する。
５８：現在処理されているページ・ストリップと交差する単純なオブジェクトの部分を、そのページ・ストリップの境界との交点によって論理的に識別する。
６０：サブオブジェクト処理レベルに必要な入力データ（現在のページ・ストリップの座標、現在のページ・ストリップ内のサブオブジェクトの寸法、そのストリップ内のサブオブジェクトとサブオブジェクトの座標、そしてサブオブジェクトのタイプ）を集め、計算する。
６２：使用可能な直接モードのページ・ストリップの数を用いて、時間しきい値および大きさしきい値を計算する。
６４：サブオブジェクト処理レベル（図４中のボックス６６）の呼び出しを行う。
６６：サブオブジェクト処理レベル。（図３中のボックス６４から呼び出される。）サブオブジェクトの全てのパラメータがこのレベルに入力される。
６８：直接モードのページ・ストリップか。
７０：直接ラスタ化する。
７２：ページ・ストリップに存在するオブジェクトの部分のプリント複雑さ係数を求める。
７４：直接モードが操作可能として構成されているか。
７６：処理中のストリップの累算したＲＥＴ時間が時間しきい値を超えるか。
７８：補助メモリ４２における直接モードに有効なメモリのプールからラスタ・バッファ・メモリのストリップがアクセスされる。ラスタ・バッファ・メモリのストリップが即時に使用可能でない場合には、手続きは処理中のページがプリントされて直接モードのストリップが解放されるまで待機する。
８０：累算した表示リストの大きさが大きさしきい値より大きいか。
８２：処理中のページ・ストリップの表示リストをラスタ化し、使用可能なラスタ・バッファ・メモリのストリップに記憶する。
８４：ページ・ストリップを直接モードのストリップとして指定する。
８６：処理中のストリップの表示リストに用いたすべてのメモリの割り当てを解除する。
９０：次のストリップへ進む。
９２：現在最新のストリップがまだ前に処理したサブオブジェクトと交差していないか。
９４：オブジェクトをサブオブジェクトに分解していて、より単純なオブジェクトが残っていないか。
要するに、直接モード手続きによって、選択したページ・ストリップを直接ラスタ化し、他のストリップについてはページ中間言語手続きを用いる、ということが可能になる。この手続きのために、補助メモリ４２はラスタ・ストリップ・バッファに分割され、これらのバッファは順番に直接モード手続きに割り当てられる。ラスタ化されたイメージがプリントエンジン３６によってプリントされたとき、プリントされるイメージが占有していたＲＡＭは解放されて補助メモリ４２に戻る。
【００２５】
５０に示すように、手続きの第１ステップは、ホスト・コンピュータから受け取るＩ／Ｏストリームからの次のコマンドにアクセスすることである。次に、コマンドを調べ、「オブジェクト出力」であるかどうかを判定する。オブジェクト出力コマンドであれば、プリントエンジン３６によってプリントページ上にプリント出力を与えることが必要である。オブジェクト出力コマンドではない他のコマンドをプリンタが受け取っていれば、それらは標準の方法で５４に示すように実行される。オブジェクト出力コマンドを受け取っていれば（判断ボックス５２）、５６に送って、そこでページ中間言語の形式に変換する。コマンドによって記述されるオブジェクトは「隣接する構成要素の単純な部分」に分解され、その単純な部分と交差する最上のストリップが決定される。
【００２６】
より詳細には、オブジェクトはいくつかの構成要素部分に切り分けられ、それぞれの部分について、交差するページ・ストリップに関する位置が求められる。より単純なオブジェクトに分割する必要のあるオブジェクトの一例が多角形である。多角形はラスタ化機能によって取り扱うことができる一連の台形に分解することができる。このタイプの分解は当業者には公知のものであり、さらなる説明は不要である。
【００２７】
次に、５８に示すように、現在処理されているページ・ストリップと交差する単純なオブジェクトの部分が、そのページ・ストリップの境界との交点によって論理的に識別される。ストリップ内に存在する単純なオブジェクトの部分は、「サブオブジェクト」と呼ばれる。たとえば、文字Ａのてっぺんの三角形の部分が現在のページ・ストリップ内に位置する唯一の部分である場合には、その三角形が最上のサブオブジェクトとなる。
【００２８】
次に、図４に示すサブオブジェクト処理レベルに必要な入力が決定される。これらの入力とは、現在のページ・ストリップの座標、現在のページ・ストリップ内のサブオブジェクトの寸法、そのストリップ内のサブオブジェクトとサブオブジェクトの座標、そしてサブオブジェクトのタイプである。サブオブジェクトのタイプは、オブジェクトをラスタ化する時間に影響を及ぼす。例えば、オブジェクトが背景のパターニングを含んでいたり、ラスタ化の方向と鋭角をなす様々な傾斜した縁を含んでいたりする場合には、そのオブジェクトのラスタ化時間は非常に長くなるかもしれない。
【００２９】
マイクロプロセッサ３０（図２）は、ラスタ化したページ・ストリップを保持するのに使用可能な補助メモリ４２内に、使用可能な直接モードのストリップの数だけのトラックを維持する。図３の手続きは、その使用可能な直接モードのページ・ストリップの数を用いて、ページ・ストリップの直接モードのラスタ化を実施するべきかどうかを決定するのに用いる２個のしきい値を計算する。この点について、しきい値調整テーブルがアクセスされ、補助メモリ４２からの使用可能な直接モードのページ・ストリップの数により、しきい値調整係数がアクセスされて、しきい値の計算に用いられる。下記の表１は、ＲＯＭ４４において記憶されている、しきい値調整テーブルの一例を示す。
【００３０】
【表１】
0003741749.tif 000002
【００３１】
表１の左端の列は、ラスタ化したページ・ストリップのデータを記憶するのに使用可能な補助メモリ４２において、残っているメモリのメガバイト数を示す。中央の列は、使用可能な補助メモリのメガバイト数によってテーブルが出力する、しきい値調整係数を示す。補助メモリ４２内の使用可能なメモリが多いほど、しきい値調整係数の値は低くなる。結果として得られる決定しきい値が低いほど、直接モードのラスタ化を受けるページ・ストリップは多くなり、それに付随して処理速度が速くなりプリント時間が短くなる。しかし、使用可能な直接モードのストリップのメモリが不十分なときには、しきい値調整係数が大きくなることで、残っている直接モードのストリップをそれらが本当に必要となるまで保存する助けとなる。しきい値調整係数は、このように、補助メモリ４２からのストリップの使用を「絞る」が、これにより可能なときにプリント速度を改善することができ、従って不必要なメモリアウトを避けることができる。
【００３２】
時間しきい値および大きさしきい値（あらかじめ記憶されている）が次にアクセスされ、表１に示すしきい値調整係数にしたがい修正される。時間しきい値は、これを超えると、ある特定のページ・ストリップに現在割り当てられているサブオブジェクトの累計のＲＥＴがページ全体をラスタ化するのに必要な時間に関して過度である（たとえば、ＰＳＲＴの６０％を超える）ということを示す値である。このような場合、ページ中間言語変換を行った後にページ・ストリップのラスタ化を行うということを避けて、直接ラスタ化を用いねばならない、ということが知られている。
【００３３】
大きさしきい値は、処理中のページ・ストリップに対応して既に構成してあるページ中間言語表示リストにおけるバイト数と直接関係する。バイト数が大きさしきい値（たとえば、ページ・ストリップの大きさの約半分−または他のユーザが設定することのできる値）を超える場合には、処理中のページ・ストリップの残りをページ中間言語の形式にし、次にイメージをラスタ化するのに必要な処理時間が長すぎることになる、ということが知られている。このような場合には、手続きは直接モードのラスタ化に移る。
【００３４】
時間しきい値は主要なしきい値であり、大きさしきい値はそれに従属するものであるが、たとえ、時間しきい値を超えていない場合であっても、ページ・ストリップの残りの直接ラスタ化に進む必要を示すかもしれない。
【００３５】
この段階で、サブオブジェクトの処理に必要なすべての入力が使用可能であり、処理はサブオブジェクト処理レベルの呼び出しを行い（６４）、求めたしきい値、ストリップの座標、サブオブジェクトのタイプ、等の全てを６６に転送する（図４）。処理中の動作は１個のサブオブジェクトについてのものであるが、前のサブオブジェクトがそのページ・ストリップに対応して既に処理されているかもしれない、ということを思い出してほしい。従って、手続きは判断記号６８に移り、前のサブオブジェクトの処理によってそのページ・ストリップが既に直接モードのストリップとして分類されているかどうかを判断する。そうである場合には、手続きはサブオブジェクトを直接ラスタ化し（７０）、図３に戻って次のコマンドをＩ／Ｏストリームから得る（５０）。
【００３６】
処理中のストリップがまだ直接モードのストリップとして分類されていないと判断した場合には（判断記号６８）、手続きはストリップの表示リストに、そのサブオブジェクトに対応するページ中間言語コマンドを付け加える。同時に、処理中のストリップの大きさの値が、付け加えられたページ中間言語のバイト数にしたがって増加する。処理中のストリップのための累計のラスタ化時間もまた、そのサブオブジェクトのＲＥＴ係数を参照して決定したＲＥＴを加えることによって増加する（７２）。これらの動作はともに、そのページ・ストリップについて既に受け取られたコマンドのラスタ化時間の尺度である中間ストリップ複雑さ係数を作り出す。
【００３７】
直接モードが操作可能として構成されていると仮定して（判断記号７４）、処理中のストリップの累算した大きさの値およびその累計のラスタ化時間（ＲＥＴ）が、次にあらかじめ計算した時間および大きさしきい値と比較される。判断記号７６において、処理中のストリップの累算したＲＥＴ時間が時間しきい値と比較され、時間しきい値を超える場合には、処理中のストリップは７８、８２、８６を含む直接モードラスタ化経路へと進む。処理中のストリップの累算したＲＥＴ時間が時間しきい値を超えない場合には、累算した表示リストの大きさが大きさしきい値と比較される（判断記号８０）。表示リストの大きさが大きさしきい値を超える場合には、処理中のストリップは７８、８２、８６で示す直接モード処理ステップに沿うよう方向づけられる。そうでない場合には、処理中のストリップの処理は図３に戻り、次のコマンドがＩ／Ｏストリームからアクセスされる（５０）。
【００３８】
処理中のページ・ストリップが直接モードの経路に沿って方向づけられている場合には、補助メモリ４２における直接モードに有効なメモリのプールからラスタ・バッファ・メモリのストリップがアクセスされる。ラスタ・バッファ・メモリのストリップが即時に使用可能でない場合には、手続きは処理中のページがプリントされて直接モードのストリップが解放されるまで待機する（７８）。このようなストリップが使用可能なとき、処理中のページ・ストリップの表示リストはラスタ化され、使用可能なラスタ・バッファ・メモリのストリップに記憶される（８２）。ページ・ストリップは、次に直接モードのストリップとして指定され（８４）、同様の直接モードのストリップの待ち行列内に置かれる。最後に、処理中のストリップの表示リストに用いられたすべてのメモリが、不要になったため割り当てを解除される。このステップにおいて、サブオブジェクト処理手続きは完了し、５０へと戻る。
【００３９】
ストリップのすべてのサブオブジェクトが（図４に示す手続きにしたがって）処理されると、手続きは次のストリップへと進み（９０）、元の状態に戻って次のコマンドを得るというステップに進む前に、現在最新のストリップがまだ前に処理したサブオブジェクトと交差しているかどうかについて判断がなされる。そうである場合には、手続きはループの５８に戻って現在最新のストリップ内のサブオブジェクトの部分を考察する。最後に、オブジェクトをサブオブジェクトに分解していて、より単純なオブジェクトが残っている場合には、手続きはループの５６に戻って継続する。
【００４０】
今まで、補助メモリ４２が、そこからラスタ・ストリップ・バッファが割り当てられるような、比較的一定の大きさのメモリのプールを含んでいると仮定してきた。直接モード手続き４６はさらに、プリンタ内のＲＡＭを補助メモリ４２として適応した割り当てになるように調整する能力を有する。たとえば、使用可能なＲＡＭが過剰であって、他に必要ではない、とマイクロプロセッサ３０が動的に決定する場合には、この過剰なＲＡＭは補助メモリ４２に割り当てられたＲＡＭのプールに付け加えることができる。このような動作によって、しきい値調整係数（表１）の増加が遅れ、より多くのページストリップが直接モードを扱うようになり、それによって、確実にプリンタの動作がより能率的になる。さらに、補助メモリ４２に割り当てられたＲＡＭの量もまた、初めのプリンタ構成作業を通してユーザが調整することができる。
【００４１】
上述の説明は本発明を単に例示したものである、ということが理解されるべきである。当業者であれば、本発明から逸脱することなく様々な代替や変更を考案することができる。従って、本発明は添付の特許請求の範囲内にある全てのこのような代替、変更、変化を包含するよう意図されている。
【００４２】
【実施態様】
なお、本発明の実施態様の例を以下に示す。
【００４３】
〔実施態様１〕
使用可能な補助メモリ（４２）のプールを有するプリンタのプレラスタ化の方法であって、前記プリンタは、受け取ったプリントコマンドをページストリップに割り当てる手段（３０、４４）を含んでおり、それぞれのページストリップは受け取ったプリントコマンドに対応するページ中間言語形式コードの表示リストを有しており、前記方法は、前記受け取ったプリントコマンドが直接ラスタ化しきい値を超えるかどうかを適応するように決定し、超えると決定した場合には、前記受け取ったプリントコマンドをプレラスタ化する方法であって、以下の（ａ）〜（ｇ）のステップを含むことを特徴とする方法：
（ａ）ページ上にプリントするべきそれぞれのオブジェクトについて、どのページ・ストリップに前記オブジェクトが存在するかを決定する（５６、５８）；
（ｂ）第１のページ・ストリップに存在する前記オブジェクトの部分について、前記オブジェクトの前記部分のプリント複雑さ係数を求める（７２）；
（ｃ）前記プリント複雑さ係数を、前記第１のページ・ストリップに存在するオブジェクトについて前に求めたプリント複雑さ係数に加えて（７２）、前記第１のページ・ストリップの中間言語ストリップ複雑さ係数を決定する；
（ｄ）前記プリンタにおいて使用可能な補助メモリに適応するように関連づけられた直接ラスタ化しきい値を決定する（６２）；
（ｅ）前記中間言語ストリップ複雑さ係数が前記直接ラスタ化しきい値を超える場合には、前記使用可能な補助メモリ（４２）の一部を前記第１のページ・ストリップに割り当てる（７８）；
（ｆ）既に受け取られ、前記第１のページ・ストリップにおいて存在しているオブジェクトの部分をラスタ化し（８２）、前記オブジェクトの前記ラスタ化した部分を、前記第１のページ・ストリップに割り当てられた使用可能な補助メモリに記憶する；
（ｇ）前記第１のページ・ストリップにおいて存在している、その後受け取られたオブジェクトの部分をラスタ化し（７０）、前記オブジェクトの前記ラスタ化した部分を前記第１のページ・ストリップに割り当てられた使用可能な補助メモリにおいて記憶する。
【００４４】
〔実施態様２〕
（ａ１）オブジェクトの部分に対応する受け取られたプリントコマンドをページ中間言語形式コードに変換し（５６）、前記ページ中間言語形式コードを前記第１のページ・ストリップの表示リスト上に置き、
（ｅ１）前記中間言語ストリップ複雑さ係数が前記直接モードしきい値を超えない場合には、次に受け取られるプリントコマンドをステップ（ａ）〜（ｇ）に作用させること
をさらに含む、実施態様１に記載の方法。
【００４５】
〔実施態様３〕
ステップ（ｆ）が、前記表示リストからの前記中間言語形式コードで規定されるオブジェクトをラスタ化し、前記第１のページ・ストリップの前記表示リストが占有しているメモリにおいて、他の用途を有効にする、実施態様２に記載の方法。
【００４６】
〔実施態様４〕
（ｈ）ページ・ストリップにおけるすべてのオブジェクトの部分が受け取られ、前記すべてのオブジェクトの部分に対応する中間言語形式コードの累計のプリント複雑さ係数が前記直接ラスタ化しきい値を超えないときに、前記ページ・ストリップの表示リストを後のラスタ化のために待ち行列に置くこと（９０）
をさらに含む、実施態様１に記載の方法。
【００４７】
〔実施態様５〕
前記直接モードしきい値が、使用可能な補助メモリが減少するにつれて高くなるように調整され、使用可能な補助メモリが増加するにつれて低くなるように調整されることを特徴とする、実施態様１に記載の方法。
【００４８】
〔実施態様６〕
前記プリント複雑さ係数が、オブジェクトの部分に対応する中間言語形式コードをラスタ化するのに必要な時間の尺度であることを特徴とする、実施態様１に記載の方法。
【００４９】
〔実施態様７〕
前記プリント複雑さ係数が、ページ・ストリップの表示リストにおける中間言語形式コードのバイト数の尺度であることを特徴とする、実施態様１に記載の方法。
【００５０】
〔実施態様８〕
オブジェクトの部分が前記第１のページ・ストリップに割り当てられ、また前記オブジェクトの部分についてさらなるしきい値の比較が省略されるときに、ステップ（ｇ）のラスタ化動作が即時に起こることを特徴とする、実施態様１に記載の方法。
【００５１】
〔実施態様９〕
使用可能な補助メモリの、前記プールに割り当てられたメモリの量を、動的に起こっている他の手続きに現在用いられていないメモリの量に従って調整すること
をさらに含む、実施態様１に記載の方法。
【００５２】
〔実施態様１０〕
使用可能な補助メモリの前記プールに割り当てられたメモリの量を、前記プリンタの構成時に調整することをさらに含む、実施態様１に記載の方法。
【００５３】
【発明の効果】
以上詳細に説明したように、本発明によれば、ラスタ化したプリントデータにとって使用可能なランダム・アクセス・メモリの量に適応するようにページ中間言語処理の使用を調整することにより、プリントデータの圧縮および圧縮したものの伸張を必要とせず、定速プリント機構におけるプリントオーバーランの可能性を低減させる効果がある。
【図面の簡単な説明】
【図１】ページの概要であり、ページを１０個の連続するページ・ストリップに分割する方法を示す図である。
【図２】本発明を実施するプリンタの高水準ブロック図である。
【図３】本発明の方法を説明する高レベルフロー図である。
【図４】本発明の方法を説明する高レベルフロー図である。
【符号の説明】
３０  ・・・  マイクロプロセッサ
４２  ・・・  補助メモリ
４４  ・・・  ＲＯＭ
【図１】
0003741749.tif 000003
【図２】
0003741749.tif 000004
【図３】
0003741749.tif 000005
【図４】
0003741749.tif 000006