(57)【特許請求の範囲】
【請求項１】
外部装置より入力された印刷データをバンド単位で管理する管理手段と、
強制的にオーバーランを回避するモードを設定する設定手段と、
前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出手段と、
前記印刷データからバンド単位に前記出力データを描画する描画手段と、
前記設定手段によって強制的にオーバーランを回避するモードが設定されているか否かを判定する判定手段と、
前記判定手段により強制的にオーバーランを回避するモードが設定されたと判定された場合、前記印刷データに基づくすべてのバンドの出力データを格納する一次メモリを確保し、前記判定手段により強制的にオーバーランを回避するモードが設定されていないと判定された場合、前記導出手段により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保すべく制御する確保制御手段と、
前記描画手段によって描画されたバンド単位の出力データを圧縮する圧縮手段と、
前記判定手段により前記強制的にオーバーランを回避するモードが設定されていると判定され、かつ、前記印刷データの全てのバンドの出力データを格納する一次メモリを確保できない場合、前記描画手段を用いてバンド単位に描画することで得られる出力データを圧縮する処理を全バンドについて前記圧縮手段で実行し、前記判定手段により前記強制的にオーバーランを回避するモードが設定されていないと判定され、かつ、前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保できない場合、前記描画手段を用いてバンド単位に描画することで得られる出力データを圧縮する処理を前記描画時間が所定時間を超えるバンドについて前記圧縮手段で実行する制御手段と、
前記制御手段による前記圧縮手段の制御によって圧縮された出力データを格納する格納手段を有することを特徴とする印刷制御装置。
【請求項２】
前記出力データを印刷する印刷手段を更に有し、
前記印刷手段は、バンド順序で印刷開始前に前記一次メモリに格納されている出力データを読み出し、前記一次メモリにバンド順序に対応するバンドの出力データがない場合は印刷開始後に前記描画手段により前記バンド出力メモリに描画生成された出力データを読み出して印刷することを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記設定手段は、前記外部装置より入力された命令により強制的にオーバーランを回避するモードを設定することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
前記設定手段は、操作パネルを介して入力される指示に従って、強制的にオーバーランを回避するモードを設定することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項５】
前記導出手段は、印刷データに基づいて生成された中間データから出力データを描画生成するための描画時間を、中間データの種類に応じて導出することを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
前記導出手段は、前記中間データの種類により、レンダリング時間対応テーブルの検索による導出、中間データのサイズによる導出、レンダリング時間を実測する導出のなかから導出方法を切り替えてレンダリング時間を導出することを特徴とする請求項５記載の印刷制御装置。
【請求項７】
前記圧縮手段により圧縮された出力データを伸長する伸長手段を更に有し、
前記導出手段により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを前記確保制御手段で前記記憶手段に確保できない場合に、該バンドについて前記描画手段により描画生成された出力データを前記圧縮手段により圧縮して前記一次メモリに格納し、該バンドの印刷時に圧縮されたデータを伸長して出力することを特徴とする請求項１乃至６のいずれか１項に記載の印刷制御装置。
【請求項８】
前記確保制御手段は、前記記憶手段に一次メモリを確保できなくなるか、印刷データに対する一次メモリの確保が終わるまで、順次印刷ページを進めて制御することを特徴とする請求項１乃至７のいずれか１項に記載の印刷制御装置。
【請求項９】
前記所定値を入力された命令に基づいて変更する変更手段を更に有していることを特徴とする請求項１乃至８のいずれか１項に記載の印刷制御装置。
【請求項１０】
外部装置より入力された印刷データをバンド単位で管理する管理工程と、
強制的にオーバーランを回避するモードを設定する設定工程と、
前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出工程と、
前記印刷データからバンド単位に前記出力データを描画する描画工程と、
前記設定工程によって強制的にオーバーランを回避するモードが設定されているか否かを判定する判定工程と、
前記判定工程により強制的にオーバーランを回避するモードが設定されたと判定された場合、前記印刷データに基づくすべてのバンドの出力データを格納する一次メモリを確保し、前記判定工程により強制的にオーバーランを回避するモードが設定されていないと判定された場合、前記導出工程により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保すべく制御する確保制御工程と、
前記描画工程によって描画されたバンド単位の出力データを圧縮する圧縮工程と、
前記判定工程により前記強制的にオーバーランを回避するモードが設定されていると判定され、かつ、前記印刷データの全てのバンドの出力データを格納する一次メモリを確保できない場合、前記描画工程を用いてバンド単位に描画することで得られる出力データを圧縮する処理を全バンドについて前記圧縮工程で実行し、前記判定工程により前記強制的にオーバーランを回避するモードが設定されていないと判定され、かつ、前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保できない場合、前記描画工程を用いてバンド単位に描画することで得られる出力データを圧縮する処理を前記描画時間が所定時間を超えるバンドについて前記圧縮工程で実行する制御工程と、
前記制御工程による前記圧縮工程の制御によって圧縮された出力データを格納する格納工程を有することを特徴とする印刷制御方法。
【請求項１１】
前記出力データを印刷する印刷工程を更に有し、
前記印刷工程は、バンド順序で印刷開始前に前記一次メモリに格納されている出力データを読み出し、前記一次メモリにバンド順序に対応するバンドの出力データがない場合は印刷開始後に前記描画工程により前記バンド出力メモリに描画生成された出力データを読み出して印刷することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１２】
前記設定工程は、前記外部装置より入力された命令により強制的にオーバーランを回避するモードを設定することを特徴とする請求項１０または１１に記載の印刷制御方法。
【請求項１３】
前記設定工程は、操作パネルを介して入力される指示に従って、強制的にオーバーランを回避するモードを設定することを特徴とする請求項１０または１１に記載の印刷制御方法。
【請求項１４】
前記導出工程は、印刷データに基づいて生成された中間データから出力データを描画生成するための描画時間を、中間データの種類に応じて導出することを特徴とする請求項１０乃至１３のいずれか１項に記載の印刷制御方法。
【請求項１５】
前記導出工程は、前記中間データの種類により、レンダリング時間対応テーブルの検索による導出、中間データのサイズによる導出、レンダリング時間を実測する導出のなかから導出方法を切り替えてレンダリング時間を導出することを特徴とする請求項１４記載の印刷制御方法。
【請求項１６】
前記圧縮工程により圧縮された出力データを伸長する伸長工程を更に有し、
前記導出工程により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを前記確保制御工程で前記記憶手段に確保できない場合に、該バンドについて前記描画工程により描画生成された出力データを前記圧縮工程により圧縮して前記一次メモリに格納し、該バンドの印刷時に圧縮されたデータを伸長して出力することを特徴とする請求項１０乃至１５のいずれか１項に記載の印刷制御方法。
【請求項１７】
前記確保制御工程は、前記記憶手段に一次メモリを確保できなくなるか、印刷データに対する一次メモリの確保が終わるまで、順次印刷ページを進めて制御することを特徴とする請求項１０乃至１６のいずれか１項に記載の印刷制御方法。
【請求項１８】
前記所定値を入力された命令に基づいて変更する変更工程を更に有していることを特徴とする請求項１０乃至１７のいずれか１項に記載の印刷制御方法。
【請求項１９】
外部装置より入力された印刷データをバンド単位で管理する管理工程と、
強制的にオーバーランを回避するモードを設定する設定工程と、
前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出工程と、
前記印刷データからバンド単位に前記出力データを描画する描画工程と、
前記設定工程によって強制的にオーバーランを回避するモードが設定されているか否かを判定する判定工程と、
前記判定工程により強制的にオーバーランを回避するモードが設定されたと判定された場合、前記印刷データに基づくすべてのバンドの出力データを格納する一次メモリを確保し、前記判定工程により強制的にオーバーランを回避するモードが設定されていないと判定された場合、前記導出工程により導出された前記描画時間が所定時間を越えるバンドの出力データを格納する一次メモリを確保すべく制御する確保制御工程と、
前記描画工程によって描画されたバンド単位の出力データを圧縮する圧縮工程と、
前記判定工程により前記強制的にオーバーランを回避するモードが設定されていると判定され、かつ、前記印刷データの全てのバンドの出力データを格納する一次メモリを確保できない場合、前記描画工程を用いてバンド単位に描画することで得られる出力データを圧縮する処理を全バンドについて前記圧縮工程で実行し、前記判定工程により前記強制的にオーバーランを回避するモードが設定されていないと判定され、かつ、前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保できない場合、前記描画工程を用いてバンド単位に描画することで得られる出力データを圧縮する処理を前記描画時間が所定時間を超えるバンドについて前記圧縮工程で実行する制御工程と、
前記制御工程による前記圧縮工程の制御によって圧縮された出力データを格納する格納工程を有することを特徴とするコンピュータ読み取り可能なプログラムが格納された記憶媒体。
【請求項２０】
前記出力データを印刷する印刷工程を更に有し、
前記印刷工程は、バンド順序で印刷開始前に前記一次メモリに格納されている出力データを読み出し、前記一次メモリにバンド順序に対応するバンドの出力データがない場合は印刷開始後に前記描画工程により前記バンド出力メモリに描画生成された出力データを読み出して印刷することを特徴とする請求項１９に記載の記憶媒体。
【請求項２１】
前記設定工程は、前記外部装置より入力された命令により強制的にオーバーランを回避するモードを設定することを特徴とする請求項１９または２０に記載の記憶媒体。
【請求項２２】
前記設定工程は、操作パネルを介して入力される指示に従って、強制的にオーバーランを回避するモードを設定することを特徴とする請求項１９または２０に記載の記憶媒体。
【請求項２３】
前記導出工程は、印刷データに基づいて生成された中間データから出力データを描画生成するための描画時間を、中間データの種類に応じて導出することを特徴とする請求項１９乃至２２のいずれか１項に記載の記憶媒体。
【請求項２４】
前記導出工程は、前記中間データの種類により、レンダリング時間対応テーブルの検索による導出、中間データのサイズによる導出、レンダリング時間を実測する導出のなかから導出方法を切り替えてレンダリング時間を導出することを特徴とする請求項２３記載の記憶媒体。
【請求項２５】
前記圧縮工程により圧縮された出力データを伸長する伸長工程を更に有し、
前記導出工程により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを前記確保制御工程で前記記憶手段に確保できない場合に、該バンドについて前記描画工程により描画生成された出力データを前記圧縮工程により圧縮して前記一次メモリに格納し、該バンドの印刷時に圧縮されたデータを伸長して出力することを特徴とする請求項１９乃至２４のいずれか１項に記載の記憶媒体。
【請求項２６】
前記確保制御工程は、前記記憶手段に一次メモリを確保できなくなるか、印刷データに対する一次メモリの確保が終わるまで、順次印刷ページを進めて制御することを特徴とする請求項１９乃至２５のいずれか１項に記載の記憶媒体。
【請求項２７】
前記所定値を入力された命令に基づいて変更する変更工程を更に有していることを特徴とする請求項１９乃至２６のいずれか１項に記載の記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、印刷データから出力用ビットマップデータを生成して印刷するレーザビームプリンタ等の印刷制御装置及び印刷制御方法及びプログラム記憶媒体に関するものである。
【０００２】
【従来の技術】
従来より、ホストコンピュータなどから印刷内容や印刷形式に関するデータ(印刷データ)を受信して、それを元に実際に出力するビットマップを形成(以後レンダリングとする)し、そのビットマップを例えば紙面上に印刷出力(以後シッピング)するタイプの印刷装置が広く使われている。
【０００３】
このようなタイプの印刷装置で1ページ分の出力ビットマップをレンダリングしてからシッピング処理を行なうタイプ(以後フルペイント処理と呼ぶ)の印刷装置があるが、この場合必ず1ページ分のビットマップを保持する記憶装置が必要となり、出力解像度が高い印刷装置やカラー印刷装置などでは記憶装置の容量を大きくしなければならないため、装置が非常に高価なものになってしまう欠点がある。また、１ページ分のビットマップのレンダリングを終えてからシッピングを行い、シッピングが終わったから次ページのビットマップのレンダリングを行うため、印刷スループットが悪いという欠点がある。
【０００４】
そのため1ページをそれより小さな単位(バンド)で区切り、1バンド分のレンダリングを終えてからシッピングし、シッピング処理と並列に次のバンドのレンダリングを行なうタイプ(以後バンディング処理と呼ぶ)の印刷装置が開発された。この方式ではレンダリング用とシッピング用の最低2つのバンド分の記憶装置があれば良いので、1ページ分必要な前出の方式より印刷装置の記憶装置容量を少なく押さえることができ、印刷スループットもあがる。
【０００５】
しかし一般的にレーザビーム等の印刷装置はシッピング処理をページの途中で止めることができないため、レンダリングに時間のかかるバンドがあった場合に、前のバンドのシッピングが終わっても次のバンドのレンダリングが終わらないため、正常な印刷ができないこと(以後オーバーランと呼ぶ)があった。
【０００６】
さらに昨今の技術革新でシッピング処理は高速化する傾向にあり、逆に高解像度化、カラー印刷などレンダリング処理はより時間がかかる傾向にあるため、オーバーランが発生しやすくなってきている。
【０００７】
そこで回避策として印刷装置にバンディング処理とフルペイント処理の両方を搭載し、バンディング処理でオーバーランしてしまう印刷データに関しては、印刷装置をフルペイント処理を行うように切り替えて再度印刷しなおすようにしていた。
【０００８】
【発明が解決しようとする課題】
ここでバンディング処理とフルペイント処理は、印刷装置内に印刷データを保管する形式や印刷処理の単位がバンドか1ページ分かと大きく違うため、処理プログラムや記憶装置の使い方がまったく相いれない方式である。そのため2系統の処理プログラムが必要なため印刷装置のプログラムＲＯＭサイズが大きくなって装置価格を上げる要因となっていた。
【０００９】
またバンディング処理で大量ページを印刷していてオーバーランが起きた場合、別方式であるフルペイント処理に切り替えて再度最初から印刷しなおす必要があるため、処理プログラムの変更と記憶装置の使用方法を変更するため、印刷スループットが悪いという欠点があった。
【００１０】
本発明は以上のような従来の欠点を除去するためになされたもので、バンディング処理においてバンド毎にフルペイント処理のようなオーバーランを完全に回避する機構をつけ、オーバーランの発生を予測して事前に回避することにより、オーバーランの発生率を低下させる。
【００１１】
さらにそれでもオーバーランする場合にも、バンド毎に行うオーバーラン回避処理の実行頻度を上げることにより、完全にオーバーランを回避する。
【００１２】
このように本発明ではバンディング処理のみで完全にオーバーランを防ぐことで、プログラムＲＯＭサイズが減少して装置価格が下げることができ、かつ再印刷の頻度を下げることのできる印刷処理を提供することを目的としている。
【００１３】
【課題を解決するための手段】
外部装置より入力された印刷データをバンド単位で管理する管理手段と、強制的にオーバーランを回避するモードを設定する設定手段と、前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出手段と、前記印刷データからバンド単位に前記出力データを描画する描画手段と、前記設定手段によって強制的にオーバーランを回避するモードが設定されているか否かを判定する判定手段と、前記判定手段により強制的にオーバーランを回避するモードが設定されたと判定された場合、前記印刷データに基づくすべてのバンドの出力データを格納する一次メモリを確保し、前記判定手段により強制的にオーバーランを回避するモードが設定されていないと判定された場合、前記導出手段により導出された前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保すべく制御する確保制御手段と、前記描画手段によって描画されたバンド単位の出力データを圧縮する圧縮手段と、前記判定手段により前記強制的にオーバーランを回避するモードが設定されていると判定され、かつ、前記印刷データの全てのバンドの出力データを格納する一次メモリを確保できない場合、前記描画手段を用いてバンド単位に描画することで得られる出力データを圧縮する処理を全バンドについて前記圧縮手段で実行し、前記判定手段により前記強制的にオーバーランを回避するモードが設定されていないと判定され、かつ、前記描画時間が所定時間を超えるバンドの出力データを格納する一次メモリを確保できない場合、前記描画手段を用いてバンド単位に描画することで得られる出力データを圧縮する処理を前記描画時間が所定時間を超えるバンドについて前記圧縮手段で実行する制御手段と、前記制御手段による前記圧縮手段の制御によって圧縮された出力データを格納する格納手段を有することを特徴とする印刷制御装置。
【００２５】
【発明の実施の形態】
〔第一実施例〕
以下に添付図面を参照して本発明の好適な実施の形態を説明する。まず、本実施の形態の構成を説明する前に、本実施の形態を適用するに好適なレーザービームプリンタの構成について図１及び図２を参照しながら説明する。なお、本実施例を適用する画像処理装置は、レーザビームプリンタに限られるものではなく、他のプリント方式の画像処理装置でも良いことはいうまでもない。
【００２６】
図1は本発明を適用可能な印刷制御装置の構成を示すレーザービームプリンタ（ＬＢＰ）の構成を示す断面図である。
【００２７】
図において、１０００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷データ(文字コード、制御コード等からなるページ記述言語等のプリンタ言語)やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報にしたがって対応する文字パターンやフォームパターン等のビットマップデータを作成し、記録媒体である記録紙等に像を形成する。１０１２は操作のためのスイッチ及びＬＥＤ表示器等が配されている操作パネル、１００１はＬＢＰ本体１０００全体の制御及びホストコンピュータから供給される印刷データ等を解析するプリンタ制御ユニットである。
【００２８】
このプリンタ制御ユニット１００１は、主に文字情報(文字コード)を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。
【００２９】
レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。レーザ光１００４は回転多面鏡１００５で左右方向に振られて静電ドラム１００６上を操作露光する。
【００３０】
これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。ここで静電ドラム１００６の回転速度は一定である。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。
【００３１】
またＬＢＰ本体１０００には、図示しないカードスロットを備え、内蔵フォントに加えてオプションフォントカード、プリンタ言語系の異なる制御カード(エミュレーションカード)を接続できるように構成されている。
【００３２】
図２は本発明の一実施例を示すプリンタ制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例にして説明する。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行なわれるシステムであっても本発明を適用できることは言うまでもない。
【００３３】
図において、２０００はホストコンピュータ等の外部装置で、所定のインターフェース(例えば双方向インターフェース)を介して印刷装置１０００に接続されて通信処理を実行する。
【００３４】
２０１はホストコンピュータ２０００との間の通信処理を行なう入力部である。入力部はホストコンピュータ２０００より印刷データを受信する処理を行なう。ここで必要ならば印刷装置１０００の情報をホストコンピュータ２０００へ送信する処理を行なってもよい。
【００３５】
２０２は印刷データを、印刷装置内部で扱いやすい形である中間データに変換する処理を行なう中間データ作成部である。
【００３６】
２０３は本発明で使用する記憶装置の一例としてのＲＡＭを示している。ＲＡＭ２０３では入力部２０１で受信した印刷データより導き出された中間データを保持したり、中間データをレンダリングした結果のビットマップを保持したり、その他処理に必要な一時的なバッファエリアや、各種処理ステータスを保持したりする。
【００３７】
２０４は本発明で説明する図１０、１１、１３〜１６、１８のフローチャートの処理や、その他印刷装置１０００の行なう処理プログラムを保持するＲＯＭである。２０５はＲＡＭ２０３に格納された中間データの内容に従って、実際に印刷出力する印刷イメージを作成するレンダリング部である。２０６はビットマップイメージを圧縮したり、圧縮されたビットマップイメージを伸長する処理を行なう圧縮/伸長部である。２０７はレンダリング部２０５で作成された印刷イメージや、圧縮/伸長部２０６で伸長されたイメージを例えば実際の紙面へ印刷出力する出力部である。
【００３８】
２０８は本発明の実施例である印刷装置１０００の印刷処理や後述するデータ処理を実際に行なうＣＰＵである。２０９は本印刷装置の各部を接続する内部バスである。２１０は強制オーバーラン回避フラグであり、本発明で実現するオーバーラン回避方法を、オーバーランするかどうかをバンド毎に予測して必要なバンドのみ行うのか、または強制的に全バンド回避処理を行うかどうかを決めるフラグである。このフラグはホストコンピュータからの命令（プリンタドライバにより生成される印刷データに含まれる）や印刷装置本体１０００のスイッチや操作パネル１０１２のメニューで、ユーザによって必要な方法に切り替えられる。
【００３９】
本実施例でいう印刷制御装置とは、印刷装置１０００のコントローラ（制御部分）もしくは、コントローラと印刷部を含むものの両方の意味を有している。以後は、一般に印刷装置という。
【００４０】
以後、ＲＯＭ２０４に蓄えられたプログラムによってＣＰＵ２０８が行なう処理について、まず図３〜図５でバンディング処理について説明し、次に図６〜図９でオーバーラン回避処理について説明する。最後に図１０〜図１６で全体の処理手順をフローチャートを用いて説明する。
【００４１】
〔バンディング処理についての説明〕
図３は、本実施例の印刷装置の中間データの構造及び管理形式について説明した図である。
【００４２】
本発明に基づく一実施例である印刷装置は、1枚の出力ページを幾つかの小領域(以下バンドと呼ぶ)で区切って、そのバンド単位で処理を行う。例えば、ＲＡＭ２０３には最低２つのバンドの領域を保持しており、バンドに出力データのレンダリングとバンドに描画されたビットマップデータの印刷部への印刷出力を並列処理で同時に行なうのである。そのため本実施例では印刷データをバンド単位で管理するために、印刷データを中間データという管理しやすい形式で管理する。並列処理については、以後に図４などを用いて説明する。
【００４３】
図３において３０１は出力用紙1ページ分をあらわし、それぞれバンド1、バンド2と名付けられたバンドに区切られている。バンドは図にあるように用紙搬送方向に垂直になるように配置されている。また、それぞれのバンドは同面積を持つように区切られているため、用紙出力時のバンドの静電潜像時間は一定である。
【００４４】
今印刷装置が、出力用紙３０１にあるように1つの文字「あ」と斜めの直線1本が描かれるような印刷データを受信したとすると、その中間データは以下のような構造になる。
【００４５】
まず中間データは３０２〜３０４で示される中間データ管理テーブルにつながれる。中間データ管理テーブル３０２〜３０４はバンド数分だけあり、それぞれのバンド内に描画されるべき中間データをリンク構造で保持する。
【００４６】
中間データの内容を３０５〜３０８に示す。３０５は中間データの種類を示す情報であり、「あ」の場合は文字となる。３０６は描画オブジェクトの描画位置を示している。３０７は描画オブジェクトのデータを示しており、「あ」の場合は文字コードが格納されている。この文字コードに対応してレンダリング時にはフォントＲＯＭからフォントのビットマップデータを読み出して来るのである。３０８は修飾方法に関する情報が格納されている。
【００４７】
３０１に示される出力情報において、文字「あ」はバンド2内に描かれるべき文字なので、その中間データ３０５〜３０８はバンド2の中間データ管理テーブル３０３につながれている。そしてその構造は、中間データの種類を示す領域、描画位置を示す領域、その他描画に関する情報などを、それぞれの中間データの種類によって必要なだけ保持する。文字「あ」の中間データは、中間データの種類が文字であることを示す３０５、「あ」を描画する描画位置３０６、描画する文字が「あ」であることを示す文字コード３０７、例えば太文字や袋文字、文字色など文字の修飾方法に関する情報３０８からなっている。
【００４８】
更に出力情報３０１に描かれる直線については、バンド2〜バンド3にまたがって描画されるため、中間データは2つ作成され、それぞれバンド2の中間データ管理テーブル３０３とバンド3の中間データ管理テーブル３０４にリンクされている。ここで３０９はデータの種類が直線であることを示し、３１０はその直線の描画開始位置を示し、３１１で描画の終了位置を示している。３１２は線種を示している。線種とは線の太さや破線等の線の修飾情報のことである。
【００４９】
このように管理される中間データは、印刷出力時にはそれぞれのバンド毎にレンダリングされ、印刷出力される。
【００５０】
図４は中間データ形式で格納された印刷データを実際に印刷出力するときのバンドに関する処理を説明した図である。
【００５１】
今まで述べたようにＲＡＭ２０３内に確保されている中間データ格納領域４０１にバンド別に管理されて格納された中間データは、各バンド毎にレンダリング部２０５によってレンダリングされる。レンダリングによって得られた印刷イメージ（ビットマップデータ）はバンドラスタ１（４０２）とバンドラスタ２（４０３）のどちらかに格納され、印刷部２０７に送られて紙面上に印刷出力される。これらの処理は図１６で後述する。
【００５２】
〔バンディングタイミングの説明〕
印刷イメージを４０２と４０３のどちらのバンドラスタに格納するかは、図５を用いて説明する。
【００５３】
図５は縦軸に時間経過をあらわし、レンダリング部２０５、出力部である印刷部２０７のそれぞれの処理内容、及びバンドラスタ1、バンドラスタ2の保持している出力イメージについての時間的変化を示したタイムチャートである。
【００５４】
以下、図を時間軸に沿って説明する。
【００５５】
まず時間t0〜t1でレンダリング部は、用紙の最初に印刷出力される最上部であるバンド1のレンダリングを行ない(５．１)、その結果得られた出力イメージをバンドラスタ1へと格納する(５．８)。次にt1で静電ドラム１００６の回転をスタートさせる(以後印刷出力開始と表現する)。
【００５６】
時間t1以降では、レンダリング処理と印刷出力処理を並列に行なう。ここで各バンド面積が一定で、かつ静電ドラム１００６の回転速度も一定なことより、各バンドの印刷出力時間(時間t2-t1、時間t3-t2、...)は一定であり、それは静電ドラム１００６の回転速度によって決まる。
【００５７】
時間t1〜t2では、既にバンドラスタ1へ格納されているバンド1の印刷イメージを印刷部が印刷出力する処理(５．１５)と、レンダリング部が中間データ格納領域に格納されているバンド2の中間データをレンダリングしバンドラスタ2へ印刷イメージを格納する処理(５．１２)を並列で行なう。同様に時間t2〜t3ではバンド2が印刷出力され(５．１６)、バンド3がバンドラスタ1へ出力イメージ展開される(５．９)。以後それらを繰り返し、最終的に時間t7〜t8でバンド7の印刷出力を行ない(５．２１)、1ページ分の印刷を完了する。
【００５８】
以上の方式によりバンドラスタの領域が最低2バンドあればよく、1ページ分の出力イメージを格納するのに必要なメモリサイズよりはるかに少ないメモリで印刷出力処理を行なうことができる。なおバンドラスタは2つに限るわけではなく、3つ以上であっても良いことは言うまでもない。バンドラスタの数が多いほどオーバーランを回避するための時間が多くなり、それだけ複雑な描画が可能となる効果がある。
【００５９】
ここで先に述べたように各バンドの印刷出力時間は静電ドラム１００６の回転速度に依存して一定だが、各バンドのレンダリングに要する時間はその中間データにより変化する。そのためあるバンドの中間データが非常にレンダリングに時間がかかるタイプのものであった場合、バンドのレンダリング時間が印刷出力時間より大きくなってしまい、プリントオーバーランしてしまう。
【００６０】
そこで本発明では、次のようにその障害を回避する。
【００６１】
〔オーバーラン回避処理についての説明〕
図６はプリントオーバーランを回避するための処理について説明した図である。図６ではすでに説明したものは同じ番号が振られている。ここでは例としてバンド4のレンダリング時間がバンド出力処理時間を越えているケースを考える。
【００６２】
Ａは中間データを1ページ分中間データ格納領域に格納し終ったあとのメモリマップを示している。この時点でプリントオーバーランするバンドを予測し、そのバンド数分だけ一時的なバンドラスタを確保する。今回の例では４バンド目だけがオーバーランすることが予測される場合について考え、1つの一時的バンドラスタ６０１を確保する。オーバーランするバンドの予測方法については、後で図１０と図１１を用いて詳細に説明する。また、これらの処理手順については図１４でフローチャートを用いて説明する。
【００６３】
オーバーランすると予測されるバンドがある場合は、図６のＢのように、レンダリングをバンドラスタ１（４０２）、バンドラスタ２（４０３）、一時的バンドラスタ６０１に対して適切に行ない、印刷出力もそれら3つのバンドラスタから行なうことによりプリントオーバーランを回避する。これらの処理手順は図１６で後述する。
【００６４】
それぞれのバンドのレンダリング、印刷出力タイミングとバンドラスタの使われ方については、次図を用いて説明する。
【００６５】
図7はプリントオーバーランを回避するための処理における、一時的なバンドラスタを用いたレンダリング、印刷出力のタイミングについて説明したタイムチャートである。この処理では図5で説明したタイミングとは異なり、印刷出力開始前に2つのバンドについて予めレンダリングを行なう。
【００６６】
まず時間t0〜t1をでプリントオーバーランすると予測されたバンド４の中間コードをレンダリングし(７．１)、その結果得られる出力イメージを一時的バンドラスタへと格納する(７．１４)。
【００６７】
次に通常と同じく時間t1〜t2で最初に印刷出力されるバンドであるバンド１についてレンダリングを行ない(７．２)、出力イメージをバンドラスタ１へ格納する(７．８)。そして時間t2で印刷出力を開始する。時間t2以降は先に図５で述べたタイミングと同様に各バンドのレンダリングと印刷出力を並列に処理していく。
【００６８】
そして図５ではバンド４をレンダリングしていた時間t4〜t5ではレンダリングを行なわず、バンド４を印刷出力する時間t5〜t6では、既に一時的バンドラスタにレンダリングしてあるバンド４の出力イメージを印刷出力する(７．１８)。
【００６９】
このように一時的なバンドラスタを用意し、レンダリングタイミングを変えることでプリントオーバーランを回避することができる。
【００７０】
しかし、ここでプリントオーバーランするバンド数が多い場合、例えば全バンドがオーバーランすると予測された場合は、結局フルペイント方式と同等に1ページ分レンダリングできるだけの多量のメモリが必要となる。また強制オーバーラン回避フラグ２１０の状態によっては、強制的に全バンドがオーバーラン回避処理されるが、この場合も多量のメモリが必要である。これでは印刷装置が高価格になってしまう。
【００７１】
このような場合を本発明では次に述べる方法で回避する。
【００７２】
〔プレレンダリング圧縮処理の説明〕
図８は、一時的なバンドラスタの容量を低く押さえる処理を示す図である。なお前に説明したものは同じ番号をふってある。
【００７３】
図のＡでは印刷出力を開始する前に行なう処理について示してある。一時的なバンドラスタを確保できない場合にはまず、プリントオーバーランすると予測されたバンドをバンドラスタ４０２にレンダリングする。そして得られた出力イメージを圧縮/伸長部８０１の圧縮機能を使ってイメージ圧縮し、圧縮データ８０２としてＲＡＭ２０３へと格納する(以後バンド圧縮処理とする)。
【００７４】
圧縮データ８０２の大きさは通常のバンドラスタより圧縮した分小さいので、ＲＡＭ２０３の容量は低く押さえられる。
【００７５】
そして印刷出力時には図のＢのように、通常のバンドは2つのバンドラスタを使ってレンダリング、印刷出力し、圧縮データとして格納されたバンドについては圧縮伸長部の伸長機能を使って伸長しながら印刷出力する。
【００７６】
これらの処理手順は図１５、図１６でフローチャートを用いて後で説明する。
【００７７】
〔プレレンダリング圧縮タイミングの説明〕
図８で説明した処理方式に基づいてレンダリング、印刷出力を行なうタイミングを、図９のタイムチャートを用いて説明する。この図でも例として４バンド目（バンド４）がプリントオーバーランすると予測されたとする。
【００７８】
まず印刷出力を開始する前に時間t0〜t2の間にプリントオーバーランするバンド4をバンドラスタ1へレンダリングし(９．８)、得られた出力イメージを圧縮/伸長部の圧縮機能を用いて圧縮し(９．１７)、圧縮データをとしてＲＡＭ２０３へ格納する(９．１６)。以降図5で説明したタイミングと同様に、時間t3〜t4で先頭のバンド１をレンダリングし(９．９)、印刷出力を開始する。
【００７９】
プリントオーバーランすると予測されたバンド以外のバンドはレンダリング、印刷出力を並列して行なうが、オーバーランすると予測されたバンド４については圧縮データを伸長してバンドラスタ２へと格納する(９．１８)。
【００８０】
しかしここでバンドの伸長処理時間(時間t6〜t7)はバンドの印刷出力処理時間より短くなければ、伸長処理によりプリントオーバーランしてしまう。ここで圧縮/伸長部は、その伸長処理時間によりプリントオーバーランしないスピードを持った方式を選択しなければならない。一般的に伸長スピードはレンダリングスピードに比べて予測しやすいものであるので、伸長スピードがオーバーランしないくらい速い圧縮方式を使うか、場合によっては伸長処理をハードウエアを使うなどして高速化する必要がある。
【００８１】
〔全体処理手順の説明〕
図１０は本発明の一実施例を示すプリンタ制御システムの、1ページ分の印刷データを受信してから印刷出力するまでの手順を示したフローチャートである。
【００８２】
ステップＳ１００１において、ホストコンピュータ２０００より転送され入力部２０１で受信された印刷データを、中間データ作成部２０２により中間データに変換し、ＲＡＭ２０３内に格納する。中間データの形式は、例えばレンダリング部２０５で処理しやすい形式であったり、中間データのサイズが小さくなるような形式であったり、中間データの処理が速くなるような形式であったりと、内部処理の都合の良い形式であって良い。更に、印刷データと共にホストコンピュータ２０００から送信されてくる強制オーバーラン回避コマンドに応じて、強制オーバーラン回避フラグ２１０を更新する。なお、この強制オーバーラン回避コマンドはページ単位で存在しており、ページ単位で強制オーバーラン回避フラグ２１０を更新する。
【００８３】
次にステップＳ１００２でプリントオーバーランを避ける処理のための計算を行なう。ステップＳ１００２ではステップＳ１００１で格納した中間データのレンダリング処理にかかる時間を計算し、それをバンド毎に集計することにより、バンド単位でのレンダリング時間を測定する。レンダリング時間計算手順については、図１１で詳細に説明する。
【００８４】
次にステップＳ１００３で、印刷データを1ページ分処理し終ったかどうかを判断し、まだページが終了していない場合は次の印刷データについてステップＳ１００１から処理を繰り返す。1ページ分の中間データを格納し終わったら、ステップＳ１００４でプリントオーバーラン回避処理を行なう。
【００８５】
プリントオーバーラン回避処理は、ステップＳ１００２で計算したバンド毎のレンダリング時間がしきい値を越えた場合、そのバンドを印刷出力前にレンダリングすること（本実施例ではプリレンダリング処理という）により行なう。ここでしきい値は、印刷処理における紙搬送速度とバンドのサイズより、以下の式から求める。
【００８６】
しきい値 ＝ 用紙搬送時間 × バンド高さ ÷ 用紙紙高さ − オーバーヘッド
【００８７】
ここで、それぞれの用語の説明は以下の通りである。
【００８８】
用紙搬送時間 … 印刷エンジンの特性により決まる1ページの用紙の搬送にかかる時間
用紙高さ … 印刷用紙の用紙搬送方向の長さ
バンド高さ … バンドの用紙搬送方向の長さ
オーバーヘッド … 1つのバンドのレンダリング処理にかかる、レンダリング時間以外の要素
【００８９】
本実施例ではこのような計算でしきい値を求めるが、例えばしきい値は
しきい値＝用紙搬送時間×バンド高さ÷用紙紙高さ−オーバーヘッド＋（前のバンドのしきい値−前のバンドのレンダリング時間）
としてもよい。ここで前のバンドがプリントオーバーラン対策している場合は、前のバンドのレンダリング時間は０であるということができる。
【００９０】
またしきい値を求める別の方法として、しきい値を直前のレンダリング終了時点からそのバンドのレンダリングを開始しなければならない時点までの時間としてもよい。この場合も直前のレンダリング終了時点とは、処理しているバンド以前の、最後にプリントオーバーラン処理していないバンドのレンダリングが終った時点のことである。
【００９１】
ステップＳ１００４ではバンド毎のレンダリング時間がしきい値を越えた場合、そのバンドをレンダリングして得られるビットマップを保管するための一時的なラスタメモリをＲＡＭ２０３に確保する。
【００９２】
これらのラスタメモリが確保できた場合、印刷出力前にプリントオーバーランすると予測される全てのバンドの中間データをそれぞれの一時的なラスタメモリにレンダリングして格納することによって、プリントオーバーランせずに印刷できる確率を非常に低く押さえることができるようになる。このプリントオーバーラン対策処理は、図１４で詳細に説明する。
【００９３】
そしてステップＳ１００４の処理においてＲＡＭ２０３内に全てのプリントオーバーラン対策のためのラスタメモリを確保するだけ容量の空き領域があるかステップＳ１００５で判断する。つまりプリレンダリング処理が必要なすべてのバンドに対してラスタメモリが確保できるかをＲＡＭ２０３の空きアドレスを参照して判断するのである。ステップＳ１００５でプリントオーバーラン対策のラスタメモリが確保できないと判断された場合、ステップＳ１００６において、プリントオーバーランするバンドのレンダリングを行ない、得られたビットマップイメージを圧縮し、圧縮データ形式でＲＡＭ２０３内に保管する。この処理は、図１５で後述する。
【００９４】
ステップＳ１００６でバンド圧縮処理を終えたら、ステップＳ１００７で、もう一度メモリが不足しているかを判断する。もしメモリが不足していると判断された場合は、ステップＳ１００９でプリントオーバーランする全てのバンドについてレンダリングした後、実際に紙面に印刷出力する。この印刷出力処理手順は図１６で説明する。
【００９５】
ステップＳ１００５で、ラスタメモリを確保できると判断された場合は、ステップＳ１００８に処理を進め、ホストコンピュータ２０００から入力された印刷データの全ページがすべて中間データに変換されたかを判断する。まだ全ページが終了していない場合は次のページの印刷データについてステップＳ１００１から処理を繰り返す。この時、強制オーバーラン回避フラグは前述したようにページ単位で更新される。印刷データの全ページ分の中間データを格納し終わったら、ステップＳ１００９で印刷出力の処理（図１６）を行なう。
【００９６】
ここで、既に述べたように圧縮データの伸長時間は本実施例では紙搬送速度より十分に高速であるため、圧縮されたバンドがプリントオーバーランを起こすことはない。
【００９７】
〔レンダリング時間計算の説明〕
図１１は、図１０のステップＳ１００２で行なう、バンド単位のレンダリング時間を計算する方法について述べたフローチャートである。ここで求めるレンダリング時間は、図１０のステップＳ１００４のオーバーラン対策処理でしきい値と比べるのに使われる。
【００９８】
まずステップＳ１１０１において、中間データの種類によってレンダリング時間計算方法を選択するために、ＣＰＵ２０８は入力された中間データを解析し、中間データの種類を識別する。
【００９９】
例えば中間データの種類が、固定的にレンダリング時間が決まっているようなタイプのものである場合は、例えば既にテーブルに保管しておいた中間データに対するレンダリング時間の対応テーブルからレンダリング時間を求めるなどの処理を行なうステップＳ１１０２に分岐する。ステップＳ１１０２では、レンダリング時間対応テーブル（図１２）よりレンダリング時間を検索する。
【０１００】
またステップＳ１１０１の識別判断で、例えばイメージビットマップのように、そのレンダリング処理は単純にメモリ内容のコピーであるようなタイプの中間データの場合、計算するレンダリング時間は中間データのサイズより求める処理であるステップＳ１１０３へと分岐する。ステップＳ１１０３では、中間データのサイズによりＣＰＵ２０８はレンダリング時間を算出する。
【０１０１】
その他例えば、実際にレンダリングしてみないとレンダリング時間の分らないようなタイプの中間データの場合、時間測定のために実際にレンダリング処理を実行するような処理であるステップＳ１１０４に分岐し、実際にレンダリング時間を求める。このようなタイプの処理については図１３で説明する。
【０１０２】
これらの分岐、及び処理は、ここに示した以外の他のタイプの時間算出アルゴリズムを用いても良いことは言うまでもない。また、レンダリング時間とは、何分何秒というような具体的な時間であってもよいが、ここではタイムファクタやクロック数であってもよい。タイムファクタとは、描画単位を決めておき、その描画単位の何倍かを示すものである。描画単位には、例えば１ピクセルのドットをコピーするのに必要な単位であったり、１２ｐのフォントをＲＯＭ２０４からコピーするのに必要な時間単位である。クロック数とは、例えばアウトラインフォントで一本線を描画するのに必要なＣＰＵ２０８の演算時間（クロック）である。本実施例でいうレンダリング時間とは、このように時間を示す情報のことである。
【０１０３】
ステップＳ１１０２〜Ｓ１１０４のような各種中間データのタイプに応じたレンダリング時間算出処理を行なった後、ステップＳ１１０５において算出した時間をバンド全体のレンダリング時間に加算し、処理を終える。それぞれのバンドのレンダリング時間は、ＲＡＭ２０３にバンドレンダリング時間として格納されている。
【０１０４】
〔レンダリング時間計算 - 固定テーブル方式の説明〕
図１２は図１１のＳ１１０２の固定的なレンダリング時間を求める処理の例を説明した図である。
【０１０５】
事前にレンダリングが固定的に分っている中間データについては、図１２のように中間データの種類とそれに対応するレンダリング時間の対応テーブルからレンダリング時間を検索する。事前にレンダリング時間が固定的にわかっている中間データとは、例えばビットマップフォントである。ビットマップフォントはラスタメモリにコピーするだけだからである。また、アウトラインフォントも中間データを作る際にビットマップに展開しキャッシュしておくので同様である。
【０１０６】
〔レンダリング時間計算 - 実測方式の説明〕
図１３は図１１のステップＳ１１０４のレンダリング時間の実測処理の例について説明したフローチャートである。
【０１０７】
ステップＳ１３０１で印刷装置内部タイマーをスタートし、ステップＳ１３０２で実際のレンダリングと同様に測定したい中間データをレンダリング部２０５がレンダリングする。そしてレンダリングが終り次第ステップＳ１３０３でタイマーをストップし、その間かかった時間をレンダリング時間とする。
【０１０８】
〔オーバーラン対策の説明〕
図１４は、図１０のステップＳ１００４で行なうオーバーラン対策処理を説明したフローチャートである。
【０１０９】
処理はまずステップＳ１４０１で強制オーバーラン回避フラグ２１０を参照し、もし強制回避するモードであった場合はステップＳ１４０３で処理中のページのすべてのバンドのカウントアップを行なう。つまり１ページ分のバンド数を求める。本実施例では図３に示したように７バンド分である。
【０１１０】
強制回避しないモードであった場合はステップＳ１４０２でバンド全体のレンダリング時間と図１０（ステップＳ１００２）で説明したしきい値を比較し、もしレンダリング時間がしきい値を越えるかを判断する。もしレンダリング時間がしきい値を超える、つまりオーバーランが発生すると判断された場合、ステップＳ１４０３でプリントオーバーランするバンドのカウントアップを行なう。
【０１１１】
そしてステップＳ１４０４でページの全バンドについて処理を行なうまで、ステップＳ１４０１からの手順を繰り返す。
【０１１２】
1ページ分のカウントアップ処理を終えたらステップＳ１４０５において、現在のＲＡＭ２０３の空き領域にステップＳ１４０３でカウントアップされたバンドバンド数分の一時的なバンドラスタを確保できるかどうかを調べ、その結果を処理結果として確保できるのであれば処理を終了し、確保できないのであればステップＳ１４０６でメモリ不足として後述の処理をするためにオーバーラン対策の図１４の処理は終わる。
【０１１３】
図１４で説明したオーバーラン対策の処理プログラムに基づいてＣＰＵ２０８がメモリ不足と判断した場合、次に図１５で説明するバンド圧縮処理を行なう。
【０１１４】
〔バンド圧縮処理の説明〕
図１５は、図１０のステップＳ１００６で説明した、プリントオーバーランバンド用の一時的なバンドラスタ領域がＲＡＭ２０３の空き領域不足により確保できなかった場合の、バンドの中間データを圧縮データに変換するバンド圧縮処理を説明したフローチャートである。
【０１１５】
まずステップＳ１５０１においてオーバーランするバンドの1つをＲＡＭ２０３のバンドラスタ１（バンドラスタ２でもよい）にレンダリングする。そしてステップＳ１５０２で得られたビットマップイメージを圧縮/伸長部８０１の圧縮機能を使って圧縮データに変換する。そしてステップＳ１５０３で全てのオーバーランするバンドについて同様の処理を行なうまで、ステップＳ１５０１から処理を繰り返す。
【０１１６】
〔印刷出力処理の説明〕
図１６は、図１０のステップＳ１００９で示された印刷出力処理を説明したフローチャートである。
【０１１７】
まず図１４で説明したプリントオーバーラン対策によって確保された、プリントオーバーランバンド用の一時的なバンドラスタに対して処理を行なう。
【０１１８】
ステップＳ１６０１で、プリントオーバーランバンド用の一時的バンドラスタがあるかどうかを調べ、確保されている場合は、ステップＳ１６０２で対応するすべてのバンドの中間データを一時的バンドラスタ６０１へとレンダリングする。この時点ではまだ印刷エンジンはスタートされていないため、これらのレンダリング処理に時間がかかっても、プリントオーバーラン現象は起きない。このステップで、オーバーランが発生すると予測されたすべてのバンドと、強制オーバーラン回避の処理が行われるページのすべてのバンドの中間データがレンダリングされる。すべての中間データのレンダリングが終了するとステップＳ１６０３に処理を進める。
【０１１９】
次にステップＳ１６０３で実際に紙面に印刷出力するために印刷エンジンをスタートさせる。その後ステップＳ１６０４において、ＣＰＵ２０８はそのバンドの印刷データの保持形態を調べる。
【０１２０】
印刷データが中間データであった場合はステップＳ１６０５へと分岐し、ステップＳ１６０５でレンダリング部２０５は通常のバンドラスタ領域（バンドラスタ１もしくは２）に中間データをレンダリングする。
【０１２１】
このレンダリングでは、既に説明したように事前にプリントオーバーランと予測されるバンドをはじいているので、プリントオーバーラン現象は発生しないはずである。その後、ステップＳ１６０６で得られた印刷イメージを紙面へと印刷出力する。
【０１２２】
ステップＳ１６０４で、もしバンドの印刷データがステップＳ１６０２で一時的バンドラスタ６０１へ中間データが既にレンダリングされていると判断された場合、それらはすぐに印刷出力できる印刷イメージなので、ステップＳ１６０６で一時的バンドラスタ６０１から印刷イメージを印刷出力する。
【０１２３】
もしバンドの印刷データがバンド圧縮処理によって作成された圧縮データである場合、ステップＳ１６０７で圧縮データ８０２を圧縮/伸長部８０１が伸長しながら印刷出力を行なう。この場合既に述べたように、本実施例では伸長処理にかかる時間はエンジンの出力スピードより十分速いとしてあるので、プリントオーバーランが起きることは決してない。
【０１２４】
最後にステップＳ１６０８において、全バンドを印刷出力処理したかどうかを判断し、まだの場合はステップＳ１６０４より処理を繰り返す。この判断はオーバーラン対策（図１０のステップＳ１００４）が行われたすべてのページの全バンドの印刷出力が行われる。
【０１２５】
以上までが本発明の実施例にもとづく印刷装置の、オーバーラン回避及び強制オーバーラン回避の処理の説明である。
【０１２６】
以上の説明したように本願発明の印刷制御装置は、以下の構成からなる。即ち、外部装置（ホストコンピュータ２０００）より入力された印刷データをバンド単位で管理する管理手段（中間データ作成部２０２）と、印刷処理モード（強制オーバーラン回避フラグ２１０によるモード）を設定する設定手段（ホストコンピュータより入力された命令もしくは操作パネルからの指示によりＣＰＵ２０８が強制オーバーラン回避フラグ２１０を更新する）と、前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出手段（図１１処理プログラムにより制御するＣＰＵ２０８の機能）と、バンドの印刷データを格納する一次メモリ（一時的バンドラスタ６０１）を記憶手段（ＲＡＭ２０３）に確保する確保手段（ステップＳ１４０５のプログラムによるＣＰＵ２０８の制御）と、前記設定手段により設定された印刷処理モードに基づいて、前記印刷データのすべてのバンドを格納する一次メモリを前記確保手段で確保するか、前記導出手段により導出された前記描画時間が所定値（しきい値）を超えるバンドを格納する一次メモリを前記確保手段で確保するかを制御する制御手段（図１４のの処理プログラムに基づくＣＰＵ２０８の制御）とを有することものである。
【０１２７】
また、出力データを格納する複数のバンド出力メモリ（バンドラスタ１およびバンドラスタ２）と、前記印刷データに基づいて出力データを前記バンド出力メモリもしくは前記一次メモリに描画生成する描画手段（レンダリング部２０５）と、前記出力データを印刷する印刷手段（印刷部２０７）とを更に有し、前記印刷手段は、バンド順序で印刷開始前に前記一次メモリに格納されている出力データを読み出し、前記一次メモリにバンド順序に対応するバンドの出力データがない場合は印刷開始後に前記描画手段により前記バンド出力メモリに描画生成された出力データを読み出して印刷する（図１６）ことを特徴とするものである。
【０１２８】
また、前記導出手段は、印刷データに基づいて生成された中間データから出力データを描画生成するための描画時間を、中間データの種類に応じて導出する（図１１）ことを特徴とするものである。
【０１２９】
また、出力データを圧縮する圧縮手段（圧縮/伸長部２０６）と、前記圧縮手段により圧縮された出力データを伸長する伸長手段（圧縮/伸長部２０６）とを更に有し、前記導出手段により導出された前記描画時間が所定時間を超えるバンドを格納する一次メモリを前記確保手段で前記記憶手段に確保できない場合に、該バンドを前記描画手段により描画生成された出力データを前記圧縮手段により圧縮して前記一次メモリに格納する（図１５）ことを特徴とするものである。
【０１３０】
また、前記圧縮手段により圧縮された出力データを格納する前記一次メモリに確保できない場合に、前記印刷手段により出力データの印刷を始める（図１０のステップＳ１００７）ことを特徴とするものである。
【０１３１】
また、前記制御手段は、前記記憶手段に一次メモリを確保できなくなるか、印刷データに対する一次メモリの確保が終わるまで、順次印刷ページを進めて制御する（図１０のステップＳ１００７とＳ１００８）ことを特徴とするものである。
【０１３２】
以上のように本発明を第一実施例の印刷装置及び印刷制御方法及びプログラム記憶媒体に適応すると、少ないメモリ容量で印刷できるバンディング処理においてプリントオーバーランの起きる確率を非常に低く押さえることができるという効果がある。
【０１３３】
また強制オーバーラン回避フラグにより、確実にオーバーランを防ぐ処理が、別処理であるフルペイント処理を行わずにバンディング処理のみで実現できるため、プログラムＲＯＭを小さくすることができ、装置価格を下げることができるという効果がある。
【０１３４】
〔第二実施例〕
図１７(第二実施例のブロック図)の説明
図１７は本発明の他の実施例を示すプリンタ制御システムの構成を説明するブロック図である。ここでも、レーザビームプリンタ（図１）を例にして説明する。実施例１で説明した図２との違いは、１７０１のオーバーラン回避率だけであるので、他の説明は省略する。なお、図２と同じものには同番号をふってある。
【０１３５】
オーバーラン回避率１７０１は、バンド毎にオーバーランするかどうかを計算する際に使われる係数を格納してあるブロックであり、このフラグはホストコンピュータからの命令や印刷装置本体１０００のスイッチやパネルメニューで変更される。それ以外のブロックは実施例１の図２で説明したものと同様であるので、説明を省略する。
【０１３６】
図１８（実施例2のオーバーラン対策)の説明
本第二実施例の印刷装置では、レンダリング時間計算では予測できなかったオーバーランを回避する処理を、第一実施例で示したように全バンドに強制的にオーバーラン回避処理を行うかわりに、オーバーランを起こしそうなバンドがより回避処理を行いやすくすることで解決している。
【０１３７】
図１８は、次に本発明にもとづく第二実施例の特徴であるオーバーラン回避率を使う実際の処理手順を説明するフローチャートである。
【０１３８】
本第二実施例のオーバーラン対策処理は、各バンドについてオーバーラン回避処理をするかどうかを判断し、処理を行うと判断されたバンドについて一時的なバンドラスタを確保するという全体の流れは第一実施例と同じである。
【０１３９】
第一実施例との違いはステップＳ１８０１で、ここで各バンドについて予測されたレンダリング時間にオーバーラン回避率を掛け合わせる。そしてその結果をステップＳ１８０２でしきい値と比較してオーバーラン回避処理を行うかどうかを判断する。
【０１４０】
ここでオーバーラン回避率は通常１であるが、オーバーランしてしまった時やオーバーランしやすそうな印刷処理を行う時は、ユーザが行う操作パネルからの指定やホストコンピュータ２０００にあるプリンタドライバからの指定によって１より大きな値に変更される。
【０１４１】
こうすることにより、レンダリング時間が計算で求められたものより長くかかると予想されることとなり、オーバーラン回避率が１の時にしきい値ぎりぎりで回避されなかったバンドに対して、オーバーラン回避処理が行われることになる。
【０１４２】
以上説明したように本第二実施例の印刷制御装置は、以下の構成からなる。即ち、外部装置より入力された印刷データをバンド単位で管理する管理手段と、印刷処理モードを設定する設定手段と、前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出する導出手段と、バンドの印刷データを格納する一次メモリを記憶手段に確保する確保手段と、前記設定手段により設定された印刷処理モードに基づいて、前記印刷データのすべてのバンドを格納する一次メモリを前記確保手段で確保するか、前記導出手段により導出された前記描画時間が所定値を超えるバンドを格納する一次メモリを前記確保手段で確保するかを制御する制御手段と、前記所定値を入力された命令に基づいて変更する変更手段（オーバーラン回避率１７０１によりＣＰＵ２０８が制御する）とを有しているものである。
【０１４３】
以上のように本発明を第二実施例の印刷装置及び印刷制御方法及びプログラム記憶媒体に適応すると、少ないメモリ容量で印刷できるバンディング処理においてプリントオーバーランの起きる確率を非常に低く押さえることができるという効果がある。
【０１４４】
またオーバーラン回避率を調整することにより、現実的にはオーバーランを完全に防ぐことが可能であり、かつフルペイント処理のように必要以上に多くのメモリを使うことがないため、装置価格を下げることができるという効果がある。
【０１４５】
なお、上記第一、第二実施例で示された処理は、主としてＣＰＵ２０８が処理するものであり、そのプログラムは外部のメモリカードにより供給されるという形態でも実現できる。すなわち、前述した各実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し、実行することによっても、達成されることは言うまでもない。
【０１４６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４７】
プログラムコードを供給するための記憶媒体としては、例えば、プロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリカード、ＲＯＭ、ＤＶＤ等をもちいることができる。
【０１４８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５０】
また、実施形態ではレーザープリンタを例にして説明したが、これに限るものではなく、いかなる方式のプリンタにも適用できる。
【０１５１】
このようにプログラムを格納した記憶媒体で本発明を実現するには以下のようなプログラム工程が必要となる。即ち、外部より入力された印刷データをバンド単位で管理させる管理工程と、印刷処理モードを設定させる設定工程と、前記印刷データに基づいてバンド単位の出力データを描画生成する描画時間を導出させる導出工程と、バンドの印刷データを格納する一次メモリを記憶手段に確保する確保工程と、前記設定工程で設定された印刷処理モードに基づいて、前記印刷データのすべてのバンドを格納する一次メモリを前記確保工程で確保するか、前記導出工程で導出された前記描画時間が所定値を超えるバンドを格納する一次メモリを前記確保工程で確保するかを制御させる制御工程とを含むものである。
【０１５２】
以上の説明から明らかなように本発明による印刷装置及び印刷制御方法及びプログラム記憶媒体は、少ないメモリ容量で印刷できるバンディング処理においてプリントオーバーランの起きる確率を非常に低く押さえることができるという効果がある。
【０１５３】
また、本発明の印刷装置及び印刷制御方法及びプログラム記憶媒体は、強制オーバーラン回避フラグにより、確実にオーバーランを防ぐ処理が、別処理であるフルペイント処理を行わずにバンディング処理のみで実現できるため、プログラムROMを小さくすることができ、装置価格を下げることができるという効果がある。
【０１５４】
また、本発明の印刷装置及び印刷制御方法及びプログラム記憶媒体は、オーバーラン回避率を調整することにより、現実的にはオーバーランを完全に防ぐことが可能であり、かつフルペイント処理のように必要以上に多くのメモリを使うことがないため、装置価格を下げることができるという効果がある。
【０１５５】
【発明の効果】
以上の説明から明らかなように本発明による印刷装置及び印刷制御方法及びプログラム記憶媒体は、少ないメモリ容量で印刷できるバンディング処理においてプリントオーバーランの起きる確率を非常に低く押さえることができるという効果がある。
【０１５６】
また、本発明の印刷装置及び印刷制御方法及びプログラム記憶媒体は、強制オーバーラン回避フラグにより、確実にオーバーランを防ぐ処理が、別処理であるフルペイント処理を行わずにバンディング処理のみで実現できるため、プログラムROMを小さくすることができ、装置価格を下げることができるという効果がある。
【０１５７】
また、本発明の印刷装置及び印刷制御方法及びプログラム記憶媒体は、オーバーラン回避率を調整することにより、現実的にはオーバーランを完全に防ぐことが可能であり、かつフルペイント処理のように必要以上に多くのメモリを使うことがないため、装置価格を下げることができるという効果がある。
【図面の簡単な説明】
【図１】本発明を適応可能な出力装置の構成を示す断面図である。
【図２】本発明の実施例におけるプリンタ制御システムの構成を説明するブロック図である。
【図３】本発明の実施例における中間データの構造及び管理形式について説明した図である。
【図４】本発明の実施例における中間データ形式で格納された印刷データを実際に印刷出力するときのバンドに関する処理を説明した図である。
【図５】本発明の実施例における印刷出力処理の処理タイミングを説明したタイムチャートである。
【図６】本発明の実施例におけるプリントオーバーランを回避するための処理について説明した図である。
【図７】本発明の実施例におけるプリントオーバーランを回避するための処理における、一時的なバンドラスタを用いたレンダリング、印刷出力のタイミングについて説明したタイムチャートである。
【図８】本発明の実施例におけるバンド圧縮を説明する図である。
【図９】本発明の実施例におけるバンド圧縮処理に基づいてレンダリング、印刷出力を行なうタイミングを説明するタイムチャートである。
【図１０】本発明の実施例における1ページ印刷手順を示したフローチャートである。
【図１１】本発明の実施例におけるレンダリング時間計算処理手順を示したフローチャートである。
【図１２】本発明の実施例におけるレンダリング時間計算の固定テーブル方式を説明する図である。
【図１３】本発明の実施例におけるレンダリング時間計算の実測方式の処理手順を示したフローチャートである。
【図１４】本発明の実施例におけるプリントオーバーラン対策処理手順を示したフローチャートである。
【図１５】本発明の実施例におけるバンド圧縮処理手順を示したフローチャートである。
【図１６】本発明の実施例における印刷出力手順を示したフローチャートである。
【図１７】本発明の実施例2におけるプリンタ制御システムの構成を説明するブロック図である。
【図１８】本発明の実施例2におけるプリントオーバーラン対策処理手順を示したフローチャートである。
【図１】
0003957859.tif 000002
【図２】
0003957859.tif 000003
【図３】
0003957859.tif 000004
【図４】
0003957859.tif 000005
【図５】
0003957859.tif 000006
【図６】
0003957859.tif 000007
【図７】
0003957859.tif 000008
【図８】
0003957859.tif 000009
【図９】
0003957859.tif 000010
【図１０】
0003957859.tif 000011
【図１１】
0003957859.tif 000012
【図１２】
0003957859.tif 000013
【図１３】
0003957859.tif 000014
【図１４】
0003957859.tif 000015
【図１５】
0003957859.tif 000016
【図１６】
0003957859.tif 000017
【図１７】
0003957859.tif 000018
【図１８】
0003957859.tif 000019