(57)【特許請求の範囲】
【請求項１】
外部機器から受信した印字データを格納する受信バッファと、
その受信バッファから受ける文字や記号のデータ及びその印字位置情報等を含むパケットデータを、バンド毎に格納するパケットデータバッファと、
そのパケットデータバッファの文字や記号のコードデータの各々を、各バンド毎に順次、所定の解像度の印字イメージデータに展開する第１展開制御手段と、
その第１展開制御手段で展開された印字イメージデータを所定の圧縮方式で圧縮する圧縮制御手段と、
その圧縮された圧縮印字イメージデータを各バンド毎に格納するイメージデータバッファと、
前記圧縮印字イメージデータを前記イメージデータバッファの空きエリアに格納できるか否かを判断する判断手段と、
その判断手段により格納できないと判断されたときには、前記第１展開制御手段による印字イメージデータへの展開を前記所定の解像度から切下げた解像度にて行う解像度切下げ手段と、
前記イメージデータバッファに格納された圧縮印字イメージデータを印字可能な印字イメージデータにデコードする第２展開制御手段と、
その印字イメージデータを受けて印字媒体に印字する印字手段と、
を備えたことを特徴とするプリンタ。
【請求項２】
前記パケットデータバッファとイメージデータバッファとは、各々データ量に応じて容量可変に構成されたことを特徴とする請求項１に記載のプリンタ。
【請求項３】
前記判断手段は、１バンド分の前記圧縮印字イメージデータを前記イメージデータバッファの空きエリアに格納できるか否かを判断するものであり、
前記解像度切下げ手段は、前記判断手段により格納できないと判断されたときには、既にイメージデータバッファに格納されているバンドの圧縮印字イメージデータの解像度を切下げるとともに、その後のバンドについての前記第１展開制御手段による印字イメージデータへの展開を前記切下げた解像度にて行うことを特徴とする請求項１に記載のプリンタ。
【請求項４】
前記解像度切下げ手段は、副走査方向における解像度を半分に切下げるように構成されたことを特徴とする請求項１に記載のプリンタ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、プリンタに関し、特に１頁分よりも少ない容量の印字イメージバッファを設ける一方、プリントオーバーランのエラー発生を防止するようにしたものに関するものである。
【０００２】
【従来の技術】
従来、高速印字が可能なレーザプリンタなどのページプリンタにおいては、ホストコンピュータやパーソナルコンピュータなどの外部機器から、文書データや画像データなどの印字データを受信し、その印字データに関して、文字や記号については、そのコードデータ及び印字位置情報と、画像データについてはその印字位置情報とを含むパケットデータを格納しておき、このパケットデータに基づいて印字可能なビットイメージデータに展開する一方、その展開されたビットイメージデータを印字イメージバッファに格納し、その印字イメージバッファから１ラスター分に対応する１ドットライン毎のビットイメージデータを順次読み出して、印字機構により文字や画像を印字媒体に印字するようになっている。
【０００３】
ところで、制御装置内のＲＡＭ１６０に設けた印字イメージバッファ１６２として、図１５に示すように、１頁分より少ない、例えば、３バンド分の少ないバッファ容量で構成し、受信バッファ１６１から読み出した画像データを画像データバッファ１６４に格納する一方、読み出した文字や記号のコードデータとその印字位置情報と、画像データの印字位置情報とを含むパケットデータをパケットデータバッファ１６３に格納する。そして、パケットデータに基づいて、文字や記号及び画像の印字イメージデータを、印字イメージバッファ１６２の第１バンドバッファ、第２バンドバッファ、第３バンドバッファに展開した後、第１バンドバッファの印字イメージデータを印字機構に出力完了し、第２バンドバッファの印字イメージデータを出力中に、その第１バンドバッファに印字イメージデータを展開する。
【０００４】
即ち、印字イメージバッファの各バンドバッファをサイクリックに繰り返して使用し、受信した印字データに関する全ての印字イメージデータを印字機構に出力するようになっている。また、このような構成においては、各文字や記号、或いは画像を別々のデータとしてパケットデータバッファ１６３に登録するので、多数の文字と画像とが重複するような印字処理を行なう場合には、プリントオーバーランのエラーが発生し易い。
【０００５】
そこで、最近では、制御装置内のＲＡＭ２６０に設けた印字イメージバッファ２６２として、例えば、１６０Ｋバイトを１つのバンドバッファ容量として、図１６に示すように、１頁分のビットイメージデータを格納し得る約３０バンド分のバッファ容量（例えば、５〜６メガバイト）を固定的に専用に設ける技術が採用されている。この場合、同様にして作成したパケットデータをパケットデータバッファ２６３に格納する。
【０００６】
そして、パケットデータバッファ２６３や画像データバッファ２６４の拡張に伴って、フリーメモリ領域が殆ど無くなったときに、そのパケットデータに基づいて、文字や記号及び画像の印字イメージデータを、印字イメージバッファ２６２の第１バンドバッファ、第２バンドバッファ、・・・と順次展開（疑似印字展開）した後、パケットデータを消去し、受信バッファ２６１の未処理の印字データについて、同様にして印字イメージデータに展開して、第３０バンドバッファまで格納する。その後、印字イメージバッファ２６２の印字イメージデータを、第１バンドバッファから順次シリアルに読み出して、印字機構により印字媒体に印字するようになっている。
【０００７】
【発明が解決しようとする課題】
しかしらがら、印字イメージバッファとして、１頁分のビットイメージデータを格納し得る多数のバンドバッファからなる大容量を固定的に専用に設ける場合には、印字処理に際して、１頁分のビットイメージデータが予め展開されているので、印字処理の途中にプリントオーバーランのエラーが発生することはないが、印字イメージバッファの容量が大型化していることから、ＲＡＭにおけるメモリの使用効率が低下するという問題がある。
【０００８】
一方、印字イメージバッファの容量を、１頁分より少ないバッファ容量で構成する場合には、印字イメージバッファのバッファ容量が少量であることから、ＲＡＭにおけるメモリの使用効率が改良されるが、印字処理の速度よりも印字イメージデータへの展開速度が遅いときには、印字処理の途中にプリントオーバーランのエラーが発生し易いという問題がある。
【０００９】
本発明は、上記問題点を解決するためになされたものであり、少ないバッファ容量の印字イメージバッファを設けて、メモリ使用効率を向上できる上、プリントオーバーランのエラー発生を防止し得るようなプリンタを提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、請求項１のプリンタは、外部機器から受信した印字データを格納する受信バッファと、その受信バッファから受ける文字や記号のデータ及びその印字位置情報等を含むパケットデータを、バンド毎に格納するパケットデータバッファと、そのパケットデータバッファの文字や記号のコードデータの各々を、各バンド毎に順次、所定の解像度の印字イメージデータに展開する第１展開制御手段と、その第１展開制御手段で展開された印字イメージデータを所定の圧縮方式で圧縮する圧縮制御手段と、その圧縮された圧縮印字イメージデータを各バンド毎に格納するイメージデータバッファと、前記圧縮印字イメージデータを前記イメージデータバッファの空きエリアに格納できるか否かを判断する判断手段と、その判断手段により格納できないと判断されたときには、前記第１展開制御手段による印字イメージデータへの展開を前記所定の解像度から切下げた解像度にて行う解像度切下げ手段と、前記イメージデータバッファに格納された圧縮印字イメージデータを印字可能な印字イメージデータにデコードする第２展開制御手段と、その印字イメージデータを受けて印字媒体に印字する印字手段とを備えたものである。
【００１１】
請求項２のプリンタは、請求項１の発明において、前記パケットデータバッファとイメージデータバッファとは、各々データ量に応じて容量可変に構成されたものである。
【００１２】
請求項３のプリンタは、請求項１の発明において、前記判断手段は、１バンド分の前記圧縮印字イメージデータを前記イメージデータバッファの空きエリアに格納できるか否かを判断するものであり、前記解像度切下げ手段は、前記判断手段により格納できないと判断されたときには、既にイメージデータバッファに格納されているバンドの圧縮印字イメージデータの解像度を切下げるとともに、その後のバンドについての前記第１展開制御手段による印字イメージデータへの展開を前記切下げた解像度にて行うように構成されたものである。
【００１３】
請求項４のプリンタは、請求項１の発明において、前記解像度切下げ手段は、副走査方向における解像度を半分に切下げるように構成されたものである。
【００１４】
【作用】
上記構成を有する請求項１のプリンタにおいては、外部機器から受信した印字データが受信バッファに格納され、その受信バッファから受ける文字や記号のデータ及びその印字位置情報等を含むパケットデータがバンド毎に、パケットデータバッファに格納される。また、第１展開制御手段により、パケットデータバッファの文字や記号のコードデータの各々が、各バンド毎に順次、所定の解像度の印字イメージデータに展開され、その印字イメージデータが、圧縮制御手段により、所定の圧縮方式で圧縮されて、圧縮された圧縮印字イメージデータが各バンド毎にイメージデータバッファに格納される。そして、判断手段により、前記圧縮印字イメージデータを前記イメージデータバッファの空きエリアに格納できるか否かが判断され、格納できないと判断されたときには、解像度切下げ手段により、前記第１展開制御手段による印字イメージデータへの展開が前記所定の解像度から切下げた解像度にて行われる。さらに、第２展開制御手段により、前記イメージデータバッファに格納された圧縮印字イメージデータが印字可能な印字イメージデータにデコードされて、その印字イメージデータが、印字手段により印字媒体に印字される。
【００１５】
請求項２のプリンタにおいては、前記パケットデータバッファとイメージデータバッファとは、各々データ量に応じて容量可変に制御される。
【００１６】
請求項３のプリンタにおいては、前記判断手段により、１バンド分の圧縮印字イメージデータをイメージデータバッファの空きエリアに格納できるか否かが判断され、格納できないと判断されたときには、前記解像度切下げ手段により、既にイメージデータバッファに格納されているバンドの圧縮印字イメージデータの解像度が切下げられるとともに、その後のバンドについての前記第１展開制御手段による印字イメージデータへの展開が前記切下げた解像度にて行われる。
【００１７】
請求項４のプリンタにおいては、前記解像度切下げ手段により、副走査方向において解像度が半分に切下げられる。
【００１８】
【実施例】
以下、本発明の実施例について図面に基づいて説明する。
【００１９】
本実施例は、外部機器から印字データを受信して受信バッファに格納し、その印字データを所定の６００DPI（ドット／インチ）の解像度にてプリントするレーザプリンタに本発明を適用した場合のものである。
【００２０】
先ず、レーザプリンタ１に設けられた印字機構ＰＭについて、図１に基づいて簡単に説明する。
【００２１】
レーザプリンタ１には、レーザスキャナ装置１０と、プロセスカートリッジ２０と、転写帯電器や除電針などを備えた転写・分離装置２５と、加熱ローラ３１と加圧ローラ３２などを備えた定着装置３０と、給紙ローラ３６、レジストローラ３７、搬送ローラ３８及び排紙ローラ３９などを備えた搬送装置３５などで構成されている。
【００２２】
レーザスキャナ装置１０には、半導体レーザ１１と、６面体ミラー１２と、結像レンズ１３と、反射ミラー１４及び合成樹脂製のレンズ部材１５などが設けられている。
【００２３】
プロセスカートリッジ２０の内部には、感光ドラム２１、１次帯電器２２、現像シリンダ２３及び露光ランプ２４などが組込まれている。
【００２４】
そして、半導体レーザ１１から出射されて６面体ミラー１２に入射したレーザ光ＬＢは、一定の高速度で回転する６面体ミラー１２のミラー面毎に所定角度偏向されることにより、所定角度範囲に亙って主走査され、結像レンズ１３を経て反射ミラー１４で下方に反射され、レンズ部材１５を経て回転する感光ドラム２１上に照射されて、静電潜像が形成される。
【００２５】
そして、感光ドラム２１上に形成された静電潜像は、現像シリンダ２３から供給されるトナーにより現像され、この可視像は、給紙カセット５から搬送装置３５で搬送される記録用紙Ｐに転写されて印字され、この印字された記録用紙Ｐは、その後定着装置３０を経て、これら両ローラ３８・３９により排紙トレー６上に搬送される。
【００２６】
次に、レーザプリンタ１の制御系について、図２のブロック図に基づいて説明するが、この制御系は基本的には一般的なレーザプリンタの制御系と同様なので、簡単に説明するものとする。
【００２７】
このレーザプリンタ１のビデオコントローラ５０は、ＣＰＵ５１と、種々の制御プログラムが格納されたＲＯＭ５２と、パーソナルコンピュータやホストコンピュータなどの外部のデータ送信機器８０から送信された画像データを含む印字データを受けて格納する受信バッファ６１などの各種メモリが設けられたＲＡＭ６０と、印字データを受信バッファ６１に受信データとして書き込み／読み出すタイミングの為のタイミング信号を発生するタイミング制御回路（ＴＣ）５３と、データ送信機器８０から送信される印字データを受信するシリアルインターフェース（Ｓ・Ｉ／Ｆ）５４と、４Ｋバイトの２つのスキャンバッファを有しビットイメージデータに変換された印字情報を順次ＤＣコントローラ５８へ出力するビデオインターフェース（Ｖ・Ｉ／Ｆ）５５と、操作パネル５７からの信号を受けるパネルインターフェース（Ｐ・Ｉ／Ｆ）５６とを備えており、これらはバス５９を介してＣＰＵ５１に夫々接続されている。
【００２８】
ここで、印字機構ＰＭには、前述したように、レーザスキャナ装置１０、プロセスカートリッジ２０、転写・分離装置２５、定着装置３０、搬送装置３５が設けられる上、感光ドラム２１や搬送装置３５を駆動する為のメインモータ、加熱ローラ３１の為の定着用ヒータ、その他の電装品回路などが設けられており、前記ＤＣコントローラ回路５８は、これらメインモータ、定着用ヒータ及び各種電装品回路に加えて、半導体レーザ１１、６面体ミラー１２を駆動するスキャナモータを駆動制御するように構成されている。
【００２９】
前記ＲＯＭ５２には、通常のレーザプリンタに設けられているのと同様の種々の制御プログラムに加えて、文字や記号などの多数のキャラクタに関する印字用ドットパターンデータを格納したフォントメモリ、ＲＡＭ６０に設けられた各バッファ６１〜６６のバッファ容量及び先頭アドレスを管理するバッファ管理プログラム、後述する本願特有の印字データ展開制御の制御プログラムが予め格納されている。
【００３０】
前記ＲＡＭ６０には、図３に示すように、印字データの受信開始時には、所定容量の受信バッファ６１と、約１６０Ｋバイトを１つのバンドバッファ容量として、３つのバンドバッファ６２ａ〜６２ｃを有する印字イメージバッファ６２が設けられている。ここで、これら受信バッファ６１や印字イメージバッファ６２以外のメモリ領域は、フリーエリアに設定されている。
【００３１】
次に、レーザプリンタ１のビデオコントローラ５０で行なわれる印字データ展開制御のルーチンについて、図４〜図８のフローチャートに基いて説明する。但し、図中符号Ｓｉ（ｉ＝１０、１１、１２・・・・）は各ステップである。ここで、データ送信機器８０から受信した印字データは、図示外の受信制御により、受信バッファ６１に順次格納されるものとする。
【００３２】
レーザプリンタ１に対して電源が投入されると、先ず印字機構ＰＭを初期化するなどの各種の初期化処理が実行された後、データ送信機器８０から受信した印字データが受信バッファ６１に格納されると、この制御が開始される。この時、解像度を示す解像度ステータスが０にセットされる。
【００３３】
この制御が開始されると、先ず印字データ処理制御が実行される（Ｓ10）。この印字データ処理制御においては、受信バッファ６１から読み込んだコードデータが、文字や記号のコードデータのときには、そのコードデータと印字位置を指示する印字位置情報とを対応付けたパケットデータがＲＡＭ６０に設けた第１パケットデータバッファ６３に格納される。また画像のコードデータのときには、その印字位置を指定する印字位置情報がパケットデータとして第１パケットデータバッファ６３に格納されるとともに、その画像データがＲＡＭ６０に設けた画像データバッファ６４に格納される。その結果、印字データ処理制御の実行に伴って、第１パケットデータバッファ６３や画像データバッファ６４のバッファ容量が増大する。
【００３４】
次に、このように、第１パケットデータバッファ６３や画像データバッファ６４のバッファ容量が増大した結果、この制御の開始時に設けられていたフリーエリアの大きさが約半分に達するまでは、Ｓ10〜Ｓ11が繰り返される。そして、フリーエリアの大きさが約半分（図１０参照）になったときには（Ｓ11：Yes ）、ＲＡＭ６０に、データ量を「０」とするイメージデータバッファ６６が設定される（Ｓ12）。次に、そのイメージデータバッファ６６において、前回までのデータ量に１バンド分の所定容量Ｂ（例えば、約１６０Ｋバイト）を加算したバッファ容量が確保可能なときには（Ｓ13：Yes ）、印字イメージデータに展開する第１格納処理制御（図５参照）が実行される（Ｓ16）。
【００３５】
この所定容量Ｂは、後述するＳ33の圧縮処理において、全く圧縮が施されていないときの容量に相当している。即ち、圧縮処理後の容量が、圧縮処理前の容量よりも増加する可能性がある場合には、容量Ｂは、それに応じて増加させる必要がある。
【００３６】
この第１格納処理制御が開始されると、先ず第１展開処理制御（図６参照）が実行される（Ｓ30）。
【００３７】
この制御が開始されると、第１パケットデータバッファ６３から１バンド分の第１パケットデータが読み込まれ（Ｓ40）、この第１パケットデータが終了でなければ（Ｓ41：No）、そのデータに応じて主走査方向・副走査方向ともに６００DPIの印字イメージデータが作成され、印字イメージバッファ６２の第１バンドバッファ６２ａに展開される（Ｓ42）。
【００３８】
一方、この第１パケットデータに画像データが含まれているときに（Ｓ43：Yes ）、その画像データを消去できないときには（Ｓ44：No）、その画像データが印字イメージデータとして第１バンドバッファ６２ａに展開され（Ｓ45）、Ｓ40に戻る。しかし、その画像データが消去可能なときには（Ｓ44：Yes ）、その画像データの画像データバッファ６４における先頭アドレスが、第１バンドバッファ６２ｃに設けた画像データテーブルに登録される（Ｓ46）。
【００３９】
そして、その画像データが印字イメージデータとして第１バンドバッファ６２ａに展開され（Ｓ47）、更にその画像データの画像データバッファ６４における末尾アドレスが画像データテーブルに登録され（Ｓ48）、Ｓ40に戻る。そして、１バンド分のデータ展開が終了したときには（Ｓ41：Yes ）、この制御を終了して、第１格納処理制御のＳ31にリターンする。例えば、図１１に示すように、１バンド分の第１パケットデータが第１パケットデータバッファ６３から読み込まれ、文字や記号と画像の印字イメージデータが、第１バンドバッファ６２ａに順次展開される。また、図１２に示すように、第３バンドバッファ６２ｃに設けた画像データテーブルには、各画像データの先頭アドレスと末尾アドレスとを対にしたデータ群が、消去可能な画像データの数分格納される。
【００４０】
次に、この第１格納処理制御において、ＲＡＭ６０上に第２パケットデータバッファ６５が設けられ、この第２パケットデータバッファ６５には、Ｓ30において展開した１バンド分の、印字位置情報を含むパケットデータが格納される（Ｓ31）。次に、ＲＡＭ６０上にイメージデータバッファ６６が設けられ、このイメージデータバッファ６６を指示する第１書き込みポインタＰ１には、次にデータを書き込む書き込み先頭アドレスがセットされ（Ｓ32）、この際、解像度ステータスの値に応じて、以下の様に解像度が変更される。
【００４１】
0003612778.tif 000002
次に、第１バンドバッファ６２ａに展開されている印字イメージデータが所定の圧縮方式で圧縮され、圧縮した圧縮印字イメージデータがイメージデータバッファ６６に格納する圧縮処理制御が実行され（Ｓ33）、この制御を終了して、印字データ展開制御のＳ17にリターンする。ここでは、解像度ステータスは初期値０の状態であるので、解像度は６００DPI×６００DPIである。
【００４２】
次に、この印字データ展開制御において、第１パケットデータバッファ６３に格納されている全ての第１パケットデータについて、展開処理が終了していないときには（Ｓ17：No）、Ｓ13〜Ｓ17が繰り返して実行される。
【００４３】
ところで、Ｓ13〜Ｓ17が繰り返して実行された結果、第２パケットデータバッファ６５やイメージデータバッファ６６のデータ量が増大して、フリーエリアが減少し、イメージデータバッファ６６を拡張して、前回までのデータ量に１バンド分の所定容量Ｂ（例えば、約１６０Ｋバイト）を加算したバッファ容量を新たに確保することが不可能（図１１参照）になったときには（Ｓ13：No）、画像データバッファ６４の画像データを消去する画像データ消去処理制御（図７参照）が実行される（Ｓ14）。
【００４４】
この制御が開始されると、先ず第２書き込みポインタＰ２には、画像データバッファ６４の先頭アドレスがセットされ（Ｓ50）、画像データテーブルにおいて、画像データの先頭アドレスと末尾アドレスとを対にしたデータ群が、アドレス順に並び変えられる（Ｓ51）。次に、第１パケットデータバッファ６３の第１パケットデータと、画像データバッファ６４の画像データと、画像データテーブルのデータとに基づいて、画像データテーブルに登録されておらず、消去不可能な画像データの、画像データバッファ６４における先頭アドレスが先頭アドレスＥとして記憶され、またその消去不可能な画像データの末尾アドレスが末尾アドレスＦとして記憶される（Ｓ52）。
【００４５】
次に、これら先頭アドレスＥから末尾アドレスＦまでの画像データが、第２書き込みポインタＰ２で指示するアドレスから順次移動し格納され（Ｓ53）、この移動した画像データに対応して、第１パケットデータバッファ６３に格納されている、未処理バンドに関する印字位置情報のアドレスが変更される（Ｓ54）。次に、第２書き込みポインタのポインタ値Ｐ２が、移動した画像データのデータ量に対応して、α（α＝Ｆ−Ｅ）だけインクリメントされ（Ｓ55）、終了でないとき、つまり消去不可能な画像データが更に存在するときには（Ｓ56：No）、Ｓ52〜Ｓ56が繰り返して実行される。そして、消去不可能な全ての画像データの移動が終了したときには（Ｓ56：Yes ）、この制御を終了して、印字データ展開制御のＳ15にリターンする。
【００４６】
そして、この印字データ展開制御において、前記Ｓ13と同様に検索された結果、１バンド分の所定容量Ｂを加算したバッファ容量を新たに確保できるときには（Ｓ15：Yes ）、Ｓ16以降が、前述したように実行される。しかし、このバッファ容量を新たに確保できないときには（Ｓ15：No）、第２格納処理制御（図８参照）が実行される（Ｓ20）。
【００４７】
この制御が開始されると、前述したように第１展開処理制御が実行される（Ｓ60）。そして、第２パケットデータバッファ６５には、Ｓ60において展開した１バンド分の、印字位置情報を含むパケットデータが格納される（Ｓ61）。次に、第１バンドバッファ６２ａに展開されている印字イメージデータが前述と同様に圧縮され、圧縮後の印字イメージデータの容量Ｂが求められる（Ｓ62）。この時、解像度ステータスに応じて解像度が変えられることは、前に述べたとうりであり。次に、前述したように画像データ消去処理制御が再度実行される（Ｓ63）。そして、前記Ｓ15と同様に検索された結果、１バンド分の所定容量Ｂを加算したバッファ容量を新たに確保できるときには（Ｓ64：Yes ）、Ｓ62で圧縮した圧縮印字イメージデータがイメージデータバッファ６６に書き込まれ（Ｓ65）、この制御を終了して、印字データ展開制御にリターンする。そして、１バンド分の所定容量Ｂを加算したバッファ容量を新たに確保できないとき、つまり１バンド分の圧縮印字イメージデータがイメージデータバッファ６６の空きエリアに書き込まないときには（Ｓ64：No）、解像度切下げ処理（図９参照）が実行される（Ｓ66）。
【００４８】
解像度切下げ処理制御がスタートすると、まず、既に印字品質が保証できる最低の解像度ステータス２であるか否かが判断される。解像度ステータスが０あるいは１のときには（Ｓ70：No）、バンドの順番を示すｉが１に設定され（Ｓ71）、第１バンドから順に処理が開始される。次に、イメージデータバッファ６６に書き込まれているｉ番目のバンドの圧縮印字イメージデータが、第２パケットデータバッファ６５内の第２パケットデータに基づいて読出され、印字イメージデータにデコードされる（Ｓ72）。
【００４９】
その印字イメージデータの解像度が所定の解像度である主走査方向・副走査方向とも６００DPIであれば、解像度ステータスを１に変更して主走査方向６００DPI・副走査方向３００DPIの印字イメージデータに、１ラスタライン間隔にてラインデータを削除することにより解像度が切下げられる。既に上記処理で解像度が切下げられていれば（すなわち、解像度ステータスが１であれば）、その６００DPI×３００DPIの印字イメージデータが、横方向に１ドット間隔にてドットデータを削除することにより解像度ステータス２の主走査方向・副走査方向ともに３００DPIの印字イメージデータに、解像度が切下げられる（Ｓ73）。
【００５０】
そして、第２パケットデータバッファ６５内にＳ61にて書き込まれている第２パケットデータが変更され、切下げられた解像度の印字イメージデータがＳ62と同様の処理にて圧縮されて、その圧縮印字イメージデータがＳ65と同様の処理にてイメージデータバッファ６６に書き込まれる（Ｓ74）。次に、バンド順を示すｉがｉ＋１に変更される（Ｓ75）。そして、この解像度切下げが、Ｓ65にてイメージデータバッファ６６に書き込まれている切下げ前の高解像度データの全てのバンドについて終了したか否かが判断され（Ｓ76）、終了するまでＳ72からＳ７６の処理が繰り返さる。この処理により、イメージデータバッファ６６内の切下げ前の高解像度の圧縮印字イメージデータが全て、解像度が半分に切下げられた圧縮印字イメージデータに書き換えられるので、イメージデータバッファ６６の容量の約半分が空きエリアとして確保される。
【００５１】
この状態にて（Ｓ７６：Yes）、第１パケットデータバッファ６３内のｉ番目のバンドの第１パケットデータについて、前記Ｓ30の第１展開処理が行われ、所定の解像度である主走査方向・副走査方向ともに６００DPIの解像度の印字イメージデータに展開される（Ｓ77）。その６００DPI×６０００DPIの印字イメージデータが、Ｓ73と同様の処理にて、解像度ステータス１に切下げるのであれば６００DPI×３０００DPIの印字イメージデータに、解像度ステータス２に切下げるのであれば３００DPI×３０００DPIの印字イメージデータに変更され、その印字イメージデータが圧縮処理される（Ｓ78）。
【００５２】
また、Ｓ63と同様に画像データが消去されるとともに、ｉ番目のバンドの第１パケットデータが消去され（Ｓ79）、画像データバッファ６４及び第１パケットデータバッファ６３内生じた空きエリアがイメージデータバッファ６６の空きエリアに編入可能となる。次に、イメージデータバッファ６６において、前回までのデータ量に１バンド分の所定容量Ｃを加算したバッファ容量が確保可能か否かが判断される。容量Ｃは、切下げられた解像度がステータス１のときには前記容量Ｂの約半分の容量（例えば、約８０Ｋバイト）であり、解像度ステータス２のときには前記容量Ｂの約４分の１の容量（例えば、約４０Ｋバイト）である。
【００５３】
容量の確保ができないときには、前記Ｓ70に戻り、切り下げられている解像度が既にステータス２であるとき（Ｓ70：Yes）にはメモリフルのエラー処理が行われて（Ｓ82）、本処理を終了する。解像度ステータスが０あるいは１であるときには（Ｓ70：No）、さらに解像度ステータス２に切り下げるべくＳ71に移る。また、容量が確保可能なときには（Ｓ80：Yes）、切下げられた解像度の圧縮印字イメージデータがイメージデータバッファ６６に書き込まれ（Ｓ74）、本解像度切下げ処理を終了して印字データ展開制御のＳ21に移る。
【００５４】
そして、印字データ展開制御において、第１パケットデータバッファ６３に格納されている全ての第１パケットデータについて、展開処理が終了していないときには（Ｓ21：No）、Ｓ20〜Ｓ21が繰り返して実行される。但しこのとき、解像度ステータスは１もしくは２に変化しているので、以後の処理ではすべて解像度が下げられる。しかし、全ての第１パケットデータについて、展開処理が終了したときには（Ｓ17：Yes 又はＳ21：Yes ）、第１パケットデータバッファの第１パケットデータの全てが消去される（Ｓ18）。そして、その頁の印字データの展開処理が完了していないとき、つまり印字処理が終了していないときには（Ｓ19：No）、Ｓ10に戻り、以降、同様の処理が実行される。このとき、第２パケットデータが第１パケットデータとして扱われ、以後はこのパケットデータに対しデータの登録が行われる。但し、前記解像度ステータスの値は、そのページの処理が完了し、Ｓ19でYesと判断されるまでクリアされない。
【００５５】
一方、受信した印字データの全てについてデータ展開されたときには（Ｓ19：Yes ）、第２パケットデータには、異なる解像度のデータが混在する可能性がある（図９の処理が終った後、新たに登録されるものは６００DPI×６００DPI）。このため、Ｓ10からの処理を再び起動させる。これにより、パケットに登録されるデータはすべて、解像度ステータスの値にそろえられる。次に、第２展開処理制御を行ないながら、印字イメージデータを印字機構ＰＭに出力して印字する処理が実行され（Ｓ22）、この制御を終了してメインルーチンにリターンする。
【００５６】
ここで、Ｓ22の第２展開処理制御においては、図１４に示すように、イメージデータバッファ６６に格納された、１バンド毎の圧縮印字イメージデータが印字可能な印字イメージデータにデコード（復調）され、第２パケットデータバッファ６５の第２パケットデータに基づいて、第１バンドバッファ６２ａ、第２バンドバッファ６２ｂ、第３バンドバッファ６２ｃに夫々展開され、第１バンドバッファ６２ａの印字イメージデータから順次印字機構ＰＭに出力される。そして、印字イメージデータの全てが出力された第１バンドバッファ６２ａには、第４バンドの印字イメージデータが展開される。このように、３つのバンドバッファをサイクリックに使用しながら、印字処理が実行される。
【００５７】
また、Ｓ66の解像度切下げ処理が行われた場合の第２展開処理制御は、１バンド毎の圧縮印字イメージデータが切下げ解像度の印字イメージデータにデコードされ、さらに所定の解像度の印字イメージデータに変更されて、バンドバッファ６２に展開される。つまり、６００DPI×３００DPIの切下げ解像度がステータス１の場合には、１ラインのデータを２回づつ繰返して２ラインのデータとすることにより、６００DPI×６００DPIの所定解像度（ステータス０）の印字イメージデータに変更される。３００DPI×３００DPIの切下げ解像度がステータス２の場合には、１ラインのデータを２回づつ繰返して２ラインのデータとするとともに、１ドットのデータを２回づつ繰返して２ドットのデータとすることにより、６００DPI×６００DPIの所定解像度の印字イメージデータに変更される。
【００５８】
これにより、印字処理よりも速いタイミングで、各バンドバッファ６２ａ〜６２ｃに印字イメージデータが展開されることから、印字途中にプリントオーバーランのエラーが発生することがない。
【００５９】
次に、３つのバンドバッファ６２ａ〜６２ｃを有する印字イメージバッファ６２を設ける一方、プリントオーバーランのエラーが発生しないように制御する、印字データ展開制御の作用について説明する。
【００６０】
画像データバッファ６４には、受信バッファ６１から受ける画像データが格納され、第１パケットデータバッファ６３には、受信バッファ６１から受ける文字や記号のコードデータ及びその印字位置情報と、画像データの印字位置を指定する印字位置情報とを含むパケットデータが格納される。
【００６１】
そして、印字可能な圧縮印字イメージデータをイメージデータバッファ６６に格納し、またその圧縮印字イメージデータの各バンド毎の印字位置情報を第２パケットデータバッファ６５に格納するので、これらイメージデータバッファ６６や第２パケットデータバッファ６５を小型化でき、しかも印字イメージバッファ６２は、３つのバンドバッファ６２ａ〜６２ｃを設けただけの小容量であって、繰り返して使用する場合でも、圧縮印字イメージデータを高速にデコードして展開できることから、メモリの使用効率の向上を図れる上、印字途中にプリントオーバーランのエラーが発生することがない。
【００６２】
また、前記第１及び第２パケットデータバッファ６３・６５と、画像データバッファ６４と、イメージデータバッファ６６とは、各々、データ量に応じて容量可変に構成され、イメージデータバッファ６６のバッファ容量を拡張不可能なときには、展開済みの画像データを、画像データバッファ６４から消去するので、この消去を介して画像データバッファ６４の縮小により生じたフリーエリアを、イメージデータバッファ６６の空きエリアなどの拡張用に適用することができ、メモリの使用効率を向上できる。さらに、イメージデータバッファ６６の容量が１ページ分の圧縮印字イメージデータを記憶するのにも不足するときには、既に記憶されている圧縮印字イメージデータの解像度が自動的に切下げられて、イメージデータバッファ６６に空きエリアが発生し、その空きエリアが活用されるので、極めて小容量のメモリにてもメモリ容量が不足することがほとんどない。
【００６３】
ところで、前記実施例を部分的に変更し、次のように構成することも可能である。例えば、本実施例では、解像度切下げ時の第２展開処理制御は、所定の解像度の印字イメージデータに変更してからバンドバッファ６２に記憶しているが、切下げの解像度の印字イメージデータのままバンドバッファ６２に記憶して、印字機構ＰＭに出力するときに所定解像度の印字イメージデータに変更しても良い。これにより、予めバンドバッファ６２の容量を減少させ、イメージデータバッファ６６の容量を増加することができる。
【００６４】
また、バンドバッファ６２を設けることなく、イメージデータバッファ６６から直接印字機構ＰＭに出力しても良い。
【００６５】
さらに、本実施例では、Ｓ13，Ｓ15，Ｓ64，Ｓ80にて、１バンド分の圧縮印字イメージデータがイメージデータバッファ６６の空きエリアに記憶可能かを判断しているが、１バンド分に限らず、一挙に複数バンド分について判断しても良い。
【００６６】
その他、本発明の技術的思想の範囲内において、前記実施例の制御に関し、既存の技術や当業者に自明の技術に基いて種々の変更を加えることもあり得る。
【００６７】
【発明の効果】
以上詳述したように、請求項１のプリンタによれば、イメージデータバッファには、圧縮された圧縮印字イメージデータが格納され、かつ、所定の解像度の圧縮印字イメージデータがイメージデータバッファの空きエリアに格納できないと判断されたときには、切下げた解像度の圧縮印字イメージデータが格納されるので、イメージデータバッファの容量が圧縮印字イメージデータの１ページ分をも格納できない小容量であっても、１ページ分の印字データが格納できる。また、圧縮データは高速にデコードして印字可能な印字イメージデータに展開できることから、パケットデータを個別に処理する場合に比べて、印字途中の処理が少なくなり、プリントオーバーランエラーの発生が防止される。
【００６８】
請求項２のプリンタによれば、パケットデータバッファとイメージデータバッファとは、各々、データ量に応じて容量可変に構成されるので、フリーエリアをイメージデータバッファの空きエリアの拡張用に適用することができ、メモリ使用効率を向上できる。
【００６９】
請求項３のプリンタによれば、１バンド分の圧縮印字イメージデータがイメージデータバッファの空きエリアに格納できるか否かが判断されるので、イメージデータバッファの空きエリアが１バンド分以下になるまで所定の高い解像度にて印字することができる。また、圧縮印字イメージデータがイメージデータバッファの空きエリアに格納できないときには、既にイメージデータバッファに格納されているバンドの圧縮印字イメージデータの解像度を切下げるので、イメージデータバッファの空きエリアが増大することとなり、１回の解像度切下げのみで印字することができる。
【００７０】
請求項４のプリンタによれば、解像度の切下げは、副走査方向における解像度を半分に切下げるので、所定の解像度の印字イメージデータから切下げ解像度の印字イメージデータを作成するときに、１ライン間隔にてデータを削除するだけの簡単な処理で実行できる。
【図面の簡単な説明】
【図１】レーザプリンタの概略断面図である。
【図２】レーザプリンタの制御系のブロック図である。
【図３】印字データを受信開始したときのＲＡＭのメモリ構成を説明する図である。
【図４】印字データ展開制御のルーチンの概略フローチャートである。
【図５】第１格納処理制御のルーチンの概略フローチャートである。
【図６】第１展開処理制御のルーチンの概略フローチャートである。
【図７】画像データ消去処理制御のルーチンの概略フローチャートである。
【図８】第２格納処理制御のルーチンの概略フローチャートである。
【図９】解像度切下げ処理制御のルーチンの概略フローチャートである。
【図１０】第１パケットデータバッファと画像データバッファとを設けた図３相当図である。
【図１１】第１及び第２パケットデータバッファと、画像データバッファ及びイメージデータバッファとを設けた図３相当図である。
【図１２】第３バンドバッファに設けた画像データテーブルの内容を説明する図表である。
【図１３】画像データバッファの画像データを消去したときの図１１相当図である。
【図１４】印字イメージデータを印字イメージバッファの各バンドバッファに展開するときの図１１相当図である。
【図１５】従来技術に係り、１頁分よりも少ない印字イメージバッファを備えたＲＡＭのメモリ構成を説明する図である。
【図１６】従来技術に係り、１頁分の印字イメージバッファを備えた図１５相当図である。
【符号の説明】
１    レーザプリンタ
５０  ビデオコントローラ
５１  ＣＰＵ
５２  ＲＯＭ
６０  ＲＡＭ
６１  受信バッファ
６２  印字イメージバッファ
６３  第１パケットデータバッファ
６４  画像データバッファ
６５  第２パケットデータバッファ
６６  イメージデータバッファ
８０  データ送信機器
ＰＭ  印字機構
【図１】
0003612778.tif 000003
【図２】
0003612778.tif 000004
【図３】
0003612778.tif 000005
【図４】
0003612778.tif 000006
【図５】
0003612778.tif 000007
【図６】
0003612778.tif 000008
【図７】
0003612778.tif 000009
【図８】
0003612778.tif 000010
【図９】
0003612778.tif 000011
【図１０】
0003612778.tif 000012
【図１１】
0003612778.tif 000013
【図１２】
0003612778.tif 000014
【図１３】
0003612778.tif 000015
【図１４】
0003612778.tif 000016
【図１５】
0003612778.tif 000017
【図１６】
0003612778.tif 000018