(57)【特許請求の範囲】
【請求項１】
所定の大きさの１つのバンドメモリへのバンド画像データのレンダリングと、もう１つのバンドメモリからのバンド画像データの出力を並列に行うバンド並列処理が可能な印刷装置であって、
１ページ分の印刷データを複数のバンドに分割し、各バンドの印刷データをバンド画像データとしてレンダリングするためのレンダリング所要時間を求める時間予測手段と、
前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして、前記時間予測手段により求められたレンダリング所要時間とレンダリングされたバンド画像データの印刷所要時間とからオーバーランすると予測されるバンドを、前記バンド並列処理前に予め一時的に確保された一時的バンドメモリにレンダリングし、当該バンドのバンド画像データの出力後に、当該一時的バンドメモリを前記バンド並列処理の並列処理用バンドメモリとして用いるスケジュールを作成するスケジュール作成手段と、
前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記スケジュール作成手段により作成されたスケジュールで必要とされる一時的バンドメモリの数を前記スケジュール作成手段で用いたバンド並列処理で用いる並列処理用バンドメモリの数に追加した必要バンドメモリ数のうちで最小の最小バンドメモリ数よりも少ない場合に、前記並列処理用バンドメモリ数Ｎに１を加えた数を新たな並列処理用バンドメモリ数Ｎとして前記スケジュール作成手段によるスケジュール作成を繰り返す繰り返し手段と、
前記繰り返し手段による繰り返し中に、前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして作成したスケジュールで必要とされる必要バンドメモリ数と、前記最小バンドメモリ数とを比較し、前記最小バンドメモリ数が少なくなるスケジュールを現時点での最適スケジュールとして管理する管理手段と、
前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記最小バンドメモリ数よりも少なくならない場合に、前記管理手段により管理されている現時点での最適スケジュールを最終的なスケジュールとして決定する決定手段と、
前記前記決定手段により決定されたスケジュールに従って各バンドの印刷データをバンド画像データとしてレンダリングするレンダリング手段と、
各バンドメモリのバンド画像データを前記スケジュールに従って出力する出力手段とを備え、
前記スケジュール作成手段は、各バンドについて、レンダリング先のバンドメモリに格納されている出力イメージが印刷出力されて該バンドメモリが未使用になり、当該バンドのレンダリングを開始するタイミングから前記レンダリング所要時間経過したレンダリングを終了するタイミングが、前記印刷所要時間から得られる当該バンドのバンド画像データを出力するタイミングよりも遅い場合に、当該バンドをオーバーランすると予測して前記必要とされる一時的バンドメモリの数を１つずつ追加することにより、必要とされる一時的バンドメモリの数とスケジュールを作成することを特徴とする印刷装置。
【請求項２】
所定の大きさの１つのバンドメモリへのバンド画像データのレンダリングと、もう１つのバンドメモリからのバンド画像データの出力を並列に行うバンド並列処理が可能な印刷装置の制御方法であって、
１ページ分の印刷データを複数のバンドに分割し、各バンドの印刷データをバンド画像データとしてレンダリングするためのレンダリング所要時間を求める時間予測工程と、
前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして、前記時間予測工程により求められたレンダリング所要時間とレンダリングされたバンド画像データの印刷所要時間とからオーバーランすると予測されるバンドを、前記バンド並列処理前に予め一時的に確保された一時的バンドメモリにレンダリングし、当該バンドのバンド画像データの出力後に、当該一時的バンドメモリを前記バンド並列処理の並列処理用バンドメモリとして用いるスケジュールを作成するスケジュール作成工程と、
前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記スケジュール作成工程により作成されたスケジュールで必要とされる一時的バンドメモリの数を前記スケジュール作成工程で用いたバンド並列処理で用いる並列処理用バンドメモリの数に追加した必要バンドメモリ数のうちで最小の最小バンドメモリ数よりも少ない場合に、前記並列処理用バンドメモリ数Ｎに１を加えた数を新たな並列処理用バンドメモリ数Ｎとして前記スケジュール作成工程によるスケジュール作成を繰り返す繰り返し工程と、
前記繰り返し工程による繰り返し中に、前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして作成したスケジュールで必要とされる必要バンドメモリ数と、前記最小バンドメモリ数とを比較し、前記最小バンドメモリ数が少なくなるスケジュールを現時点での最適スケジュールとして管理する管理工程と、
前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記最小バンドメモリ数よりも少なくならない場合に、前記管理工程により管理されている現時点での最適スケジュールを最終的なスケジュールとして決定する決定工程と、
前記前記決定工程により決定されたスケジュールに従って各バンドの印刷データをバンド画像データとしてレンダリングするレンダリング工程と、
各バンドメモリのバンド画像データを前記スケジュールに従って出力する出力工程とを備え、
前記スケジュール作成工程では、各バンドについて、レンダリング先のバンドメモリに格納されている出力イメージが印刷出力されて該バンドメモリが未使用になり、当該バンドのレンダリングを開始するタイミングから前記レンダリング所要時間経過したレンダリングを終了するタイミングが、前記印刷所要時間から得られる当該バンドのバンド画像データを出力するタイミングよりも遅い場合に、当該バンドをオーバーランすると予測して前記必要とされる一時的バンドメモリの数を１つずつ追加することにより、必要とされる一時的バンドメモリの数とスケジュールを作成することを特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、中間データからビットマップデータを生成して印刷するレーザビームプリンタ等の印刷装置及び画像処理方法に関するものである。
【０００２】
【従来の技術】
従来より、ホストコンピュータなどから印刷内容や印刷形式に関するデータ（印刷データ）を受信して、それを元に実際に出力するビットマップを形成（以後レンダリングとする）し、そのビットマップを例えば紙面上に印刷出力（以後シッピング）するタイプの印刷装置が広く使われている。
【０００３】
このようなタイプの印刷装置でレンダリングとシッピングを同時に行なった場合、複雑な印刷データや、多量の印刷データを処理する場合、レンダリング処理にかかる時間がシッピング処理に行なうビットマップデータ転送時間より長くかかってしまい、正常に印刷出力できないという欠点があった。（以後、この現象をプリントオーバーランと称する）。
【０００４】
また、このプリントオーバーラン現象を回避するために、１ページ分の出力ビットマップをレンダリングしてからシッピング処理を行なうタイプの印刷装置もあったが、この場合必ず１ページ分のビットマップを保持する記憶装置が必要となり、出力解像度が高い印刷装置などでは記憶装置の容量を大きくしなければならないためメモリ効率が悪く、装置が非常に高価なものになってしまう欠点がある。
【０００５】
また、１ページをそれより小さな単位（バンド）で区切り、１バンド分のレンダリングを終えてからシッピングし、シッピング処理と並列に次のバンドのレンダリングを行なう（バンデイング処理）タイプの印刷装置もあるが、この場合、並列に行なっている次のバンドのレンダリング時間が、前のバンドのシッピング時間より大きくなってしまう場合、やはりプリントオーバーラン現象が起きてしまうという欠点があった。
【０００６】
【発明が解決しようとする課題】
本発明は以上のような従来の欠点を除去するためになされたもので、記憶装置の容量を低く抑えると共にプリントオーバーランを防ぐ印刷装置及び画像処理方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は上記従来例に鑑みてなされたもので、下記のような構成からなる。すなわち、所定の大きさの１つのバンドメモリへのバンド画像データのレンダリングと、もう１つのバンドメモリからのバンド画像データの出力を並列に行うバンド並列処理が可能な印刷装置であって、１ページ分の印刷データを複数のバンドに分割し、各バンドの印刷データをバンド画像データとしてレンダリングするためのレンダリング所要時間を求める時間予測手段と、前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして、前記時間予測手段により求められたレンダリング所要時間とレンダリングされたバンド画像データの印刷所要時間とからオーバーランすると予測されるバンドを、前記バンド並列処理前に予め一時的に確保された一時的バンドメモリにレンダリングし、当該バンドのバンド画像データの出力後に、当該一時的バンドメモリを前記バンド並列処理の並列処理用バンドメモリとして用いるスケジュールを作成するスケジュール作成手段と、前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記スケジュール作成手段により作成されたスケジュールで必要とされる一時的バンドメモリの数を前記スケジュール作成手段で用いたバンド並列処理で用いる並列処理用バンドメモリの数に追加した必要バンドメモリ数のうちで最小の最小バンドメモリ数よりも少ない場合に、前記並列処理用バンドメモリ数Ｎに１を加えた数を新たな並列処理用バンドメモリ数Ｎとして前記スケジュール作成手段によるスケジュール作成を繰り返す繰り返し手段と、前記繰り返し手段による繰り返し中に、前記バンド並列処理で用いる並列処理用バンドメモリ数をＮとして作成したスケジュールで必要とされる必要バンドメモリ数と、前記最小バンドメモリ数とを比較し、前記最小バンドメモリ数が少なくなるスケジュールを現時点での最適スケジュールとして管理する管理手段と、前記並列処理用バンドメモリ数Ｎに１を加えた数が、前記最小バンドメモリ数よりも少なくならない場合に、前記管理手段により管理されている現時点での最適スケジュールを最終的なスケジュールとして決定する決定手段と、前記前記決定手段により決定されたスケジュールに従って各バンドの印刷データをバンド画像データとしてレンダリングするレンダリング手段と、各バンドメモリのバンド画像データを前記スケジュールに従って出力する出力手段とを備え、前記スケジュール作成手段は、各バンドについて、レンダリング先のバンドメモリに格納されている出力イメージが印刷出力されて該バンドメモリが未使用になり、当該バンドのレンダリングを開始するタイミングから前記レンダリング所要時間経過したレンダリングを終了するタイミングが、前記印刷所要時間から得られる当該バンドのバンド画像データを出力するタイミングよりも遅い場合に、当該バンドをオーバーランすると予測して前記必要とされる一時的バンドメモリの数を１つずつ追加することにより、必要とされる一時的バンドメモリの数とスケジュールを作成する。
【００１０】
【発明の実施の形態】
［第１の実施の形態］
＜図１（装置の説明）の説明＞
まず、本実施形態の印刷装置として好適なレーザビームプリンタ（ページプリンタ）の構成について図１を参照しながら説明する。
【００１１】
なお、本実施例を適用する印刷装置は、レーザビームプリンタに限られるものではなく、インクジェットプリンタ等の他のプリント方式の印刷装置でも良いことはいうまでもない。
【００１２】
図１は本発明を適用可能な印刷装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１３】
図において、ＬＢＰ本体１０００は、外部に接続されているホストコンピュータから供給される印刷データ（文字コード、制御コード等からなるページ記述言語等のプリンタ言語）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報にしたがって対応する文字パターンやフォームパターン等のビットマップデータを作成し、記録媒体である記録紙等に像を形成する。操作パネル１０１２には操作のためのスイッチ及びＬＥＤ表示器等が配されている。プリンタ制御ユニット１００１はＬＢＰ本体１０００全体の制御及びホストコンピュータから供給される印刷データ等を解析する。
【００１４】
このプリンタ制御ユニット１００１は、主に文字情報（文字コード）を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。
【００１５】
レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン・オフ切り換えする。
【００１６】
レーザ光１００４は回転多面鏡１００５で左右方向に振られて静電ドラム１００６上を操作露光する。
【００１７】
これにより、静電ドラム１００６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１００６周囲に配設された現像ユニット１００７により現像された後、記録紙に転写される。ここで静電ドラム１００６の回転速度は一定である。
【００１８】
この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と搬送ローラ１０１１とにより、装置内に取り込まれて、静電ドラム１００６に供給される。
【００１９】
またＬＢＰ本体１０００には、図示しないカードスロットを備え、内蔵フォントに加えてオプションフォントカード、プリンタ言語系の異なる制御カード（エミュレーションカード）を接続できるように構成されている。
【００２０】
＜図２（構成ブロック図）の説明＞
図２は本実施の形態における印刷装置の制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例にして説明する。
【００２１】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行なわれるシステムであっても本発明を適用できる。
【００２２】
図において、ホストコンピュータ２．１は、所定のインターフェース（例えば双方向インターフェース）を介して印刷装置２．２に接続されて通信処理を実行する。
【００２３】
入力部２．３はホストコンピュータ２．１との間の通信処理を行なう。入力部２．３は、ホストコンピュータ２．１より印刷データを受信する処理を行なう。
ここで必要ならば印刷装置２．２の情報をホストコンピュータ２．１へ送信する処理を行なってもよい。
【００２４】
中間データ作成部２．４は、印刷データを、印刷装置内部で扱いやすい形である中間データに変換する処理を行なう。
【００２５】
ＲＡＭ２．５は本発明で使用する記憶装置である。ＲＡＭ２．５では入力部２．３で受信した印刷データより導き出された中間データを保持したり、中間データをレンダリングした結果のビットマップを保持したり、その他処理に必要な一時的なバッファエリアや、各種処理ステータスを保持したりする。
【００２６】
ＲＯＭ２．６は、本発明で説明する処理や、その他印刷装置２．２の行なう処理プログラムを保持する。
【００２７】
レンダリング部２．７は、ＲＡＭ２．５に格納された中間データの内容に従って、実際に印刷出力する印刷イメージを作成する。
【００２８】
印刷部２．８は、レンダリング部２．７で作成された印刷イメージを例えば実際の紙面へ印刷出力する出力部である。
【００２９】
ＣＰＵ２．９は、本発明の実施例である印刷装置２．２の印刷処理や後述するデータ処理を実際に行なう。
【００３０】
スケジュールリスト２．１０は、図１５で説明するバンドメモリ使用スケジュールを保持する。
【００３１】
内部バス２．１１は本印刷装置の各部を接続する。
【００３２】
ここより、ＲＯＭ２．６に蓄えられたプログラムによってＣＰＵ２．１０が行なう処理について説明する。まず、本発明の実施例の印刷装置の印刷データ受信から印刷出力までの大まかな流れと、バンド処理の仕組みを説明し、次にプリントオーバーラン回避方法についてタイムチャートを使ってその仕組みを説明し、その後実際の実現例をフローチャートを使って説明する。
＜本実施形態の印刷処理のおおまかな流れとバンド処理の仕組み＞
まず印刷処理の全体の流れをフローチャートで説明し、その後メモリの使い方を中心にバンド処理の仕組みを説明する。
【００３３】
＜図３（１ページの印刷手順）の説明＞
図３は、印刷装置２．２による１ページ分の印刷データを受信してから印刷出力するまでの手順を示したフローチャートである。
（データ受信）
ステップ３．１において、ホストコンピュータ２．１より入力部２．３で印刷データを受信する。そしてステップ３．２で受信した印刷データを中間データ作成部２．４へと送り中間データに変換し、ステップ３．３でＲＡＭ２．５へ格納する。中間データの形式は、例えばレンダリング部２．７で処理しやすい形式であったり、中間データのサイズが小さくなるような形式であったり、中間データの処理が速くなるような形式であったりと、内部処理の都合の良い形式であって良い。
（レンダリング時間の計算）
次にステップ３．４でプリントオーバーランを避ける処理のための計算を行なう。ステップ３．４ではステップ３．３で格納した中間データについてのレンダリング処理にかかる時間を計算し、それをバンド毎に集計することにより、バンド単位でのレンダリング時間を測定する。レンダリング時間計算については、図１２で詳細に説明する。
【００３４】
次にステップ３．５で、印刷データを１ページ分処理し終ったかどうかを判断し、まだページが終了していない場合は次の印刷データについてステップ３．２から処理を繰り返す。
（プリントオーバーラン回避）
印刷データを１ページ分レンダリング処理し終ったら、ステップ３．６でプリントオーバーラン回避処理を行なう。
【００３５】
プリントオーバーラン回避処理は、ステップ３．４で計算したバンド毎のレンダリング時間にもとづき、プリントオーバーランが発生しないようにバンドメモリ数やその使い方のスケジュールを決め、スケジュールリスト２．１０を作成する。プリントオーバーラン回避処理については図１６で詳しく説明する。
（印刷出力）
そして最後にステップ３．７で実際の用紙上に印刷出力する。ここではバンドメモリをプリントオーバーラン回避処理で作成したスケジュールリストに従って使用する。詳しくは図１８で説明する。
＜図４（データ入力メモリ図）の説明＞
図４は、印刷装置２．２の印刷データ受信時のメモリ処理について説明する図である。図の４．４〜４．７は印刷装置２．２内のＲＡＭ２．５を示している。
【００３６】
ホストコンピュータ２．１から入力部２．３へ印刷データが通信転送されると、そのデータは中間データ作成部２．６で中間データに変換されてＲＡＭ２．５内の中間データ格納領域４．６へと保管される。中間データの構造については、次の図５で詳細に説明する。
【００３７】
また、ＲＡＭ２．２には中間データ格納領域４．６の他に２つの「バンドメモリ」と呼ばれる領域であるバンドメモリ１（４．４）、バンドメモリ２（４．５）が用意されている。この領域は通常の印刷処理で中間データをレンダリングして得られる、印刷出力すべき出力イメージをバンド単位で蓄えておく領域である。この領域については図６で説明する。
【００３８】
ＲＡＭ２．２の残りの部分は空きメモリ４．７である。印刷データを受信していない状態では、中間データ作成領域４．６には１つも中間データが存在しないので、ＲＡＭ内にはバンドメモリ１（４．４），２（４．５）以外は全て空きメモリ４．７となっている。
【００３９】
また１ページ分の中間データを中間データ格納領域４．６へ格納してもまだ空きメモリ４．７がある場合、格納し終ったページの印刷出力処理と平行して次のページの中間データを引き続き格納することにより、メモリ容量一杯まで連続した印刷データを受信することができる仕組みとなっている。
【００４０】
以下に中間データ格納領域４．６内での中間データの管理構造を説明する。
＜図５（中間データ構造）の説明＞
図５は、印刷装置２．２による中間データの構造及び管理形式について説明した図である。本発明に基づく実施例である印刷装置は、１枚の出力ページを幾つかの小領域（バンド）で区切って、それぞれのバンドのレンダリングと印刷出力を並列して行なう。そのため本実施例では印刷データをバンド単位で管理するために、印刷データを中間データという管理しやすい形式で管理する。並列処理については、以後に図６などを用いて説明する。
【００４１】
１ページの出力用紙５．１は、バンド１、バンド２…と名付けられたバンドという小領域に区切られている。各バンドは図にあるように用紙搬送方向に垂直になるように配置されている。また、それぞれのバンドは同面積を持つように区切られているため、用紙出力時の各バンドの静電潜像形成に要する時間は一定である。
【００４２】
今、印刷装置が、図５に例示したように、出力用紙５．１に１つの文字「あ」と斜めの直線１本が描かれるような印刷データを受信したとすると、その中間データは以下のような構造になる。
【００４３】
まず中間データは、中間データ管理テーブル５．２〜５．４につながれる。中間データ管理テーブル５．２〜５．４はバンド数分だけあり、それぞれのバンド内に描画されるべき中間データをリンク構造で保持する。
【００４４】
ここで文字「あ」はバンド２内に描かれるべき文字なので、その中間データ５．５〜５．８はバンド２の中間データ管理テーブル５．３につながれている。そしてその構造は、中間データの種類を示す領域、描画位置を示す領域、その他描画に関する情報などを、それぞれの中間データの種類によって必要なだけ保持する。文字「あ」の中間データは、中間データの種類が文字であることを示すデータ種別５．５、「あ」を描画する描画位置５．６、描画する文字が「あ」であることを示す文字コード５．７、例えば大文字や袋文字、文字色など文字の修飾方法に関する修飾情報５．８からなっている。
【００４５】
用紙５．１に描かれる直線については、バンド２〜バンド３にまたがって描画されるため、中間データは２つ作成され、それぞれバンド２の中間データ管理テーブル５．３とバンド３の中間データ管理テーブル５．４につながれる。
【００４６】
このように管理される中間データは、印刷出力時にはそれぞれのバンド毎にレンダリングされ、印刷出力される。このデータは、バンド２については、データの種別が直線であることを示すデータ種別５．９、開始位置５．１０、終了位置５．１１、描画される直線が実線の太線であることなど、直線の種別や太さなどを示す線種５．１２からなっている。バンド３についても同様に、データ種別５．１３、開始位置５．１４、終了位置５．１５、線種５．１６からなっている。
【００４７】
＜図６（バンディングメモリ）の説明＞
図６は中間データ形式で格納された印刷データを実際に印刷出力するときのバンドに関する処理（バンディング）を説明した図である。
【００４８】
図６（Ａ）は、中間データを１ページ分中間データ格納領域に格納後、オーバーラン処理を終えあとのメモリマップを示している。
【００４９】
バンドメモリ１，２は、中間データをレンダリングした結果の印刷出力イメージを保管するラスタメモリである。またレンダリングする中間データは、図５で説明したデータ構造で中間データ格納領域６．３へ格納されている。
【００５０】
中間データを１ページ分格納後のプリントオーバーラン処理によって、バンドメモリの数が２より大きい必要があった場合、中間データ格納領域６．３の後など空きメモリを利用して一時的なバンドメモリ６．４を作成する。この図では一時的なバンドメモリを１つだけ作成している。
【００５１】
図６（Ｂ）は、２つのバンドメモリ１，２及び一時的なバンドメモリ６．４を利用して印刷出力する場合のデータの流れを示している。
【００５２】
中間データはレンダリング部２．７でレンダリングされ、その結果の出力ビットマップは、後で述べるプリントオーバーラン回避処理により決定されたスケジュールに従って３つのバンドメモリヘと格納され、印刷部２．８はその出力イメージを実際の用紙上へ印刷出力する。この処理は後で図１８でフローチャートにより説明する。
＜プリントオーバーラン回避方法＞
次に本発明の主要部分であるプリントオーバーランの回避方法についてその概要を説明する。
【００５３】
＜図７（バンディングタイミンク）の説明＞
図７は縦軸に時間経過をあらわし、レンダリング部、印刷部のそれぞれの処理内容、及びバンドメモリ１、バンドメモリ２の保持している出力イメージについての時間的変化を示したタイムチャートである。この図では第４バンドがプリントオーバーランを起こしている。以下、図を時間軸に沿って説明する。
【００５４】
まず時間ｔ０〜ｔ１で、レンダリング部２．７は、用紙の最初に印刷出力される最上部であるバンド１のレンダリングを行ない（７．１）、その結果得られた出力イメージをハンドラスタ１へと格納する（７．８）。
【００５５】
次にｔ１で静電ドラム１００６の回転をスタートさせる（以後印刷出力開始と表現する）。
【００５６】
時間ｔ１以降では、レンダリング処理と印刷出力処理を並列に行なう。ここで各バンド面積が一定で、かつ静電ドラム１００６の回転速度も一定なことより、各バンドの印刷出力時間（時間ｔ２−ｔ１、時間ｔ３−ｔ２、‥．）は一定であり、それは静電ドラム１００６の回転速度によって決まる。
【００５７】
時間ｔ１〜ｔ２では、既にバンドメモリ１へ格納されているバンド１の印刷イメージを印刷部２．８が印刷出力する処理（７．１５）と、レンダリング部が中間データ格納領域に格納されているバンド２の中間データをレンダリングして（７．２）バンドメモリ２へ印刷イメージを格納する処理（７．１２）を並列で行なう。
【００５８】
同様に時間ｔ２〜ｔ３ではバンド２が印刷出力され（７．１６）、バンド３がバンドメモリ１へ出力イメージ展開される（７．３，７．９）。
【００５９】
以後同様の処理を繰り返し、最終的に時間ｔ７〜ｔ８でバンド７の印刷出力を行ない（７．２１）、１ページ分の印刷を完了する。
【００６０】
以上の方式により最低バンドメモリが２バンドあればよく、１ページ分の出力イメージを格納するのに必要なメモリサイズよりはるかに少ないメモリで印刷出力処理を行なうことができるようになっている。
【００６１】
しかしながら、ここでバンド４のレンダリング７．４に注目してみると、このバンドのレンダリング時間は時間ｔ４−ｔ３より長くなっている。また、バンド４のレンダリング開始時間は、レンダリング結果をバンドメモリ２に格納するためバンド２の出力イメージを印刷出力した後、つまりｔ３以降でなくてはならない。そのため、実際のレンダリングはバンド４の印刷出力開始時間であるｔ４のタイミングでも終了しておらず、プリントオーバーランになってしまう。すなわち、印刷部２．８は、タイミングｔ４からバンド４の印刷出力を開始しようとするが、この時点ではバンド４のレンダリングは終了しておらず、正常に印刷を開始できない。
【００６２】
そこで、このような自体を回避するために、以下に本発明のプリントオーバーランの解決方法を説明する。
＜図８（プレレンダリングタイミング）の説明＞
図８は、プリントオーバーランを回避する第１の方法を説明したタイムチャートである。
【００６３】
まず、先に図６で説明したように、一時的なバンドメモリ用のメモリ６．４を確保し、プリントオーバーランするバンド４を印刷出力開始タイミングより前にあらかじめレンダリングしておく（８．１４）。他のバンドは通常と同様にレンダリング及び印刷出力し、バンド４の印刷出力時はレンダリングは行なわず一時的バンドメモリから印刷出力のみを行なう（８．１８）。
【００６４】
このように一時的なバンドメモリを用意し、レンダリングタイミングを変えることでプリントオーバーランを回避することができる。この方式は、１つのバンドのレンダリング時間がいくら長くても、確実にそのバンドのプリントオーバーランを防ぐことができるという利点がある。
＜図９（３バンド以上のバンディングタイミング）の説明＞
またプリントオーバーランを回避する第２の方法を図９に示す。
【００６５】
この方式もまた図８と同様に一時的なバンドメモリ用のメモリを確保し、今度は最初からある２つのバンドメモリと一時的なバンドメモリを合わせて３つ以上のバンドメモリを順番に使ってレンダリングと印刷出力を並列に行なう。
【００６６】
バンドメモリが３つ以上になると、図のように個々のバンドメモリの使われる頻度が低下してくる。そのため各バンドのレンダリング時間はバンドメモリの数が多くなればなるほど長く取ることができ、プリントオーバーランを防ぐことができる。
【００６７】
図９の場合、レンダリング時間の長いバンド４のレンダリング開始タイミングが、バンド３のレンダリング終了直後となり、バンドメモリが２つの場合に比べて早くなるため、バンド４の印刷出力タイミングｔ４までにレンダリングを終えることができている。
【００６８】
このように順番に使いまわすバンドメモリ数をふやすことにより、プリントオーバーランを防ぐことができる。この方式は、全体的にレンダリング可能最大時間を長く取ることができるようになる特徴を持つ。例えば、バンドメモリが３つの場合には、最大２バンド分の印刷に要する時間をレンダリングのために用いることができる。
＜図１０（本発明バンディングタイミンク）の説明＞
さらに本発明では上記２つの方法を組合せ、レンダリングのタイミングを適切にスケジューリングして、一時的なバンドメモリの確保数を最小にすることでメモリを効率よく利用する第３の方法を図１０に示す。
【００６９】
図１０は、図８あるいは図９の方法のいずれかだけでは２バンド以上の一時的バンドメモリが必要となるケースでも、本発明の方式により、必要な一時的バンドメモリの数を１バンドに抑えた結果を示す例のタイムチャートである。この例ではバンド３，４，５，６のレンダリング時間が１バンドの印刷出力に要する時間よりも長い。
【００７０】
本発明による方式では、図１０のように一時的バンドメモリ６．４にはあらかじめバンド３の出力イメージレンダリングしておく。そしてバンド３の印刷出力が終ったあとはバンドメモリ１，２、及び一時的バンドメモリの３つで並列にレンダリングと印刷出力を行なっている。
【００７１】
このようにバンドメモリの使用スケジュールを適切にたてることにより、１つの一時的バンドメモリを確保することで４つのバンドのプリントオーバーランを防ぐことができる。
＜図１１（バンドメモリ使用スケジューリング）の説明＞
以上説明したような適切なバンドメモリ使用のスケジューリングの具体例を、図１１を使って説明する。図１１は前図とはまた別のデータについての例である。図の横軸は各バンドを示し、それぞれのレンダリング時間は縦軸で示している。図１１の例では、バンド３のレンダリング時間が最も長く、次にバンド４、次にバンド５、バンド２と短くなっている。また図の３本の点線は、１つのバンドをオーバーランせずにレンダリングするためにかけられる時間を示しており、一番下の点線は、２つのバンドメモリを用いた場合、中央は３つのバンドメモリを用いた場合、一番上は４つのバンドメモリを用いた場合の時間をそれぞれ示している。
【００７２】
もし本図のような特徴を持つ印刷データを２バンドのバンドメモリを用いて印刷出力した場合、バンド２〜バンド５が許容時間を越えているのでプリントオーバーランになってしまう。ここでプリントオーバーランするバンドを全て一時的バンドメモリへあらかじめレンダリングする図８のようなスケジューリングを行なうと、４バンド分の一時的バンドメモリが必要となる。
【００７３】
そこで、一時的バンドメモリを２バンドだけ確保し、バンド３についてはあらかじめレンダリングしておく。バンド４以降はバンド３で使っていたバンドメモリも含めて４バンド全てを使ってレンダリングと印刷出力を並列で行なう。こうすることによりバンド４以外のバンドのレンダリング時間は、４バンドメモリを用いた場合のレンダリング許容時間以下なので、プリントオーバーランは起こさない。
【００７４】
このように最適なレンダリングスケジュールを組むことにより、最小の一時的バンドメモリを用いることでプリントオーバーランを防ぐことが本発明の要点である。
＜上記方法を用いた印刷処理の実現方法＞
以上が本実施形態の印刷処理の流れ、メモリの使い方、プリントオーバーラン回避方法の考え方である。以下に本実施形態の印刷装置における処理手順について、フローチャートを用いて説明する。なお全体の処理の流れは図３で説明済みであるので、そのなかのポイントとなるステップＳ３．４のレンダリング時間計算、ステップＳ３．６のオーバーラン対策、ステップＳ３．７の印刷出力処理手順を説明する。
＜図１２（レンダリング時間計算）の説明＞
図１２は、図３のステップ３．４で行なわれる、バンド単位のレンダリング時間を計算する手順のフローチャートである。ここで求めるレンダリング時間は、図３のステップ３．６のオーバーラン対策処理で一時的バンドメモリの確保数やスケジューリングを決めるのに使われる。
【００７５】
まずステップ１２．１において、中間データの種類によってレンダリング時間計算方法を選択する。
【００７６】
中間データの種類が、固定的にレンダリング時間が決まっているようなタイプのものである場合は、既にテーブルに保管しておいた中間データに対するレンダリング時間からレンダリング時間を求めるなどの処理を、ステップ１２．２で行う。このようなタイプの処理については図１３で説明する。
【００７７】
また、例えばイメージビットマップのように、そのレンダリング処理は単純にメモリ内容のコピーであるようなタイプの中間データの場合、計算するレンダリング時間は中間データのサイズより決まるため、ステップ１２．３でサイズより処理時間を計算する。
【００７８】
また、実際にレンダリングしてみないとレンダリング時間の分らないようなタイプの中間データの場合、ステップＳ１２．４において、時間測定のために実際にレンダリング処理を実行して時間を求める。このようなタイプの処理については図１４で説明する。
【００７９】
なお、これらの分岐、及び処理は、ここに示した以外の他のタイプの時間算出アルゴリズムを用いても良い。
【００８０】
それら各種中間データのタイプに応じたレンダリング時間算出処理を行なった後、ステップ１２．５において、算出した時間をバンド全体のレンダリング時間に加算し、バンド内にレンダリング時間が計算されていないオブジェクトがあればそれについて計算を行い、なければ処理を終える。
【００８１】
＜図１３（固定テーブル方式によるレンダリング時間計算）の説明＞
図１３は図１２のステップ１２．２の固定的なレンダリング時間を求める処理の例を説明した図である。事前にレンダリング時間が分っている中間データについては、図のように中間データの種類とそれに対応するレンダリング時間の対応表からレンダリング時間を検索する。
【００８２】
＜図１４（実測方式によるレンダリング時間計算）の説明＞
図１４は図１２のステップ１２．４のレンダリング時間の実測処理の例について説明したフローチャートである。ステップ１４．１で印刷装置内部タイマーをスタートし、ステップ１４．２で実際のレンダリングと同様に測定したい中間データをレンダリングする。そしてレンダリングが終り次第ステップ１４．３でタイマーをストップし、その際かかった時間をレンダリング時間とする。
【００８３】
＜図１５（スケジュールリスト）の説明＞
以上のように各バンドのレンダリング時間を計算し、図３で示したように１ページ分の印刷データをメモリ内に格納した後、図３のステップ３．６でプリントオーバーランしないようにバンドメモリの使用スケジュールをスケジュールリスト２．１０へ作成する。
【００８４】
スケジュールリストの構造は図１５で示すように、レンダリングするバンドの番号をバンド欄１５．１に、その結果得られる出力イメージを格納するバンドメモリをバンドメモリ欄１５．２にペアとして登録し、レンダリングを実行する順番にリスト構造で並べたものである。
【００８５】
図１５の場合、まず最初にバンド３を一時的バンド１へレンダリングし、その後バンド１をバンドメモリ１、バンド２をバンドメモリ２、バンド４をバンドメモリ１…．という順番にレンダリングすることを示している。なおこの図１５で示しているスケジュールは、タイミングチャート図１０のスケジュールリストである。このスケジュールの決定方法については次の図１６で説明する。またスケジュールに従った印刷処理については図１８で説明する。
【００８６】
＜図１６（オーバーラン対策）の説明＞
図１６はオーバーランが発生しないようなスケジュールリストの作成方法について説明したフローチャートである。
【００８７】
まずステップ１６．１では、バンドメモリ２つを使ってレンダリングと印刷出力を並列に実行する場合から検討を始める。このとき、スケジュールされたレンダリング手順に必要な最少バンドメモリ数として、初期的に２以下の数を設定しておく。
【００８８】
そしてステップ１６．２で実際にスケジュールを作成すると同時に、予めレンダリングしておくために追加で必要となる一時的バンドメモリ数を求める。この処理の詳細は、次の図１７で詳しく説明する。
【００８９】
次にステップ１６．３で、ステップ１６．２で求めた必要バンドメモリ数が、今まで検討したスケジュールのうち一番少ないかどうかを比較する。すなわち、最小バンドメモリ数と比較する。最小であった場合、ステップ１６．４で、今まで決定してきたスケジュールのかわりに今検討したスケジュールを、現時点における最適スケジュールとする。最小でなかった場合は、検討したスケジュールは無視する。
【００９０】
そしてステップ１６．５で、並列して使用するバンドメモリ数を、今検討したバンドメモリ数（最初は２）より１つ多いものとする。その数が現時点の最適スケジュールで必要とされるバンドメモリ数、すなわち現時点での最少ラスタバンド数より少ないかステップ１６．６で判定し、少ない場合はさらに必要バンドメモリ数が少なくてすむ可能性があるため、ステップ１６．２より検討を繰り返す。一方、最少ラスタバンド数よりもこれから検討しようとするバンドメモリ数が多い、あるいは両者が等しい場合には、必要なバンドメモリ数が減少する可能性はないため、プリントオーバーランを生じないために必要な最少のバンドメモリ数が確定したものとして、現時点で最適なスケジュールを最終的なスケジュールとして決定する。
【００９１】
このようにして最終的に、最もバンド数が少なくてすむスケジュールを決定する。
【００９２】
＜図１７（スケジュール作成）の説明＞
次に、図１６のステップ１６．２でスケジュールを作成し、必要バンド数を計算する方法について、図１７で説明する。
【００９３】
ここでは図１２で説明した方法で求められた各バンドのレンダリング時間を使い、最初のバンドから順に指定されたバンド数でレンダリングと印刷出力を並列に実行していくスケジュールを作成する。
【００９４】
処理は図のステップ１７．１からステップ１７．７までを、ページの最初のバンドから順番にレンダリングするとして繰り返して行なう。
【００９５】
それぞれのバンドのレンダリングについて、まずステップ１７．１でレンダリングした結果得られる出力イメージを格納する先のバンドメモリを決める。バンドメモリは指定された数のバンドメモリを、図７で説明したように順番に使っていく。
【００９６】
次にステップ１７．２でレンダリング開始、レンダリング終了のタイミングを以下のように計算する。
【００９７】
レンダリング開始＝前のレンダリングが終了していて、かつレンダリング先のバンドメモリが未使用になるタイミング
レンダリング終了＝レンダリング開始タイミング＋そのバンドのレンダリング時間
また、ここでバンドメモリの使用／未使用のタイミングは以下のように計算する。
【００９８】
バンドメモリ使用開始＝そのバンドメモリにレンダリングが開始されるタイミング
バンドメモリ使用終了＝そのバンドメモリに格納されている出力イメージが印刷出力され終ったタイミング
バンドメモリ使用開始から使用終了までは、バンドメモリが使用中であり、使用終了から使用開始まではバンドメモリが未使用である。
【００９９】
なお指定バンドが印刷出力され始めるタイミング／印刷出力し終るタイミングは、１つのバンドの印刷に要する時間（１バンド分の用紙搬送時間）は固定値であるため、バンドの印刷順序と用紙搬送速度から容易に決定できる。
【０１００】
こうして求めたレンダリング開始タイミングに基づき、ステップ１７．３でプリントオーバーランをチェックする。つまり、図１０に示したように、与えられた数のバンドメモリを使用してバンドのレンダリング及び印刷出力を順次行とした場合のレンダリング終了タイミングが印刷出力開始タイミングより遅かった場合、そのバンドはオーバーランするということになる。
【０１０１】
もしステップ１７．３でオーバーランしないと判断された場合、ステップ１７．５でレンダリングするバンド番号とレンダリング出力先のバンドメモリ番号を、スケジュールリストの末尾へ追加する。
【０１０２】
一方、ステップ１７．３でオーバーランする判断された場合、ステップ１７．４で追加が必要なバンドメモリ数を１つ増やし、ステップ１７．６で、その追加されたバンドメモリに、ステップＳ１７．３でオーバーランすると判定されたバンドを印刷部の起動前にあらかじめレンダリング（プリレンダリング）しておくように、スケジュールリストの先頭へバンド番号とバンドメモリ番号とを登録する。
【０１０３】
ここで一度追加したバンドメモリは、そのバンドメモリに格納されている印刷イメージが印刷出力された後は通常のバンドメモリと同様にレンダリングと印刷出力を並列に行なうために使うようにする。こうすることにより、以後のレンダリング許容時間が増え、プリントオーバーランの発生率が低くなる。
【０１０４】
以上のような処理をページの先頭のバンドから順番に全てのバンドのタイミングを計算して、プリントオーバーランが起きないスケジュールを決定する。
【０１０５】
＜図１８（印刷出力処理）の説明＞
このようにして作成されたスケジュールリストを使って、実際に印刷する処理について図１８で説明する。この図１８は図３のステップ３．７で示された印刷出力処理である。
【０１０６】
まずステップ１８．１でスケジュールリストの最初のスケジュールを取得する。
【０１０７】
そしてステップ１８．２で、スケジュールに記載されたレンダリング先のバンドメモリの状態を調べて、使用中でない、つまりレンダリングに使用してもよい場合は、そこにスケジュールに記載されたバンドの中間データをレンダリングする（ステップ１８．３）。最初はどのバンドメモリも使われていないので、必ずレンダリングできることになる。
【０１０８】
そして再度ステップ１８．１へ戻り、次のスケジュールをスケジュールリストから得る。次もまた同様にバンドメモリが使用中でない場合レンダリングし、ステップ１８．１へ戻る。これを繰り返すことにより、印刷エンジン始動前に実行できるレンダリングスケジュールは全てレンダリングしておくことになる。従って、プリレンダリングするものとスケジュールされたバンドはスケジュールリストの先頭付近にあるため、印刷前にレンダリングされてしまう。
【０１０９】
もう実行できるレンダリング動作がなくなったら、ステップ１８．４へと進み、印刷エンジンをスタートする。この際、スケジュールに従った順番で印刷部はバンドメモリからデータを順次読み出して印刷する。すなわち、印刷するバンドの順序は１から昇順であることは決まっているため、印刷しようとするバンドがレンダリングされているバンドメモリをスケジュールリストから確認し、そのバンドメモリから画像データを出力する。このために、印刷部２．８のコントローラにスケジュールを渡し、コントローラはそのスケジュールに従った順序でバンドメモリからデータを読み出し印刷する。あるいは、コントローラには読み出すバンドメモリを順序づけして渡し、コントローラは渡された順序でバンドメモリの内容を出力するようにしても良い。
【０１１０】
印刷により印刷がスタートされるとバンド１から順にレンダリング結果が実際の用紙上に印刷出力され、出力が終ると出力が済んだバンドが格納されていたバンドメモリが未使用となる。
【０１１１】
ステップ１８．５では、スケジュールによって次にレンダリング結果を格納するべきバンドメモリが未使用になるのを待って、その後ステップ１８．６でレンダリングをする。ここで、このレンダリングは必ずそのバンドのレンダリング結果を印刷開始するタイミングまでに終了することが保証されているので、プリントオーバーランは起きない。
【０１１２】
これをスケジュールリストにある全てのスケジュールについて繰り返し（ステップ１８．７）、１ページの印刷出力処理を終える。終えたならステップ１８．８で次のページのスケジュールを取得して同様の要領で印刷する。スケジュールリストのすべてのスケジュールを処理しおえたなら、印刷は終了である。
【０１１３】
＜第１の実施形態のまとめ＞
以上説明したように、本実施の形態の印刷装置では、プリントオーバーランを発生させなくする一方、レンダリングに必要なバンドメモリの必要数を最小限に抑えることでメモリ効率を良くすることができる。
【０１１４】
また、レンダリング時間を必要に応じて実測するため、確実にプリントオーバーランを防止できる。
【０１１５】
また、予めレンダリングしておくだけでも、追加のバンドメモリを利用するだけでもなく、予めレンダリングしておいたバンドが空いたならそのバンドを利用してレンダリングを印刷出力と並列に行っているため、必要なメモリを最小限に抑制することができる。
［第２の実施の形態］
次に本発明の第２の実施形態をしめす。
【０１１６】
本実施形態は、レンダリング時間の長いバンドについては、そのバンドをあらかじめレンダリングしたのち圧縮し、印刷出力時は伸長することによりプリントオーバランを防ぐものである。つまり、圧縮データの伸長時間は予測できるものである必要がある。
【０１１７】
図１９は第２の実施形態の印刷装置の構成を示したブロック図である。図の１９．１〜１９．１１は第１の実施形態のブロック図におけるブロック２．１〜２．１１と同様である。
【０１１８】
圧縮／伸長部１９．１２は、出力イメージを既に知られた符号化方式により画像データを圧縮及び伸長する。
【０１１９】
第２実施形態の説明として、まず全体の印刷処理手順を説明し、その後本実施形態の印刷装置によるプリントオーバーラン回避のための処理についてフローチャートで説明する。
【０１２０】
＜圧縮／伸長の使用形態＞
図２０は、本実施形態における１ページの印刷手順を示したフローチャートである。ステップ２０．１〜ステップ２０．６は第１実施形態の図３のステップ３．１〜３．６とそれぞれ同様なので説明は省く。本実施形態では、ステップ２０．６のあとに、指定されたバンドをレンダリングして圧縮するステップ２０．７が行なわれ、そのあとのステップ２０．８で、圧縮されたバンドは伸長されてスケジュールされたバンドメモリに展開され、圧縮されていないバンドはバンドメモリ上にレンダリングされて印刷される。この処理の詳細を図２１で説明する。ここで、ステップ２０．４は図１２の手順で行われ、ステップ２０．８は、概ね図１８の手順で行われる。ただし、圧縮されているバンドについては、ステップ１８．６のレンダリングの代わりに伸長処理が行われる。
【０１２１】
図２１（Ａ）は、図２０のステップ２０．７で行なう圧縮処理を説明したメモリ図で、（Ｂ）は、印刷出力時に伸長する動作を説明した図である。
【０１２２】
まず圧縮処理では、ステップ２０．６で作成されたスケジュールに従って、指定されたバンドの中間データ２１．３をレンダリング部１９．７でバンドメモリ２１．１へレンダリングする。その後その出力イメージを圧縮伸長部１９．１２の圧縮機能を使って圧縮し、圧縮データ格納領域２１．４へと格納する。
【０１２３】
印刷出力時は、スケジュールに従って圧縮されているデータについては、図２１（Ｂ）のように、圧縮データ２１．４を圧縮伸長部１９．１２の伸長機能を使ってバンドメモリヘ伸長し、それを印刷部１９．８により紙面へ印刷出力する。
圧縮されていないデータはレンダリングして印刷出力する。
【０１２４】
＜プリントオーバーラン回避＞
以上のような圧縮／伸長動作を使うことでプリントオーバーランを防ぐ処理について、以下に説明する。
【０１２５】
図２２は、図２０におけるステップ２０．６において、本実施形態のオーバーラン回避処理のために、どのバンドを圧縮するかどうか決める処理を説明したフローチャートである。
【０１２６】
ステップ２２．１において、圧縮するバンドはないものと設定した場合から始めて、レンダリング時間が長いバンドから順に１つずつ圧縮した場合をステップ２２．２〜ステップ２２．６で検討していく。
【０１２７】
ステップ２２．２で、第１実施形態の図１７で説明した手順でスケジュールリストを作成し、同時に必要バンドメモリ数を最小になるように計算する。ここで第１の実施形態とは違い、圧縮するとされたバンドについては、タイミングの計算にレンダリング時間ではなく圧縮データの伸長時間を使う。
【０１２８】
そして求められた必要バンドメモリ数と圧縮指定されたバンドの圧縮データサイズの和から、ステップ２２．３で必要メモリ量を計算する。
【０１２９】
そのメモリ量が今まで計算した必要メモリ量より小さいとステップ２２．４で判断された場合、ステップ２２．５で、検討中のスケジュールが現在までの最小メモリ使用率のスケジュールであるとする。
【０１３０】
そしてステップ２２．６で次にレンダリング時間の長いバンド１つを圧縮するとして、ステップ２２．７で全バンド圧縮するまで、ステップ２２．２からの検討を繰り返す。
【０１３１】
＜第２実施形態のまとめ＞
このように、レンダリング時間の長いデータを必要メモリが最小になるバンド数だけ予めレンダリングしてから圧縮することにより、メモリ効率良くプリントオーバーランを防止することができるという効果がある。また、バンドを圧縮して保存するため、もっとも多くのメモリが必要とされる場合であっても、１ページ分のメモリよりも確実に少ないメモリでプリントオーバーランを防止できる。また、印刷と並行してのレンダリングも行い、レンダリング時間が１バンド分の搬送時間を越えた場合でも、３つ以上のバンドメモリを用いることでオーバーランを防止できる場合には圧縮は行わないので、メモリを最小限に抑制できる。また、レンダリング時間が１バンド分の搬送時間を越えた場合でも、予めレンダリングして圧縮することで追加のバンドメモリを用いずともオーバーランを防止できる場合には、追加のバンドメモリは用いないので、メモリを最小限に抑制できる。
【０１３２】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１３３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。；
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１３５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３７】
【発明の効果】
以上の説明したように、本発明による印刷装置及び画像処理方法は、少ない記憶容量でプリントオーバーランを防ぐことができるという効果がある。
【図面の簡単な説明】
【図１】本発明を適応可能な出力装置の構成を示す断面図である。
【図２】本発明の実施例におけるプリンタ制御システムの構成を説明するブロック図である。
【図３】本発明の第１の実施形態における１ページ印刷手順を示したフローチャートである。
【図４】本発明の実施形態における印刷データ受信時のメモリ処理を説明する図である。
【図５】本発明の実施形態における中間データの構造及び管理形式について説明した図である。
【図６】本発明の実施形態における中間データ形式で格納された印刷データを実際に印刷出力するときのメモリ処理を説明した図である。
【図７】本発明の実施の形態における印刷出力処理の処理タイミングを説明したタイムチャートである。
【図８】本発明の実施の形態におけるプリントオーバーランを回避するための処理における、一時的なバンドメモリにあらかじめレンダリングしておく処理について説明したタイムチャートである。
【図９】本発明の実施の形態におけるプリントオーバーランを回避するための処理における、３バンド以上のバンドメモリを用いたレンダリング、印刷出力のタイミングについて説明したタイムチャートである。
【図１０】本発明の実施の形態における最小のメモリ使用率でプリントオーバーランを回避する場合の例を示したタイムチャートである。
【図１１】本発明の実施の形態における最小のメモリ使用率でプリントオーバーランを回避する処理の考え方を説明した図である。
【図１２】本発明の実施の形態におけるレンダリング時間計算処理手順を示したフローチャートである。
【図１３】本発明の実施の形態におけるレンダリング時間計算の固定テーブル方式を説明する図である。
【図１４】本発明の実施の形態におけるレンダリング時間計算の実測方式の処理手順を示したフローチャートである。
【図１５】本発明の実施の形態におけるレンダリング及びバンドメモリ使用スケジュールを保管するスケジュールリストの構造について示した図である。
【図１６】本発明の実施の形態におけるプリントオーバーラン対策処理手順を示したフローチャートである。
【図１７】本発明の実施の形態におけるスケジュールリスト作成処理手順及び必要バンドメモリ数を求める処理手順を示したフローチャートである。
【図１８】本発明の実施の形態における印刷出力手順を示したフローチャートである。
【図１９】本発明の第２の実施の形態におけるプリンタ制御システムの構成を説明するブロック図である。
【図２０】本発明の第２の実施の形態における１ページ印刷手順を示したフローチャートである。
【図２１】本発明の第２の実施の形態における圧縮／伸長処理を示したメモリ図である。
【図２２】本発明の第２の実施の形態におけるプリントオーバーラン対策処理手順を示したフローチャートである。
【図１】
0003862396.tif 000002
【図２】
0003862396.tif 000003
【図３】
0003862396.tif 000004
【図４】
0003862396.tif 000005
【図５】
0003862396.tif 000006
【図６】
0003862396.tif 000007
【図７】
0003862396.tif 000008
【図８】
0003862396.tif 000009
【図９】
0003862396.tif 000010
【図１０】
0003862396.tif 000011
【図１１】
0003862396.tif 000012
【図１２】
0003862396.tif 000013
【図１３】
0003862396.tif 000014
【図１４】
0003862396.tif 000015
【図１５】
0003862396.tif 000016
【図１６】
0003862396.tif 000017
【図１７】
0003862396.tif 000018
【図１８】
0003862396.tif 000019
【図１９】
0003862396.tif 000020
【図２０】
0003862396.tif 000021
【図２１】
0003862396.tif 000022
【図２２】
0003862396.tif 000023