(57)【特許請求の範囲】
【請求項１】
データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ出力するまでの一連の自動処理を制御する第１印刷制御手段と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ出力する処理を制御する第２印刷制御手段と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別手段と，を具備する画像形成装置において，
前記第１印刷制御手段が，前記時間超過バンドデータがビットマップ展開可能なサイズの時間超過バンドデータ用の領域及び前記時間内バンドデータがビットマップ展開可能なサイズの時間内バンドデータ用の領域をそれぞれ前記第１記憶手段内に複数確保すると共に，
前記第１印刷制御手段が，前記所要時間判別手段が１ページ分の前記バンドデータに前記時間超過バンドデータが存在すると判別した場合に，前記時間超過バンドデータについての前記ビットマップ画像データを前記第１記憶手段内の前記時間超過バンドデータ用領域に事前展開させ，時間内バンドデータについての前記ビットマップ画像データを前記第1記憶手段内の前記時間内バンドデータ用領域に展開させる処理と，展開を終了したバンドデータ用領域に記憶されたビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなり，
前記第１印刷制御手段と前記第２印刷制御手段とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御してなることを特徴とする画像形成装置。
【請求項２】
データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ出力するまでの一連の自動処理を制御する第１印刷制御手段と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ出力する処理を制御する第２印刷制御手段と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別手段と，を具備する画像形成装置において，
前記第１印刷制御手段が，前記画像形成手段の実行により，前記バンドデータを順次ビットマップ展開するのに用いるバンドデータ用の領域を前記第１記憶手段内に確保し，
前記第１印刷制御手段が，１ページ分の前記バンドデータに前記時間超過バンドデータが存在する場合に，全ての前記バンドデータ各々について，前記ビットマップ画像データを前記第１記憶手段内のバンドデータ用のある領域に展開させる処理と，該第１記憶手段内の前記ある領域とは異なる別の領域に記憶された前記ビットマップ画像データを前記第２記憶手段へ転送する処理とを並行して実行させた後に，続けて前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理を実行させてなり，
前記第１印刷制御手段と前記第２印刷制御手段とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御してなることを特徴とする画像形成装置。
【請求項３】
データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ出力するまでの一連の自動処理を制御する第１印刷制御手段と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，前記印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ出力する処理を制御する第２印刷制御手段と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別手段と，を具備する画像形成装置において，
前記第２印刷制御手段が，前記画像形成手段の実行により，前記バンドデータを順次ビットマップ展開するのに用いるバンドデータ用の領域を前記第１記憶手段内に確保し，
前記第２印刷制御手段が，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が既定の許容数を超える場合に，全ての前記バンドデータについて前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ出力してなり，
前記第１印刷制御手段と前記第２印刷制御手段とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御してなることを特徴とする画像形成装置。
【請求項４】
前記第２印刷制御手段が，
１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数以下である場合に，その各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行するとともに前記時間内バンドデータ各々を前記第２記憶手段に記憶させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記第１記憶手段に記憶させた後に，前記第２記憶手段内の前記時間内バンドデータ各々について前記第１記憶手段に展開させる処理と前記第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなる請求項２に記載の画像形成装置。
【請求項５】
前記第２印刷制御手段が，
１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合に，全ての前記バンドデータ各々を前記第２記憶手段に転送した後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開する処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなる請求項２に記載の画像形成装置。
【請求項６】
前記第２印刷制御手段が，
１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合に，全ての前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させ，さらに全ての前記バンドデータに対応する前記ビットマップ画像データと全ての前記バンドデータとのいずれか総データサイズの小さい方を前記第２記憶手段に保持させた後，前記印刷要求の入力があった際に，前記第２記憶手段内に前記バンドデータが保持されている場合はその各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，前記第２記憶手段内に前記ビットマップ画像データが保持されている場合はその各々を前記画像形成手段へ出力してなる請求項２に記載の画像形成装置。
【請求項７】
前記第２印刷制御手段が，
全ての前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させ，
１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数を超える場合又は全ての前記バンドデータの総データサイズよりも全ての前記バンドデータに対応する前記ビットマップ画像データの総データサイズの方が小さい場合には前記ビットマップ画像データをそのまま前記第２記憶手段に保持させ，その他の場合には前記第２記憶手段に保持された前記時間内バンドデータに対応する前記ビットマップ画像データに代えて前記時間内バンドデータを保持させ，その後前記印刷要求の入力があった際に，前記第２記憶手段内に前記ビットマップ画像データ及び前記時間内バンドデータが保持されている場合は前記ビットマップ画像データを前記第１記憶手段に記憶させた後に前記時間内バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，
前記第２記憶手段内に前記時間内バンドデータのみが保持されている場合はその各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，
前記第２記憶手段内に前記ビットマップ画像データのみが保持されている場合はその各々を前記画像形成手段へ出力してなる請求項２に記載の画像形成装置。
【請求項８】
前記第１印刷制御手段又は前記第２印刷制御手段によって前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させる場合よりも，前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させる場合の方が，前記第１記憶手段に展開して併存可能とする前記バンドデータ単位の前記ビットマップ画像データの最大数を小さく設定してなる請求項１〜６のいずれかに記載の画像形成装置。
【請求項９】
前記第２印刷制御手段が，
常に１ページ分の前記バンドデータ全てについて前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ出力してなる請求項１〜７のいずれかに記載の画像形成装置。
【請求項１０】
データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，を具備する画像形成装置について，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ転送するまでの一連の自動処理を制御する第１印刷制御工程と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ転送する処理を制御する第２印刷制御工程と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別工程と，をコンピュータに実行させるための画像形成装置の制御プログラムにおいて，
前記第１印刷制御工程が，前記時間超過バンドデータがビットマップ展開可能なサイズの時間超過バンドデータ用の領域及び前記時間内バンドデータがビットマップ展開可能なサイズの時間内バンドデータ用の領域をそれぞれ前記第１記憶手段内に複数確保し，
前記第１印刷制御工程が，前記所要時間判別工程が１ページ分の前記バンドデータに前記時間超過バンドデータが存在すると判別した場合に，前記時間超過バンドデータについての前記ビットマップ画像データを前記第１記憶手段内の前記時間超過バンドデータ用領域に事前展開させ，時間内バンドデータについての前記ビットマップ画像データを前記第1記憶手段内の前記時間内バンドデータ用領域に展開させる処理と，展開を終了したバンドデータ用領域に記憶された前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなり，
前記第１印刷制御工程と前記第２印刷制御工程とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御する工程であることを特徴とする画像形成装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，印刷データを受信した際にそれを印刷処理する機能と，印刷データを受信した際にその関連データを一旦記憶し，印刷要求が入力された際に記憶したデータに基づいて印刷処理する機能とを備えた画像形成装置及びその制御プログラムに関するものである。
【背景技術】
【０００２】
プリンタや，プリンタ機能や複写機能，ファクシミリ機能等を備えた複合機等の画像形成装置では，外部装置（例えば，パーソナルコンピュータ等）から送られてきた印刷データ（一般に，ページ記述言語で表されたデータ）を受信し，その印刷データに基づいて画像を出力（画像形成）を行う。このような画像形成装置では，受信した印刷データをビットマップデータ（ビットマップ画像データ）に変換してＲＡＭ等の高速メモリに展開する機能を備えている。そして，そのビットマップデータは，プリンタエンジンに転送され，このプリンタエンジンによって記録紙等の被転写部材に画像形成が行われる。
さらに，画像形成装置には，印刷データが受信された際に画像形成までの一連の処理を自動的に行う通常の印刷処理（以下，直接印刷処理という）に加え，印刷データが受信された際にその関連データを一旦記憶し，その後，印刷要求が入力された際に記憶したデータに基づいて画像形成を行う処理（以下，ホールド印刷処理という）を行う機能を有するものがある。
前記ホールド印刷処理では，外部装置から印刷データを受信した際に，それを変換して得られたビットマップデータをハードディスク等の記憶手段（大容量であるが比較的アクセス速度の遅い記憶手段）に一旦保持（記憶）し，その後，外部装置や当該画像形成装置の操作パネル等から，保持されたビットマップデータを指定した印刷要求が入力された際に，指定されたビットマップデータに基づく画像形成を行う。これにより，外部装置から印刷データを再送することなく画像形成を行うことができる。
なお，本書では，「転送」とは，データをその供給元から供給先へ送信（伝送）し，送信完了後のデータを，その供給元に残さない処理を表すものとする。また，「出力」とは，データをその供給元から供給先へ送信（伝送）し，送信完了後のデータを，その供給元に残す場合と残さない場合との両方を含む処理を表すものとする。
【０００３】
一方，一定の速度で画像形成を行うプリンタエンジンを備えた画像形成装置では，ビットマップデータをＲＡＭ等の高速メモリに領域が確保されたバッファメモリに一時記憶させ，バッファメモリ内のビットマップデータをプリンタエンジンに対して転送することが行われている。
その際，１ページ分のビットマップデータをバッファメモリ（フレームバッファという）に展開して一時記憶させ，そのビットマップデータをプリンタエンジンに転送する方式が採用されることがある。これは，一般にフレームバッファ方式といわれ，処理はシンプルではあるが，１ページ分のビットマップデータのデータサイズ以上の大容量のバッファメモリ（フレームバッファ）を，高価な高速メモリ（バッファメモリ）内に確保しなければならず，同じく高速メモリを必要とする他の処理の速度に与える影響が大きいというデメリットがある。
これに対し，必要なバッファメモリの容量を抑える方式として，バンドバッファ方式が知られている。
バンドバッファ方式では，まず，受信した印刷データを，その１ページ分を予め設定された分割画像領域（バンド）ごとに複数に分割したデータとする。さらに，その分割したデータごとにデータサイズが比較的小さくなる中間言語データに変換したデータに変換する場合もある。以下，前記分割したデータ又はそのデータを中間言語データに変換したものをバンドデータという。ここで，中間言語データとは，印刷データの内容に相当する内容をビットマップデータに変換しやすい形式で表現するファンクションコールの集合体である。
そして，このバンドデータを，順次ビットマップデータに変換しながらバンドバッファと呼ばれる比較的小容量のバッファメモリに展開し（以下，ビットマップ展開処理という），これと並行して，バンドバッファからビットマップデータを１バンド分（前記分割画像領域分）ずつプリンタエンジンに転送（移動）する。この転送により，当該ビットマップデータはバンドバッファから消去される。
このように，前記バンドデータごとのビットマップ展開処理とプリンタエンジンへのビットマップデータの転送処理（バンドバッファからのデータ消去を伴う）とが並行して行われるため，１ページ分の前記バンドデータに対応するビットマップデータ全てをバッファメモリに展開する必要がなく，バッファメモリの必要容量を小さくできる。ビットマップ展開処理の速度が，プリンタエンジンの処理速度よりも十分速い場合は，理想的には，２バンド分のビットマップデータを一時記憶できるバッファメモリ（バンドバッファ）を確保すればよいことになる。
【０００４】
ここで，バンドバッファ方式では，プリンタエンジンにより，ある前記バンドデータに対応するビットマップデータについて画像形成処理に要する時間よりも，その次の前記バンドデータをビットマップデータに変換してバンドバッファ（バッファメモリ）へ展開する処理（以下，ビットマップ展開処理という）に要する時間の方が長い場合，いわゆるオーバーランが発生し，正しい画像出力結果を得ることができないことが生じる。もちろん，より多くの前記バンドデータについて前記ビットマップ展開処理を事前に行った後に，ビットマップデータのプリンタエンジンへの転送を開始すれば，オーバーランの発生頻度を抑えることができる。しかし，そうすると，常に比較的大容量のバンドバッファが必要となり，さらに印刷開始が遅れるため，バンドバッファ方式とした効果が薄れる。
これに対し，特許文献１には，前記ビットマップ展開処理に要する時間が予め設定されたしきい値以上と判断された前記バンドデータについては，事前に前記ビットマップ展開処理を行ってバンドバッファに記憶させておくプリレンダリングを行う画像出力装置が示されている。これにより，オーバーランが発生すると予測される前記バンドデータが存在する場合にのみ，必要な分だけバンドバッファの容量を通常よりも拡張して確保すればよい。
また，特許文献２には，前記ホールド印刷処理が可能な画像形成装置において，外部装置から送られてきた印刷データを当該画像形成装置が備えるハードディスクに保存する前に，中間言語データである前記バンドデータ単位で実際にメモリ上で前記ビットマップ展開処理を行い，該ビットマップ展開処理に要する時間を計測した上で，その計測時間と既定のしきい値との比較結果により，各バンドデータについてビットマップデータと前記バンドデータ（中間言語データ）のいずれの形式でハードディスクに保持するかを選択する技術が示されている。
従来の画像形成装置では，前記直接印刷処理を行う場合と前記ホールド印刷処理を行う場合とで，前記ビットマップ展開処理の手順を個別に制御することは行われておらず，また，特許文献１及び特許文献２いずれにもそのような制御について示されていない。即ち，従来は，前記直接印刷処理及び前記ホールド印刷処理のいずれを行う場合であっても，予め定められた同じ手順に従ってバンドバッファへビットマップデータを展開するとともに，これと並行してビットマップデータをバンドバッファから転送する。前記直接印刷処理と前記ホールド印刷処理とで異なるのは，ビットマップデータの転送先がプリンタエンジンであるかハードディスク等のデータ保持用の記憶手段であるかのみである。
また，特許文献２に示される技術において，ハードディスクに前記バンドデータ（中間言語データ）が保持された場合でも，印刷要求があった際の前記バンドデータの読み出し元がハードディスクであるだけで，前記ビットマップ展開処理の手順は，前記直接印刷機の場合と同じとなる。
【特許文献１】特開２０００−１５８７２７号公報
【特許文献２】特開２０００−３１１０７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，オーバーラン防止のため，１ページ分の前記バンドデータのうちの一部について，事前に前記ビットマップ展開処理を実行する前記プレレンダリング等の処理を行う手順を採用することは，バッファメモリ（バンドバッファ）に一時記憶させるビットマップデータのサイズを増大させるものであり，バッファメモリの必要容量（占有容量）を増大させるものである。
一方，前記ホールド印刷処理を行う場合，バッファメモリ内のビットマップデータをハードディスク等の記憶手段に転送する速度は特に一定である必要はないので，前記ビットマップ展開処理によりビットマップデータをバッファメモリに展開する速度が変化してもオーバーランのような問題は何ら生じない。
このため，前記ホールド印刷処理を行う場合に，オーバーラン防止を考慮した前記ビットマップ展開処理の手順と同じ手順を採用することは，無用に大容量のバッファメモリを消費することになるという問題点があった。その結果，画像形成装置が備えるＲＡＭ等の高速メモリのメモリ領域を圧迫し，同時に実行される他の処理の速度を低下させるという弊害が生じていた。
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，直接印刷処理を行う場合とホールド印刷処理を行う場合とで，各々の特質に応じたビットマップ展開処理の手順を採用することにより，ビットマップデータを一時記憶するバッファメモリ等の必要メモリ容量を極力小さくできる画像形成装置及びその制御プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は，データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ出力するまでの一連の自動処理を制御する第１印刷制御手段と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ出力する処理を制御する第２印刷制御手段と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別手段と，を具備する画像形成装置において，前記第１印刷制御手段が，前記時間超過バンドデータがビットマップ展開可能なサイズの時間超過バンドデータ用の領域及び前記時間内バンドデータがビットマップ展開可能なサイズの時間内バンドデータ用の領域をそれぞれ前記第１記憶手段内に複数確保すると共に，前記第１印刷制御手段が，前記所要時間判別手段が１ページ分の前記バンドデータに前記時間超過バンドデータが存在すると判別した場合に，前記時間超過バンドデータについての前記ビットマップ画像データを前記第１記憶手段内の前記時間超過バンドデータ用領域に事前展開させ，時間内バンドデータについての前記ビットマップ画像データを前記第1記憶手段内の前記時間内バンドデータ用領域に展開させる処理と，展開を終了したバンドデータ用領域に記憶されたビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなり，前記第１印刷制御手段と前記第２印刷制御手段とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御してなることを特徴とする画像形成装置として構成されるものである。
ここで，前記第１記憶手段は，例えばＲＡＭ等の高速なメモリであり，前記第２記憶手段は，例えばハードディスク等の比較的アクセス速度が低速ではあるが，大容量の（ビット単価の低い）メモリである。
このような構成により，前記第１印刷制御手段による画像形成処理（前記直接印刷処理に相当）を行う場合と，前記第２印刷制御手段による画像形成処理（前記ホールド印刷処理に相当）を行う場合とで，各々の特質に応じたビットマップ展開処理の手順を採用することが可能となり，ビットマップ画像データ（ビットマップデータ）を一時記憶する前記第１記憶手段の必要容量を極力小さくすることができる。
【０００７】
上述したように，前記第１印刷制御手段は，前記所要時間判別手段が１ページ分の前記バンドデータに前記時間超過バンドデータが存在すると判別した場合に，その各々について前記ビットマップ画像データを前記第１記憶手段内の前記時間超過バンドデータ用領域に事前展開させた後に，前記時間内バンドデータ各々について前記時間内バンドデータ用領域に記憶されたビットマップ画像データを前記第１記憶手段内の前記時間内バンドデータ用領域以外の領域に展開させる処理と前記第１記憶手段内の前記時間超過バンドデータ用領域に展開された前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させるものである。
これは，前記時間超過バンドデータが存在する場合に，特許文献１に示される事前のビットマップ展開処理（プレレンダリング）を行って前記直接印刷処理を実行するものである。
【０００８】
これに対し，前記第１印刷制御手段が，１ページ分の前記バンドデータに前記時間超過バンドデータが存在する場合に，全ての前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記第２記憶手段へ転送する処理とを並行して実行させた後に，続けて前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理を実行せるものが考えられる。
本構成によれば，前記時間超過バンドデータ（即ち，オーバーランが生じ得るバンドデータ）が存在する場合に，前記第１記憶手段への事前のビットマップ展開（前記プレレンダリング）を行わずに，ビットマップ展開処理を行いながら展開されるビットマップ画像データを，一旦，前記第２記憶手段へ転送するため，その過程でオーバーランの問題は生じない。さらに続けて，前記第２記憶手段からビットマップ画像データを前記画像形成手段（プリンタエンジンに相当）へ転送するので，その過程ではビットマップ展開処理は行われず，オーバーランの問題は生じない。しかも，事前のビットマップ展開を行わないので，前記第１記憶手段に一時蓄積されるビットマップ画像データのサイズを最小限に抑えることが可能となる。なお，本構成では，１ページ分の全ての前記バンドデータを展開したビットマップ画像データを，前記第２記憶手段に一旦スプールすることになるため，画像形成が開始されるまでに従来よりも時間を要することになるが，前記第１記憶手段の占有容量低減を優先する場合に有効である。
【０００９】
また，前記第２印刷制御手段が，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が既定の許容数を超える場合に，全ての前記バンドデータについて前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ出力するものが考えられる。
このような構成により，事前（画像形成処理の開始前）に前記第１記憶手段に記憶されるビットマップ画像データの数が前記許容数を超えることがない。このため，前記時間超過バンドデータ（オーバーランが発生すると予測される前記バンドデータ）が存在する場合に，前記第１記憶手段に通常よりも拡張して確保するメモリ領域の最大拡張幅を制限することができる。
さらにこの場合，前記第２印刷制御手段が，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数以下である場合に，その各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行するとともに前記時間内バンドデータ各々を前記第２記憶手段に記憶させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記第１記憶手段へ記憶させた後に，前記第２記憶手段内の前記時間内バンドデータ各々について前記第１記憶手段に展開させる処理と前記第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させるものが考えられる。
このような構成により，事前にビットマップ展開がなされて，前記印刷要求があった際に前記第１記憶手段に事前記憶されるビットマップ画像データの数が前記許容数以下に抑えられる。このため，前記時間超過バンドデータの処理用として前記第１記憶手段に通常よりも拡張して確保するメモリ領域の最大拡張幅を制限でき，前記第１記憶手段の必要メモリ容量を抑えることができる。同時に，前記時間超過バンドデータの数が少ない場合（前記許容数以下）には，前記印刷要求が入力されるまで前記第２記憶手段に保持するデータは，前記時間超過バンドデータのみがビットマップ画像データに事前展開され，その他は前記バンドデータのままであるので，全てをビットマップ画像データに展開して保持する場合に比べ，前記第２記憶手段の必要メモリ容量を抑えることができる。
【００１０】
また，前記第２印刷制御手段が，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合に，全ての前記バンドデータ各々を前記第２記憶手段に転送した後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開する処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させるものが考えられる。
このように，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合は，前記バンドデータをそのままの形式で前記第２記憶手段に保持し，前記印刷要求の入力があった後に，前記第１記憶手段への事前のビットマップ展開なしでビットマップ展開処理を行いながら前記画像形成手段へのビットマップ画像データの転送を行っても，オーバーランは発生しない。また，ビットマップデータの事前展開を行わないので，前記第１記憶手段の必要メモリ容量（占有メモリ容量）は特に増加しない。しかも，通常は，前記バンドデータはそれを変換したビットマップ画像データよりもデータサイズが小さいので，従来のようにビットマップ画像データの形式で保持する場合に比べ，前記第２記憶手段の必要メモリ容量を抑えることができる。
また，これを変形した構成として，前記第２印刷制御手段が，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合に，全ての前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させ，さらに全ての前記バンドデータに対応する前記ビットマップ画像データと全ての前記バンドデータとのいずれか総データサイズの小さい方を前記第２記憶手段に保持させた後，前記印刷要求の入力があった際に，前記第２記憶手段内に前記バンドデータが保持されている場合はその各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，前記第２記憶手段内に前記ビットマップ画像データが保持されている場合はその各々を前記画像形成手段へ出力するものが考えられる。ここで，前記第２記憶手段に前記ビットマップ画像データを保持させる場合は，前記第２記憶手段に転送した前記ビットマップ画像データをそのまま保持すればよく，前記バンドデータを保持させる場合は，前記第２記憶手段に転送した前記ビットマップ画像データを消去し，前記バンドデータを前記第２記憶手段に記憶させればよいことはいうまでもない。
前述したように，通常は，前記バンドデータの方がそれを変換したビットマップ画像データよりもデータサイズが小さいが，前記印刷データの内容によっては，まれにそうでない場合もあり得る。そのような場合でも，上記構成により，前記第２記憶手段には，１ページ分の前記バンドデータとこれに対応するビットマップ画像データとうち，データサイズの小さい方が保持されるので，前記第２記憶手段の必要メモリ容量をより抑えることが可能となる。
【００１１】
また，前記第２印刷制御手段が，全ての前記バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させ，
１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数を超える場合又は全ての前記バンドデータの総データサイズよりも全ての前記バンドデータに対応する前記ビットマップ画像データの総データサイズの方が小さい場合には前記ビットマップ画像データをそのまま前記第２記憶手段に保持させ，その他の場合には前記第２記憶手段に保持された前記時間内バンドデータに対応する前記ビットマップ画像データに代えて前記時間内バンドデータを保持させ，その後前記印刷要求の入力があった際に，
前記第２記憶手段内に前記ビットマップ画像データ及び前記時間内バンドデータが保持されている場合は前記ビットマップ画像データを前記第１記憶手段に記憶させた後に前記時間内バンドデータ各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，
前記第２記憶手段内に前記時間内バンドデータのみが保持されている場合はその各々について前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させ，
前記第２記憶手段内に前記ビットマップ画像データのみが保持されている場合はその各々を前記画像形成手段へ出力するものが考えられる。
このような構成により，前記印刷要求の前にデータを前記第２記憶手段へ転送する場合，即ち，オーバーランの問題が生じない状況では，前記時間超過バンドデータの有無やその数にかかわらず，前記第１記憶手段への事前のビットマップ展開（前記プレレンダリング）を行わずに，ビットマップ展開処理がなされるので，前記印刷要求がある前の前記第１記憶手段の必要容量を抑えることができる。
また，ビットマップ展開を必要とする前記時間内バンドデータと前記時間超過バンドデータに対応するビットマップ画像データとが混在して前記第２記憶手段に保持されるのは，前記時間超過バンドデータが予め定められた前記許容数以下である場合のみである。従って，前記印刷要求があった際に，前記第１記憶手段に事前記憶させる必要があるビットマップ画像データは，最大でも前記許容数以下となる。このため，前記印刷要求があった際においても，ビットマップ画像データを前記第１記憶手段に事前記憶させる数が前記許容数以下に制限され，前記第１記憶手段の必要メモリ容量を小さく制限することができる。
さらに，前記バンドデータを変換したビットマップ画像データの方が前記バンドデータよりもデータサイズが小さいというまれな状況があった場合，前記第２記憶手段の必要メモリ容量をより抑えることが可能となる。
【００１２】
ところで，前述したように，ビットマップ展開処理の速度が，前記画像形成手段の処理速度よりも十分速い場合は，前記第２記憶手段には，２バンド分のビットマップ画像データを一時記憶できるメモリ容量（一時記憶容量）を確保する必要がある。
ここで，前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させる場合（従来の前記直接印刷処理に相当）には，オーバーラン防止のため，前記第１記憶手段におけるビットマップ画像データの一時記憶容量を少なくとも２バンド分，場合によってはそれ以上余裕を見て確保する必要がある。
これに対し，前記第２印刷制御手段が前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させる場合には，オーバーランを考慮する必要がないため，前記第１記憶手段の一時記憶容量は，特に余裕を見て確保する必要がない。
そこで，前記第１印刷制御手段又は前記第２印刷制御手段によって前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該第１記憶手段内の前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させる場合よりも，前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させる場合の方が，前記第１記憶手段に展開して併存可能とする前記バンドデータ単位の前記ビットマップ画像データの最大数を小さく設定するものが考えられる。
これにより，前記第２記憶手段へのデータ転送を行う場合に，前記第１記憶手段にビットマップ画像データの一時記憶容量が必要以上に確保（設定）されることがなく，前記第１記憶手段の必要メモリ容量を抑えることができる。
【００１３】
一方，前記第２印刷制御手段が，常に１ページ分の前記バンドデータ全てについて前記ビットマップ画像データを前記第１記憶手段に展開させる処理と該ビットマップ画像データを前記第２記憶手段に転送する処理とを並行して実行させた後，前記印刷要求の入力があった際に，前記第２記憶手段内の前記ビットマップ画像データを前記画像形成手段へ出力するものも考えられる。
これにより，前記第２印刷制御手段による処理（前記ホールド印刷処理）を行う際に，１ページ分の前記バンドデータに前記時間超過バンドデータが存在するか否かに関わらず，事前のビットマップ展開処理は行われないので，前記第１記憶手段の必要メモリ容量が抑えられる。また，このような手順でビットマップ展開処理を行っても，ビットマップ展開処理と並行して行われるビットマップ画像データ転送の転送先が前記第２記憶手段であるので，オーバーランの問題は生じない。
【００１４】
また，本発明は，前記第１印刷制御手段及び前記第２印刷制御手段が行う処理をコンピュータに実行させるための画像形成装置の制御プログラムとして捉えたものであってもよい。
即ち，データを一時記憶する第１記憶手段と，該第１記憶手段よりアクセス速度が遅い第２記憶手段と，外部装置から受信された印刷データの１ページ分が複数に分割されたデータ若しくはこれを他の形式に変換した中間データのいずれかであるバンドデータごとにビットマップ画像データに変換して前記第１記憶手段に展開するビットマップ展開手段と，前記ビットマップ画像データに基づいて画像形成を行う画像形成手段と，を具備する画像形成装置について，前記印刷データが受信された際に前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段へ展開しさらに前記画像形成手段へ転送するまでの一連の自動処理を制御する第１印刷制御工程と，前記印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ転送する処理を制御する第２印刷制御工程と，前記バンドデータ各々について前記ビットマップ展開手段の処理に要する時間が前記画像形成手段による画像形成に要する時間を超える時間超過バンドデータであるかその他の時間内バンドデータであるかを判別する所要時間判別工程と，をコンピュータに実行させるための画像形成装置の制御プログラムにおいて，前記第１印刷制御工程が，前記時間超過バンドデータがビットマップ展開可能なサイズの時間超過バンドデータ用の領域及び前記時間内バンドデータがビットマップ展開可能なサイズの時間内バンドデータ用の領域をそれぞれ前記第１記憶手段内に複数確保すると共に，前記第１印刷制御工程が，前記所要時間判別工程が１ページ分の前記バンドデータに前記時間超過バンドデータが存在すると判別した場合に，前記時間超過バンドデータについての前記ビットマップ画像データを前記第１記憶手段内の前記時間超過バンドデータ用領域に事前展開させ，時間内バンドデータについての前記ビットマップ画像データを前記第1記憶手段内の前記時間内バンドデータ用領域に展開させる処理と，展開を終了したバンドデータ用領域に記憶された前記ビットマップ画像データを前記画像形成手段へ転送する処理とを並行して実行させてなり，前記第１印刷制御工程と前記第２印刷制御工程とが，前記ビットマップ展開手段により１ページ分の前記バンドデータに基づく前記ビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御する工程であることを特徴とする画像形成装置の制御プログラムである。
【発明の効果】
【００１５】
本発明によれば，印刷データが受信された際に１ページ分の印刷データ等が複数に分割されたバンドデータに基づくビットマップ画像データを第１記憶手段へ展開しさらに画像形成手段へ転送するまでの一連の自動処理を制御する場合（第１印刷制御）と，印刷データが受信された際に前記バンドデータ又はこれに関するデータを前記第１記憶手段よりもアクセス速度が遅い第２記憶手段に一旦記憶させた後，印刷要求の入力があった際に前記第２記憶手段内のデータに基づく前記ビットマップ画像データを前記画像形成手段へ転送する処理を制御する場合（第２印刷制御）とで，ビットマップ展開手段により１ページ分の前記バンドデータに基づくビットマップ画像データを前記第１記憶手段に展開する手順を各々個別に制御するので，各制御の特質に応じたビットマップ展開処理の手順を採用することが可能となり，ビットマップ画像データ（ビットマップデータ）を一時記憶する前記第１記憶手段内に確保されるバッファ領域（バッファメモリ）の必要容量を極力小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面を参照しながら，本発明の実施の形態について説明し，本発明の理解に供する。尚，以下の実施の形態は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
ここに，図１は本発明の実施形態に係る画像形成装置Ｘの概略構成を表すブロック図，図２は画像形成装置Ｘにおける第１実施例に係る直接印刷処理の手順を表すフローチャート，図３は画像形成装置Ｘにおける第１実施例に係るホールド印刷処理の手順を表すフローチャート，図４は画像形成装置Ｘにおける第２実施例に係るホールド印刷処理の手順を表すフローチャート，図５は画像形成装置Ｘにおける第１実施例に係る直接印刷処理に対応したデータの流れを表すブロック図，図６は画像形成装置Ｘにおける第１実施例に係るホールド印刷処理及び第２実施例に係るホールド印刷処理の一部に対応したデータの流れを表すブロック図，図７及び図８は画像形成装置Ｘにおける第２実施例に係るホールド印刷処理の一部に対応したデータの流れを表すブロック図である。
【００１７】
以下，本発明の実施形態について，図面を参照しながら詳細に説明する。
図１は，本発明の実施形態に係る画像形成装置Ｘの概略構成を表すブロック図である。
図１に示すように，画像形成装置Ｘは，ＣＰＵ１と，プログラムＲＯＭ２，ＲＡＭ３，ホストインターフェース４，ハードディスク装置（ＨＤＤ）５，プリンタインターフェース６及び表示・操作部８等のデバイスとを具備し，これらがシステムバス９を介して接続されている。さらに，画像形成装置Ｘは，前記プリンタインターフェース６に接続されたプリンタエンジン７を具備している。
前記ＣＰＵ１は，前記システムバス９を介して他のデバイスを制御するものである。
前記プログラムＲＯＭ２は，前記ＣＰＵ１により実行される当該画像形成装置Ｘの制御プログラムが格納される不揮発性の記憶手段である。
前記ＲＡＭ３は，前記ＣＰＵ１により実行される前記制御プログラムと該制御プログラムの実行の際に処理される各種データとが一時記憶される高速アクセス可能な不揮発性メモリである（前記第１記憶手段の一例）。
前記ホストインターフェース４は，当該画像形成装置Ｘに対してプリントデータ（ページ記述言語（ＰＤＬ）等で記述された印刷データ）を送信してくる外部のホスト装置（パーソナルコンピュータ等）との通信制御を行うＵＳＢインターフェースやＬＡＮインターフェース等の通信制御手段である。
前記ハードディスク装置５は，各種データが記憶される不揮発性の大容量記憶手段であり，一般に，ビット単価が低い反面，前記ＲＡＭ３（第１記憶手段）よりもアクセス速度（データを読み書きする速度）は遅い記憶手段である（前記第２記憶手段の一例）。主に，プリントデータをスプールするために，或いはホールド印刷処理を行う場合におけるビットマップデータや中間言語データを保持するために使用されるものである。
前記プリンタインターフェース６は，前記ＣＰＵ１や前記ＲＡＭ３等のデバイスと前記プリンタエンジン７との間の接続インターフェースであり，前記プリンタエンジン７が備える各種センサの検出値を前記ＣＰＵ１に伝送したり，前記ＣＰＵ１から出力される制御指令や前記ＲＡＭ３や前記ハードディスク装置５内の画像データ（ビットマップデータ）等を前記プリンタエンジン７が備える各機器へ伝送するものである。
前記プリンタエンジン７は，前記プリンタインターフェース６を介して供給（伝送）されるビットマップデータ（ビットマップ画像データ）に従って，用紙に画像を形成して出力する画像形成手段である。例えば，電子写真方式の場合，前記プリンタエンジン７は，不図示の感光体ドラム，該感光体ドラムを帯電させる帯電装置，帯電された感光体ドラムに静電潜像を書き込むレーザスキャンユニット，感光体ドラム上の静電潜像をトナーにより現像する現像装置，そのトナー像を用紙に転写する転写装置等を備える。
前記表示・操作部８は，液晶タッチパネル，或いは表示ランプ及びシートキー等から構成され，利用者による操作の入力及び利用者への情報表示を行うものである。
【００１８】
前記プログラムＲＯＭ２に記憶される前記制御プログラムは，データ入力部，画像処理部及び画像出力部等の各種プログラムモジュールから構成される。
前記データ入力部は，主に，前記ホスト装置（前記外部装置の一例）から前記ホストインターフェース４を介してプリントデータ（印刷データ）を受信する処理を前記ＣＰＵ１に実行させるためのプログラムモジュールである。
前記画像処理部は，主に，受信したプリントデータについての各種画像処理を前記ＣＰＵ１に実行させるためのプログラムモジュールである。
例えば，前記画像処理部は，受信したプリントデータを，その１ページ分ごとに予め定められた複数の分割画像領域（バンド）のデータに分割し，その分割データ各々を中間言語データ（前記中間データの一例）に変換して前記ＲＡＭ３に記憶させる処理を前記ＣＰＵ１に実行させるものである。このようにしてバンドごとに分割及び中間言語データへの変換がなされたデータを，以下，バンドデータという。
さらに，前記画像処理部は，前記バンドデータ各々をビットマップデータに変換して前記ＲＡＭ３（第１記憶手段）内に確保したバッファ領域に展開する処理（以下，ビットマップ展開処理という：前記ビットマップ展開手段の処理に相当）等を前記ＣＰＵ１に実行させるものでもある。
また，前記画像出力部は，主に，前記ＲＡＭ３内のデータや前記ハードディスク装置５内のビットマップデータを前記プリンタエンジン７へ転送或いは出力する処理，例えば，前記ＲＡＭ３内の圧縮されたビットマップデータを伸張しながら前記プリンタエンジン７に転送する処理や，前記ＲＡＭ３内のデータを圧縮しながら前記ハードディスク装置５に転送する処理等を前記ＣＰＵ１に実行させるためのプログラムモジュールである。
【００１９】
画像処理装置Ｘは，前記ホスト装置から受信したプリントデータに基づいて前記プリンタエンジン７により画像形成（画像出力）する処理として，直接印刷処理とホールド印刷処理とのいずれかを選択的に実行する機能を有しており，前記ＣＰＵ１が前記制御プログラムを実行することにより各処理の実行を制御する。
前記ＣＰＵ１により制御される前記直接印刷処理は，前記ホスト装置から前記ホストインターフェース４を介してプリントデータが受信された際に，これを前記バンドデータに変換して前記ＲＡＭ３内に記憶させた後，前記バンドデータに基づくビットマップデータを前記ＲＡＭ３内に確保したバンドバッファ領域（第１記憶手段）へ展開し，さらにそのビットマップデータを前記プリンタエンジン（画像形成手段）へ出力するまでの一連の自動処理を行う（即ち，別途入力される印刷要求を待たずに画像形成まで実行する）ものである（前記第１印刷制御手段の処理に相当）。
一方，同じく前記ＣＰＵ１により制御される前記ホールド印刷処理は，プリントデータが受信された際に，前記バンドデータ又はこれに関するデータを前記ハードディスク装置５（第２記憶手段）に一旦記憶させた後，前記ホスト装置或いは前記表示・操作部８から所定の印刷要求の入力があった際に，前記ハードディスク装置５内のデータに基づくビットマップデータを前記プリンタエンジン７へ出力する処理を行うものである（前記第２印刷制御手段の処理の一例）。
前記直接印刷処理と前記ホールド印刷処理との切り替えは，前記ホスト装置からプリントデータの送信と併せて送信され，前記ホストインターフェース４を介して受信（入力）される処理指定コマンド，或いは当該画像形成装置Ｘの前記表示・操作部８からの印刷処理指定入力等に従って行われる。
また，前記ホールド印刷処理が指定される場合，前記ホスト装置からプリントデータとともにその識別情報が送信される。そして，当該画像形成装置Ｘでは，受信したプリントデータに対応する前記バンドデータ及びビットマップデータの一方又は両方を，前記識別情報に関連付けて前記ハードディスク装置５に一旦保持（蓄積）し，その後，前記ホスト装置から，或いは前記表示・操作部８から前記識別情報が指定された印刷要求が入力された際に，指定された識別情報に対応するデータに基づいて画像形成を実行する。
本画像形成装置Ｘは，前記直接印刷処理（第１印刷制御手段の処理）と前記ホールド印刷処理（前記第２印刷制御手段の処理）との各々において，後述するように，前記画像処理部（ビットマップ展開手段の一例）によって１ページ分の前記バンドデータに基づくビットマップデータを前記ＲＡＭ３内のバッファ領域（第１記憶手段）に展開する手順を各々個別に制御することを特徴とする。
【００２０】
（第１実施例に係る直接印刷処理）
図２は，前記直接印刷処理が指定された場合に，前記ＣＰＵ１が前記画像処理部及び前記画像出力部の各プログラムモジュールを実行することにより制御がなされる第１実施例に係る前記直接印刷処理の処理手順を表すフローチャートである。ここで，Ｓ１０１，Ｓ１０２，…は，処理手順（ステップ）の識別記号を表す。
また，図５は，図２に示す第１実施例に係る前記直接印刷処理に対応したデータの流れを表すブロック図であり，図５の矢印は，データ流れの方向を表す。さらに，図２及び図５に示すステップ記号が同じものは，相互に対応するものであることを表す。
以下，図２及び図５を用いて，第１実施例に係る前記直接印刷処理について説明する。
前記ＣＰＵ１は，前記データ入力部の処理によって前記ホスト装置から受信したプリントデータを，１ページ分ごとに処理する。その際，前記画像処理部と前記画像出力部とを並行して実行する。
＜ステップＳ１０１〜Ｓ１０２＞
まず，前記画像処理部の実行により，受信したプリントデータを，その１ページ分ごとに予め定められた複数の分割画像領域（Ｋ個のバンド）のデータに分割し，その分割データ各々を前記中間言語データ（前記中間データの一例）に変換した前記バンドデータとして前記ＲＡＭ３に記憶させる（Ｓ１０１）。
次に，所定のカウンタ変数ｓ（ワーク変数）に初期値「１」を設定（Ｓ１０２）した後，Ｋ個の（１ページ分の）前記バンドデータ各々（以下，Ｂ（ｉ）で表す。但し，ｉ＝１〜Ｋである。）について，以下のステップＳ１０３〜Ｓ１０８の処理が実行される。
【００２１】
＜ステップＳ１０３〜Ｓ１０８＞
まず，前記バンドデータＢ（ｉ）各々について，描画時間を算出し（Ｓ１０３），その描画時間が予め定められた閾値よりも大きいか否かを判別する（Ｓ１０４）。
ここで，描画時間とは，前記バンドデータＢ（ｉ）各々について，前記ビットマップ展開処理（前記ビットマップ展開手段の処理）に要する時間である。
前記描画時間の計算は，例えば，中間言語Ｂ（ｉ）に含まれる中間言語のコマンド数から，或いは各コマンドの種類及び数から算出する。例えば，予め中間言語のコマンドの種類ごとに単位描画時間を記憶しておき，中間言語Ｂ（ｉ）に含まれるコマンドに対応する単位描画時間を積算すること等によって算出する。
また，前記閾値には，前記プリンタエンジン７の１バンド分のビットマップデータの処理時間（画像出力時間）に若干の余裕時間が加算された時間が予め設定される。
このステップＳ１０３及びＳ１０４の処理により，前記描画時間が前記閾値よりも大きいか否かに基づいて，前記プリンタエンジン（画像形成手段）による画像形成に要する時間を超えるバンドデータ（以下，時間超過バンドデータという）であるか，その他のバンドデータ（以下，時間内バンドデータという）であるかが判別される（前記所要時間判別手段の処理の一例）。従って，前記時間超過バンドデータについて，前記ＲＡＭ３のバッファ領域にビットマップデータとして展開しながら，並行してそのビットマップデータを前記プリンタエンジンへ転送することにより画像出力を行うと，オーバーランが発生する可能性がある。
本処理では，Ｓ１０３及びＳ１０４の処理の結果（前記所要時間判別手段の判別結果）に基づいて判別した結果に応じて，ビットマップデータを前記ＲＡＭ３に展開する手順を制御する。
ステップＳ１０４において，前記描画時間が前記閾値よりも大きいと判別した前記時間超過バンドデータＢ（ｉ）は，事前描画バンドであると設定する（Ｓ１０５）。より具体的には，前記時間超過バンドデータのデータ番号ｉに関連付けて，予めビットマップデータへ変換すべきバンドデータである旨の情報を記憶する。
さらに，前記ＲＡＭ３内に，前記時間超過バンドデータを事前展開するバッファ領域（事前描画バッファＰｂ（ｓ））を前記ＲＡＭ３内に確保し（Ｓ１０６），その事前描画バッファＰｂ（ｓ）に，前記時間超過バンドデータをビットマップ展開する（Ｓ１０７）とともに，前記カウンタ変数ｓを１カウントアップする（Ｓ１０８）。このステップＳ１０７の処理は，当該画像処理部の一部を構成する描画処理プログラム（前記ビットマップ展開手段の一例）を前記ＣＰＵ１が実行することにより行われる。
一方，ステップＳ１０４において，ステップＳ１０３で算出した前記描画時間が前記閾値以下であると判別した場合は，当該バンドデータＢ（ｉ）について何ら処理を施さず，そのまま次のバンドデータＢ（ｉ）（ｉ←ｉ＋１）についてステップＳ１０３からの処理を繰り返す。
以上のステップＳ１０３〜Ｓ１０８の処理を，１ページ分（Ｋ個）の前記バンドデータＢ（ｉ）各々について，ｉを１ずつカウントアップしながら（ｉ：１〜Ｋ）順次実行する。
【００２２】
＜ステップＳ１０９〜Ｓ１１０＞
以上のようにして，前記時間超過バンドデータが存在する場合の事前のビットマップ展開処理が終了すると，さらに，前記画像処理部の実行により，残りの前記時間内バンドデータを順次ビットマップ展開するのに用いるバンドバッファ（通常描画バッファＮｂ）の領域（一時記憶領域）を前記ＲＡＭ３内に確保する（Ｓ１０９）。この通常描画バッファＮｂは，前記画像処理部によりビットマップデータを他へ転送中（読み出し中）にも，これと並行して当該画像処理部によるビットマップ展開処理（データ書き込み）が可能なように，少なくとも２バンド分以上の（２個以上の前記バンドデータに相当する）ビットマップデータの格納が可能なサイズの領域が確保される。図５は，余裕を見て３バンド分が確保された例を示す。何バンド分確保するかは，画像形成装置に搭載されるメモリ容量と印刷する画像のページサイズ等に依存する。
次に，カウンタ変数ｓ（ワーク変数）に初期値「１」を設定（Ｓ１１０）した後，ビットマップ展開が未実施の前記時間内バンドデータについてのビットマップ展開処理及び前記プリンタエンジンへのビットマップデータ転送処理を行う印刷処理（ステップＳ１１１〜Ｓ１１６及びステップＳ２０１〜Ｓ２０８）が実行される。
【００２３】
＜ステップＳ１１１〜Ｓ１１６＞
印刷処理では，まず，対象とする前記バンドデータＢ（ｉ）（ｉの初期値は１）が，前記事前描画バンド（即ち，前記時間超過バンドデータ）に設定されたものか否かをステップＳ１０５で設定（記憶）した情報により判別する（Ｓ１１１）。
ここで，当該バンドデータＢ（ｉ）が，前記事前描画バンドに設定されたものである場合は，前記ＲＡＭ３の前記事前描画バッファＰｂ（ｓ）に記憶された当該バンドデータＢ（ｉ）に基づくビットマップデータをそのまま前記プリンタエンジン７に転送するよう当該画像処理部から前記画像出力部に対して印刷出力指示が出され（Ｓ１１２），さらに，前記カウンタ変数ｓを１カウントアップした後，ステップＳ１１１へ戻って次のバンドデータＢ（ｉ）（ｉ←ｉ＋１）について処理が繰り返される。前記印刷出力指示には，前記ＲＡＭ３内において前記プリンタエンジンへ転送すべきビットマップデータが記憶されているメモリアドレスを識別できる情報が設定される。
一方，当該バンドデータＢ（ｉ）が，前記事前描画バンドに設定されたものでない場合は，前記ＲＡＭ３に記憶された当該バンドデータＢ（ｉ）を，ステップＳ１０９で前記ＲＡＭ３内に確保した前記通常描画バッファＮｂにビットマップ展開する（Ｓ１１４）。このとき，複数バンド分確保された前記通常描画バッファＮｂの領域のうち，前記プリンタエンジン７へのデータ転送が完了した領域へのビットマップ展開を行う。いずれのバッファ領域へのビットマップ展開が可能であるか（ビットマップデータの転送が完了しているか）は，後述する前記画像出力部からの通知（前記通常描画バッファＮｂの使用済みの通知）により判別する。
さらに，展開されたビットマップデータを，前記プリンタエンジン７に対して転送するよう当該画像処理部から前記画像出力部に対して印刷出力指示を出力（Ｓ１１５）した後，ステップＳ１１１へ戻って次のバンドデータＢ（ｉ）（ｉ←ｉ＋１）について処理を繰り返す。
このようにして全ての前記バンドデータＢ（ｉ）について，前記画像出力部に対する印刷出力指示が出されると，当該画像処理部の処理を終了する。
【００２４】
＜Ｓ２０１〜Ｓ２０９＞
一方，前記画像出力部では，カウンタ変数ｓ（ワーク変数）に初期値「１」を設定（Ｓ２０１）した後，各バンドデータの番号ｉ（ｉ＝１〜Ｋ）について，次のステップＳ２０２〜Ｓ２０９の処理を実行する。なお，カウンタ変数ｓは，前記画像処理部と当該画像出力部とで各々独立して設定されるローカル変数であり，相互に影響を与えない変数である。
まず，前記画像処理部からの前記印刷出力指示（ステップＳ１１２又はＳ１１５において出力される指示）を最先着のものについて取得し（取出し），該印刷出力指示に従って，ビットマップデータの読み出し元である前記ＲＡＭ３内に複数確保されたバッファ領域中のいずれかのバンドバッファを選択する（Ｓ２０３）。
ここで，ステップＳ１１２で出力される前記印刷出力指示が取得された場合は，事前のビットマップ展開がなされた前記事前描画バッファＰｂ（ｓ）内の指定されたバッファ（メモリアドレス）を選択し，ステップＳ１１５で出力される前記印刷出力指示が取得された場合は，前記通常描画バッファＮｂ内の指定されたバッファを選択する。
次に，ステップＳ２０３で選択したバンドバッファからビットマップデータを前記プリンタインターフェース６を介して前記プリンタエンジン７に転送する（Ｓ２０４）。これにより，そのビットマップデータに基づく画像形成が，前記プリンタエンジン７により行われる。
さらに，転送が完了したビットマップデータが記憶されていたメモリ領域の開放処理（Ｓ２０５〜Ｓ２０８）を行う。
具体的には，前記プリンタエンジン７に転送したビットマップデータが，事前にビットマップ展開されたものであるか否かを判別し（Ｓ２０５），事前にビットマップ展開されたものであれば，転送が完了したビットマップデータが格納されていた前記ＲＡＭ３内の前記事前描画バッファＰｂ（ｓ）の領域を開放し（Ｓ２０６），さらに，カウンタ変数ｓを１カウントアップ（Ｓ２０７）する。
一方，前記プリンタエンジン７に転送したビットマップデータが，事前にビットマップ展開されたものではない場合は，そのビットマップデータが格納されていた前記通常描画バッファＮｂの領域が使用済み（転送済み）である旨を前記画像処理部に通知（Ｓ２０８）する。これにより，その指定領域は，前記画像処理部によってビットマップデータの上書き展開が可能な状態（他のビットマップデータの展開用に解放された状態）となる。
そして，順次到着した前記印刷出力指示各々を逐次取得し，その印刷出力指示に従ったビットマップデータを転送する処理（Ｓ２０５〜Ｓ２０８）を，１ページ分（ｉ＝１〜Ｋ）のビットマップデータ各々について順次繰り返す。これにより，１ページ分の印刷出力（画像形成）が前記プリンタエンジン７により行われる。このようにして，１ページ分の印刷出力が終了すると，前記ＲＡＭ３内の前記通常描画バッファＮｂの全てを解放（Ｓ２０９）した後，当該画像処理部の処理を終了する。
以上示した前記画像処理部の処理（Ｓ１０１〜Ｓ１１５）及び前記画像出力部の処理（Ｓ２０１〜Ｓ２０９）が，前記ホスト装置から受信したプリントデータの全ページ分について順次実行される。
【００２５】
図２及び図５に示した第１実施例に係る前記直接印刷処理を以下にまとめる。
まず，１ページ分の前記バンドデータＢ（ｉ）に前記時間超過バンドデータが存在しない場合は，１ページ分の全ての前記バンドデータＢ（ｉ）各々について，ビットマップデータ（ビットマップ画像データ）を前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させるビットマップ展開処理（Ｓ１０４→Ｓ１０９〜Ｓ１１１→Ｓ１１４→Ｓ１１５）と，前記通常描画バッファＮｂ内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（Ｓ２０２〜Ｓ２０８）とを並行して実行させる。
一方，１ページ分の前記バンドデータＢ（ｉ）に前記時間超過バンドデータが存在する場合は，その時間超過バンドデータ各々について，ビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記事前描画バッファＰｂに事前展開（Ｓ１０５〜Ｓ１０８）させた後に，前記時間内バンドデータ各々についてビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させるビットマップ展開処理（Ｓ１１１→Ｓ１１４→Ｓ１１５）と，前記通常描画バッファＮｂ内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（Ｓ２０２〜Ｓ２０８）とを並行して実行させる。
これは，特許文献１に示される前記プレレンダリングにより前記直接印刷処理を実行するものである。
【００２６】
（第１実施例に係るホールド印刷処理）
次に，画像形成装置Ｘにおける第１実施例に係る前記ホールド印刷処理について説明する。
図３は，前記ホールド印刷処理が指定された場合に，前記ＣＰＵ１が前記画像処理部及び前記画像出力部の各プログラムモジュールを実行することにより制御がなされる第１実施例に係る前記ホールド印刷処理の一部であるデータ保持処理の処理手順を表すフローチャートである。
また，図６は，前記第１実施例に係る前記ホールド印刷処理に対応したデータ流れを表すブロック図であり，破線矢印は図３に示す前記データ保持処理（ハードディスク装置へのデータ保持処理）におけるデータ流れの方向を表し，実線矢印は前記第１実施例に係る前記ホールド印刷処理の一部であるデータ出力処理（印刷要求後の処理）におけるデータ流れの方向を表す。さらに，図３及び図６に示すステップ記号が同じものは，相互に対応するものであることを表す。
以下，図３及び図６を用いて，第１実施例に係る前記ホールド印刷処理について説明する。
前記ＣＰＵ１は，前記データ入力部の処理によって前記ホスト装置から受信したプリントデータを，１ページ分ごとに順次処理する。その際，前記画像処理部と前記画像出力部とを並行して実行する。
＜ステップＳ３０１〜Ｓ３０２＞
まず，前記画像処理部の実行により，受信したプリントデータを，その１ページ分ごとに予め定められた複数の分割画像領域（Ｋ個のバンド）のデータに分割し，その分割データ各々を前記中間言語データ（前記中間データの一例）に変換した前記バンドデータとして前記ＲＡＭ３に記憶させる（Ｓ３０１）。
次に，前述したステップＳ１０９（図２）と同様に，前記画像処理部の実行により，前記バンドデータを順次ビットマップ展開するのに用いるバンドバッファである前記通常描画バッファＮｂの領域（一時記憶領域）を前記ＲＡＭ３内に確保する（Ｓ３０２）。ここで，データを前記ハードディスク装置５へ転送する処理では，オーバーランの問題は生じないため，本ステップＳ３０２で確保する前記通常描画バッファＮｂは，図６に示すように，１つの前記バンドデータをビットマップ展開するのに必要な分だけでよい。
次に，１ページ分の全ての前記バンドデータＢ（ｉ）についてのビットマップ展開処理及び前記プリンタエンジンへのビットマップデータ転送処理（ステップＳ３０３〜Ｓ３０４及びＳ４０１〜Ｓ４０５）が実行される。
【００２７】
＜ステップＳ３０３〜Ｓ３０４＞
ビットマップデータ転送処理では，前記ＲＡＭ３に記憶された１ページ分全ての前記バンドデータＢ（ｉ）各々について，ステップＳ３０２で前記ＲＡＭ３内に確保した前記通常描画バッファＮｂにビットマップ展開し（Ｓ３０３），さらに，展開されたビットマップデータを，前記ハードディスク装置５に転送して保持するよう当該画像処理部から前記画像出力部に対してデータ転送指示を出力する（Ｓ３０４）。このとき，複数バンド分確保された前記通常描画バッファＮｂの領域のうち，前記ハードディスク装置５へのデータ転送が完了した領域へのビットマップ展開を行う。いずれのバッファ領域へのビットマップ展開が可能であるか（ビットマップデータの転送が完了しているか）は，前記画像出力部からの前記通常描画バッファＮｂの使用済みの通知（後述のステップＳ４０５）により判別する。
このようにして全ての前記バンドデータＢ（ｉ）について，ビットマップ展開及び前記画像出力部に対するデータ転送指示の出力がなされると，当該画像処理部の処理を終了する。
【００２８】
＜Ｓ４０１〜Ｓ４０５＞
一方，前記画像出力部では，まず，前記画像処理部からの前記データ転送指示（ステップＳ３０４において出力される指示）を最先着のものについて取得し（取出し），該データ転送指示に従って，ビットマップデータの読み出し元である前記ＲＡＭ３内に複数確保された前記通常描画バッファＮｂ中のいずれかのバンドバッファを選択する（Ｓ４０２）。
次に，ステップＳ４０２で選択した前記通常描画バッファＮｂ中のバンドバッファからビットマップデータを前記ハードディスク装置５に転送する（Ｓ４０３）。このとき，当該画像出力部の一部を構成する圧縮・伸張部により，ビットマップデータに周知の圧縮処理を施した上で前記ハードディスク装置５に記憶させる（転送する）。
さらに，転送が完了したビットマップデータが格納されていた前記通常描画バッファＮｂの領域が使用済み（転送済み）である旨を前記画像処理部に通知（Ｓ４０４）する。これにより，その指定領域は，前記画像処理部によってビットマップデータの上書き展開が可能な状態（他のビットマップデータの展開用に解放された状態）となる。
そして，順次到着した前記データ転送指示各々を逐次取得し，そのデータ転送指示に従ったビットマップデータを転送する処理（Ｓ４０１〜Ｓ４０４）を，１ページ分（ｉ＝１〜Ｋ）のビットマップデータ各々について順次繰り返す。これにより，１ページ分のビットマップデータ（圧縮済み）が前記ハードディスク装置５に保持される。このようにして，１ページ分のビットマップデータの前記ハードディスク装置５への保持が終了すると，前記ＲＡＭ３内の前記通常描画バッファＮｂの全てを解放（Ｓ４０５）した後，当該画像処理部の処理を終了する。
以上示した前記画像処理部の処理（Ｓ３０１〜Ｓ３０４）及び前記画像出力部の処理（Ｓ４０１〜Ｓ４０５）が，前記ホスト装置から受信したプリントデータの全ページ分について順次実行される。このとき，前記ホスト装置から前記印刷データとともに送信されてくるその印刷データの前記識別情報に関連付けて各ビットマップデータを前記ハードディスク装置５に記憶させる。
【００２９】
その後，前記ホスト装置或いは前記表示・操作部８から，出力対象とするデータが前記識別情報により指定された前記印刷要求の入力があった際に，前記画像出力部は，指定された前記識別情報に関連付けられたビットマップデータを読み出し，これに対して前記圧縮・伸張部によって伸張処理を施した上で前記プリンタエンジン７に順次出力する（図６のＳ６０１）。これにより，指定されたデータの画像形成が行われる。
ここで，画像形成済みのビットマップデータについては，前記ハードディスク装置５から消去するか，或いは所定の消去入力がなされるまでそのまま保持するかが考えられる。例えば，予めいずれか一方に定めておくことが考えられる。また，いずれの処理とするかを指定可能とすることも考えられる。この場合，例えば，前記ホスト装置から前記印刷データとともにいずれの処理にするかを指定する消去指令情報を送信させることが考えられる。そして，その消去指令情報を前記識別情報に関連付けた前記ハードディスク装置５に記憶させておき，前記印刷要求が入力された際に，前記消去指令情報に従っていずれの処理を行うかを切り替えればよい。後述する他の実施例についても，前記ホールド印刷処理を行う場合については同様である。
【００３０】
図３及び図６に示した第１実施例に係る前記ホールド印刷処理を以下にまとめる。
この第１実施例に係るホールド印刷処理では，まず，前記時間超過バンドデータが存在するか否かに関わらず，常に１ページ分の前記バンドデータＢ（ｉ）全てについて，ビットマップデータ（ビットマップ画像データ）を前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（Ｓ３０３〜Ｓ３０４）と，前記通常描画バッファＮｂ内のビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（Ｓ４０１〜Ｓ４０４）とを並行して実行させる。
その後，前記印刷要求の入力があった際に，前記ハードディスク装置５（第２記憶手段）内のビットマップデータを前記ハードディスク装置５（第２記憶手段）へ出力する（図６の実線矢印参照）。
これにより，前記ホールド印刷処理を行う際に，１ページ分の前記バンドデータに前記時間超過バンドデータが存在するか否かに関わらず，事前のビットマップ展開処理は行われないので，前記ＲＡＭ３内の前記事前描画バッファＰｂの領域分に相当する必要メモリ容量が抑えられる。また，このような手順でビットマップ展開処理を行っても，ビットマップ展開処理（Ｓ３０３，Ｓ３０４）と並行して行われるビットマップデータ転送（Ｓ４０１〜Ｓ４０４）の転送先が前記ハードディスク装置５であるので，オーバーランの問題は生じない。
また，前記直接印刷処理（第１印刷制御手段の処理）において，ビットマップデータを前記ＲＡＭ３（第１記憶手段）に展開させる処理（図５のＳ１１４）とそのビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（図５のＳ１１２＆Ｓ２０３，Ｓ１１５＆Ｓ２０３，Ｓ２０４）とを並行して実行させる場合よりも，前記ホールド印刷処理（第２印刷制御手段の処理）  において，ビットマップデータを前記ＲＡＭ３に展開させる処理（図６のＳ３０３）とそのビットマップ画像データを前記ハードディスク装置５（第２記憶手段）に転送する処理（図６のＳ３０４＆Ｓ４０３）とを並行して実行させる場合の方が，前記ＲＡＭ３に確保する前記通常描画バッファＮｂのバンド数（即ち，前記ＲＡＭ３に展開して併存可能とする前記バンドデータ単位のビットマップデータの最大数）を小さく設定している（図５では３バンド分に対して図６では１バンド分）。これにより，前記ハードディスク装置５へのデータ転送を行う場合に，前記ＲＡＭ３にビットマップデータの一時記憶容量が必要以上に確保（設定）されることがなく，前記ＲＡＭ３の必要メモリ容量を抑えることができる。
【００３１】
（第２実施例に係るホールド印刷処理）
次に，画像形成装置Ｘにおける第２実施例に係る前記ホールド印刷処理について説明する。
図４は，前記ホールド印刷処理が指定された場合に，前記ＣＰＵ１により制御がなされる第２実施例に係る前記ホールド印刷処理の一部である前記画像処理部によるデータ保持処理の処理手順を表すフローチャートである。
また，図６〜図８は，前記第２実施例に係る前記ホールド印刷処理に対応したデータの流れを表すブロック図であり，破線矢印は，前記データ保持処理（ハードディスク装置５へのデータ保持）におけるデータ流れの方向を表し，実線矢印は，前記ホールド印刷処理の一部であるデータ出力処理（印刷要求後の処理）におけるデータ流れの方向を表す。ここで，図６は，前記第１実施例に係る前記ホールド印刷処理に対応した図であるが，当該第２実施例に係る前記ホールド印刷処理において，以下に示すある場合においては同じデータの流れとなることを意味する。
当該第２実施例に係るホールド印刷処理では，次の３つの場合が考えられる。
その１つは，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が予め設定された許容数を超える，或いは全ての前記バンドデータの総データサイズよりも全ての前記バンドデータに対応するビットマップデータの総データサイズの方が小さい場合であり，図６はその場合を表すものである。
２つ目は，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合であり，図７はその場合を表すものである。
３つ目は，１ページ分の前記バンドデータに前記時間超過バンドデータが予め設定された許容数以下存在する場合であり，図８はその場合を表すものである。
また，図４と図６〜図８とに示すステップ記号（図６においてはカッコ書きの中の記号）が同じものは，相互に対応するものであることを表す。
以下，図４と図６〜図８とを用いて，第２実施例に係る前記ホールド印刷処理について説明する。
＜ステップＳ５０１〜Ｓ５０３＞
まず，前記画像処理部の実行により，前述のステップＳ３０１（図３）と同様に，受信プリントデータに基づく１ページ分の前記バンドデータを前記ＲＡＭ３に記憶させ（Ｓ５０１），さらに所定のカウンタ変数ｓ（ワーク変数）に初期値「１」を設定（Ｓ５０２）する。
【００３２】
＜ステップＳ５０４〜Ｓ５０９＞
次に，前述のステップＳ３０３及びＳ３０４（図３）と同様に，ビットマップデータ転送処理を行う（Ｓ５０４〜Ｓ５０９）。ここで，ステップＳ５０８及びＳ５０９が，前述のステップＳ３０３及びＳ３０４と同じ処理である。
但し，本第２実施例では，前記バンドデータ各々について，前記通常描画バッファＮｂへのビットマップ展開及びそのビットマップデータの前記ハードディスク装置５への前記データ転送指示（前記画像出力部への指示）を行いながら，前述したステップＳ１０３〜Ｓ１０５及びＳ１０８（図２）と同様に，前記バンドデータ各々が前記時間超過バンドデータであるか否かを判別する（Ｓ５０４，Ｓ５０５：前記所要時間判別手段の一例）とともに，前記時間超過バンドデータと判別されたものを事前描画バンドであるとして設定（記憶）する（Ｓ５０６）。このとき，前記カウンタ変数ｓをカウントアップ（Ｓ５０７）することにより，前記時間超過バンドデータの数をカウントする。
一方，図４に示す処理と並行して，図３に示した前記画像出力部の処理（Ｓ４０１〜Ｓ４０４）が実行される。これにより，前記画像処理部からの前記データ転送指示に従って，前記ＲＡＭ３内の前記通常描画バッファＮｂ内のビットマップデータが，前記ハードディスク装置５へ順次転送される。
これらステップＳ５０４〜Ｓ５０９及び前述のステップＳ４０１〜Ｓ４０４（図３））の処理を，１ページ分（Ｋ個）の前記バンドデータＢ（ｉ）各々について，ｉを１ずつカウントアップしながら（ｉ：１〜Ｋ）順次実行する。このとき，前記ホスト装置から前記印刷データとともに送信されてくるその印刷データの前記識別情報に関連付けて各ビットマップデータを前記ハードディスク装置５に記憶させる。
本第２実施例に係る前記ホールド印刷処理では，以上の処理により，１ページ分の全ての前記バンドデータ各々について，ビットマップデータを前記ＲＡＭ３（第１記憶手段）に展開させる処理（Ｓ５０８）と，そのビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（Ｓ５０９＆Ｓ４０３）とを並行して実行させる。
これにより，前記ハードディスク装置５に，１ページ分の圧縮されたビットマップデータが保持される。図６は，ここまでの処理に対応するものである。
【００３３】
＜ステップＳ５０４〜Ｓ５０９＞
さらに，前記画像処理部の実行により，１ページ分の前記バンドデータに含まれる前記時間超過バンドデータの数が，予め定められた許容数Ｍを超えるか否かの判別（Ｓ５１０）と，１ページ分の全ての前記バンドデータの総データサイズよりも１ページ分の全ての前記バンドデータに対応する前記ビットマップデータ（前記ハードディスク装置５に転送したデータ）の総データサイズの方が小さいか否かの判別（Ｓ５１１，Ｓ５１２）とを行う。前記許容数Ｍは任意であるが，画像形成装置に搭載されるメモリ容量と印刷するページサイズ等によって決定される。図８は，前記許容数Ｍを３に設定した例を示す。
ここで，前記時間超過バンドデータの数が前記許容数Ｍを超える場合，又は前記ビットマップデータの総データサイズの方が小さい場合は，前記ハードディスク装置５に，転送された前記ビットマップデータをそのまま保持し，前記ＲＡＭ３内の前記通常描画バッファＮｂの領域を開放（Ｓ５１５）した後，本データ保持処理を終了する。これにより，図６に示した状態が維持される。
一方，その他の場合（前記時間超過バンドデータの数が前記許容数Ｍ以下（前記時間超過バンドデータが存在しない場合を含む）かつ前記バンドデータの総データサイズの方が大きい場合）には，前記画像処理部が前記画像出力部に対し，前記ＲＡＭ３に記憶されている前記時間内バンドデータを前記ハードディスク装置５に転送させる指示の出力（Ｓ５１３）と，ステップＳ５０４〜Ｓ５０９及びＳ４０１〜Ｓ４０４の処理により前記ハードディスク装置５（第２記憶手段）に転送・保持された前記時間内バンドデータ（ステップＳ５０６で前記事前描画バンドに設定されたもの以外のもの）に対応するビットマップデータを削除（消去）させる指示の出力（Ｓ５１４）と実行し，さらに前記ＲＡＭ３内の前記通常描画バッファＮｂの領域を開放（Ｓ５１５）した後，本データ保持処理を終了する。これにより，前記ハードディスク装置５（第２記憶手段）に保持された前記時間内バンドデータに対応するビットマップデータに代えて，前記時間内バンドデータを前記ハードディスク装置５に保持させる。
ここで，１ページ分の全ての前記バンドデータに前記時間超過バンドデータが存在しない場合には，前記ハードディスク装置５のビットマップデータ全てが前記バンドデータ（前記時間内バンドデータ）に置き換えられ，図７に示す状態となる。
一方，１ページ分の前記バンドデータに前記時間超過バンドデータの数が予め設定された許容数以下存在する場合，図８に示すように，前記ハードディスク装置５には，ビットマップデータと前記バンドデータ（前記時間内バンドデータ）とが混在することになる。
【００３４】
その後，前記印刷要求の入力があった際の処理を以下に説明する。
まず，図８に示すように，前記ハードディスク装置５（第２記憶手段）内に，前記印刷要求で指定されたデータとしてビットマップデータ及び前記バンドデータＢ（ｉ）（前記時間内バンドデータ）の両方が保持されている場合について説明する。
この場合，前記画像処理部及び前記画像出力部を実行することにより，前記ハードディスク装置５（第２記憶手段）内のビットマップデータ（前記時間超過バンドデータに対応するデータ）を，前記ＲＡＭ３（第１記憶手段）内に確保した前記事前描画バッファＰｂに記憶（図８のＳ７０１）させる。このとき，前記事前描画バッファＰｂには，圧縮処理が施されたビットマップデータに対して前記圧縮・伸張部により伸張処理が施された後のビットマップデータが格納される。
その後，前記ハードディスク装置５内の前記時間内バンドデータ各々を前記ＲＡＭ３に出力（図８のＳ７０２）した上で，その各々についてビットマップデータを前記ＲＡＭ３（第１記憶手段）内に確保した前記通常描画バッファＮｂ前記に展開させる処理（図８のＳ７０３）と前記ＲＡＭ３内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（Ｓ７０４〜Ｓ７０６）とを並行して実行させる。
また，図７に示すように，前記ハードディスク装置５（第２記憶手段）内に，前記印刷要求で指定されたデータとして前記時間内バンドデータのみが保持されている場合は，前記ハードディスク装置５内の前記時間内バンドデータ各々についてビットマップデータを前記ＲＡＭ３（第１記憶手段）内に確保した前記通常描画バッファＮｂ前記に展開させる処理（図７のＳ９０１及びＳ９０２）と前記ＲＡＭ３内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（図７のＳ９０３）とを並行して実行させる。
【００３５】
一方，前記ハードディスク装置５（第２記憶手段）内に，前記印刷要求で指定されたデータとしてビットマップデータのみが保持されている場合は，前記画像出力部の実行により，前記ハードディスク装置５内のビットマップデータを読み出し，これに対して前記圧縮・伸張部によって伸張処理を施した上で前記プリンタエンジン７に順次出力する（図６のＳ８０１）。
以上の処理により，指定されたデータの画像形成が行われる。
このような処理を行うことにより，前記時間超過バンドデータの有無やその数にかかわらず，前記ＲＡＭ３への事前のビットマップ展開を行わずに，ビットマップ展開処理がなされるので，前記事前描画バッファＰｂが確保されない分，前記ＲＡＭ３に確保されるメモリ容量を抑えることができる。
また，ビットマップ展開を必要とする前記時間内バンドデータと前記時間超過バンドデータに対応するビットマップデータとが混在して前記ハードディスク装置５に保持されるのは，前記時間超過バンドデータが予め定められた前記許容数以下である場合のみである。従って，前記印刷要求があった際に，前記ＲＡＭ３の前記事前描画バッファＰｂに事前記憶させる必要があるビットマップデータは，図８に示すように前記許容数以下に制限される。このため，前記時間超過バンドデータの全てについてビットマップデータを前記ＲＡＭ３に事前記憶させる従来（図５）に比べ，前記ＲＡＭ３の前記事前描画バッファＰｂの領域の容量を小さく制限することができる。その上，前記ＲＡＭ３へ事前転送するビットマップデータ数が前記許容数以下に制限されるため，前記印刷要求があってから印刷処理（画像形成）が開始されるまでの時間を短縮できる効果もある。
さらに，前記バンドデータを変換したビットマップデータの方が前記バンドデータよりもデータサイズが小さいというまれな状況があった場合でも，データサイズの小さい方が前記ハードディスク装置５に保持されるため，前記ハードディスク装置５の必要メモリ容量をより抑えることが可能となる。
また，前記許容数を０（ゼロ）とした場合，前記ハードディスク装置５には，ビットマップデータのみ（図６の状態）又は前記バンドデータのみ（図７の状態）のいずれかとなり，処理がシンプルとなる。さらに，前記ハードディスク装置５にビットマップデータのみを保持させた場合，前記ＲＡＭ３へのビットマップデータの事前転送や，前記バンドデータ（前記時間内バンドデータ）のビットマップ展開を行う必要がないため，前記印刷要求があってから印刷処理（画像形成）が開始されるまでの時間をより短縮できる。
【００３６】
（第３実施例に係るホールド印刷処理）
次に，画像形成装置Ｘにおける第３実施例に係る前記ホールド印刷処理について説明する。
本処理は，図４のフローチャートに示した前記第２実施例に係る前記ホールド印刷処理と共通する部分が多いので，図４とこれに対応する図６〜図８とを用いて説明する。
当該第３実施例に係る前記ホールド印刷処理では，まず，受信したプリントデータの前記バンドデータへの変換（Ｓ５０１）を行った上で，１ページ分全ての前記バンドデータについて，図４のＳ５０４〜Ｓ５０７の処理（図２のＳ１０３及びＳ１０４の処理と同じ処理を含む：前記所要時間判別手段の処理の一例）を実行することにより，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの認識とその数のカウントを行う。
そして，Ｓ５０４〜Ｓ５０７の処理の結果（前記所要時間判別手段の判別結果）に基づいて判別した次の３つの場合各々について，ビットマップデータを前記ＲＡＭ３に展開する手順を制御する。
その１つは，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合である。
この場合，まず，１ページ分の全ての前記バンドデータ各々を前記ハードディスク装置５（第２記憶手段）に転送（図７のＳ５１３＆Ｓ４０３）する。その後，前記印刷要求の入力があった際に，前記ハードディスク装置５（第２記憶手段）内の前記バンドデータＢ（ｉ）各々について，ビットマップデータ（ビットマップ画像データ）を前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開する処理（図７のＳ９０１及びＳ９０２）と，前記ＲＡＭ３内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（図７のＳ９０３）とを並行して実行させる。
このように，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合は，前記バンドデータをそのままの形式で前記ハードディスク装置５に保持し，前記印刷要求の入力があった後に，前記ＲＡＭ３への事前のビットマップ展開なしでビットマップ展開処理を行いながら前記プリンタエンジンへのデータ転送を行っても，オーバーランは発生しない。また，ビットマップデータの事前展開を行わないので，前記ＲＡＭ３の占有メモリ容量は特に増加しない。しかも，通常は，前記バンドデータはそれを変換したビットマップデータよりもデータサイズが小さいので，従来のようにビットマップデータの形式で保持する場合に比べ，前記ハードディスク装置５の必要メモリ容量を抑えることができる。
【００３７】
２つ目は，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数以下である場合である。
この場合，その各々（前記時間超過バンドデータ各々）について，ビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（図８のＳ５０８）と，そのビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（図８のＳ５０９＆Ｓ４０３）とを並行して実行するとともに，残りの前記時間内バンドデータ各々を前記ハードディスク５（第２記憶手段）に記憶させる（図８のＳ５１３＆Ｓ４０３）。
その後，前記印刷要求の入力があった際に，前記ハードディスク装置５（第２記憶手段）内のビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記事前描画バッファＰｂに記憶させた（図８のＳ７０１）後に，前記ハードディスク装置５内の前記時間内バンドデータ各々について，前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（Ｓ７０２及びＳ７０３）と，前記ＲＡＭ３内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（Ｓ７０４〜Ｓ７０６）とを並行して実行させる。
これにより，前記印刷要求があった際に前記ＲＡＭ３に事前記憶されるビットマップデータの数が前記許容数以下に抑えられる。このため，通常よりも拡張して確保する前記事前描画バッファＰｂの領域の最大拡張幅を制限でき，前記ＲＡＭ３内の占有メモリ容量を抑えることができる。さらに，全てをビットマップデータに展開して保持する場合に比べ，前記ハードディスク装置５の必要メモリ容量を抑えることができる。
【００３８】
３つ目は，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が既定の前記許容数を超える場合である。
この場合，まず，全ての前記バンドデータについて，ビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（図６のＳ５０８）と，そのビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（図６のＳ５０９＆Ｓ４０３）とを並行して実行させる。
その後，前記印刷要求の入力があった際に，前記ハードディスク装置５（第２記憶手段）内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ出力する（図６のＳ８０１）。
このような構成により，事前（画像形成処理の開始前）に前記ＲＡＭ３に記憶されるビットマップデータの数が前記許容数を超えることがない。このため，前記時間超過バンドデータ（オーバーランが発生すると予測される前記バンドデータ）が存在する場合に，前記ＲＡＭ３に通常よりも拡張して確保されるメモリ領域（前記事前描画バッファＰｂ）が制限される。
【００３９】
（第４実施例に係るホールド印刷処理）
次に，画像形成装置Ｘにおける第４実施例に係る前記ホールド印刷処理について説明する。
本処理は，前記第３実施例に係る前記ホールド印刷処理における，１ページ分の前記バンドデータに存在する前記時間超過バンドデータの数が前記許容数以下である場合の処理を変形したものである。即ち，前述の図６の状態を経た後，前記バンドデータとこれを変換したビットマップデータとのデータサイズの小さい方を前記ハードディスク装置５に保持させるものである。
即ち，第４実施例に係る前記ホールド印刷処理では，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合に，まず，全ての前記バンドデータについて，ビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（図６のＳ５０８）と，そのビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（図６のＳ５０９＆Ｓ４０３）とを並行して実行させる。
さらに，全ての前記バンドデータに対応するビットマップデータと，全ての前記バンドデータとのいずれか総データサイズの小さい方を前記ハードディスク装置５（第２記憶手段）に保持させる。
より具体的には，ビットマップデータのサイズが前記バンドデータのサイズ以上である場合は，前記ハードディスク装置５に格納したビットマップデータをそのまま保持させておく（図６の状態）。
そうでない場合は，前記ハードディスク装置５内のビットマップデータを消去（削除）し，代わりに前記ＲＡＭ３から全ての前記バンドデータを前記ハードディスク装置５に転送する（図７の状態）。
その後，前記印刷要求の入力があった際に，前記ハードディスク装置５（第２記憶手段）内に前記バンドデータが保持されている場合は（図７の状態），その各々について，ビットマップデータ（ビットマップ画像データ）を前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開する処理（図７のＳ９０１及びＳ９０２）と，前記ＲＡＭ３内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ転送する処理（図７のＳ９０３）とを並行して実行させる。
一方，前記印刷要求の入力があった際に，前記ハードディスク装置５内にビットマップデータが保持されている場合は（図６の状態），そのビットマップデータ各々を前記プリンタエンジン７（画像形成手段）へ出力する（図６のＳ８０１）。
これにより，前記バンドデータを変換したビットマップデータの方が前記バンドデータよりもデータサイズが小さいというまれな状況があった場合，前記ハードディスク装置５の必要メモリ容量をより抑えることが可能となる。
【００４０】
（第２実施例に係る直接印刷処理）
次に，画像形成装置Ｘにおける第２実施例に係る前記直接印刷処理について説明する。
本処理は，前記第１実施例に係る前記直接印刷処理における，１ページ分の前記バンドデータに前記時間超過バンドデータが存在する場合の処理を他の処理に置き換えたものである。よって，１ページ分の前記バンドデータに前記時間超過バンドデータが存在しない場合の処理は前記第１実施例に係る前記直接印刷処理と同じであるのでここでは説明を省略する。
本第２実施例に係る直接印刷処理では，１ページ分の前記バンドデータに前記時間超過バンドデータが存在する場合，図６に示した処理と同様の処理を，前記印刷要求を待つことなく，一連の自動処理として実行するものである。
即ち，１ページ分の前記バンドデータに前記時間超過バンドデータが存在する場合に，まず，全ての前記バンドデータについて，ビットマップデータを前記ＲＡＭ３（第１記憶手段）内の前記通常描画バッファＮｂに展開させる処理（図６のＳ３０３）と，そのビットマップデータを前記ハードディスク装置５（第２記憶手段）に転送する処理（図６のＳ３０４＆Ｓ４０３）とを並行して実行させる。さらにその後続けて，前記ハードディスク装置５（第２記憶手段）内のビットマップデータを前記プリンタエンジン７（画像形成手段）へ出力する（図６のＳ６０１）。
これにより，前記時間超過バンドデータが存在する場合でも，前記ＲＡＭ３への事前のビットマップ展開を行が行われない。このため，前記ＲＡＭ３に一時蓄積されるビットマップデータのサイズを最小限に抑えることが可能となる。また，一旦，前記ハードディスク装置５へデータ転送（スプール）するため，その過程でオーバーランの問題は生じない。
なお，本実施例では，１ページ分の全ての前記バンドデータを展開して前記ハードディスク装置５に一旦スプールすることになるため，画像形成が開始されるまでに従来よりも時間を要することになるが，前記ＲＡＭ３の占有容量低減を優先する場合に有効である。
【産業上の利用可能性】
【００４１】
本発明は，画像形成装置への利用が可能である。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態に係る画像形成装置Ｘの概略構成を表すブロック図。
【図２】画像形成装置Ｘにおける第１実施例に係る直接印刷処理の手順を表すフローチャート。
【図３】画像形成装置Ｘにおける第１実施例に係るホールド印刷処理の手順を表すフローチャート。
【図４】画像形成装置Ｘにおける第２実施例に係るホールド印刷処理の手順を表すフローチャート。
【図５】画像形成装置Ｘにおける第１実施例に係る直接印刷処理に対応したデータの流れを表すブロック図。
【図６】画像形成装置Ｘにおける第１実施例に係るホールド印刷処理及び第２実施例に係るホールド印刷処理の一部に対応したデータの流れを表すブロック図。
【図７】画像形成装置Ｘにおける第２実施例に係るホールド印刷処理の一部に対応したデータの流れを表すブロック図。
【図８】画像形成装置Ｘにおける第２実施例に係るホールド印刷処理の一部に対応したデータの流れを表すブロック図。
【符号の説明】
【００４３】
１…ＣＰＵ
２…プログラムＲＯＭ
３…ＲＡＭ（第１記憶手段）
４…ホストインターフェース
５…ハードディスク装置（第２記憶手段）
６…プリンタインターフェース
７…プリンタエンジン
８…表示・操作部
９…システムバス
Ｎｂ…通常描画バッファ
Ｐｂ…事前描画バッファ
Ｓ１０１，Ｓ１０２，，…処理手順（ステップ）
【図１】
0004628003.tif 000002
【図２】
0004628003.tif 000003
【図３】
0004628003.tif 000004
【図４】
0004628003.tif 000005
【図５】
0004628003.tif 000006
【図６】
0004628003.tif 000007
【図７】
0004628003.tif 000008
【図８】
0004628003.tif 000009