(57)【特許請求の範囲】
【請求項１】
ホストコンピュータから受信される印刷すべきデータを解析して印刷する印刷装置であって、
前記印刷すべきデータから中間データを生成する中間データ生成手段と、
前記中間データ生成手段により生成された前記中間データをメモリの中間データ格納領域に格納して管理する中間データ管理手段と、
前記中間データ管理手段により、１ページ分の中間データを格納できないと判断された場合に、前記中間データ格納領域にすでに格納して管理されている中間データを、前記描画すべきバンド領域に描画処理する描画制御手段と、
前記バンド領域のデータの圧縮処理及び伸張処理を行う圧縮伸張手段と、
前記中間データ管理手段によって１ページ分の中間データを管理することができないために生成されなかった中間データを生成すべく、前記描画制御手段によってバンド領域に描画されたデータに対して前記圧縮伸長手段による圧縮処理が施された後、前記中間データ生成手段を用いて、前記中間データの生成処理がされなかった印刷すべきデータから中間データを生成するべく制御する制御手段を備え、
前記描画制御手段は、中間データを描画すべきバンド領域が描画済みでない場合に、該中間データをバンド領域に描画して前記圧縮伸張手段によりバンド領域のデータを圧縮して前記メモリに格納し、一方、中間データを描画すべきバンド領域が描画済みである場合に、圧縮されているバンド領域の圧縮データを前記圧縮伸張手段により伸張して該中間データの描画を行い、
前記中間データ管理手段は、前記描画制御手段によりバンド領域に中間データの描画処理を行うことにより確保できる空き領域を使用して前記中間データの管理を行うことを特徴とする印刷装置。
【請求項２】
前記中間データ格納領域と前記バンド領域との容量の和がある一定量より大きいか否か判断する判断手段を更に有し、
前記判断手段により容量の和が、ある一定量より大きいと判断された場合に、前記描画制御手段による描画処理を行うことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記中間データ管理手段により中間データの容量がある一定量より大きいと判断された場合に、解像度を下げた中間データを再生成する中間データ再生成手段を更に有し、
前記判断手段により容量の和がある一定量より小さいと判断された場合に、中間データ再生成手段は、解像度を下げた中間データを再生成することを特徴とする請求項２記載の印刷装置。
【請求項４】
中間データ再生成手段は、元の解像度の中間データのオブジェクトを低解像度のオブジェクトに解像度変換処理する場合に、フォントスケーラを用いて生成することを特徴とする請求項３記載の印刷装置。
【請求項５】
前記判断手段は、初期のメモリ容量に対して、増設メモリが接続されているかを判断することにより、現在のメモリ容量がある一定量より大きいか否か判断するよう構成したことを特徴とする請求項２乃至４のいずれかに記載の印刷装置。
【請求項６】
ホストコンピュータから受信される印刷すべきデータを解析して印刷する印刷装置における印刷方法であって、
前記印刷すべきデータから中間データを生成する中間データ生成工程と、
前記中間データ生成工程により生成された前記中間データをメモリの中間データ格納領域に格納して管理する中間データ管理工程と、
前記中間データ管理工程により、１ページ分の中間データを格納できないと判断された場合に、前記中間データ格納領域にすでに格納して管理されている中間データを、前記描画すべきバンド領域に描画処理する描画制御工程と、
前記バンド領域のデータの圧縮処理及び伸張処理を行う圧縮伸張工程と、
前記中間データ管理工程によって１ページ分の中間データを管理することができないために生成されなかった中間データを生成すべく、前記描画制御工程によってバンド領域に描画されたデータに対して前記圧縮伸長工程による圧縮処理が施された後、前記中間データ生成工程を用いて、前記中間データの生成処理がされなかった印刷すべきデータから中間データを生成するべく制御する制御工程を備え、
前記描画制御工程は、中間データを描画すべきバンド領域が描画済みでない場合に、該中間データをバンド領域に描画して前記圧縮伸張工程によりバンド領域のデータを圧縮して前記メモリに格納し、一方、中間データを描画すべきバンド領域が描画済みである場合に、圧縮されているバンド領域の圧縮データを前記圧縮伸張工程により伸張して該中間データの描画を行い、
前記中間データ管理工程は、前記描画制御工程によりバンド領域に中間データの描画処理を行うことにより確保できる空き領域を使用して前記中間データの管理を行うことを特徴とする印刷方法。
【請求項７】
前記中間データ格納領域と前記バンド領域との容量の和がある一定量より大きいか否か判断する判断工程を更に有し、
前記判断工程により容量の和が、ある一定量より大きいと判断された場合に、前記描画制御工程による描画処理を行うことを特徴とする請求項６記載の印刷方法。
【請求項８】
前記中間データ管理工程により中間データの容量がある一定量より大きいと判断された場合に、解像度を下げた中間データを再生成する中間データ再生成工程を更に有し、
前記判断工程により容量の和がある一定量より小さいと判断された場合に、中間データ再生成工程は、解像度を下げた中間データを再生成することを特徴とする請求項７記載の印刷方法。
【請求項９】
中間データ再生成工程は、元の解像度の中間データのオブジェクトを低解像度のオブジェクトに解像度変換処理する場合に、フォントスケーラを用いて生成することを特徴とする請求項８記載の印刷方法。
【請求項１０】
前記判断工程は、初期のメモリ容量に対して、増設メモリが接続されているかを判断することにより、現在のメモリ容量がある一定量より大きいか否か判断するよう構成したことを特徴とする請求項７乃至９のいずれかに記載の印刷方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、第１のデータから第２のデータを生成し印刷する印刷装置及び印刷方法に関する。
【０００２】
【従来の技術】
スキャン処理で画素を形成するようなレーザビームプリンタなどのプリント装置は、プリント処理に先立ってプリント画像のフルラスタ画像をビットマップメモリに生成する必要がある。これは、プリント装置がページをプリントするときに一定の速度でスキャンしてプリントすることによる。すなわち、ページのプリントが始まると、ページのプリントが終わるまでプリント処理は一定の速度で行われる。したがって、プリントエンジンにおいてプリントすべきデータが欠如（データアンダーフローと呼ばれる状況）しないように、プリント処理に先立ってプリントすべき全体の画像をビットマップメモリ中のラスタ画像に変換する。そして、実際に画像をプリントしているときは、プリンタ内のＣＰＵはビットマップメモリを監視して、プリンタエンジンがプリント処理を行う速度でラスタ画像がプリンタエンジンに供給されているかどうかをチェックする。
【０００３】
このようなプリントシステムで例えば、単純な白黒画像を３００ドット／インチ（ｄｐｉ）などの低解像度で８・１／２×１１インチの標準紙シートにプリントするには、およそ１メガバイト（Ｍｂ）のビットマップメモリが必要である。この際、１Ｍｂのメモリの値段は安いため、メモリの大部分が長い時間使われなくても大きな問題ではない。ビットマップメモリがダブルバッファメモリ、すなわち２Ｍｂメモリであっても同様である。なお、ダブルバッファリングは、ＣＰＵが次のページの画像データをラスタ画像として１つのバッファに生成する間に、他のバッファから現在のページの画像データをプリントすることができるという好ましい性質を有する。すなわち、ダブルバッファリングによれば、ラスタ画像データ列を連続的にプリントエンジンに転送することが可能で、コストをあまり上げることなくページ内スループットを上げることが可能となる。
【０００４】
これに対して、例えば、６００ｄｐｉの解像度では、フルラスタ画像を記憶するのに３００ｄｐｉの４倍ものメモリが必要となる。中間調やカラー画像を対象とするときには、これ以上のメモリがさらに必要となる。例えば、中間調画像において各画素ごとに１６階調とすれば画素ごとに４ビット必要になる。画素ごとの４ビットに６００ｄｐｉのラスタ画像を記憶するのに必要な４Ｍｂを掛けると、中間調ラスタ画像を記憶するには１６Ｍｂ必要となることがわかる。カラー画像を対象とするときには、これ以上のメモリが必要である。例えば、各色ごとに８ビットで画素ごとに４色で符号化するときには、各画素３２ビット必要となる。３２ビットと６００ｄｐｉのラスタ画像の４Ｍｂとを掛けると、フルカラーの６００ｄｐｉラスタ画像を記憶するには１２８Ｍｂのメモリが必要になる。このように大量のメモリの値段は商用の製品としては許容できる範囲ではない。また、ページ内の遅延を減少させるためにダブルバッファリングを用いるときには、問題はさらに深刻になる。
【０００５】
従って、限られた容量のビットマップメモリを用いて、６００ｄｐｉの解像度の入力データを処理するために、解像度を６００ｄｐｉから３００ｄｐｉに落としてビットマップメモリに出力データを生成する方法が考えられる。
【０００６】
また、データアンダーフローしないように、６００ｄｐｉの解像度の入力データを処理するために、解像度を６００ｄｐｉから３００ｄｐｉに落としてビットマップメモリに出力データを生成する方法が考えられる。
【０００７】
【発明が解決しようとする課題】
しかしながら、この様な印刷装置では、確実に印刷処理を実行できても、例えば６００ｄｐｉの解像度を３００ｄｐｉに落とすことによる印刷結果の画像劣化が問題になる。
【０００８】
本発明は、上記問題点を解決するために、確保できるメモリの容量に応じて、解像度を落としてビットマップ展開するか、或は、解像度を維持してビットマップ展開するかを自動選択する印刷装置及び印刷方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成する本発明の印刷装置は以下に示す構成を備える。即ち、ホストコンピュータから受信される印刷すべきデータを解析して印刷する印刷装置であって、前記印刷すべきデータから中間データを生成する中間データ生成手段と、前記中間データ生成手段により生成された前記中間データをメモリの中間データ格納領域に格納して管理する中間データ管理手段と、前記中間データ管理手段により、１ページ分の中間データを格納できないと判断された場合に、前記中間データ格納領域にすでに格納して管理されている中間データを、前記描画すべきバンド領域に描画処理する描画制御手段と、前記バンド領域のデータの圧縮処理及び伸張処理を行う圧縮伸張手段と、前記中間データ管理手段によって１ページ分の中間データを管理することができないために生成されなかった中間データを生成すべく、前記描画制御手段によってバンド領域に描画されたデータに対して前記圧縮伸長手段による圧縮処理が施された後、前記中間データ生成手段を用いて、前記中間データの生成処理がされなかった印刷すべきデータから中間データを生成するべく制御する制御手段を備え、前記描画制御手段は、中間データを描画すべきバンド領域が描画済みでない場合に、該中間データをバンド領域に描画して前記圧縮伸張手段によりバンド領域のデータを圧縮して前記メモリに格納し、一方、中間データを描画すべきバンド領域が描画済みである場合に、圧縮されているバンド領域の圧縮データを前記圧縮伸張手段により伸張して該中間データの描画を行い、前記中間データ管理手段は、前記描画制御手段によりバンド領域に中間データの描画処理を行うことにより確保できる空き領域を使用して前記中間データの管理を行うことを特徴とする。
【００１２】
【実施例】
先ず、本発明の構成を説明する前に、本発明を適用可能な画像出力部の一例について説明する。
【００１３】
図１は本発明を適用可能な画像出力部の一例を示す断面図であり、例えばレーザビームプリンタの場合を示す。
【００１４】
図において、１００はＬＢＰ本体であり、外部に接続されているホストコンピュータ２０１から供給される文字情報（文字コード）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録用紙上に像を形成する。１１２は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル、１０１は本体１００全体の制御およびホストコンピュータから供給され文字情報等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット１０１は主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１０２に出力する。
【００１５】
レーザドライバ１０２は、半導体レーザ１０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１０３から発射されるレーザ光１０４をオン・オフ切り換えする。レーザ光１０４は回転多面鏡で１０５左右方向に振られて静電ドラム１０６上を走査する。
【００１６】
これにより、静電ドラム１０６上には文字パターンの静電潜像が形成される。この潜像は、静電ドラム１０６周囲の現像ユニット１０７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙は、本体１００に装着した用紙カセット１０８に収納され、給紙ローラ１０９および搬送ローラ１１０と搬送ローラ１１１により装置内に取り込まれて静電ドラム１０６に供給される。
【００１７】
図８は解像度を落として確実に印刷処理を実行する画像処理装置の構成を説明するブロック図である。
【００１８】
図において、２０１はホストコンピュータであり、制御ユニット１０１と図示しないインタフェースコネクタを介して接続されている。制御ユニット１０１では、ホストコンピュータ２０１からコマンドおよび文字コードからなる入力データ等を受け取って印刷出力されるように構成されている。２０３はＣＰＵで、エンジン部（図示しない）を全制御を行うための演算・制御を行う。２０２は受信バッファであり、ホストコンピュータ２０１よりのコマンドおよび文字コードからなる入力データを一時的に蓄える。２０４はプログラムＲＯＭであり、後述する図９に示すフローチャートによる一連の制御を実現するためのプログラム等が格納されている。２０６はフォントＲＯＭで、文字フォントパターンやアウトラインフォントを生成するためのフォントスケーラプログラムが格納されている。２０７はＲＡＭであり、ＣＰＵ２０３が各プログラムを実行する際にワークエリアや、中間データ（ディスプレイリスト）格納部２１２、出力データ（ビットマップデータ）格納部２１３として機能する。２０５は画像出力部であり、プリンタエンジン部に対して出力データを出力する。さらに、制御ユニット１０１には、図示しない電源装置より電力が供給されている。また、プログラムＲＯＭ２０４には、プログラムとしてバンド描画部２０８、ディスプレイリストメモリ管理部２０９、描画時間管理部２１０、ディスプレイリスト縮小部２１１の４種類の処理が格納されている。
【００１９】
図９は、図８に示したＲＡＭ２０７に対する描画処理の一例を示すフローチャートである。なお、（１）〜（１０）は各ステップを示す。
【００２０】
本体に電源が供給されると、ディスプレイリスト格納部２１２やバンドラスタ格納部２１３の初期化およびステップ（４）で作成するディスプレイリストの解像度設定を行う（１）。この時のディスプレイリスト格納２１２とバンドラスタ格納部２１３の構成については後述する。
【００２１】
次いで、ホストコンピュータ２０１より入力データを受信して（２）、受信したデータを受信バッファ２０２に格納し、この格納した受信バッファ２０２から１単位コード分のデータを読み取る。そして、この受信データをコマンドとして解釈し（３）、該コマンドを元に６００ｄｐｉのディスプレイリスト（中間データ）を生成する（４）。該作成されたディスプレイリストは、ディスプレイリストメモリ管理部２０９がディスプレイリスト領域格納部２１２からメモリを獲得できるかどうかを判定して（５）、もし、メモリが獲得できる場合には、獲得されたメモリにディスプレイリストを格納する（６）。次いで、描画時間管理部２１０において、作成されたディスプレイリストをバンドラスタ格納部２１３に描画する時にかかる時間を予測し、バンド管理テーブルに加算する。そして、ディスプレイリストからバンドラスタへの描画時間がバンドラスタ格納部２１３から画像出力部への出力時間より小さいかどうかを判定して（７）、ＹＥＳならばステップ（２）に戻り、次のデータ入力を待機する。
【００２２】
一方、ステップ（７）の判断で加算した描画時間がバンドラスタ格納部２１３から画像出力部２０５への出力時間より大きいと判断された場合には、ステップ（８）に進み、ディスプレイリスト縮小部２１１において、既に作成されたディスプレイリスト中の６００ｄｐｉオブジェクトを３００ｄｐｉオブジェクトに解像度変換を行い（８）、ステップ（４）で生成されるディスプレイリストの解像度を３００ｄｐｉに設定して（９）、ステップ（２）に戻り、次のデータ入力を待機する。一方、ステップ（５）の判定で、メモリが獲得できない場合には、ステップ（８）以降に進む。
【００２３】
なお、ステップ（８）でディスプレイリスト中の６００ｄｐｉオブジェクトを３００ｄｐｉオブジェクトに解像度変換する場合は、６００ｄｐｉのディスプレイリスト（中間データ）に含まれる。例えば６００ｄｐｉサイズの文字ドットパターンを間引き処理して３００ｄｐｉサイズの文字ドットパターンに変換する。
【００２４】
また、ステップ（３）のコマンド判定で排紙命令と判定された場合には、ディスプレイリストを各バンド毎にバンドラスタ格納領域に描画を行う（１０）。この時、ディスプレイリスト格納領域に格納されているディスプレイリストが６００ｄｐｉの場合は、バンドラスタを６００ｄｐｉとして描画を行う。ディスプレイリスト格納領域に格納されているディスプレイリストが３００ｄｐｉの場合は、バンドラスタを３００ｄｐｉとして描画を行う。そして、描画が終わったバンドラスタは画像出力部２０５によってプリンタエンジンに送られる。ここで、バンドラスタ格納部２１３は２バンド分の領域を備えており、１バンドをプリンタエンジンに送っている間に、他方のバンドに描画を行うことができる。
【００２５】
以下、図１０、図１１を参照しながら図８に示したディスプレイリスト格納部２１２、バンドラスタ格納部２１３の構成について説明する。
【００２６】
図１０、図１１は、図８に示したディスプレイリスト格納部２１２、バンドラスタ格納部２１３の構成を説明する模式図である。
【００２７】
図１０において、４０１は通常時のメモリ状態で、ディスプレイリスト格納領域４０２には６００ｄｐｉのディスプレイリストが生成される。また、ページ排紙時には、ディスプレイリスト格納領域４０２に格納されているディスプレイリストを、バンド毎にバンドラスタ格納部４０３に６００ｄｐｉとして描画を行う。
【００２８】
４０４はディスプレイリストメモリ管理部２０９によりディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１０によりディスプレイリストをバンドラスタに描画する時間がある一定時間より長いと判断された場合のメモリ状態に対応する。
【００２９】
通常時のディスプレイリスト格納部４０２内の６００ｄｐｉオブジェクトは、ディスプレイリスト縮小部２１１により３００ｄｐｉのオブジェクトに解像度変換されたディスプレイリスト格納部４０５となる。また、通常時のバンドラスタ格納部４０３の解像度も６００ｄｐｉから３００ｄｐｉに変わり、バンドラスタ格納部４０６となる。
【００３０】
こうした解像度変換によりディスプレイリスト格納部４０５には、空き領域ができる。また、３００ｄｐｉのディスプレイリスト描画時間の方が６００ｄｐｉディスプレイリストの描画時間よりも短いので、ページ排紙時には、ディスプレイリスト格納領域４０５に格納されているディスプレイリストを、バンド毎にバンドラスタ格納部４０５に格納されているディスプレイリストを、バンド毎にバンドラスタ格納部４０６に３００ｄｐｉとして描画を行う間に、既に描画されたバンドラスタを画像出力部２０５に出力を行うことができる。
【００３１】
また、後者のメモリ状態となった後は、ディスプレイリスト生成処理によって生成されるディスプレイリストは３００ｄｐｉである。
【００３２】
図１１において、５０１は通常時のメモリ構成であり、ディスプレイリスト格納領域５０２には６００ｄｐｉのディスプレイリストが生成される。また、バンド描画時（ページ出力時）には、ディスプレイリスト格納領域５０２に格納されているディスプレイリストを、バンドラスタ格納部５０３に６００ｄｐｉとして描画を行う。
【００３３】
５０４はディスプレイリストメモリ管理部２０９によりディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１１によりディスプレイリストをバンドラスタに描画する時間が一定時間より長いと判断された場合のメモリ状態である。
【００３４】
通常時のディスプレイリスト格納部５０２内の６００ｄｐｉオブジェクトは、ディスプレイリスト縮小部２１１により、３００ｄｐｉのオブジェクトに解像度変換され、さらに、バンドラスタ５０６に３００ｄｐｉで描画が行われる。
【００３５】
このようにして、ディスプレイリストメモリ格納部５０２中の６００ｄｐｉのディスプレイリストは３００ｄｐｉに変換され、全てバンドラスタ５０６に描画が行われる。
【００３６】
ただし、初期のバンドラスタ格納部５０６が１ページ分のラスタ領域を確保できない場合は、ディスプレイリスト格納領域５０２を低解像度変換することによって確保できる空き領域またはディスプレイリスト格納部５０５内のディスプレイリストをバンドラスタ５０６に描画終了することによって確保できる空き領域を使用する。
【００３７】
また、後者のメモリ構成となった後は、ディスプレイリスト生成処理によって生成されるディスプレイリスト３００ｄｐｉであり、作成されたディスプレイリストはディスプレイリスト格納領域５０５に格納される。
【００３８】
また、後者のメモリ構成になった後は、作成された３００ｄｐｉのディスプレイリストはバンドラスタ格納部５０６の直接描画しても良い。
【００３９】
以下、図１２および図１３を参照しながらディスプレイリストのフォーマットおよびそのディスプレイリストに基づくラスタ展開状態について説明する。
【００４０】
図１２はこの種の画像処理装置におけるディスプレイリストの一例を示す図である。なお、ディスプレイリスト（中間データ）は、ホストコンピュータ等から入力される入力データ（文字コード、制御コードからなるプリンタ言語）を印刷装置でビットマップデータに変換しやすい形式にまとめたデータ群である。
【００４１】
図において、１２０１はバンドテーブルであり、ページを複数バンドに分割し、バンド毎に描画オブジェクトを管理するために用いられる。１２０２は実際の描画オブジェクトの印刷位置を管理するための描画単位（アプリケーション）である。１２０４は描画オブジェクト（ビットマップ、フォント）である。１２０３は描画オブジェクトを管理するオブジェクトテーブルである。ディスプレイリストとは、上記１２０１〜１２０４からなるデータ一覧を意味する。
【００４２】
なお、バンドテーブル１２０１はバンドにアプリケーションのリンクを持ち、アプリケーション１２０２は、次のアプリケーションへのポインタと、バンド内印字位置Ｘ、Ｙと、描画オブジェクトのオブジェクト番号と、描画オブジェクトの先頭からバンド内での印字開始位置へのスキャンラインオフセットを持ち、オブジェクトテーブル１２０３は、描画オブジェクトへのポインタを持ち、描画オブジェクト１２０４は、描画オブジェクトの幅、高さ、描画ビットマップを持っている。
【００４３】
図１３は、図１２に示したディスプレイリストに基づくラスタライズ展開の一例を示す模式図である。
【００４４】
この図に示すように、各バンド毎にアプリケーションを展開し、ラスタライズ描画をすることによって、ラスタメモリに描画を行って、出力画像を処理している。
【００４５】
図２は解像度を落とすことなく確実に印刷処理を実行する画像処理装置の構成を説明するブロック図であり、図８と同一のものには同一の符号を付してある。
【００４６】
図において、２０３ａはＣＰＵで、後述する図４に示す手順に従って描画展開を制御する。図４は、解像度を落とすことなく確実に印刷処理を実行する図２の画像処理装置での画像処理手順の一例を示すフローチャートであり、（１）〜（９）は各ステップを示す。
【００４７】
本体に電源が供給されると、ディスプレイリスト格納部２１２やバンドラスタ格納部２１３の初期化およびステップ（４）で作成するディスプレイリストの解像度設定を行う（１）。この時、ディスプレイリスト格納部２１２とバンドラスタ格納部２１３の構成について後述する。
【００４８】
次いで、ホストコンピュータ２０１よりデータを受信して（２）、受信したデータを受信バッファ２０２に格納し、この格納した受信バッファ２０２から１単位コード分のデータを読み取る。そして、この受信データをコマンドとして解釈し（３）、該コマンドを元に６００ｄｐｉのディスプレイリストを生成する（４）。該作成されたディスプレイリストは、ディスプレイリストメモリ管理部２０９がディスプレイリスト格納部２１２からメモリを獲得できるかどうかを判定して（５）、もし、メモリが獲得できる場合には、獲得されたメモリにディスプレイリストを格納する（６）。次いで、描画時間管理部２１０において、作成されたディスプレイリストをバンドラスタ格納部２１３に描画する時にかかる時間を予測し、バンド管理テーブルに加算する。そして、ディスプレイからバンドラスタへの描画時間がバンドラスタ格納部２１３から画像出力部への出力時間より小さいかどうかを判定して（７）、ＹＥＳならばステップ（２）に戻り、次のデータ入力を待機する。
【００４９】
一方、ステップ（７）の判断で加算した描画時間がバンドラスタ格納部２１３から画像出力部２０５への出力時間より大きいと判断された場合には、ステップ（８）に進み、バンド描画部２０８において、既に作成されたディスプレイリスト中の６００ｄｐｉオブジェクトを解像度を落とすことなく６００ｄｐｉでバンドラスタ格納メモリ６０６に１ページ分描画して（８）、ステップ（２）に戻り、次のデータ入力を待機する。一方、ステップ（５）の判定で、メモリが獲得できない場合には、ステップ（８）以降に進む。なお、ステップ（８）の詳細な説明は図１４を用いて後述する。
【００５０】
また、ステップ（３）のコマンド判定で排紙命令と判定された場合には、ディスプレイリストを各バンド毎にバンドラスタ格納領域に描画を行う（９）。
【００５１】
図３は、図２に示したＲＡＭ２０７の第１のメモリマップを説明する模式図である。
【００５２】
６０１は通常時のメモリ状態で、ディスプレイリスト格納領域６０２には６００ｄｐｉのディスプレイリストが生成される。また、バンド描画時（ページ出力時）には、ディスプレイリスト格納領域６０２に格納されているディスプレイリストを、バンドラスタ格納部６０３に６００ｄｐｉとして描画を行う。
【００５３】
６０４はディスプレイリストメモリ管理部２０９により、ディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１０によりディスプレイリストをバンドラスタに描画する時間がある一定時間より長いと判断された場合のメモリ状態である。
【００５４】
通常時のディスプレイリスト格納部６０２内の６００ｄｐｉオブジェクトは、順次バンドラスタ６０６に６００ｄｐｉで描画行われる。このようにして、ディスプレイリストメモリ格納部６０２中の６００ｄｐｉのディスプレイリストは低解像度変換されず、全て（１ページ分）バンドラスタ６０６に描画が行われる。
【００５５】
ただし、初期のバンドラスタ格納部６０６が１ページ分のラスタ領域を確保できない場合は、ディスプレイリスト格納部６０５内のディスプレイリストをバンドラスタ格納メモリ６０６に描画終了することによって確保できる空き領域を使用する。
【００５６】
例えば、図３でディスプレイリスト格納メモリ６０２の斜線部分のディスプレイリストをビットマップデータに変換してバンドメモリ格納メモリ６０３に格納することによって生じる斜線部分の空き領域をバンドラスタ格納メモリ６０６に割り当てて、１ページプルメモリのバンドラスタ格納メモリ６０６を確保する。すなわち、上記処理を繰り返して常に１ページフルメモリのバンドラスタ格納メモリ６０６を確保する。
【００５７】
また、後者のメモリ状態（省メモリモード時）になった後も、ディスプレイリスト生成処理によって生成されるディスプレイリストは６００ｄｐｉであり、作成されたディスプレイリストは、ディスプレイリスト格納領域６０５に格納される。
【００５８】
また、後者のメモリ状態となった後は、作成された６００ｄｐｉのディスプレイリストはバンドラスタ格納部６０６に直接描画してもよい。
【００５９】
また、ここでは、ディスプレイリストの容量がある一定容量より多い場合、またはディスプレイリストをバンドラスタに描画する時間がある一定時間より長い場合には、全てのディスプレイリストをバンドラスタに描画するとしたが、ディスプレイリスト格納部の容量の和が小さい時は、ディスプレイリストメモリ管理部２０９により、ディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１０によりディスプレイリストをバンドラスタに描画する時間がある一定時間より長いと判断された場合には、ディスプレイリスト縮小部２１１により６００ｄｐｉから３００ｄｐｉに低解像度変換を行い、ディスプレイリスト格納領域に格納されている低解像度のディスプレイリストを、バンドラスタ格納部に３００ｄｐｉとして描画を行い、ディスプレイリスト格納部２１２の容量とバンドラスタ格納部の容量の和が大きい時は、ディスプレイリストの容量がある一定容量より多い場合、またはディスプレイリストをバンドラスタに描画する時間がある一定時間より長い場合には、全てのディスプレイリストを解像度を落とすことなくバンドラスタに描画するといったビットマップメモリのメモリ容量による自動切り換え機能を付け加えてもよい。
【００６０】
図１５は、この自動切り換え機能の動作を示すフローチャートである。このフローチャートに示すプログラムは、プログラムＲＯＭ２０４に格納されており、ＣＰＵ２０３によって実行される。
【００６１】
ステップ（１）でＣＰＵ２０３は、現在のＲＡＭ２０７に必要とするビットマップメモリ（バンドラスタ格納部）を確保できるか否かを判断する。例えば、指定された用紙サイズ分のビットマッップデータを格納できるビットマップメモリが確保できるか否かを判断する。ステップ（１）で確保できると判断すると、ステップ（２）で必要とするビットマップメモリを確保して、ステップ（３）で図４や図１４を用いて説明した様に、解像度を維持して確保したビットマップメモリに中間データを描画してビットマップデータを生成する。
【００６２】
また、ステップ（１）で現在のＲＡＭ２０７に必要とするビットマップメモリ（バンドラスタ格納部）を確保できないと判断すると、ステップ（４）で、不図示の増設メモリが接続されているか否かを判断し、接続されていると判断するとステップ（２）の処理を実行する。もし、ステップ（４）でメモリが増設されていないと判断した場合には、図９を用いて説明した様に、解像度を例えば６００ｄｐｉから３００ｄｐｉに落として、現在確保できるビットマップメモリに中間データを描画してビットマップデータを生成する。その後は、生成されたビットマップデータは、画像出力部２０５を介して出力され印刷される。
【００６３】
従って、ビットマップメモリを確保できるか否かに応じて、解像度維持してビットマップデータを生成する第１のモードと解像度を落としてビットマップデータを生成する第２のモードを自動切り換えすることができる。
【００６４】
図５は、図２に示したＲＡＭ２０７の第２のメモリマップを説明する模式図である。
【００６５】
７０１は通常時のメモリ状態で、ディスプレイリスト格納領域７０２には６００ｄｐｉのディスプレイリストが生成される。また、バンド描画時（ページ出力時）には、ディスプレイリスト格納領域７０２に格納されているディスプレイリストを、バンドラスタ格納部７０３に６００ｄｐｉとして描画を行う。
【００６６】
７０４はディスプレイリストメモリ管理部２０９によりディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１０によりディスプレイリストをバンドラスタに描画する時間がある一定時間より長いと判断された場合のメモリ状態である。
【００６７】
通常時のディスプレイリスト格納部７０２内の６００ｄｐｉオブジェクトは、順次バンドラスタ７０６に解像度を落とすことなく６００ｄｐｉで描画が行われ、この様にしてディスプレイリストメモリ格納部７０２中の６００ｄｐｉのディスプレイリストは低解像度変換されずに、全て（１ページ分）バンドラスタ７０６に描画が行われる。その後、バンドラスタは圧縮された後格納される。
【００６８】
この様に、また、ＣＰＵ２０３ａは、ディスプレイリストの容量がある一定容量より多い場合またはディスプレイリストをバンドラスタに描画する時間がある一定時間より長い場合には、ディスプレイリストをバンドラスタに描画し、描画したバンドラスタを圧縮して格納するので、描画制御手段は、ディスプレイリストの容量がある一定容量より多い場合またはディスプレイリストをバンドラスタに描画する時間がある一定時間より長い場合でも、バンドラスタされる出力イメージの解像度を低解像度に変換してしまうことを確実に防止することが可能となる。
【００６９】
ただし、初期のバンドラスタ格納部７０６が１ページ分のラスタ領域を確保できない場合は、ディスプレイリスト格納部７０５内のディスプレイリストをバンドラスタ７０６に描画終了することによって確保できる空き領域を使用する。
【００７０】
また、後者のメモリ状態になった後も、ディスプレイリスト生成処理によって生成されるディスプレイリストは６００ｄｐｉであり、作成されたディスプレイリストはディスプレイリスト格納領域７０５に格納される。また、後者のメモリ状態になった後は、作成された６００ｄｐｉのディスプレイリストはバンドラスタ格納部７０６に直接描画しても良い。
【００７１】
図１４は、図４のフローチャートのステップ（８）を詳細に説明するフローチャートである。
【００７２】
ステップ８−１ではＣＰＵ２０３は描画を行うオブジェクトを含むバンド領域が既に描画済みか否かを判断する。例えば、図１３に示す文字パターンＢの上部を０バンド領域に描画する場合に、０バンド領域が描画済みかを判断する。ステップ８−１で描画を行うオブジェクトを含むバンド領域が描画済みと判断された場合には、ステップ８−２でそのバンド領域の圧縮データを伸長し、ステップ８−３で伸長されたバンド領域のビットマップデータに描画を行うオブジェクトを描画（ビットマップ展開）する。例えば、図１３に示す文字パターンＢの上部を０バンド領域に描画するには、文字パターンＡの上部を描画して圧縮されている０バンド領域の圧縮データを伸長して、伸長して得た０バンド領域のビットマップデータに文字パターンＢの上部を描画する。
【００７３】
ステップ８−１でＣＰＵ２０３が描画を行うオブジェクトを含むバンド領域が描画済みでないと判断されると、ステップ８−３でそのオブジェクトを描画し、ステップ８−４で圧縮して、ステップ８−５でバンドラスタ格納部２１３に格納する。そして、ステップ８−６でディスプレイリスト中の全てのオブジェクトをバンドラスタに１ページ描画したか否かを判断し、１ページ描画したと判断するとステップ（２）へ戻り、１ページ描画していないと判断するとステップ８−１へ戻り上述した処理を繰り返す。
【００７４】
図６は、図８に示したＲＡＭ２０７の第３のメモリマップを説明する模式図である。
【００７５】
８０１は通常時のメモリ状態であり、ディスプレイリスト格納領域８０２には６００ｄｐｉのディスプレイリストが生成される。また、バンド描画時（ページ出力時）には、ディスプレイリスト格納領域８０２に格納されているディスプレイリストを、バンドラスタ格納部８０３に６００ｄｐｉとして描画を行う。
【００７６】
８０４はディスプレイリストメモリ管理部２０９によりディスプレイリストの容量がある一定容量より多いと判断された場合、または描画時間管理部２１０によりディスプレイリストをバンドラスタに描画する時間がある一定時間より長いと判断された場合のメモリ構成である。通常時のディスプレイリスト格納部８０２内の６００ｄｐｉオブジェクトは、ディスプレイリスト縮小部２１１により３００ｄｐｉのオブジェクトが再生成され、さらに、バンドラスタ８０６に３００ｄｐｉで描画が行われる。この様にして、ディスプレイリストメモリ格納部８０２中の６００ｄｐｉのディスプレイリストは３００ｄｐｉに再生成され、全てバンドラスタ８０６に描画が行われる。
【００７７】
なお、図９のステップ（８）では、ディスプレイリスト中の６００ｄｐｉオブジェクトを３００ｄｐｉオブジェクトに解像度変換する場合は、６００ｄｐｉのディスプレイリスト（中間データ）に含まれる例えば６００ｄｐｉサイズの文字ドットパターンを間引き処理して３００ｄｐｉサイズの文字ドットパターンに変換するため、画像劣化してしまう。上述した再生成処理は、６００ｄｐｉオブジェクトの例えば６００ｄｐｉサイズの文字パターンと同じパターンの３００ｄｐｉサイズの文字パターンをフォントＲＯＭ２０６内のフォントスケーラ（プログラム）を用いて生成することである。これによって、解像度を６００ｄｐｉから３００ｄｐｉに落としてもディスプレイリスト中の文字パターンを間引き処理することなく、新たに３００ｄｐｉサイズの文字パターンを生成するので品位の高い３００ｄｐｉの出力データを生成して印刷できる。
【００７８】
従って、ディスプレイリスト格納部８０２内のフォントオブジェクトには、リスケーリング可能なフォントＩＤ、文字コードといった情報を前以てＣＰＵ２０３は付加する。そして、ＣＰＵ２０３は、この情報に基づいて品位の高い３００ｄｐｉの出力データ（ビットマップデータ）を生成して印刷する。
【００７９】
この様にＣＰＵ２０３ａは、ディスプレイリストの容量がある一定容量より多い場合またはディスプレイリストをバンドラスタに描画する時間がある一定時間より長い場合には、ディスプレイリストの情報に基づいて低解像度のディスプレイリストを再生成してディスプレイリスト格納部２１２に格納するので、画像劣化を最小限に抑えることが可能となる。
【００８０】
ただし、初期のバンドラスタ格納部８０６が１ページ分のラスタ領域を確保できない場合は、ディスプレイリスト格納領域８０２のディスプレイリストを低解像度で再生成することによって確保できる空き領域、またはディスプレイリスト格納部８０５内のディスプレイリストをバンドラスタ８０６に描画終了することによって確保できる空き領域を使用する。
【００８１】
また、後者のメモリ状態となった後は、ディスプレイリスト生成処理によって生成されるディスプレイリストは３００ｄｐｉであり、作成されたディスプレイリストはディスプレイリスト格納領域８０５に格納される。
【００８２】
さらに、後者のメモリ状態になった後は、作成された３００ｄｐｉのディスプレイリストは、バンドラスタ格納部８０６に直接描画してもよい。
【００８３】
図７は、図２に示したＲＡＭ２０７の第４のメモリマップを説明する模式図である。
【００８４】
９０１はメモリ状態であり、ディスプレイリスト格納領域９０２には６００ｄｐｉのディスプレイリストが生成される。もし、ディスプレイリストの属するバンドがバンド１またはバンド２であればバンド描画部によって描画され、バンドラスタ格納部９０３に格納される。もし、ディスプレイリストの属するバンドがバンド１又はバンド２以外であれば、ディスプレイリスト格納領域９０２に格納される。そして、バンド描画時（ページ出力時）には、もしバンド１又はバンド２であれば、バンドラスタ格納部９０３から直接画像出力部２０５へ画像が送られる。もし、バンド１またはバンド２以外であれば、ディスプレイリスト格納領域９０２に格納されているディスプレイリストを、バンドラスタ格納部９０３に６００ｄｐｉとして描画を行った後、画像出力部２０５へ画像が送られる。
【００８５】
この様にＣＰＵ２０３ａは、ディスプレイリスト中の任意のバンドをバンドラスタに描画し格納するので、低解像度を引き起こす頻度を少なくすることが可能となる。
【００８６】
なお、上記実施例では、本発明に適用可能な画像出力部２０５の例としてレーザビームプリンタを示したが、他の印刷方式を採用するプリンタ、例えばインクジェットプリンタであっても本発明を適用できることはいうまでもない。
【００８７】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用しても良い。また、本発明はシステムあるいは装置にプログラムを供給することによって達成させる場合にも適用できることは言うまでもない。
【００８８】
【発明の効果】
以上説明したように、本願発明は、前記中間データ生成手段により生成された前記中間データをメモリの中間データ格納領域に格納して管理する中間データ管理手段と、前記中間データ管理手段により、１ページ分の中間データを格納できないと判断された場合に、前記中間データ格納領域にすでに格納して管理されている中間データを、前記描画すべきバンド領域に描画処理する描画制御手段と、前記バンド領域のデータの圧縮処理及び伸張処理を行う圧縮伸張手段と、前記中間データ管理手段によって１ページ分の中間データを管理することができないために生成されなかった中間データを生成すべく、前記描画制御手段によってバンド領域に描画されたデータに対して前記圧縮伸長手段による圧縮処理が施された後、前記中間データ生成手段を用いて、前記中間データの生成処理がされなかった印刷すべきデータから中間データを生成するべく制御する制御手段を備え、前記描画制御手段は、中間データを描画すべきバンド領域が描画済みでない場合に、該中間データをバンド領域に描画して前記圧縮伸張手段によりバンド領域のデータを圧縮して前記メモリに格納し、一方、中間データを描画すべきバンド領域が描画済みである場合に、圧縮されているバンド領域の圧縮データを前記圧縮伸張手段により伸張して該中間データの描画を行うことにより、１ページ分の中間データを格納することができない場合であっても、解像度を低下することなくオーバーフローを回避して印刷処理を行うことが可能となります。
【図面の簡単な説明】
【図１】本発明を適用可能な印刷装置の一例を示す断面図である。
【図２】本発明の一実施例を示す印刷装置の構成を説明するブロック図である。
【図３】図２に示したＲＡＭの第１のメモリマップを説明する模式図である。
【図４】本発明に係る印刷装置における描画展開処理手順の一例を示すフローチャートである。
【図５】図２に示したＲＡＭの第２のメモリマップを説明する模式図である。
【図６】図２に示したＲＡＭの第３のメモリマップを説明する模式図である。
【図７】図２に示したＲＡＭの第４のメモリマップを説明する模式図である。
【図８】他の実施例を示す印刷装置の構成を説明するブロック図である。
【図９】図８に示したＲＡＭに対する描画処理の一例を示すフローチャートである。
【図１０】図８に示したディスプレイリスト、バンドラスタ格納部の構成を説明する模式図である。
【図１１】図８に示したディスプレイリスト、バンドラスタ格納部の構成を説明する模式図である。
【図１２】ディスプレイリスト（中間データ）の一例を示す図である。
【図１３】図１２に示したディスプレイリストに基づくラスタライズ展開の一例を示す模式図である。
【図１４】図４に示すフローチャートのステップ（８）を詳細に示すフローチャートである。
【図１５】自動切換機能を示すフローチャートである。
【符号の説明】
２０１  ホストコンピュータ
２０２  受診バッファ
２０３ａ  ＣＰＵ
２０４  プログラムＲＯＭ
２０５  画像出力部
２０６  フォントＲＯＭ
２０７  ＲＡＭ
２０８  バンド描画部
２０９  ディスプレイリストメモリ管理部
２１０  描画時間管理部
２１１  ディスプレイリスト縮小部
２１２  ディスプレイリスト格納部（中間データ格納部）
２１３  バンドラスタ格納部（ビットマップデータ格納部）
【図１】
0003727962.tif 000002
【図２】
0003727962.tif 000003
【図３】
0003727962.tif 000004
【図４】
0003727962.tif 000005
【図５】
0003727962.tif 000006
【図６】
0003727962.tif 000007
【図７】
0003727962.tif 000008
【図８】
0003727962.tif 000009
【図９】
0003727962.tif 000010
【図１０】
0003727962.tif 000011
【図１１】
0003727962.tif 000012
【図１２】
0003727962.tif 000013
【図１３】
0003727962.tif 000014
【図１４】
0003727962.tif 000015
【図１５】
0003727962.tif 000016