(57)【要約】【課題】  データの消失を防ぐために記憶媒体を追加して構成する受信バッファを用いて印刷データをスプールしながら行うデータ処理において、処理効率を低下させることなくデータ処理を継続すること。【解決手段】  印刷データの受信時に、一定記憶容量を持つ第一受信バッファ（ＲＡＭ）に空きがなくなる状態になったことが確認されると（Ｓ１０２-NO）、後続の受信データが保持できないので、この時点で第一受信バッファに保持したデータを分割可能なデータ単位に分け、各データ単位に対し、第一受信バッファに保留するデータとしての優位を示す優先度を付与する（Ｓ１０３）。ここでより低い優先度が付与されたデータから順に第二受信バッファへ移動させる（Ｓ１０４）。データサイズが大きいデータほど優先度を低くし、データ移動によって、後続する受信データの保持に必要な領域を充分確保できるようにする。【選択図】図２
2013252625.tif 000002
【特許請求の範囲】
【請求項１】
受信した印刷データを受信バッファにスプールしながら、受信バッファを通して入力される前記印刷データを処理する画像処理装置であって、
前記受信バッファは、一次記憶媒体に設け記憶容量が一定の第一バッファ部と二次記憶媒体に設け記憶容量が前記第一バッファ部より大きくし得る第二バッファ部とから構成するとともに、
受信して前記第一バッファ部に保持された印刷データのデータ量が第一バッファ部の記憶容量未満の所定量を超えるとき、保持された印刷データを所定の分割条件に基づいて分割するデータ分割手段と、
前記データ分割手段によって分割された分割データ単位ごとに、前記第一バッファ部に保留するデータとしての優位を示す優先度を、各データが有する所定の属性の違いに基づいて付与する優先度付与手段と、
前記データ分割手段によって分割された分割データ単位を、前記優先度付与手段により付与された優先度の低い順に前記第二バッファ部へ移動させ、第二バッファ部への移動によって空いた第一バッファ部に、後続する受信データをスプールする第１スプール制御手段とを有する
画像処理装置。
【請求項２】
請求項１に記載された画像処理装置において、
前記第１スプール制御手段によって前記第二バッファ部に移動される分割データ単位に対しデータ圧縮処理を施すデータ圧縮処理手段を有する
画像処理装置。
【請求項３】
請求項１又は２に記載された画像処理装置において、
前記データ分割手段における分割条件は、ファイル、コマンド、コマンドで処理するデータのいずれかを分割単位とする条件である
画像処理装置。
【請求項４】
請求項１乃至３のいずれかに記載された画像処理装置において、
前記優先度付与手段における優先度は、分割データ単位のデータ量が多いほど低くする
画像処理装置。
【請求項５】
請求項１乃至４のいずれかに記載された画像処理装置において、
前記印刷データが、他で記載されたデータを参照する形式で記述するＰＤＬデータであり、
参照回数が多いほど前記優先度付与手段における優先度は高くし、かつ処理中の分割データ単位において参照されるデータの優先度は高くする
画像処理装置。
【請求項６】
請求項１乃至５のいずれかに記載された画像処理装置において、
前記第二バッファ部に移動されたデータに付与された保留優先度が、前記優先度付与手段によって第一バッファ部に保持されているデータに付与される優先度よりも一定以上高い場合、前記第二バッファ部に移動されたデータを前記第一バッファ部に再移動する第２スプール制御手段を有する
画像処理装置。
【請求項７】
コンピュータを、請求項１に記載された画像処理装置の前記データ分割手段、優先度付与手段、第１スプール制御手段の各手段として機能させるためのプログラム。
【請求項８】
受信した印刷データを、一次記憶媒体に設け記憶容量が一定の第一バッファ部と二次記憶媒体に設け記憶容量が前記第一バッファ部より大きくし得る第二バッファ部とから構成する受信バッファにスプールしながら、受信バッファを通して入力される前記印刷データを処理する画像処理装置における受信データ処理方法であって、
受信して前記第一バッファ部に保持された印刷データのデータ量が前記第一バッファ部の記憶容量未満の所定量を超えるとき、保持された印刷データを所定の分割条件に基づいて分割するデータ分割工程と、
前記データ分割工程で分割された分割単位ごとに、前記第一バッファ部に保留するデータとしての優位を示す優先度を、各データが有する所定の属性の違いに基づいて付与する優先度付与工程と、
前記データ分割工程で分割された分割データ単位を、前記優先度付与工程で付与された優先度の低い順に前記第二バッファ部へ移動させ、第二バッファ部への移動によって空いた第一バッファ部に、後続する受信データをスプールするスプール制御工程と
を有する受信データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信した印刷データを受信バッファにスプール（一時保持）しながらこの受信バッファを通して入力される印刷データを処理する画像処理装置、前記画像処理装置における受信データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
ＰＣ（パーソナルコンピュータ）等のホスト装置から処理を要求して送信されてくる印刷データを受信し、受信した印刷データをもとにプリント出力等の画像出力用データを処理する機能を持つ画像処理装置（例えばプリンタ、複合機等）が、従来から広く知られている。
これらプリンタ等の画像処理装置において、受信する印刷データは、一般的にＰＤＬ（ページ記述言語）により記述されたデータ（以下、「ＰＤＬデータ」という）であり、受信したＰＤＬデータをＲＡＭ（Random Access Memory）等の記憶媒体を使用した受信バッファにスプールしながら、受信バッファを通して入力されるＰＤＬデータを解析し、得られる描画コマンド（指令）に従い、プリント出力用データの描画処理が行われる。
【０００３】
ところで、既存のプリンタにおいては、スプールに用いられている受信バッファの記憶容量（メモリサイズ）はそれ程大きくとっていないので、受信するＰＤＬデータのサイズに比べて記憶容量が小さい場合には、全てのＰＤＬデータを受信バッファにスプールできない状態になる。この場合に、受信データの先頭から順に後方に向けてＰＤＬデータの処理（解析、描画等）に送り、処理を終えたデータを逐次消去しては、後続の受信データをスプールするという手順で処理が繰り返される。
【０００４】
ただ、ＰＤＬの種類によっては、描画に必要なデータがＰＤＬデータ内にシーケンシャルに配置されることが保証されないものがある。このため、もし、このようなＰＤＬデータの受信中に受信バッファの記憶容量をオーバーし、このために描画処理に必要なデータの一部が既に上述の処理手順に従って消去された受信データ内に置かれていた場合は、必要なデータにアクセスできず、その時点で処理が停止し、印刷等の出力ができずに失敗（エラー）になる、という問題が生じる。
【０００５】
プリンタにおいて、受信する印刷データが受信バッファの記憶容量を超えるときに行う上述の動作により生じ得るデータの消失を防ぐために、受信バッファもしくはスプール機能を追加して用いることにより対処する手法が従来から提案されている。
例えば、特許文献１（特開２０００−６４７６号公報）には、プリンタがエラー状態になった場合に、受信済みの受信バッファに格納された印刷データをスプール部に退避させるとともに、引続き送出されてくる印刷データをスプール部に格納する構成が記載されている。
しかし、特許文献１は、プリンタがエラー状態になった場合の動作であり、エラー発生後に受信するデータを含めて全ての受信データをスプール部に一時的に退避させておき、エラーからの復帰時に退避させたデータを受信バッファに戻し、出力処理を再開する、としており、正常動作時において受信バッファの記憶容量を超える場合に発生するデータの消失による上述の処理停止の問題を解決することができない。
【０００６】
また、上述の処理停止の問題に対する解決案を本出願人が検討した際に、次の提案がなされた。即ち、受信バッファを一次記憶媒体に一次記憶媒体よりも記憶容量の大きい二次記憶媒体を追加可能な構成とし、受信したデータ量が一次記憶媒体の記憶容量に近い量に達した時に一次記憶媒体に書き込まれたデータを二次記憶媒体に移すとともに、その後受信するデータを二次記憶媒体に書き込むことで、全ての受信データを二次記憶媒体に書き込み、処理を継続する手法（以下「先行技術」という）が提案された。
しかし、上記先行技術は、全ての受信データを二次記憶媒体に保持させて処理を継続するので、二次記憶媒体に保持した印刷データの処理が終了するまでは、一次記憶媒体系を使用するデータ処理は行わず、このために処理効率の低下が生じ、この観点で問題を残している。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、受信バッファ（一次記憶媒体）の記憶容量を超える印刷データの受信に対応する場合に生じ得るデータの消失を、記憶媒体（二次記憶媒体）の追加によって防ぐ手法を採る際、記憶媒体を追加して構成する受信バッファを使用し受信データをスプールしながら行うデータ処理において、処理効率を低下させることなくデータ処理を継続することである。
【課題を解決するための手段】
【０００８】
本発明は、受信した印刷データを受信バッファにスプールしながら、受信バッファを通して入力される前記印刷データを処理する画像処理装置であって、前記受信バッファは、一次記憶媒体に設け記憶容量が一定の第一バッファ部と二次記憶媒体に設け記憶容量が前記第一バッファ部より大きくし得る第二バッファ部とから構成するとともに、受信して前記第一バッファ部に保持された印刷データのデータ量が第一バッファ部の記憶容量未満の所定量を超えるとき、保持された印刷データを所定の分割条件に基づいて分割するデータ分割手段と、前記データ分割手段によって分割された分割データ単位ごとに、前記第一バッファ部に保留するデータとしての優位を示す優先度を、各データが有する所定の属性の違いに基づいて付与する優先度付与手段と、前記データ分割手段によって分割された分割データ単位を、前記優先度付与手段により付与された優先度の低い順に前記第二バッファ部へ移動させ、第二バッファ部への移動によって空いた第一バッファ部に、後続する受信データをスプールする第１スプール制御手段とを有する画像処理装置である。
【発明の効果】
【０００９】
本発明によれば、一次記憶媒体に二次記憶媒体を追加して構成する受信バッファにより印刷データの消失を防ぐとともに、この構成の受信バッファを使用し受信データをスプールしながら行うデータ処理において、処理効率を低下させることなくデータ処理を継続することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る画像形成装置の概略構成を示す図である。
【図２】本画像形成装置（図１）における、受信データのスプール動作に係る処理手順を示すフロー図である。
【図３】本画像形成装置（図１）における、ＰＤＬデータの処理手順を示すフロー図である。
【図４】第一受信バッファ内のデータに優先度を付与するステップ（図２のＳ１０３）のサブルーチンの処理手順を示すフロー図である。
【図５】第一受信バッファ内のデータを、付与された優先度に応じて第二受信バッファに移動するステップ（図２のＳ１０４）のサブルーチンの処理手順を示すフロー図である。
【図６】第二受信バッファ内のデータを、付与し直した優先度に応じて第一受信バッファに再移動する処理手順を示すフロー図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態について、添付図面を参照して説明する。
以下、本発明の画像処理装置の実施形態を、ＰＤＬデータや画像ファイル等の印刷データをもとに出力用画像データを生成し、出力用画像データにより記録媒体（印刷用紙）に画像を形成するプリンタもしくはプリンタ機能を持つ複合機等の画像形成装置に例を採って説明する。
本画像形成装置が処理の対象とする印刷データは、ネットワークＩ／Ｆ（インターフェース）等を介して接続されるホスト装置としてのＰＣや、ダイレクトインを可能とするＩ／Ｆを介して接続される画像ファイルを保持する記憶媒体等のデバイスが送信するデータを受信する。
【００１２】
また、本画像形成装置は、受信した印刷データをスプールする受信バッファとして、一次記憶媒体に設け記憶容量が一定の第一バッファ部と二次記憶媒体に設け記憶容量が前記第一バッファ部より大きくし得る第二バッファ部とから構成する。この構成によれば、受信した印刷データの処理中においても、第一バッファ部の記憶容量を超える印刷データの受信に応じて、第一バッファ部と第二バッファ部とが協働して受信データをスプールする動作を行うことで、固定記憶容量の記憶媒体のみの受信バッファで対応した従来技術において起きた処理の停止（上記［背景技術］の説明、参照）を防ぎ、処理を継続することを可能にする。
なお、第一バッファ部と第二バッファ部とが協働して受信データをスプールする上述の動作は、印刷データのデータ処理の効率が低下しないようにして行う本発明の特徴構成に係る部分であり、この構成及び処理の詳細は、後記で説明する。
【００１３】
［本画像形成装置の概略構成］
図１は、本発明の実施形態に係る画像形成装置の概略構成を示す図である。なお、同図は、制御システムを主に示すもので、制御システムを構成する各要素をデータ線で結ぶことにより要素間の関係を示す。
本画像形成装置１は、画像形成装置１全体を制御するコントローラ８の制御下に、操作パネル２と、ホストＩ／Ｆ３と、プリントエンジン装置４と、ＲＯＭ（Read Only Memory）５と、一次記憶媒体６と、二次記憶媒体７を構成要素とする。
ホストＩ／Ｆ３は、ホストＰＣ１６とデータ交換をするためのＩ／Ｆであり、このＩ／Ｆを介してネットワーク経由或は直接ホストＰＣ１６と接続してデータ通信を行う。
操作パネル２は、ユーザーとの情報交換を行うための表示部と操作部を備え、表示部によって機器の動作状態等をユーザーに知らせ、操作部によってユーザーが印刷ジョブに付加する処理条件の入力等を行う。
【００１４】
コントローラ８は、ホストＩ／Ｆ３を介して受信した印刷（ＰＤＬ）データを後述する第一受信バッファ１２及び第二受信バッファ１５によってスプールする動作を制御する受信バッファ制御部９、第一受信バッファ１２及び第二受信バッファ１５に書き込まれたＰＤＬデータの解析等の処理をするＰＤＬ処理部１０、画像形成装置１を構成する各種デバイス（装置）を制御する装置制御部１１の各モジュールを構成要素とする。なお、コントローラ８のＰＤＬ処理部１０は、第一受信バッファ１２及び第二受信バッファ１５の各領域内に書き込んだＰＤＬデータを読み込み、ＰＤＬ仕様に従ってデータを解析、解釈して、得られる描画コマンドに従い描画処理をすることにより生成されるページ画像のビットマップイメージ（プリント出力用データ）を、装置制御部１１を介して一次記憶媒体６内のフレームメモリ１４に書き込む処理を行う。
プリントエンジン装置４は、コントローラ８で処理されたプリント出力用データを用いて記録媒体（用紙）に画像を形成する装置部であり、コントローラ８が装置制御部１１を通じて指示する動作条件に従い処理を実行する。
【００１５】
ＲＯＭ５は、コントローラ８の管理下で保存が必要なデータ（プログラム、制御用データ、管理データ等）を記憶する手段である。
一次記憶媒体６は、第一受信バッファ１２、ワークメモリ１３及びフレームメモリ１４として利用される。この一次記憶媒体６には、処理速度を高くできることから普通用いられているＲＡＭを適用する。なお、ここでは、フレームメモリ１４は、他の処理と共用される汎用の一次記憶媒体６内の一部を割り当てる形態を採っているが、バリエーションとしては、専用のＲＡＭ等の記憶媒体を確保する方法を採用してもよい。
二次記憶媒体７は、第二受信バッファ１５として利用される。このため、二次記憶媒体７は、一次記憶媒体６より大きい記憶容量を持つものとして、ＨＤ（Hard Disk）、ＳＳＤ（Solid State Disk）、ＣＤ（Compact Disk）−ＲＯＭ、ＤＶＤ（Digital Versatile
Disc）−ＲＯＭ、Ｂｌｕｅ−Ｒａｙ Ｄｉｓｋ、ＳＤカード等を適用する。
一次記憶媒体６の第一受信バッファ１２と二次記憶媒体７の第二受信バッファ１５とは、コントローラ８の指示に従い、協働して後記で詳細に説明する受信データのスプール動作を行う。
【００１６】
ところで、本画像形成装置１（図１）のコントローラ８は、コンピュータにコントローラとしての機能を実現するソフトウェアをインストールすることにより構成することができる。
コントローラ８として用いるコンピュータは、図示しないが、汎用のハードウェアで構成するもの、即ち、ソフトウェアプログラムの命令を実行するためのＣＰＵ（Central Processing Unit）、ＣＰＵによって使用されるプログラムやデータ等を保存するＲＯＭ、前記プログラムによって処理し、生成されるデータなどを一時的に保存するＲＡＭ、コントローラ８に設定された各種の設定データ、管理情報等の保存が必要なデータを不揮発に記憶するＨＤＤ（Hard Disk Drive）の各要素がバスで接続され、また前記バスには、Ｉ／Ｏポートや表示部、入力部をそれぞれ接続するインターフェースを有するものである。
【００１７】
コンピュータで構成するコントローラ８は、ソフトウェア（プログラム）によって上記受信バッファ制御部９、ＰＤＬ処理部１０、装置制御部１１の各モジュールを構成する。よって、後述する受信データのスプール動作を行うための処理の手順（図２の処理フロー、参照）、ＰＤＬデータの処理手順（図３の処理フロー、参照）等を実行するプログラムを、記録媒体を介してコンピュータ内蔵の記憶部にインストールし、インストールしたプログラムを駆動することによって、コンピュータを上述の受信バッファ制御部９、ＰＤＬ処理部１０及び装置制御部１１として機能させる。
なお、コントローラ８をコンピュータで構成する場合には、図１の画像形成装置１に示したＲＯＭ５、一次記憶媒体６及び二次記憶媒体７は、コンピュータに内蔵するＲＯＭ、ＲＡＭ及びＨＤＤによって構成することができる。
【００１８】
［受信データのスプール］
本画像形成装置１（図１）において、コントローラ８が行う受信データのスプール動作を説明する。
コントローラ８は、受信した印刷データの処理中においても、後続するデータを受信して受信バッファにより受信データをスプールしながらデータ処理を継続可能とする制御動作を行う。
本画像形成装置１において、上記の機能を実現するために備える受信バッファは、一次記憶媒体６に設け一定の記憶容量を持つ第一受信バッファ１２と二次記憶媒体７に設け記憶容量が前記第一受信バッファ１２より大きくし得る第二受信バッファ１５を追加する構成を採っており、受信時には、先ず一次記憶媒体６の第一受信バッファ１２に受信データを書き込み、記憶容量未満の所定量を超えるまでは、第一受信バッファ１２を使用して、従来と同様にスプール処理を行うことで、受信入力と印刷出力のデータ量の変動に対して、エラーが生じることなく印刷ジョブの正常な処理を可能とする。
【００１９】
他方、一次記憶媒体６の第一受信バッファ１２の上記一定の記憶容量未満の所定量を超える印刷データの受信に対しては、二次記憶媒体７に設けた第二受信バッファ１５を加え、ここを追加利用してスプール動作を行う。これは、固定記憶容量の記憶媒体のみの受信バッファで対応した従来技術において起きたデータの消失による処理の停止（上記［背景技術］の説明、参照）を防ぎ、処理を継続することを可能にするためである。
追加する二次記憶媒体７の第二受信バッファ１５を利用するときのデータの保持方法は、一次記憶媒体６の第一受信バッファ１２に保持されたデータの一部を分けて二次記憶媒体７の第二受信バッファ１５に移動し、両バッファによってデータを保持して、協働してスプール動作を行う方法を採る。この方法は、二次記憶媒体７の第二受信バッファ１５に移動した分だけ一次記憶媒体６の第一受信バッファ１２に新たに保持が可能になる部分に後続する受信データを保持できる。
【００２０】
また、移動するデータと残すデータを分ける条件の定め方を、印刷データのデータ処理において、上記データの消失による処理の停止が生じ難く、かつ一次記憶媒体６の第一受信バッファ１２に対するアクセス動作がより多くなるようにして、データ処理の効率化を図ることを可能にする。
一次記憶媒体６の第一受信バッファ１２を、後続する受信データの保持に使用し、またアクセス動作がより多くなるデータに使用することは、一次記憶媒体６が高速アクセスのできる記憶媒体として、コントローラ８が構成する制御システムにおいて、より高い処理効率の得られる動作形態であるから、メリットが大きい。
【００２１】
「スプール動作に係る処理フロー」
第一受信バッファ１２及び第二受信バッファ１５を制御するコントローラ８の受信バッファ制御部９が行うスプール動作に係る処理手順をフロー図に基づいて説明する。
図２は、本画像形成装置（図１）における、受信データのスプール動作に係る処理手順を示すフロー図である。
図２の処理フローは、画像形成装置１の電源がＯＮの間、任意のタイミングで送られてくる印刷データを受信し処理できるように、コントローラ８により管理され、印刷ジョブの処理を要求して送信されてくるＰＤＬデータの受信時に起動される。
なお、本処理フローの説明を容易にするために、以下では、未処理の印刷ジョブがなく、第一受信バッファ１２及び第二受信バッファ１５のどちらにも保持されているデータのない空の状態で、ＰＤＬデータの受信を待っている状態で処理が開始される、という条件にある場合とする。
受信バッファ制御部９は、処理フローを起動すると、ホストＩ／Ｆ３を介して印刷を要求してホストＰＣ１６から送られてくるＰＤＬデータの受信を待つ間、ループ処理を繰り返して受信したか否かを確認する（ステップＳ１０１）。
ステップＳ１０１でＰＤＬデータの受信を確認すると（ステップＳ１０１-YES）、受信したデータを一次記憶媒体６の第一受信バッファ１２へ書き込む処理を始める（ステップＳ１０５）。
【００２２】
ただし、受信バッファ制御部９は、第一受信バッファ１２への書き込み処理を行う間に一次記憶媒体６の第一受信バッファ１２に保持されているデータ量が一定の記憶容量未満の所定量を超え、空きがなくなる状態になった場合には、二次記憶媒体７の第二受信バッファ１５を追加したマルチバッファ動作に移行するので、第一受信バッファ１２の記憶状態を確認する（ステップＳ１０２）。なお、上記のように、第一受信バッファ１２が空の状態で開始した時は、印刷データの受信が確認されると、第一受信バッファ１２へのデータ書き込み処理を直ちに開始し、マルチバッファ動作に移行することはない。
この後、後続する印刷データを受信した際、ステップＳ１０２において、第一受信バッファ１２の記憶容量に空きがなくなる状態になったことを確認した場合（ステップＳ１０２-NO）、ステップＳ１０３及びＳ１０４を加えたマルチバッファ動作に移行する。
【００２３】
“マルチバッファ動作”
一次記憶媒体６の第一受信バッファ１２に空きがなくなったときには、二次記憶媒体７に設けた第二受信バッファ１５を加え、マルチバッファ動作でスプールを行う。これは、固定記憶容量の記憶媒体のみの受信バッファで対応した従来技術において起きたデータの消失による処理の停止を防ぎ、処理を継続することを可能にするためである。
マルチバッファ動作は、第一受信バッファ１２に保持されたデータの一部を分けて十分な記憶容量を持つ第二受信バッファ１５に移動し、移動した分だけ第一受信バッファ１２に新たに保持が可能になる部分に後続する受信データを保持して、両バッファによってスプール動作を行う。
【００２４】
ただし、第二受信バッファ１５に移動するデータと第一受信バッファ１２に残すデータとを所定の基準に従って定める。第一受信バッファ１２は、上記のように後続する受信データを新たに保持するとともに、高速アクセス性能を有するのでアクセス動作がより多くなるデータに使用することが適当であるから、こうした条件に適応するデータを割り当てることが必要となる。
上記の条件に適応するデータを第一受信バッファ１２及び第二受信バッファ１５それぞれに割り当てて保持し、スプール動作を行うためには、第一受信バッファ１２に保持したデータ量が所定量を超える量に達したときに、保持されたデータを、第二受信バッファ１５に移動するデータと第一受信バッファ１２に残すデータとに分けるための手順が必要である。
【００２５】
ここでは、先ず、第一受信バッファ１２にこの時点で保持されたデータを、移動対象にし得るデータ単位に分割する。この分割データ単位は、プリント出力用のデータ処理ができるデータ単位であることを分割条件とする。
この分割条件は、画像ファイル、描画コマンド及び描画コマンドが処理する一塊のデータ（リソースデータ等）を分割単位とする条件を採用することができる。
また、分割したデータ単位ごとに各々が有する属性（後記図４の優先度の付与処理の説明、参照）の違いに基づいて、優先して第一受信バッファ１２に残すデータ、即ち第一受信バッファ１２に保留するデータとしての優位を示す優先度を付与する。なお、この優先度は、低いほど第一受信バッファ１２の保持する必要性がなく、第二受信バッファ１５へ移動する必要性があることを意味する。
【００２６】
具体的には、先に説明したように、後続する受信データを保持するために用意する第一受信バッファ１２の空き領域を大きめに確保する必要があり、このためには、データサイズの大きな分割データ単位の優先度を低くして、この分割データ単位を第二受信バッファ１５へ移動することで、意図した領域を確保する。
また、印刷データ処理の処理効率の低下を防ぐ必要性から優先して第一受信バッファ１２に残すデータは、一つは当該データに対するアクセス動作が多くなる、即ちデータ参照度（参照回数）が高い分割データ単位である。もう一つは、現在データ（描画）処理が行われているデータにおいて参照され、使用されるデータである。これらのデータは、高速にアクセス動作ができる第一受信バッファ１２に保持しておく方が有利であるから、高い優先度を付与する。
【００２７】
図２の処理フローにおける、マルチバッファ動作の処理手順としては、ステップＳ１０２において、第一受信バッファ１２の記憶容量に空きがなくなる状態になったことを確認した場合（ステップＳ１０２-NO）、この時点で第一受信バッファ１２に保持されているデータを対象に、第一受信バッファ１２に保留するデータとしての優先度を付与する（ステップＳ１０３）。
ステップＳ１０３の処理は、図４に示す処理フローにより実施することができるので、同図を参照して次に説明する。
【００２８】
図４は、第一受信バッファ１２内のデータに優先度を付与する図２のステップＳ１０３のサブルーチンの処理手順を示すフロー図である。
既に書き込まれている一次記憶媒体６の第一受信バッファ１２内のデータを上記分割データ単位であるファイル単位または描画コマンド単位、描画コマンドが参照するリソースデータ等の単位に区切り、それぞれに対して、図４の処理フローを通すことにより優先度を付与する。
図４の処理フローによると、対象となる分割データ単位のファイル、描画コマンド等それぞれに対し、先ず、データサイズによる優先度を付与する（ステップＳ３０１）。データサイズによる優先度は、サイズが大きいほど第二受信バッファ１５に移動させるのに適したデータであるから、ここでは、サイズに負の係数Ａを掛けた値「Priority＋＝データサイズ×Ａ（負）」をこのデータ単位に付与する優先度とする。
【００２９】
次に、参照回数による優先度を付与する（ステップＳ３０２）。参照回数（データへのアクセス数）による優先度は、参照回数が多いほど第一受信バッファ１２に保持しておくのに適したデータであるから、ここでは、参照回数に正の係数Ｂを掛けた値「Priority＋＝参照回数×Ｂ（正）」をこのデータ単位に付与する優先度とする。
次いで、現在、描画処理が行われているページにおいて、データが参照され、使用されるデータである場合に第一受信バッファ１２に保持しておくのに適したデータであるとの前提のもとに、優先度を付与する。
この処理の手順としては、描画処理中のページで参照されるか否かを確認し（ステップＳ３０３）、確認結果に従い優先度を付与する。ステップＳ３０３で描画処理中のページで参照されるデータであれば（ステップＳ３０３-YES）、第一受信バッファ１２に保持しておくのに適したデータであるから、ここでは、所定の正の値「Priority＋＝Ｃ（正）」をこのデータ単位に付与する優先度とする。
【００３０】
ステップＳ３０３で描画処理中のページで参照されるデータでなければ（ステップＳ３０３-NO）、優先度の付与はしない。
なお、上記の係数Ａ，Ｂ及び所定値Ｃは、それぞれ実験等により確認した経験値を当てる。
ステップＳ３０３-NO又はステップＳ３０４を経て、図４の処理フローを終了すると、マルチバッファ動作の次の処理手順である、図２のステップＳ１０４に移行する。
ステップＳ１０４は、ステップＳ１０３で行った優先度の付与結果を反映させて、第一受信バッファ１２に保持したデータを第二受信バッファ１５に移動する際の処理手順である。
ステップＳ１０４の処理は、図５に示す処理フローにより実施することができるので、同図を参照して次に説明する。
【００３１】
図５は、第一受信バッファ１２内のデータを、付与された優先度に従って第二受信バッファ１５に移動する図２のステップＳ１０４のサブルーチンの処理手順を示すフロー図である。
ここでは、後続する受信データを保持する記憶領域を空けるために、第一受信バッファ１２に書き込まれたデータを、前段のステップＳ１０３で付与された優先度に従って、第二受信バッファ１５に移動する処理を行う。また、このデータの移動は、優先度を付与した分割データ単位を対象に、設定される所定データ量（データサイズ）を目標に行う。
【００３２】
図５の処理フローによると、先ず、移動するデータのデータサイズを設定する（ステップＳ４０１）。設定するデータサイズは、設計仕様や経験値をもとに予め定めた値を管理情報として保存しておき、この値を固定値として設定する方法を採ることができる。また、設定時点における第一受信バッファ１２、第二受信バッファ１５の各バッファを構成する各記憶媒体の使用可能な記憶容量や受信ファイルの容量を加味して設定するデータサイズを決めてもよい。
また、第一受信バッファ１２内の各分割データ単位を前段のステップＳ１０３で付与された優先度に基づいて、優先度の低い順に並び替える（ステップＳ４０２）。この処理は、優先度の低い方の分割データ単位から順に第二受信バッファ１５へ移動させるので、このための準備として、通常は受信順に並んでいるデータの並び替えをする。なお、ここで参照する優先度が、図４の処理フローで分割データ単位ごとに付与された優先度である場合、付与された優先度値は３種類（データサイズ、参照回数等）あり、それぞれ正又は負の値を持つので、上記並び替えに用いるには、これらの値を合算する必要がある。
【００３３】
次いで、前段のステップＳ４０２で並べた優先度の低い順に、第一受信バッファ１２から第二受信バッファ１５へ分割データ単位で移動させる処理を行う（ステップＳ４０４〜４０６）。
この処理の手順は、ステップＳ４０１で設定した移動データサイズを目標にして設定サイズに近い量のデータを移動させるように、移動量の確認をしながら、優先度の低い順に分割データ単位ごとに処理を行っていく。
よって、全てのデータを対象に一つずつステップＳ４０４〜４０６の処理を繰り返すループ処理を行う。
【００３４】
ループ端のステップＳ４０４において、優先度の低い順に並べた未処理の分割データ単位の中の先頭のデータの移動処理を開始し、先ず、移動済みデータサイズ＞移動データサイズ（設定値）を満たすか否かを判定する（ステップＳ４０４）。この判定は、上記の条件を満たせば、現在の移動状態は、移動したデータサイズが設定サイズを超えているので、これ以上データを移動させることができない状態であり、他方、満たさなければ、現在の移動状態は、移動したデータサイズが設定サイズに達していないので、データを移動させることができる状態であると判定する。
【００３５】
よって、ステップＳ４０４で不等式の上記条件を満たさない場合（ステップＳ４０４-NO）、現在処理の対象になっている分割データ単位を第一受信バッファ１２から第二受信バッファ１５へ移動させる（ステップＳ４０５）。
この後、ループ端のステップＳ４０６において、本移動処理の対象となる分割データ単位の存否を確認して、存在が確認できれば、ステップＳ４０３に戻し、また、存在が確認できなければ、処理を終了する。
他方、ステップＳ４０４で不等式の上記条件を満たした場合（ステップＳ４０４-YES）、移動済みのデータサイズが設定したデータサイズ以上に達しているので、直ちに移動処理のループを抜けて、処理を終了する。
【００３６】
図２の処理フローに説明を戻すと、上記のようにステップＳ１０４（図５の処理フロー一）で第一受信バッファ１２から第二受信バッファ１５ヘデータ移動が行われた後、図２の処理フローに示すように、第一受信バッファ１２の記憶領域に空きがあるか否かを確認するステップＳ１０２に戻る。この手順は、ステップＳ１０３及びＳ１０４によるマルチバッファ動作によって第一受信バッファ１２に空き領域を作ったことで、先にステップＳ１０１で受信したデータを保持できる状態になり、この処理を進めるためである。
よって、この流れでは、第一受信バッファ１２の記億領域に空きがあるか否かを確認するステップＳ１０２では、当然空きがあることが確認できる。なお、印刷データ受信時において第一受信バッファ１２に十分に空き領域がある場合にも、ステップＳ１０２においてこの確認結果が得られる。
【００３７】
第一受信バッファ１２の記憶領域に空きがあることが確認できれば（ステップＳ１０２-YES）、第一受信バッファ１２へ書き込む処理を始め、データの受信が続く限り、第一受信バッファ１２への書き込み処理を繰り返す（ステップＳ１０５）。
また、第一受信バッファ１２及び第二受信バッファ１５に保持されるＰＤＬデータは、ＰＤＬ処理部１０においてプリント出力用のデータ処理に用いられ、処理の終了後には、ＰＤＬ処理部１０からの指示に従いこれらの受信バッファから消去される。
したがって、受信バッファ制御部９は、各受信バッファの保持するデータがなくなり、ＥＯＦ（End Of File）を受信するまで、受信データのスプール動作を続ける。
【００３８】
以下、ＰＤＬ処理部１０のＰＤＬデータ処理と関連する受信バッファ制御部９の動作を処理フロー（図２及び図３）に従いより詳しく説明する。
受信バッファ制御部９は、ステップＳ１０５で開始した受信データの書き込み処理を続けるが、これに並行してＰＤＬ処理部１０は、第一受信バッファ１２及び第二受信バッファ１５に保持されるＰＤＬデータを読み込み、ＰＤＬ仕様に従ってデータを解析、解釈して描画処理を行う。
ＰＤＬ処理部１０は、この描画処理が終わり不要になったＰＤＬデータについて、一次記憶媒体６に設けた第一受信バッファ１２又は二次記憶媒体７に設けた第二受信バッファ１５から消去するよう、受信バッファ制御部９に指示を行う。なお、ＰＤＬ処理部１０のＰＤＬデータの処理は、後記で図３に基づき説明する。
【００３９】
図２の処理フローでは、受信バッファ制御部９は、受信データの書き込み処理を、例えばページ単位で行い、一ページの書き込み処理の終了時といったタイミングで、ＰＤＬ処理部１０からのデータ消去指示があるか否かを確認する（ステップＳ１０６）。
ステップＳ１０６でデータ消去指示があれば（ステップＳ１０６-YES）、指示に従い第一受信バッファ１２又は第二受信バッファ１５から該当するデータを消去する（ステップＳ１０７）。
次いで、第一受信バッファ１２及び第二受信バッブァ１５に保持された全てのデータが消去された状態になったか否かを確認する（ステップＳ１０８）。
ステップＳ１０８で両方の受信バッファにあるデータが全て消去された状態であれば（ステップＳ１０８-YES）、次いで印刷ジョブのＰＤＬデータを全て受信し終えてＥＯＦを受信した状態になっているか否かを確認する（ステップＳ１０９）。
【００４０】
ステップＳ１０９でＥＯＦを受信した状態になっていなければ（ステップＳ１０９-NO）、未だ受信していないデータが存在する可能性があるので、ステップＳ１０１のデータ受信を確認するステップに戻す。なお、ステップＳ１０１のデータ受信を確認するステップに戻す手順は、ステップＳ１０６においてＰＤＬ処理部１０からのデータ消去指示がない場合（ステップＳ１０６-NO）、並びにステップＳ１０８において第一受信バッファ１２及び第二受信バッファ１５に保持された全てのデータが消去された状態になっていない場合（ステップＳ１０８-NO）でも同様である。
ステップＳ１０９でＥＯＦを受信した状態になっていれば（ステップＳ１０９-YES）、処理対象の印刷ジョブが全くない状態となるので、受信バッファ制御部９は、この処理フローによる処理を終了する。なお。この処理フローは、新たに印刷ジョブの受信があったときに再び起動される。
【００４１】
上記のように、図２の処理フローによると、ＰＤＬデータを受信し、一次記憶媒体６に設けた第一受信バッファ１２に書き込みを行っている間に、記憶容量が不足する状態を確認し、この状態が確認されると、二次記憶媒体７に設けた第一受信バッファ１５を追加してこの受信バッファにデータの一部を移動させる。こうした動作により、印刷データの消失を防いで受信中のデータを第一受信バッファ１２に保持することを可能にする。さらに、データを移動させる際に第一受信バッファ１２に保留する必要性に応じて移動対象データに優先度を付与して、優先度に応じて残すか移動させるかを定めるようにしたことで、受信データをスプールしながら行うデータ処理において、処理の停止に至る従来技術の動作状態になることが減り、かつ処理効率を低下させることなくデータ処理を継続することができる。
【００４２】
ところで、上記の実施形態では、一次記憶媒体６の第一受信バッファ１２に保持されているデータを二次記憶媒体７の第二受信バッファ１５に移動し、また、移動するデータの決め方によっては、その後の受信データを二次記憶媒体７の第二受信バッファ１５に書き込む場合もあり、これらの処理では、特にデータを加工することを考慮していない。ただ、移動するデータの中にはデータ量が大きくなるものもあり、二次記憶媒体７を圧迫する可能性がある。
そこで、こうしたデータの移動や書き込みの処理を行う際に、データ圧縮処理を処理対象のデータに施すとよい。データ圧縮処理を施すことで、書き込みに必要な容量を減らし、二次記憶媒体７の第二受信バッファ１５に保持できる受信データの容量が増えるため、受信バッファの記憶容量不足による印刷エラー、印刷（処理）停止の可能性をさらに減らすことができる。
【００４３】
“ＰＤＬデータの処理”
図２の処理フローにおいてデータ消去指示（ステップＳ１０６）を行うＰＤＬ処理部１０が行うＰＤＬデータの処理を説明する。
図３は、本画像形成装置（図１）における、ＰＤＬデータの処理手順を示すフロー図である。
図３の処理フローは、ＰＤＬデータの受信時に図２の処理フローと並行して起動される。この処理フローが起動されると、ＰＤＬ処理部１０は、受信バッファ制御部９が行う受信データのスプール動作に係る処理により、一次記憶媒体６の第一受信バッファ１２又は二次記憶媒体７の第二受信バッファ１５にＰＤＬデータが保持されているか否かを確認し（ステップＳ２０１）、ＰＤＬデータが保持されていることを確認すると（ステップＳ２０１-YES）、そのデータをＰＤＬ仕様に従って解釈、解析する（ステップＳ２０２）。
【００４４】
ステップＳ２０２の処理により、描画コマンドを検知すると（ステップＳ２０３）、ＰＤＬ処理部１０は、描画コマンドの種類に応じた描画データを第一受信バッファ１２又は第二受信バッファ１５から読み出し（ステップＳ２０４）、フレームメモリ１４に描画する（ステップＳ２０５）。
また、ステップＳ２０２の解析により、排紙コマンドを検知したか否かを確認し（ステップＳ２０６）、排紙コマンドを検知した場合（ステップＳ２０６-YES）、その時点でフレームメモリ１４に保持されている描面内容（ビットマップイメージ）をプリントエンジン装置４に送ると、プリントエンジン装置４では、用紙への印刷と排紙を行なう（ステップＳ２０７）。
ステップＳ２０６で排紙コマンドを検知しなかった場合（ステップＳ２０６-NO）、ステップＳ２０７をスルーして次の処理に移る。
【００４５】
ステップＳ２０５またはステップＳ２０７の処理が実行されたことにより、第一受信バッファ１２又は第二受信バッファ１５に保持されている処理対象のＰＤＬデータの多くは
もはや不要となるので、ここで、不要か否かを判断する（ステップＳ２０８）。
ステップＳ２０８で不要であると判断する場合（ステップＳ２０８-YES）、受信バッファ制御部９に対して記憶媒体に保持されている現在処理対象となっているＰＤＬデータを消去するよう指示を行なう（ステップＳ２０９）。なお、この消去指示を受ける受信バッファ制御部９は、この指示に従って、図２の処理フローのステップＳ１０６の判定をして、第一受信バッファ１２又は第二受信バッファ１５に保持されている該当するＰＤＬデータを消去する。
ステップＳ２０８で必要であると判断する場合（ステップＳ２０８-NO）、ステップＳ２０９をスルーして次の処理に移る。
【００４６】
また、ステップＳ２０２の解析処理により、印刷ジョブのＰＤＬデータを全て受信し終えてＥＯＦを受信した状態であることを検知すると、この検知結果に対応して処理を行うことが必要であり、ここで、データにＥＯＦがあるか否かを確認する（ステップＳ２１０）。
ステップＳ２１０でデータにＥＯＦがあれば（ステップＳ２１０-YES）、受信バッファ制御部９に対して記憶媒体に保持されている全てのＰＤＬデータを消去するよう指示を行ない（ステップＳ２１１）、本処理フローによる処理を終了する。なお、上記の消去指示を受ける受信バッファ制御部９は、この指示に従って、図２の処理フローのステップＳ１０６の判定をして、第一受信バッファ１２又は第二受信バッファ１５に保持されている全てのＰＤＬデータを消去する。なお、ＥＯＦの存否は、図２の処理フローのステップＳ１０９にも反映される。
ステップＳ２１０でデータにＥＯＦがなければ（ステップＳ２１０-NO）、本処理フローの初めのステップＳ２０１に戻る。
【００４７】
“受信バッファ間におけるデータの再移動”
受信データのスプール動作に係る処理手順を示す図２の処理フローにおいて受信バッファ間のデータ移動（ステップＳ１０４）を説明した。
ステップＳ１０４のデータ移動は、データ受信中において、第一受信バッファ１２の記憶容量に空きがなくなる状態になった場合（ステップＳ１０２-NO）、その時点に付与した優先度に基づいて行う。
【００４８】
しかし、その後、新たにデータを受信し、また受信データのデータ処理し続けた場合、第二受信バッファ１５に保持されるデータの優先度が第一受信バッファ１２に保持されるデータの優先度よりも高い状態になる場合がある。このような状態になると、処理の停止に至るデータの消失を防ぎ、かつ処理効率を低下し難くするマルチバッファ動作の目的に合わなくなる。
そこで、適当なタイミングで第二受信バッファ１５に保持されているデータの優先度を見直し、見直した第二受信バッファ１５の優先度の逆転が所定値（後記図６のステップＳ５０３記載の「ＰＲＩ」）以上になっているデータを、第二受信バッファ１５から第一受信バッファ１２へ再移動させることにより適正化を図る。
【００４９】
図６は、第二受信バッファ１５内のデータを、付与し直した優先度に応じて第一受信バッファ１２に再移動する処理手順を示すフロー図である。
図６の処理フローによると、先ず、両方の受信バッファに保持されているデータの優先度を付与し直し、優先度が高い順に並び替える（ステップＳ５０１）。なお、優先度を付与する方法は、先に図４を参照し説明した付与処理の手順による。
並び替えの処理は、優先度の高い方の分割データ単位から順に第一受信バッファ１２へ移動させるので、このための準備として、データの並び替えをする。なお、本処理フローでは、第二受信バッファ１５のデータが移動の対象になるので、上記の並び替えは必須であるが、ここでは後述するように、第一受信バッファ１２内のデータにおいて最も低い優先度を基準に移動可否を判定するので、この並び替えを第一受信バッファ１２についても行う。
【００５０】
次いで、前段のステップＳ５０１で並べた優先度の高い順に、第二受信バッファ１５から第一受信バッファ１２へ再移動させる処理を行う（ステップＳ５０３〜５０５）。
この処理の手順は、予め定めた基準（後記ステップＳ５０３にて説明）を超える高い優先度を有するデータを移動させるように、移動可否を判定しながら、優先度の高い順に分割データ単位ごとに処理を行っていく。
よって、全てのデータを対象に一つずつステップＳ５０３〜５０５の処理を繰り返すループ処理を行う。
【００５１】
ループ端のステップＳ５０２において、優先度の高い順に並べた未処理の分割データ単位の中の先頭のデータの移動処理を開始し、先ず、第二受信バッファに保持された処理対象データの優先度＞第一受信バッファに保持されたデータの優先度＋ＰＲＩ、の不等式を満たすか否かを判定する（ステップＳ５０３）。この判定は、本来とは逆に第二受信バッファ１５に保持された処理対象データの優先度が、第一受信バッファ１２に保持されたデータよりＰＲＩ（一定の許容限界値）高くなることを条件に移動を可とする。即ち、この不等式を満たせば、第二受信バッファに保持された処理対象のデータを移動させると判定する。なお、不等式における第一受信バッファに保持されたデータの優先度は、例えば、最も低い優先度を基準に採用する。ただ、ＰＲＩ（一定の許容限界値）との関係によるが、平均値を採用してもよい。
【００５２】
よって、ステップＳ５０３で不等式の上記条件を満たす場合（ステップＳ５０３-YES）、現在処理の対象になっている分割データ単位を第二受信バッファ１５から第一受信バッファ１２へ移動させる（ステップＳ５０４）。
この後、ループ端のステップＳ５０５において、本再移動処理の対象となる分割データ単位の存否を確認して、存在が確認できれば、ステップＳ５０２に戻し、また、存在が確認できなければ、処理を終了する。
他方、ステップＳ５０３で不等式を満たさない場合（ステップＳ５０３-NO）、再移動が不要なデータであり、処理対象として残っているデータもさらに低い優先度のデータであるから、直ちに再移動処理のループを抜けて、処理を終了する。
【符号の説明】
【００５３】
１・・画像形成装置、２・・操作パネル、３・・ホストＩ／Ｆ、４・・プリントエンジン装置、５・・ＲＯＭ、６・・一次記憶媒体、７・・二次記憶媒体、８・・コントローラ、９・・受信バッファ制御部、１０・・ＰＤＬ処理部、１１・・装置制御部、１２・・第一受信バッファ、１５・・第二受信バッファ、１６・・ホストＰＣ。
【先行技術文献】
【特許文献】
【００５４】
【特許文献１】特開２０００−６４７６号公報
【図１】
2013252625.tif 000003
【図２】
2013252625.tif 000004
【図３】
2013252625.tif 000005
【図４】
2013252625.tif 000006
【図５】
2013252625.tif 000007
【図６】
2013252625.tif 000008