(57)【特許請求の範囲】
【請求項１】
１ページ分のビットマップメモリを有するページプリンタの制御方法において、
ページ内の一部領域に対するビットマップをその領域に対応するビットマップブロックメモリに記憶し、
そのビットマップブロックメモリの使用状態を示す信号を対応する管理メモリに記憶し、
管理メモリにビットマップブロックメモリの使用状態を示す信号が記憶されていれば、そのビットマップブロックメモリに記憶されているビットマップに基づいて印刷し、一方記憶されていなければ、そのビットマップブロックメモリの領域に対応する分の用紙送り指示を与え印刷をスキップさせることを特徴とするページプリンタの制御方法。
【請求項２】
頁記述コードをビットマップに展開する処理に用いられるワークメモリと、展開されたビットマップを記憶するビットマップメモリとを有するページプリンタの制御方法において、
１ページを構成する複数個の領域についてそれぞれの領域毎にビットマップに展開し、
展開されたビットマップをその領域に対応するビットマップブロックメモリに記憶し、
そのビットマップブロックメモリの使用状態を示す信号を対応する管理メモリに記憶し、
ワークメモリのメモリフル時に、前記管理メモリに使用状態を示す信号が記憶されていないビットマップブロックメモリをワークメモリとして使用することを特徴とするページプリンタの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ページプリンタにおいて、必要なメモリ容量を減少させる技術、あるいは、メモリ容量を増加させることなくメモリフルエラーの発生頻度を減少させる技術に関する。
【０００２】
【従来の技術】
通常のページプリンタは１ページ分のビットマップメモリを備え、そのビットマップメモリに記憶されているビットマップに基づいて印刷手段を制御して１ページの所望の印刷を実行する。ここでビットマップはページ内の画素毎に１ビットの信号を持ち、その画素に対する印刷の有無を示すデータの並びをいう。近年高画質化の要望から画素数が多くなり、ビットマップメモリの必要容量も大容量化している。
【０００３】
ページプリンタが機能するためには、その記憶手段のなかにビットマップメモリを確保する他、ホストコンピュータ（プリンタに印刷させるためのデータを生成するコンピュータをいう）から送られる頁記述コードを記憶するエリアや、その頁記述コードをビットマップに展開する処理に用いるワークメモリをも確保しなければならず、ビットマップメモリの必要容量が大容量化すると、それだけ他の処理のための記憶容量が減少し、メモリフルエラーが発生し易くなる。特に、グラフィクスを含む頁記述コードのデータ長は、ホストコンピュータを使用するオペレータがどれほど複雑な画面を作成するかによって変化し、それがために必要なワークエリアの容量も変化する。このためにプリンタの生産段階では、標準的な画面の複雑度を想定して必要容量を推定し、それに若干の猶余をもたせているものの、設計時に想定したよりも必要容量が多くなる画面が作成されるとメモリフルエラーの発生が避けられない。これを避けるためには大容量の記憶手段を用いざるを得なくなるが、そうするとプリンタの生産コストが増大してしまう。
【０００４】
【発明が解決しようとする課題】
そこで本発明では、限られた容量のメモリを有効に活用し、必要なメモリ容量を減少させるか、あるいは同一のメモリ容量でありながらメモリフルエラーが発生しにくくする技術を実現する。
【０００５】
【課題を解決するための手段】
本発明の一つの手段では、１ページ分のビットマップメモリを有するページプリンタの制御方法において、ページ内の一部領域に対するビットマップをその領域に対応するビットマップブロックメモリに記憶し、そのビットマップブロックメモリの使用状態を示す信号を対応する管理メモリに記憶し、管理メモリにビットマップブロックメモリの使用状態を示す信号が記憶されていれば、そのビットマップブロックメモリに記憶されているビットマップに基づいて印刷し、一方記憶されていなければ、そのビットマップブロックメモリの領域に対応する分の用紙送り指示を与え印刷をスキップさせることを特徴とする。
この方法によると、印刷処理の必要とされない領域に対応するビットマップブロックメモリを、他の処理のために使用しても、他の処理のためにそのビットマップブロックメモリに記憶されたデータに基づいた印刷が実行されず、所望の印刷が実行される。
この方法によると、限られた記憶容量のなかでメモリフルエラーの発生を低減し、高価な大記憶容量の記憶手段に対する必要性を低下できる。
【０００６】
本発明の他の一つの手段は、頁記述コードをビットマップに展開する処理に用いられるワークメモリと、展開されたビットマップを記憶するビットマップメモリとを有するページプリンタの制御方法において、１ページを構成する複数個の領域についてそれぞれの領域毎にビットマップに展開し、展開されたビットマップをその領域に対応するビットマップブロックメモリに記憶し、そのビットマップブロックメモリの使用状態を示す信号を対応する管理メモリに記憶し、ワークメモリのメモリフル時に、前記管理メモリに使用状態を示す信号が記憶されていないビットマップブロックメモリをワークメモリとして使用することを特徴とする。
【０００７】
この方法によると、印刷処理の必要とされない領域に対応するビットマップブロックメモリを用いて、ビットマップの展開処理が実行でき、仮にブロック分割しないでビットマップメモリを使用すればメモリフルエラーが発生する場合にもメモリフルエラーの発生を防止しつつ、ビットマップへの展開処理を継続することができる。
この方法によると、限られた記憶容量のなかでメモリフルエラーの発生を低減することができる。換言すると、メモリフルエラーの発生頻度を減少するために、大容量の記憶手段を使用する必要性を低減することができる。
【０００８】
【発明の実施の形態】
この発明の好ましい実施の形態としては、図１に例示するように、頁記述コードを記憶する受信バッファ２２と、その頁記述コードをビットマップに展開する処理手順を記憶しておくＲＯＭ１６と、その手順に基づいて処理を実行するＣＰＵ１４と、その手順に基づいた処理を実行する際にデータを一時的に記憶するために用いられるワークメモリ２４と、展開されたビットマップを記憶するビットマップメモリ２８とを有するページプリンタ１０において、
１ページ４０を構成する複数個の領域４２，４４…ごとにビットマップブロックメモリ３２，３４…を設け、
各ビットマップブロックメモリ３２，３４…毎に、対応する領域４２，４４…のビットマップを記憶したか否かを示す信号を記憶しておく管理メモリ２６を設け、
受信バッファ２２内の頁記述コードをＲＯＭ１６の手順に従ってＣＰＵ１４がビットマップに展開し、展開されたビットマップをその領域に対応するビットマップブロックメモリ３２，３４…に記憶する際に、そのビットマップブロックメモリに対応する管理メモリ２６に使用状態を示す信号を記憶し、
ワークメモリ２４のメモリフル時には、前記管理メモリ２６に使用状態を示す信号が記憶されていないビットマップブロックメモリ（３２，３４…のうちの１つか２以上）を拡張されたワークメモリとして使用し、
印刷時には、管理メモリ２６に使用状態を示す信号が記憶されているビットマップブロックメモリに記憶されているビットマップに基づいて印刷手段１８を制御する。
【０００９】
なおここでいう印刷手段１８は印字ヘッドや印字ヘッドを左右動させる機構や用紙送り機構等で構成され、直接的に印刷処理に寄与する手段を総称する。これは印刷処理中、ＲＯＭ１６に記憶されている手順と、ビットマップメモリ２８に記憶されているビットマップに基づいて、ＣＰＵ１４によって制御される。
なおＲＡＭ２０は１つの素子で構成される必要はなく、物理的には複数個の素子で構成されてもよい。またこの発明は単色プリンタのみならず、カラープリンタに具現化することが可能である。特に、各色毎にビットマップメモリを持つ形式のカラープリンタには各色ごとにこの発明を適用することができる。
【００１０】
【実施例】
次に本発明を具現化した一実施例について例示する。以下の実施例では、図２に示すページ４０を印刷する場合を例にして説明を進める。また図２に示すように１頁を４つの領域４２，４４，４６，４８に分割し、各領域４２，４４，４６，４８ごとにビットマップブロックメモリ３２，３４，３６，３８を設けた例を示す。なお頁を分割する数は２以上であればよい。
【００１１】
各ビットマップブロックメモリ３２，３４，３６，３８は各領域４２，４４，４６，４８の画素数に等しいビット数を有している。この実施例の場合、１頁が２４８１×３５０８の画素で構成される例を示し、各領域４２，４４，４６，４８の面積が等しいために、各ビットマップブロックメモリ３２，３４，３６，３８は２４８１×３５０８／４ビットの容量となっている。ビットマップメモリ内の特定アドレスは、ページ４０内の特定画素に対応し、そのアドレスのデータによってその特定画素に対する印刷の有無が制御される。図２の場合、ページ４０内に２つの円５２，５４が印刷される場合を例示している。
【００１２】
図３は、ホストコンピュータ８から送られて受信バッファ２２内に記憶される頁記述コードの内容を模式的に示しており、各図形の位置と形状等、印刷画面を定義するのに必要な情報を少ない記憶容量で含んでいる。この頁記述コードは、ホストコンピュータ８を使用するオペレータにとって記述し易いコードであり、データ容量が少ない反面、そのままでは印刷手段１８の制御が困難である。印刷手段１８を最終的に制御するには、ビットマップが必要とされる。ホストコンピュータ８から送られてくる頁記述コードは、インターフェイス１２を介して、受信バッファ２２に一旦記憶される。
【００１３】
受信バッファ２２に所定量の頁記述コードが入力されると、ＣＰＵ１４はＲＯＭ１６のプログラム（手順）に基づいて、頁記述コードで記述される図面に対応するビットマップを演算する。以後これをビットマップに展開するという。
この展開処理では、例示の場合、中心座標を（２０００，２２５０）にもつ半径２５０の円を描くためには、どこの画素に対して印刷するかといった幾何学的演算を行なう。また頁記述コードの一部が文字コードであれば、予め用意されているその文字コードに対応するフォントＲＯＭ（ＲＯＭ１６内に設けられている）内のビットマップを検索し、それをビットマップメモリ２８にコピーする処理を行なう。
【００１４】
図４(A) は、中心座標を（２０００，２２５０）にもつ半径２５０の円を描くための頁記述コードをビットマップメモリ２８に展開した様子を模式的に示す。なおビットマップメモリ２８は、対応するアドレスのデータを対応する画素の空間位置に合わせて図示し、黒色はその画素に対する印刷を実現するデータに対応し、白色はその画素に対する印刷を実行しないデータに対応するように図示されている。ビットマップに展開する前においては、管理エリア２６には、未使用ないしビットマップを記憶していない状態を示す情報が初期値として記憶されている。図４(A) の場合、ビットマップに展開した結果、領域４６に対応するビットマップブロックメモリ３６にビットマップが展開されて記憶されたのに対応して、領域４６ないしブロックメモリ３６に対応する管理エリア２６−３に対して使用ないしビットマップが記憶されている状態を示す情報に書き変えられたことを示している。図４(B) はさらに続けて２つの図形コードをビットマップに展開したときの様子を示す。
【００１５】
図５は、１頁の印刷処理を終了したあと、次のページの印刷をする間にＣＰＵ１４がＲＯＭ１６内のブログラムによってＲＡＭ２０を用いて処理する処理内容を示し、最初に管理エリア２６−１〜２６−４の内容を全部未使用状態に初期化し、ついでホストコンピュータ８からインターフェイス１２を介して受信バッファ２２に頁記述コードを記憶する（１０４）。所定量のコードが入力されたあと、ビットマップに展開し、ビットマップメモリ２８にビットマップを記憶する（１０６）。このとき、ビットマップが記憶されたブロックメモリに対応する管理メモリに、使用ないしビットマップが記憶されたことを示す情報を書き加える（１０８）。これを全部の頁記述コードについて、１頁分が終了するまで繰返す（１１０）。
【００１６】
頁記述データをビットマップに展開する処理ではワークメモリ２４が使用される。このワークメモリ２４には、例えば次ページに同様の図形を印刷するような場合に備えて、展開処理に用いたデータを蓄積記憶していくといった用い方がなされる。この結果、展開処理が進むほど、未使用のワークエリアが減少し、メモリフルといったことが生じ易くなる。
【００１７】
例えば図４(B) は、中心座標を（１０００，１８７５）に持つ半径５００の円を記述するコードをビットマップに展開したときの様子を示している。この処理の実行中にワークメモリ２４がメモリフルとなって、ビットマップへの展開処理が実行不能となることがあり得る。
【００１８】
図６は、ＲＯＭ１６に記憶されている、ワークメモリ２４のメモリフル時に実行される手順を示している。ワークメモリ２４がメモリフルとなると処理２０２が実行され、最初の管理メモリ、この場合、管理メモリ２６−１の情報が読み出され、これが使用済みか未使用かが判別される（２０４）。未使用ならば、それに対応するビットマップブロックメモリ３２を拡張されたワークメモリとし（２０６）、その拡張されたワークメモリの容量で展開処理に必要な容量を確保できるか否かを判断する（２０８）。充分なワークメモリが確保されるのなら、以後ブロックメモリ３２を拡張されたワークメモリとして処理を進める（２１６）。これによってメモリフル対策が達成される。１つのブロックメモリを拡張するだけでは足りないときには（２０８でＮのとき）、最後のブロックにいたるまで（２１０）、次のブロック（２１２）が利用可能か否か検索し（２０４）、必要容量が確保されるまでビットマップブロックメモリを拡張されたワークメモリに転用していく（２０６）。最後のブロックメモリまで検索してもなお必要容量が確保できないとき、あるいは全部のブロックメモリにビットマップが展開されていてワークメモリとして使用できるブロックメモリが存在しなければ、メモリフルエラーの発生処理を行なう（２１４）。この場合はすべての記憶容量を無駄なく使用してもなおメモリフルとなる場合であり、本発明によっても克服することはできない。
【００１９】
図４(B) は、２つ目の頁記述コードのビットマップへの展開処理の途中でワークメモリ２４がメモリフルとなったのにもかかわらず、使用されていないビットマップブロックメモリ３２を用いてビットマップに展開した結果、２つ目の円に対応するビットマップへの展開に成功した例を例示している。なおこの処理によってブロックメモリ３４にもビットマップが記憶されたために、対応する管理メモリ２６−３も使用状態に書き変えられている。
【００２０】
図５の処理３００以後は、１頁分をビットマップに展開したあと、印刷手段１８を制御して印刷処理を実行するときの手順を示し、まず、最初に印刷する領域（この場合は４２であるが下から印字する場合には４８）に対応するビットマップブロックメモリ３２に関する管理メモリ２６−１に使用中を示す情報が記憶されているか否かを判別し、使用状態でなければ、エンジン（この場合印刷手段１８）に領域４２に対応する分だけ用紙を送る指示を与え（３０２）、領域４２に対する印刷をスキップさせる（３０４）。この場合、用紙送り信号を送るかわりに、印刷しないことを指示するデータ（いわゆるＮＵＬＬデータ）を領域４２に対応する分だけエンジンに出力するようにしてもよい。一方使用中であれば、そのブロックメモリ中のビットマップをエンジン（印刷手段１８）に送って、領域４２内に印刷を実行する（３０８）。この場合、エンジン１８はビットマップに基づいて制御され、そのビットマップは頁記述コードから展開されているために、頁記述コードに対する印刷が実行される。
以上の処理が最後のブロックメモリないし領域まで繰返され（３１２）、一頁分の印刷が実行される。
【００２１】
前述の実施例では、ビットマップメモリ２８によって一頁分のビットマップを記憶するビットマップメモリが構成され、そのビットマップメモリ２８が領域４２，４４，４６，４８に対応してビットマップブロックメモリ３２，３４，３６，３８に区割される。そして各ビットマップブロックメモリに対応して管理メモリ２６−１，２６−２，２６−３，２６−４が設けられている。また図４(A) に典型的に例示されるように、ページ内の一部領域（この場合４６）に対応するビットマップを、その領域に対応するビットマップブロックメモリ３６に記憶し、そのときに、そのブロックメモリに対応する管理メモリ２６−３に使用状態を示す信号を記憶し（図５の１０６，１０８）、印刷時には、使用状態を示す信号が記憶されているビットマップブロックメモリに記憶されているビットマップに基づいて印刷し（３０６，３０８）、未使用ブロックメモリのデータに基づく印刷は行なわれない（３０２，３０４）。
【００２２】
さらにワークメモリ２４のメモリフル時には、管理メモリ２６−１〜４のうちの使用状態を示す信号が記憶されていないブロックを検索し（図６の２０４）、検索されたブロックをワークメモリとして使用する処理を実行する（２０６）。なおこの実施例では、領域を横縞状に区割したが、縦縞状に区割したり、格子状に区割することが可能であり、区割の態様に格別の制限はない。
【００２３】
【発明の効果】
この結果、最も典型的には、一部の領域には非常な複雑な画形がある一方、他の領域には印刷しなくて済むような場合において、従来の技術によると、その一部領域に存在する複雑な画形のための処理でワークメモリがフルとなって印刷処理が実行できないような場合でも、ワークメモリがメモリフルとなる事態の発生が回避され、限られた記憶容量を有効に活用してメモリフルエラーの発生頻度を少なく押えることが可能となる。
【図面の簡単な説明】
【図１】本発明の好ましい実施の形態を模式的に示す図
【図２】印刷するページの一例を示す図
【図３】図２のページのための頁記述コードの内容を模式的に示す図
【図４】最初の円についてビットマップに展開した状態を模式的に示す図と、２番目の円についてビットマップに展開した状態を模式的に示す図
【図５】１頁の処理において実行する処理手順の全体の流れを示す図
【図６】メモリフル時において実行する処理手順を示す図
【符号の説明】
１８  印刷手段（エンジン）
２２  受信バッファ
２４  ワークメモリ
２６  管理メモリ
２８  ビットマップメモリ
３２，３４，３６，３８  ビットマップブロックメモリ
【図１】
0003591096.tif 000002
【図２】
0003591096.tif 000003
【図３】
0003591096.tif 000004
【図４】
0003591096.tif 000005
【図５】
0003591096.tif 000006
【図６】
0003591096.tif 000007