(57)【特許請求の範囲】
【請求項１】
複数のページバッファー及びバンドバッファーを含む主記憶手段と、補助記憶手段と、文書データをページデータの単位で入力して前記ページバッファーに記憶させるデータ入力手段と、前記ページバッファーに記憶された前記ページデータを所定速度で出力するデータ出力手段とを備える画像形成装置において、
前記データ入力手段による前記ページデータの入力を停止させないようにするため、前記データ入力手段により複数の前記ページバッファーの一つに記憶された前記ページデータを前記補助記憶手段へ、前記データ出力手段による前記ページデータの出力に対して非同期で保存する非同期データ書き込み手段と、
前記データ出力手段により出力される前記ページデータの次に出力される前記ページデータが他の前記ページバッファーになければ、前記非同期データ書き込み手段により前記補助記憶手段に保存された前記ページデータを他の前記ページバッファーに先読みするデータ先読み手段と、
該データ先読み手段により先読みされた前記ページデータ又は前記データ入力手段により入力された前記ページデータの前記データ出力手段による出力が完了した場合、出力が完了した前記ページデータを前記ページバッファーの一つから削除するデータ削除手段とを備え、
前記データ入力手段は、前記ページバッファーに空きが無かった場合、前記ページデータよりも小さいバンドデータの単位ずつ前記バンドバッファーに記憶させ、
前記非同期データ書き込み手段は、前記バンドバッファーに記憶された前記バンドデータを、前記ページデータと同様にして、前記補助記憶手段へ保存し、
前記文書データは、リンクリストにより、前記文書データと、前記ページデータと、前記バンドデータとがそれぞれ参照されており、
前記リンクリストには、文書データのリストの層、ページデータのリストの層、バンドデータのリストの層の三階層のツリー構造のデータ構造が用いられ、
前記文書データは、前記リンクリストにより、物理的なアドレス空間が、論理アドレス空間にマッピングされ、
前記非同期データ書き込み手段は、
前記バンドデータの書き込みが終了したら前記バンドデータのリストの層の前記リンクリストを設定し、前記ページデータの書き込みが終了したら前記ページデータのリストの層の前記リンクリストを設定し、前記リンクリストが枯渇した場合は待ち処理の後で前記リンクリストを取得する再トライ処理を行い、
前記バンドデータの書き込み完了毎に、前記バンドデータを前記補助記憶手段に保存して前記バンドバッファーから消去し、
前記データ先読み手段は、
読み込む前記ページデータが前記非同期データ書き込み手段により前記補助記憶手段に書き込み中の場合、前記主記憶手段の前記ページバッファー上に残っている前記ページデータをそのまま利用して前記リンクリストを設定し、前記補助記憶手段側の書き込みを停止させるイベントを前記非同期データ書き込み手段へ送信し、
前記主記憶手段のメモリー容量の空きがある場合、複数の前記ページデータを読み込んでおき、他の前記ページバッファーに読み込まれた前記ページデータに対して、次に前記データ出力手段からページ取得要求があった場合、実時間で読み出し可能なように前記リンクリストを設定する
ことを特徴とする画像形成装置。
【請求項２】
複数のページバッファー及びバンドバッファーを含む主記憶手段と、補助記憶手段と、文書データをページデータの単位で入力して前記ページバッファーに記憶させるデータ入力手段と、前記ページバッファーに記憶された前記ページデータを所定速度で出力するデータ出力手段とを備える画像形成装置による画像形成方法において、
前記データ入力手段による前記ページデータの入力を停止させないようにするため、前記データ入力手段により複数の前記ページバッファーの一つに記憶された前記ページデータを前記補助記憶手段へ、前記データ出力手段による前記ページデータの出力に対して非同期で保存し、
前記ページバッファーに空きが無かった場合、前記ページデータよりも小さいバンドデータの単位ずつ前記バンドバッファーに記憶させ、
前記バンドバッファーに記憶された前記バンドデータを、前記ページデータと同様にして、前記補助記憶手段へ保存し、
前記データ出力手段により出力される前記ページデータの次に出力される前記ページデータが他の前記ページバッファーになければ、非同期データ書き込み手段により前記補助記憶手段に保存された前記ページデータを他の前記ページバッファーに先読みし、
先読みされた前記ページデータ又は前記データ入力手段により入力された前記ページデータの前記データ出力手段による出力が完了した場合、出力が完了した前記ページデータを前記ページバッファーの一つから削除し、
前記文書データは、リンクリストにより、前記文書データと、前記ページデータと、前記バンドデータとがそれぞれ参照されており、
前記リンクリストには、文書データのリストの層、ページデータのリストの層、バンドデータのリストの層の三階層のツリー構造のデータ構造が用いられ、
前記文書データは、前記リンクリストにより、物理的なアドレス空間が、論理アドレス空間にマッピングされ、
前記非同期の保存は、
前記バンドデータの書き込みが終了したら前記バンドデータのリストの層の前記リンクリストを設定し、前記ページデータの書き込みが終了したら前記ページデータのリストの層の前記リンクリストを設定し、前記リンクリストが枯渇した場合は待ち処理の後で前記リンクリストを取得する再トライ処理を行い、
前記バンドデータの書き込み完了毎に、前記バンドデータを前記補助記憶手段に保存して前記バンドバッファーから消去し、
前記他の前記ページバッファーへの先読みは、
読み込む前記ページデータが前記非同期データ書き込み手段により前記補助記憶手段に書き込み中の場合、前記主記憶手段の前記ページバッファー上に残っている前記ページデータをそのまま利用して前記リンクリストを設定し、前記補助記憶手段側の書き込みを停止させるイベントを前記非同期データ書き込み手段へ送信し、
前記主記憶手段のメモリー容量の空きがある場合、複数の前記ページデータを読み込んでおき、他の前記ページバッファーに読み込まれた前記ページデータに対して、次に前記データ出力手段からページ取得要求があった場合、実時間で読み出し可能なように前記リンクリストを設定する
ことを特徴とする画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、及び画像形成方法に係り、特に入力したデータを所定速度で出力する画像形成装置、及び画像形成方法に関する。
【背景技術】
【０００２】
従来から、連続的に入力されるデータについて、データの処理を行って記録や出力等を行う情報処理装置が存在する。
このような情報処理装置として、例えば、スキャナーから読み込まれた原稿の文書データやネットワーク経由で取得した文書データを、画像形成手段のエンジン速度等の所定速度で印刷可能な複合機（Multifunctional Peripheral, MFP）等の画像形成装置が存在する。
【０００３】
特許文献１を参照すると、汎用のパソコンの拡張バスに、ＦＩＦＯメモリーを有する入力バッファー回路を追加し、システムメモリーをＦＩＦＯとして機能させるマルチスレッドのソフトウェアを実行することで、入力バッファー回路からの入力データをシステムメモリーに書き込まれる処理をされながら、これとは非同期にシステムメモリーからハードディスクへ書き込み処理される録画装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１７９４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術は、入力データに対するシステムメモリーの容量が十分でない場合、バッファーの容量と削除されるデータの容量とのバランスが悪く、バッファーの容量が不足するという問題があった。
【０００６】
本発明は、このような状況に鑑みてなされたものであって、上述の問題点を解消することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の画像形成装置は、数のページバッファー及びバンドバッファーを含む主記憶手段と、補助記憶手段と、文書データをページデータの単位で入力して前記ページバッファーに記憶させるデータ入力手段と、前記ページバッファーに記憶された前記ページデータを所定速度で出力するデータ出力手段とを備える画像形成装置において、前記データ入力手段による前記ページデータの入力を停止させないようにするため、前記データ入力手段により複数の前記ページバッファーの一つに記憶された前記ページデータを前記補助記憶手段へ、前記データ出力手段による前記ページデータの出力に対して非同期で保存する非同期データ書き込み手段と、前記データ出力手段により出力される前記ページデータの次に出力される前記ページデータが他の前記ページバッファーになければ、前記非同期データ書き込み手段により前記補助記憶手段に保存された前記ページデータを他の前記ページバッファーに先読みするデータ先読み手段と、該データ先読み手段により先読みされた前記ページデータ又は前記データ入力手段により入力された前記ページデータの前記データ出力手段による出力が完了した場合、出力が完了した前記ページデータを前記ページバッファーの一つから削除するデータ削除手段とを備え、前記データ入力手段は、前記ページバッファーに空きが無かった場合、前記ページデータよりも小さいバンドデータの単位ずつ前記バンドバッファーに記憶させ、前記非同期データ書き込み手段は、前記バンドバッファーに記憶された前記バンドデータを、前記ページデータと同様にして、前記補助記憶手段へ保存し、前記文書データは、リンクリストにより、前記文書データと、前記ページデータと、前記バンドデータとがそれぞれ参照されており、前記リンクリストには、文書データのリストの層、ページデータのリストの層、バンドデータのリストの層の三階層のツリー構造のデータ構造が用いられ、前記文書データは、前記リンクリストにより、物理的なアドレス空間が、論理アドレス空間にマッピングされ、前記非同期データ書き込み手段は、前記バンドデータの書き込みが終了したら前記バンドデータのリストの層の前記リンクリストを設定し、前記ページデータの書き込みが終了したら前記ページデータのリストの層の前記リンクリストを設定し、前記リンクリストが枯渇した場合は待ち処理の後で前記リンクリストを取得する再トライ処理を行い、前記バンドデータの書き込み完了毎に、前記バンドデータを前記補助記憶手段に保存して前記バンドバッファーから消去し、前記データ先読み手段は、読み込む前記ページデータが前記非同期データ書き込み手段により前記補助記憶手段に書き込み中の場合、前記主記憶手段の前記ページバッファー上に残っている前記ページデータをそのまま利用して前記リンクリストを設定し、前記補助記憶手段側の書き込みを停止させるイベントを前記非同期データ書き込み手段へ送信し、前記主記憶手段のメモリー容量の空きがある場合、複数の前記ページデータを読み込んでおき、他の前記ページバッファーに読み込まれた前記ページデータに対して、次に前記データ出力手段からページ取得要求があった場合、実時間で読み出し可能なように前記リンクリストを設定することを特徴とする。
本発明の画像形成方法は、複数のページバッファー及びバンドバッファーを含む主記憶手段と、補助記憶手段と、文書データをページデータの単位で入力して前記ページバッファーに記憶させるデータ入力手段と、前記ページバッファーに記憶された前記ページデータを所定速度で出力するデータ出力手段とを備える画像形成装置による画像形成方法において、前記データ入力手段による前記ページデータの入力を停止させないようにするため、前記データ入力手段により複数の前記ページバッファーの一つに記憶された前記ページデータを前記補助記憶手段へ、前記データ出力手段による前記ページデータの出力に対して非同期で保存し、前記ページバッファーに空きが無かった場合、前記ページデータよりも小さいバンドデータの単位ずつ前記バンドバッファーに記憶させ、前記バンドバッファーに記憶された前記バンドデータを、前記ページデータと同様にして、前記補助記憶手段へ保存し、前記データ出力手段により出力される前記ページデータの次に出力される前記ページデータが他の前記ページバッファーになければ、非同期データ書き込み手段により前記補助記憶手段に保存された前記ページデータを他の前記ページバッファーに先読みし、先読みされた前記ページデータ又は前記データ入力手段により入力された前記ページデータの前記データ出力手段による出力が完了した場合、出力が完了した前記ページデータを前記ページバッファーの一つから削除し、前記文書データは、リンクリストにより、前記文書データと、前記ページデータと、前記バンドデータとがそれぞれ参照されており、前記リンクリストには、文書データのリストの層、ページデータのリストの層、バンドデータのリストの層の三階層のツリー構造のデータ構造が用いられ、前記文書データは、前記リンクリストにより、物理的なアドレス空間が、論理アドレス空間にマッピングされ、前記非同期の保存は、前記バンドデータの書き込みが終了したら前記バンドデータのリストの層の前記リンクリストを設定し、前記ページデータの書き込みが終了したら前記ページデータのリストの層の前記リンクリストを設定し、前記リンクリストが枯渇した場合は待ち処理の後で前記リンクリストを取得する再トライ処理を行い、前記バンドデータの書き込み完了毎に、前記バンドデータを前記補助記憶手段に保存して前記バンドバッファーから消去し、前記他の前記ページバッファーへの先読みは、読み込む前記ページデータが前記非同期データ書き込み手段により前記補助記憶手段に書き込み中の場合、前記主記憶手段の前記ページバッファー上に残っている前記ページデータをそのまま利用して前記リンクリストを設定し、前記補助記憶手段側の書き込みを停止させるイベントを前記非同期データ書き込み手段へ送信し、前記主記憶手段のメモリー容量の空きがある場合、複数の前記ページデータを読み込んでおき、他の前記ページバッファーに読み込まれた前記ページデータに対して、次に前記データ出力手段からページ取得要求があった場合、実時間で読み出し可能なように前記リンクリストを設定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、バッファーに保存されたデータを一旦、補助記憶手段に記憶させた上で先読みさせ、出力されたタイミングでバッファーから削除することで、システムメモリーの容量が不足しても、入力手段から継続してデータの読み込みが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の画像形成装置の実施の形態に係るシステム構成図である。
【図２】図１に示す画像形成装置の文書データの構成を示すブロック図である。
【図３】本発明の実施の形態に係る非同期データ保存処理のフローチャートである。
【図４】本発明の実施の形態に係るデータ先読み処理のフローチャートである。
【図５】本発明の実施の形態に係るデータ出力処理のフローチャートである。
【図６】図４、図５、図６に示す処理の概念図である。
【図７】図４、図５、図６に示す処理の概念図である。
【図８】図４、図５、図６に示す処理の概念図である。
【図９】図４、図５、図６に示す処理の概念図である。
【図１０】本発明の画像形成装置の実施の形態に係る全体の構成を示すブロック図である。
【図１１】本発明の画像形成装置の実施の形態に係る概略図である。
【発明を実施するための形態】
【００１０】
＜実施の形態＞
〔画像形成装置１の全体の構成〕
まず、図１０を参照して、画像形成装置１のシステム構成について説明する。
【００１１】
画像形成装置１は、画像処理部１１、原稿読取部１２、原稿給送部１３、搬送部（給紙ローラー４２ｂ、搬送ローラー４４、排出ローラー４５）、ネットワーク送受信部１５、操作パネル部１６、画像形成部１７（画像形成手段）、主記憶部１８（主記憶手段）及び補助記憶部１９（補助記憶手段）等が、バス等により制御部１０に接続されている。各部は、制御部１０によって動作制御される。
【００１２】
制御部１０は、ＧＰＰ（General Purpose Processor）、ＣＰＵ（Central Processing Unit、中央処理装置）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＧＰＵ（Graphics Processing Unit）、ＡＳＩＣ（Application Specific Processor、特定用途向けプロセッサー）等の情報処理手段である。
制御部１０は、補助記憶部１９のＲＯＭやＨＤＤに記憶されている制御プログラムを読み出して、この制御プログラムを主記憶部１８のＲＡＭに展開させて実行することで、後述する機能ブロックの各手段として動作させられる。また、制御部１０は、図示しない外部の端末や操作パネル部１６から入力された所定の指示情報に応じて、装置全体の制御を行う。
【００１３】
画像処理部１１は、ＤＳＰ（Digital Signal Processor）やＧＰＵ（Graphics Processing Unit）等の制御演算手段である。画像処理部１１は、画像データに対して所定の画像処理を行う手段であり、例えば、拡大縮小、濃度調整、階調調整、画像改善等の各種画像処理を行う。
画像処理部１１は、原稿読取部１２で読み取られた画像を、補助記憶部１９に印刷データとして記憶する。この際、画像処理部１１は、印刷データをＰＤＦやＴＩＦＦ等のフォーマットのファイル単位に変換することも可能である。
【００１４】
原稿読取部１２は、セットされた原稿を読み取る（スキャン）手段である。
原稿給送部１３は、原稿読取部１２で読み取られる原稿を搬送する手段である。
画像形成部１７は、ユーザーの出力指示により、補助記憶部１９に記憶され、原稿読取部１２で読み取られ、又は外部の端末から取得されたデータから記録紙への画像形成を行わせる手段である。
搬送部は、給紙カセット４２ａ（図１１）から記録紙を搬送し、画像形成部１７で画像形成させ、その後にスタックトレイ５０へ搬送する。
なお、原稿読取部１２、原稿給送部１３、搬送部、画像形成部１７の動作については後述する。
【００１５】
ネットワーク送受信部１５は、ＬＡＮ、無線ＬＡＮ、ＷＡＮ、携帯電話網等の外部ネットワークに接続するためのＬＡＮボードや無線送受信機等を含むネットワーク接続手段である。
ネットワーク送受信部１５は、データ通信用の回線ではデータを送受信し、音声電話回線では音声信号を送受信する。
【００１６】
操作パネル部１６は、ＬＣＤ等の表示部と、テンキー、スタート、キャンセル、複写やＦＡＸ送信やスキャナー等の動作モードの切り換えのボタン、選択された文書の印刷や送信や保存や記録等に関するジョブの実行に係る指示を行うためのボタンやタッチパネル等の入力部とを備えている。
操作パネル部１６は、ユーザーによる画像形成装置１の各種ジョブの指示を取得する。また、操作パネル部１６から取得したユーザーの指示により、各ユーザーの情報を入力、変更することも可能である。
【００１７】
主記憶部１８は、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ、ＭＲＡＭのような半導体メモリー等の記憶手段である。主記憶部１８は、補助記憶部１９から読み出され展開されたプログラムやデータを記憶する。
【００１８】
補助記憶部１９は、ＲＯＭ（Read Only Memory）やＳＳＤ（Solid State Drive）やオンボードの半導体メモリーやＨＤＤ（Hard Disk Drive）等の記憶手段である。補助記憶部１９は、各種プログラムやデータを記憶している。
また、補助記憶部１９には画像形成装置１の動作制御を行うための制御プログラムが記憶されている。また、補助記憶部１９には、ユーザー毎の保存フォルダーの領域が含まれていてもよい。
また、補助記憶部１９は、データ出力部１３０（図１）がデータを出力する速度等である所定速度よりも読み出し及び書き込み速度が高速である。
また、補助記憶部１９は、制御部１０を介さずにＤＭＡ（Direct Memory Access）転送による書き込み／読み出しが可能である。また、補助記憶部１９の書き込み／読み出し用の専用コントローラーを備えていてもよい。
【００１９】
なお、画像形成装置１において、制御部１０及び画像処理部１１は、ＧＰＵ内蔵ＣＰＵ等やチップ・オン・モジュールパッケージのように、一体的に形成されていてもよい。
また、制御部１０及び画像処理部１１は、ＲＡＭやＲＯＭやフラッシュメモリー等を内蔵していてもよい。
また、画像形成装置１は、ファクシミリの送受信を行うＦＡＸ送受信部を備えていてもよい。
【００２０】
〔画像形成装置１の動作〕
次に、図１１を参照して、本発明の実施の形態に係る画像形成装置１の動作について説明する。
原稿読取部１２は、本体部１４の上部に配設され、原稿給送部１３は、原稿読取部１２の上部に配設されている。スタックトレイ５０は、本体部１４に形成された記録紙の排出口４１側に配設され、また、操作パネル部１６は、画像形成装置１のフロント側に配設されている。
【００２１】
原稿読取部１２は、スキャナー１２ａと、プラテンガラス１２ｂと、原稿読取スリット１２ｃとを備えている。スキャナー１２ａは、露光ランプ、及びＣＣＤ(Charge Coupled Device)やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像センサー等から構成され、原稿給送部１３による原稿の搬送方向に移動可能に構成されている。
プラテンガラス１２ｂは、ガラス等の透明部材により構成された原稿台である。原稿読取スリット１２ｃは、原稿給送部１３による原稿の搬送方向と直交方向に形成されたスリットを有する。
【００２２】
プラテンガラス１２ｂに載置された原稿を読み取る場合には、スキャナー１２ａは、プラテンガラス１２ｂに対向する位置に移動され、プラテンガラス１２ｂに載置された原稿を走査しながら原稿を読み取って画像データを取得して、取得した画像データを本体部１４に出力する。
また、原稿給送部１３により搬送された原稿を読み取る場合には、スキャナー１２ａは原稿読取スリット１２ｃと対向する位置に移動され、原稿読取スリット１２ｃを介し、原稿給送部１３による原稿の搬送動作と同期して原稿を読み取って画像データを取得し、取得した画像データを本体部１４に出力する。
【００２３】
原稿給送部１３は、原稿載置部１３ａと、原稿排出部１３ｂと、原稿搬送機構１３ｃとを備えている。原稿載置部１３ａに載置された原稿は、原稿搬送機構１３ｃによって、１枚ずつ順に繰り出されて原稿読取スリット１２ｃに対向する位置へ搬送され、その後、原稿排出部１３ｂに排出される。
なお、原稿給送部１３は、可倒式に構成され、原稿給送部１３を上方に持ち上げることで、プラテンガラス１２ｂの上面を開放させることができる。
【００２４】
本体部１４は、画像形成部１７を備えると共に、給紙部４２と、用紙搬送路４３と、搬送ローラー４４と、排出ローラー４５とを備えている。給紙部４２は、それぞれサイズ又は向きが異なる記録紙を収納する複数の給紙カセット４２ａと、給紙カセット４２ａから記録紙を１枚ずつ用紙搬送路４３に繰り出す給紙ローラー４２ｂとを備えている。給紙ローラー４２ｂ、搬送ローラー４４、及び排出ローラー４５は、搬送部として機能する。記録紙は、この搬送部により搬送される。
給紙ローラー４２ｂによって用紙搬送路４３に繰り出された記録紙は、搬送ローラー４４によって画像形成部１７に搬送される。そして、画像形成部１７によって記録が施された記録紙は、排出ローラー４５によってスタックトレイ５０に排出される。
【００２５】
画像形成部１７は、感光体ドラム１７ａと、露光部１７ｂと、現像部１７ｃと、転写部１７ｄと、定着部１７ｅとを備えている。露光部１７ｂは、レーザー装置やミラーやレンズやＬＥＤアレイ等を備えた光学ユニットであり、画像データに基づいて光等を出力して感光体ドラム１７ａを露光し、感光体ドラム１７ａの表面に静電潜像を形成する。現像部１７ｃは、トナーを用いて感光体ドラム１７ａに形成された静電潜像を現像する現像ユニットであり、静電潜像に基づいたトナー像を感光体ドラム１７ａ上に形成させる。転写部１７ｄは、現像部１７ｃによって感光体ドラム１７ａ上に形成されたトナー像を記録紙に転写させる。定着部１７ｅは、転写部１７ｄによってトナー像が転写された記録紙を加熱してトナー像を記録紙に定着させる。
【００２６】
〔画像形成装置１のシステム構成〕
図１を参照し、画像形成装置１のシステム構成について説明する。
画像形成装置１は、データ入力部１００（データ入力手段）、非同期データライト部１１０（非同期データ書き込み手段）、データ先読み部１２０（データ先読み手段）、データ出力部１３０（データ出力手段）、及びデータ削除部１４０（データ削除手段）を備えている。
主記憶部１８（主記憶手段）には、複数のページバッファー２００、及びバンドバッファー２１０の領域が確保されている。また、主記憶部１８には、リンクリスト３２０が記憶されている。ページバッファー２００には、ページデータ３００が保存される。バンドバッファー２１０には複数のバンドデータ３１０が保存される。リンクリスト３２０は、ページデータ３００及びバンドデータ３１０を参照させる。
補助記憶部１９（補助記憶手段）には、ページデータ３００が保存される。
【００２７】
データ入力部１００は、原稿読取部１２、ネットワーク送受信部１５に接続された外部の端末やサーバー（図示せず）、外部記録媒体（図示せず）等から、文書データ５００を入力する。
【００２８】
非同期データライト部１１０は、データ入力部１００により入力された文書データ５００を、所定出力単位としてページデータ３００単位で複数のページバッファー２００の一つに記憶させる。また、非同期データライト部１１０は、ページバッファー２００の一つに記憶されたページデータ３００を、データ出力部１３０の出力とは非同期に補助記憶部へ保存する。
また、非同期データライト部１１０は、ページバッファー２００の全てにページデータ３００が書き込まれており、データ入力部１００により入力された文書データ５００中のページデータ３００をページバッファー２００のいずれにも保存できない場合、ページデータ３００の一部であり、ページデータ３００よりも容量の小さい所定単位であるバンドデータ３１０単位ずつバンドバッファー２１０及び補助記憶部１９に保存する。なお、ページデータ３００は、所定数のバンドデータ３１０を含んで構成されている。
【００２９】
データ先読み部１２０は、データ出力部１３０からページデータ３００の取得要求があった場合、ページバッファー２００の一つに保存された当該ページデータ３００の次に出力されるページデータ３００が他のページバッファー２００になければ、非同期データライト部１１０により補助記憶部に保存されたページデータ３００を他のページバッファー２００に読み出す。つまり、データ先読み部１２０は、ページデータ３００の取得要求で取得されるページデータ３００の次のページデータ３００を先読みする。
【００３０】
データ出力部１３０は、データ先読み部１２０により先読みされてページバッファー２００の一つに保存されたページデータ３００、又はデータ入力部１００により入力されてページバッファー２００の一つに保存されたページデータ３００を、ページバッファー２００からページデータ３００単位ずつ読み出して所定速度で出力する。データ出力部１３０は、この読み出しの際に他の各部に、ページデータ３００の取得要求（以下、ページ取得要求という。）のイベントの送信を行う。
【００３１】
データ削除部１４０は、出力が完了した所定出力単位のデータをページバッファー２００の一つから削除する。データ削除部１４０は、この際に、ページ消去のイベントの送信を行う。
【００３２】
データ入力部１００、非同期データライト部１１０、データ先読み部１２０、データ出力部１３０、及びデータ削除部１４０の間では、ページ取得要求及びページ消去のイベントに加え、ページバッファー２００のページデータ３００の書き込み要求、ページバッファー２００へのページデータ３００の書き込み／読み出しの開始／完了、補助記憶部１９へのページバッファー２００又はバンドバッファー２１０の書き込み／読み出しの開始／完了、バンドバッファー２１０のバンドデータ３１０の書き込み／読み出しの開始／完了等の各種イベントを送受信可能である。各部は、例えば、待ち状態の際にイベントを受信して、当該イベントによりタイミングを調整して後述する各処理を行う。
【００３３】
また、画像形成装置１の制御部１０は、補助記憶部１９に記憶された制御プログラムを実行することで、データ入力部１００、非同期データライト部１１０、データ先読み部１２０、データ出力部１３０、及びデータ削除部１４０として機能する。
また、上述の画像形成装置１の各部は、本発明の画像形成方法を実行するハードウェア資源となる。
【００３４】
次に、図２を参照して、データ入力部１００（図１）により入力される文書データ５００の構成について説明する。
文書データ５００は、一以上〜複数のページデータ３００により構成されている。ページデータ３００は、所定出力単位のデータである。また、ページデータ３００は、所定単位の複数ラインをまとめられたバンドデータ３１０を所定数含んでいる。バンドデータ３１０は、所定出力単位のページデータ３００よりも小さい所定単位のデータである。
【００３５】
また、文書データ５００は、リンクリスト３２０により、文書データ５００、ページデータ３００、バンドデータ３１０がそれぞれ参照されている。
リンクリスト３２０は、バンドデータ３１０の検索が高速化するため、例えば、文書データ５００のリストの層（文書データ層）、ページデータ３００のリストの層（ページデータ層）、バンドデータ３１０のリストの層（バンド層）のような三階層のツリー構造のデータ構造を用いることが好適である。この場合、例えば、文書データ層とページデータ層はブランチノードのリンクリスト３２０になり、バンド層は要素のリンクリスト３２０となる。
つまり、文書データ５００は、これらのリンクリスト３２０により、物理的なアドレス空間が、論理アドレス空間にマッピングされる。これにより、文書データ５００は、データ出力部１３０からは、シーケンシャルに出力されているかのように途切れなく出力することができる。
また、リンクリスト３２０は、ページデータ３００及びバンドデータ３１０が主記憶部１８及び補助記憶部１９にあるか否かに関係なく参照させることができる。
【００３６】
〔画像形成装置１による非同期データ保存処理、データ先読み処理、データ出力処理〕
次に、図３〜図９を参照して、本発明の実施の形態に係る画像形成装置１による非同期データ保存処理、データ先読み処理、データ出力処理の説明を行う。
これらの処理では、所定速度で画像形成部１７にて出力するため、入力される文書データ５００を読み出し、ページバッファー２００とバンドバッファー２１０と補助記憶部１９とへの書き込みを行う。また、これらの処理では、文書データ５００の入力から出力までを、一つのジョブとして管理して行う。
また、これらの処理は、主に制御部１０が、補助記憶部１９に記憶されたプログラムを主記憶部１８に展開して、各部と協働し、ハードウェア資源を用いて実行する。また、これらの処理は、主に制御部１０が、複数のスレッドやプロセス（以下、「スレッド等」という。）を起動して、同期データ保存処理は非同期データライト部１１０により、データ先読み処理はデータ先読み部１２０により、データ出力処理はデータ出力部１３０及びデータ削除部１４０により、同時並行的にファイル単位での書き込み／読み出しを行うことで実現させる。つまり、制御部１０は、別スレッド等により、ファイル単位でのデータの書き込みと読み出しを並列的に動作させる。
以下で、図３〜５のフローチャートを参照して、非同期データ保存処理、データ先読み処理、データ出力処理の各処理の詳細をステップ毎に説明する。
【００３７】
図３を参照して、非同期データライト部１１０による非同期データ保存処理について説明する。
【００３８】
（ステップＳ１００）
まず、制御部１０が、初期化処理を行う。
制御部１０は、ジョブの開始時に、主記憶部１８にページバッファー２００とバンドバッファー２１０の領域を確保してクリアし、「空き」の状態にする。
また、制御部１０は、補助記憶部１９への書き込み／読み出しを並行に行うために補助記憶部１９へそれぞれ書き込み及び読み出しを行わせるスレッド等を作成し起動させる。制御部１０は、文書データ５００のジョブ一つにつき書き込み／読み出しそれぞれ専用のスレッド等を作成し起動させる。下記で説明する非同期データライト部１１０による非同期の保存、データ先読み部１２０による同期／非同期の書き込み／読み出しのどちらの要求もスレッド等を解して行う。制御部１０は、各スレッド等により、指定されたジョブの文書データ５００に対してイベントを受信した場合、ページバッファー２００のページデータ３００等の参照を行う。
【００３９】
なお、この非同期の読み出し／書き込みのため、スレッド等へイベントを送信するためのキュー（queue）を主記憶部１８に記憶させてもよい。
この際、例えば、posix使用のメッセージキュー（MsgQueue()）はSend済みのイベントの取り消しができないため使用しない方がよい。また、書き込み／読み出しの各スレッド等は、ページデータ３００又はバンドデータ３１０を参照させるため、主記憶部１８上に記憶されたリンクリスト３２０を含めて送信してもよい。また、キューのサイズは、例えば、文書データ５００の容量に合わせて用意してもよい。
また、以下で説明するデータ先読み部１２０によるデータ先読み処理、データ出力部１３０によるデータ出力処理においても、スレッド等の作成により同様に書き込み／読み出しの処理を行う。
なお、図６〜図９においては、各ページデータ３００ａ〜３００ｄに対応するバンドデータ３１０を、それぞれ、３１１ａ〜３１１ｃ、３１２ａ〜３１２ｃ、３１３ａ〜３１３ｃ、３１４ａ〜３１４ｂとして示す。
【００４０】
（ステップＳ１０１）
次に、制御部１０が、入力データ取得処理を行う。
制御部１０は、データ入力部１００から、文書データ５００のページデータ３００を一つ取得する。
制御部１０は、他の端末やサーバー（図示せず）から送信される連続してシーケンシャルに送信される文書データ５００をネットワーク送受信部１５から取得する。
また、制御部１０は、原稿読取部１２に載置された原稿を文書データ５００として読み取って取得してもよい。
また、制御部１０は、外部に接続された記録媒体（図示せず）から文書データ５００を取得してもよい。
【００４１】
（ステップＳ１０２）
次に、制御部１０が、主記憶部１８に確保された複数のページバッファー２００に空きがあるか否かを判定する。制御部１０は、ページデータ３００を保存可能な「空き」のページバッファー２００があった場合に、Ｙｅｓと判定する。制御部１０は、それ以外の場合には、Ｎｏと判定する。
Ｙｅｓの場合、制御部１０は、処理をステップＳ１０３に進める。
Ｎｏの場合、制御部１０は、処理をステップＳ１０４に進める。
【００４２】
（ステップＳ１０３）
ページバッファー２００に空きがあった場合、制御部１０が、ページバッファー出力処理を行う。
制御部１０は、データ入力部１００から入力されたページデータ３００を、複数のページバッファー２００のうち「空き」のページバッファー２００の一つに保存する。制御部１０は、当該ページバッファー２００への保存が完了した後に、ページバッファー２００への書き込み完了のイベントを送信する。
図６及び図７を参照して説明すると、図６の例では、データ出力部１３０からのデータ出力前に、ページバッファー２００ａにページデータ３００ａを保存している。また、図７の例では、データ出力部１３０からのページデータ３００ａの出力中にページデータ３００ｂを保存している。
その後、制御部１０は、処理をステップＳ１０５に進める。
【００４３】
また、制御部１０は、入力されたページデータ３００について、補助記憶部１９へのページデータ３００の保存を行い、主記憶部１８のページバッファーを消さないモードに設定してもよい。
制御部１０は、ジョブによる文書データ５００のオープンとクローズの管理を行うために、スレッド等による管理を行ってもよい。この際、書き込みだけでなく読み出しも専用スレッド等で行ってもよい。
【００４４】
（ステップＳ１０４）
ページバッファー２００に空きがなかった場合、制御部１０が、バンドデータ出力処理を行う。
制御部１０は、データ入力部１００により入力されたデータをページバッファー２００に保存できない場合、当該ページデータ３００よりも小さいバンドデータ３１０の単位ずつ補助記憶部１９に保存する。
図８を参照すると、制御部１０は、「空き」のページバッファー２００がない場合、例えば、二つ以上のバンドデータ３１０を保存可能なバンドバッファー２１０に、ページデータ３００のバンドデータ３１０を保存する。この際、制御部１０は、補助記憶部１９に保存し、保存後にバンドバッファー２１０内のバンドデータ３１０を削除するモードに設定する。図８の例では、制御部１０は、ページデータ３００ｃのバンドデータ３１０ａをバンドバッファー２１０へ保存している。
制御部１０は、バンドバッファー２１０にバンドデータ３１０の保存が完了する度に、バンドデータ３１０の書き込み完了のイベントを送信する。
【００４５】
（ステップＳ１０５）
ここで、制御部１０が、非同期保存処理を行う。
制御部１０は、ページバッファー２００の一つに記憶されたページデータ３００を、補助記憶部１９へ非同期で保存する。
図６及び図７を再び参照すると、制御部１０は、補助記憶部１９にデータ入力部１００により入力されたページデータ３００を、補助記憶部１９に保存していき、データ入力部１００によるデータの入力を停止させないようにする。図６ではページバッファー２００ａに保存されたページデータ３００ａを補助記憶部１９へ保存し、図７ではページバッファー２００ｂに保存されたページデータ３００ｂを補助記憶部１９へ保存している。
制御部１０は、補助記憶部１９への保存は、読み出しのスレッド等とは別の書き込み用のスレッド等で非同期に行う。この際、制御部１０は、書き込み用のスレッド等により、ページバッファー２００又はバンドバッファー２１０から、例えば、４ＫＢ等の単位で分割してファイルへ書き込み、fflush()等によりフラッシュし、書き込みを完了させる。
制御部１０は、補助記憶部１９への保存後に、ページデータ３００の書き込み完了のイベントを送信する。
【００４６】
この処理において、制御部１０は、書き込み用のスレッド等の場合書き込みするファイル名を読み出し用のスレッド等に送信し、補助記憶部１９へファイルハンドルを作成してから書き込みさせる。読み出し用のスレッド等は、待機状態になっている場合、書き込み用のスレッド等の補助記憶部１９への書き込みが終了した旨を通知する。また、読み出しのスレッド等は、受信したファイル名により別のファイルハンドルを作成して、補助記憶部１９から読み出しする。
制御部１０は、ページデータ３００を、オープン、書き込み、フラッシュ、書き込み、フラッシュ、……、クローズの順番に、バンドデータ３１０の単位で書き込みしてフラッシュする。このために１つのページデータ３００に対して、ファイルハンドルは一つあればよい。また、このように、制御部１０がページデータ３００をバンドデータ３１０単位で書き込み／読み出しするため、バンドデータ３１０を書き込みしている際に、別のバンドデータ３１０の読み出しが可能になり、書き込み／読み出しが並行的に動作させることが可能となる。
【００４７】
制御部１０は、ページバッファー２００又はバンドバッファー２１０の書き込みが終了した場合、各部へ書き込み終了のイベント通知を行う。
また、制御部１０は、バンドデータ３１０の書き込みが終了したらバンド層のリンクリスト３２０を設定し、ページデータ３００の書き込みが終了したらページデータ層のブランチのリンクリスト３２０を設定する。リンクリスト３２０が枯渇した場合は、待ち処理に入り、後述するページバッファー２００の消去後に、リンクリスト３２０解放のイベントを受けて再度、リンクリスト３２０を取得する再トライ処理を行ってもよい。
また、制御部１０は、バンドデータ３１０出力処理にてバンドデータ３１０の書き込み完了のイベントを受信する毎に、バンドデータ３１０を補助記憶部１９に保存してバンドバッファー２１０から消去してもよい。この際、制御部１０は、補助記憶部１９に保存されたバンドデータ３１０がページデータ３００単位のサイズに到達したか確認し、ページデータ３００単位のサイズに到達した場合は、補助記憶部１９へのページデータ３００の保存完了のイベントを送信する。
以上により、本発明の実施の形態に係る非同期データ保存処理を終了する。
【００４８】
次に、図４を参照して、データ先読み部１２０によるデータ先読み処理について説明する。
【００４９】
（ステップＳ２０１）
まず、制御部１０が、出力待機処理を行う。
制御部１０は、ページ出力部がページを出力している間、待機する。
この処理では、制御部１０は、下記に示すように、ページ取得要求のイベントがあるまで待機する。
【００５０】
（ステップＳ２０２）
次に、制御部１０が、ページ取得要求があったか否かを判定する。制御部１０は、データ出力部１３０からのページ取得要求のイベントを受信した場合に、Ｙｅｓと判定する。制御部１０は、それ以外の場合には、Ｎｏと判定する。
Ｙｅｓの場合、制御部１０は、処理をステップＳ２０３に進める。
Ｎｏの場合、制御部１０は、処理をステップＳ２０１に戻して待機を続ける。
【００５１】
（ステップＳ２０３）
ページ取得要求があった場合、制御部１０が、次ページデータ確認処理を行う。
制御部１０は、データ出力部１３０によるページ取得要求にて取得されるページデータ３００が保存されたページバッファー２００が存在することを確認する。
制御部１０は、当該ページデータ３００の次に出力されるページデータ３００があるか否かについて、他のページバッファー２００を検索して確認する。
【００５２】
（ステップＳ２０４）
次に、制御部１０が、次に出力されるページデータ３００が他のページバッファー２００にあるか否かを判定する。
制御部１０は、次ページデータ３００確認処理にて、他のページバッファー２００に、データ出力部１３０が次に出力するページデータ３００が検索された場合に、Ｙｅｓと判定する。制御部１０は、それ以外の場合、つまり、データ出力部１３０によるページ取得要求にて取得されるページデータ３００の次に出力されるページデータ３００が他のページバッファー２００に存在しない場合にはＮｏと判定する。
Ｙｅｓの場合、制御部１０は、データ先読み処理を終了する。
Ｎｏの場合、制御部１０は、処理をステップＳ２０５に進める。
【００５３】
（ステップＳ２０５）
データ出力部１３０からのページ取得要求により出力されるページデータ３００の次のページデータ３００が他のページバッファー２００になければ、制御部１０は、先読み処理を行う。
制御部１０は、データ出力部１３０からのページデータ３００の出力に先行して、次のページデータ３００を補助記憶部１９から主記憶部１８の「空き」のページバッファー２００へ読み込む。
図９の例を参照すると、制御部１０は、データ出力部１３０が出力するページデータ３００ｂの次のページデータ３００ｃを、ページバッファー２００ａに保存している。
【００５４】
また、読み込むページデータ３００が非同期データライト部１１０により補助記憶部１９に書き込み中の場合、又は書き込み用のスレッド等のリンクリスト３２０にある場合、主記憶部１８のページバッファー２００上に当該ページデータ３００が残っている。このため、制御部１０は、このページデータ３００をそのまま利用してリンクリスト３２０を設定し、補助記憶部１９側の書き込みを停止させるイベントを非同期データライト部１１０へ送信してもよい。
また、制御部１０は、主記憶部１８のメモリー容量の空きがあれば、複数のページデータ３００を読み込んでおいてもよい。また、制御部１０は、他のページバッファー２００に読み込まれたページデータ３００に対して、次にデータ出力部１３０からページ取得要求があった場合、リアルタイム（実時間）で読み出し可能なように、リンクリスト３２０等を設定してもよい。また、制御部１０は、次のページデータ３００のバンドデータ３１０を、例えば二つ分、バンドバッファー２１０に先読みしてもよい。
以上により、本発明の実施の形態に係るデータ先読み処理を終了する。
【００５５】
次に、図５を参照し、データ出力部１３０及びデータ削除部１４０によるデータ出力処理について説明する。
【００５６】
（ステップＳ３０１）
まず、制御部１０が、データ出力部１３０により、バッファー読み出し処理を行う。
制御部１０は、ページ取得要求のイベントを送信する。制御部１０は、読み出しを行うページデータ３００が参照されたリンクリスト３２０から、読み出しを行うページバッファー２００を指定する。制御部１０は、この読み出しの指定を行うページバッファー２００として、データ入力部１００により入力されたページデータ３００が保存されたページバッファー２００、又はデータ先読み部１２０により先読みされたページデータ３００が保存されたページバッファー２００のいずれかを指定可能である。
制御部１０は、指定したページバッファー２００からページデータ３００を読み出して出力可能な状態になった場合、読み出し開始のイベントを送信する。
【００５７】
また、制御部１０は、読み出しの際、指定したページバッファー２００内に読み出し分のサイズのデータが書きこまれているか確認してもよい。制御部１０は、読み出し分のサイズが書きこまれていない場合、出力を停止して、非同期データライト部１１０によるページバッファー２００へのページデータ３００の書き込み完了のイベントの受信を待ち、読み出しを再実行してもよい。
【００５８】
（ステップＳ３０２）
次に、制御部１０が、データ出力部１３０により、出力処理を行う。
制御部１０は、指定されたページバッファー２００から、ページデータ３００を読み出して所定速度で出力し、画像形成部１７等に送信する。
この際、補助記憶部１９からの読み出しパフォーマンスが、ページデータ３００の出力の速度より早ければ、所定速度で出力可能である。
図７〜図９を再び参照すると、制御部１０は、指定されたページバッファー２００からページデータ３００を出力する。図７及び図８の例では、制御部１０は、ページバッファー２００ａからページデータ３００ａを出力している。図９の例では、制御部１０は、ページバッファー２００ｂからページデータ３００ｂを出力している。
【００５９】
（ステップＳ３０３）
次に、制御部１０が、データ出力部１３０により、ページデータ３００の出力を完了したか否かを判定する。制御部１０は、図７及び図８の例では、制御部１０は、指定されたページバッファー２００ａからページデータ３００ａの出力を完了した場合に、Ｙｅｓと判定する。図９の例では、制御部１０は、指定されたページバッファー２００ｂからページデータ３００ｂの出力を完了した場合に、Ｙｅｓと判定する。制御部１０は、それ以外の場合には、Ｎｏと判定する。
Ｙｅｓの場合、制御部１０は、処理をステップＳ３０４に進める。
Ｎｏの場合、制御部１０は、処理をステップＳ３０２に戻して、ページデータ３００の出力を続ける。
【００６０】
（ステップＳ３０４）
ページバッファー２００からページデータ３００の出力が完了した場合には、制御部１０が、データ削除部１４０により、バッファー削除処理を行う。
制御部１０は、データ出力部１３０により読み出しが終了した補助記憶部１９のページデータ３００を消去する。これにより、当該ページバッファー２００が「空き」の状態となる。また、制御部１０は、消去されたページデータ３００のリンクリスト３２０を進めて、消去されたページデータ３００のリンクリスト３２０とバンドデータ３１０のリンクリスト３２０を解放する。進んだ先のリンクリスト３２０が参照するページバッファー２００のページデータ３００が新たに出力されるデータとなる。
制御部１０は、ページデータ３００の消去の完了後に、ページ消去のイベントを送信する。
図７及び図８の例では、制御部１０は、ページバッファー２００ａからページデータ３００ａを削除することになる。図９の例では、指定されたページバッファー２００ｂからページデータ３００ｂを削除することになる。
【００６１】
また、バッファー削除処理において、ページ消去のイベントを受信した場合、制御部１０は、補助記憶部１９へページデータ３００が既に保存されているページバッファー２００を消去して「空き」の状態にしてもよい。
これにより、データ先読み部１２０により、上述のデータ先読み処理を行うページバッファー２００を確保しやすくすることができる。
【００６２】
（ステップＳ３０５）
次に、制御部１０が、データ出力部１３０により、文書データ５００の出力が完了したか否かを判定する。
制御部１０は、文書データ５００の全てのページデータ３００の出力を完了した場合には、Ｙｅｓと判定する。制御部１０は、それ以外の場合には、Ｎｏと判定する。
Ｙｅｓの場合、制御部１０は、処理をステップＳ３０６に進める。
Ｎｏの場合、制御部１０は、処理をステップＳ３０１に戻して、ページデータ３００の出力を続ける。
【００６３】
（ステップＳ３０６）
文書データ５００の出力が完了した場合、制御部１０が、データ出力部１３０及びデータ削除部１４０により、終了処理を行う。
制御部１０は、文書データ５００の出力の完了の際に、ファイル書き込み用のスレッド等に対して、現在処理しているファイルのクローズ以外、すべてキューから削除させてもよい。
ここで、書き込み用のスレッド等のキューには、終了するジョブの文書データ５００に対する非同期での補助記憶部１９への書き込みのコマンドが残っている場合がある。キューに積まれている補助記憶部１９への書き込み処理をすべて終了するまで待っていると、ジョブ終了が遅れる。このため、キューから削除させることで、無駄な補助記憶部１９への書き込み処理を行う必要がなくなり、ジョブの終了を高速化できる。
また、制御部１０は、補助記憶部１９に記憶されたページデータ３００やバンドデータ３１０についても削除し、リンクリスト３２０を全て解放する。
以上により、本発明の実施の形態に係るデータ出力処理を終了する。
【００６４】
以上のように構成することで、以下のような効果を得ることができる。
従来、特許文献１の情報処理装置のような技術を画像形成装置に適用した場合、画像形成手段がペーパージャムや紙なし等で停止した時でも、スキャナーやネットワーク等から入力データが受信されるため、主記憶手段の容量が不足し、バッファーがオーバーフローするという問題があった。
これに対して、本発明の実施の形態に係る画像形成装置１は、ページデータ３００を入力するデータ入力部１００と、データ入力部１００により入力されたページデータ３００を、所定出力単位で複数のページバッファー２００の一つに記憶させ、ページバッファー２００の一つに記憶された所定出力単位のページデータ３００を、所定速度よりも読み出し及び書き込み速度が高速な補助記憶部へ非同期で保存する非同期データライト部１１０と、ページバッファー２００の一つから出力されるデータの次に出力される所定出力単位のページデータ３００が他のページバッファー２００になければ、非同期データライト部１１０により補助記憶部に保存されたページデータ３００を他のページバッファー２００に読み出すデータ先読み部１２０と、データ先読み部１２０により先読みされたページデータ３００又はデータ入力手段により入力されたページデータ３００を、ページバッファー２００から所定出力単位ずつ読み出して所定速度で出力し、出力が完了した所定出力単位のデータをページバッファー２００の一つから削除するデータ出力部１３０とを備えることを特徴とする。
このように構成することで、ペーパージャムや紙なし等で画像形成部１７による出力が停止しても、入力された文書データ５００のページデータ３００で主記憶部１８が占有されてしまうことがなくなる。このため、データ入力部１００からの入力を主記憶部１８のバッファーのオーバーフローがなくなり、継続して印刷をさせることができる。また、主記憶部１８のメモリー容量の不足で、データ入力部１００を停止等させる必要もなくなり安定して印刷を継続できる。
【００６５】
また、従来、画像形成装置のデータ入力手段の速度が、画像形成を行う印字側より大きい場合、出力側の出力速度に依存し、データ入力手段がページデータ３００の取得待ちで止まってしまうため、次のデータ入力ができず、効率が悪かった。
これに対して、本実施形態の画像形成装置１は、画像形成の速度がデータ入力の速度より速く、途中の画像処理もデータ入力のスピードより速く、２つのページデータ３００分のページバッファー２００の領域が主記憶部１８上に確保できれば、データ入力部１００のページデータ３００入力と同様のスピードで連続に画像形成することができる。つまり画像形成部１７のエンジンのスピードと同様のスピードで高速印刷を行うことが可能になる。
【００６６】
また、ネットワーク送受信手段や原稿読取手段から入力されたページデータ３００をデータ出力手段によりリアルタイムで取得するためには、ページデータ３００がバッファー上にある必要がある。従来は、ページデータ３００の取得にＨＤＤ等が介在するとリアルタイムにページデータ３００の取得ができないので、出力のパフォーマンスが確保できなかった。
これに対して、本発明の実施の形態に係る画像形成装置１は、一旦、複数あるページバッファー２００の一つにページデータ３００を保存した後、このページデータ３００を補助記憶部１９へ非同期で保存し、次のページデータ３００まで先読みする。このため、補助記憶部１９への保存速度がデータ入力部１００による入力速度より速ければ、データ入力部１００からのページデータ３００の入力スピードを低下させないで、データ出力部１３０の出力を行うことが可能となる。
【００６７】
また、本発明の実施の形態に係る画像形成装置１は、非同期データライト部１１０が、データ入力部１００により入力されたデータをページバッファー２００に保存できない場合は、当該ページデータ３００をページバッファー２００よりも容量の小さい所定単位ずつ補助記憶部に保存することを特徴とする。
このように構成することで、ページバッファー２００に保存できない場合であっても、より小さいバンドデータ３１０等の所定単位で、補助記憶部１９に記憶させることができる。このため、主記憶部１８に確保するページバッファー２００の領域の記憶容量を削減でき、画像形成装置１のコストを削減できる。
【００６８】
また、従来、ＨＤＤにすでに登録してある文書データ５００をリードする場合、バンド単位の読み出し要求で、バンド分のデータを補助記憶部１９から読み出し、システムメモリーにコピーしていた。これでは、バンド単位の読み出し要求毎に、ＨＤＤから読み込むことになるのでパフォーマンスが悪く、読み出し要求がまとめて入る場合にはＨＤＤのコントローラーが常に制御を行うことになり、パフォーマンスが低下していた。つまり、従来は、ＣＰＵによるソフトウェア処理と、ＨＤＤのコントローラーによるハードウェアの処理とが直列的に行われていた。
これに対して、本発明の実施の形態に係る画像形成装置１は、ページデータ３００又はバンドデータ３１０について、一つのバンドデータ３１０分の読み出しの要求がきた場合に、スレッド等により、次のバンドデータ３１０を先に複数のバンドデータ３１０分、補助記憶部１９から読み出し、主記憶部１８上にコピーしておくことが可能である。画像形成装置１は、この動作を、バンドデータ３１０の読み出し要求が来るたびに繰り返すように構成することができる。結果として、バンドデータ３１０の読み出しを行うスレッド等は、先頭のバンドデータ３１０以外について主記憶部１８から読み込むため、パフォーマンスが上がる。つまり、ソフトウェア処理とハードウェア処理とが並列的に処理され、補助記憶部１９からの読み出しのパフォーマンスを向上させることができる。
【００６９】
また、従来、ＨＤＤの書き込みの速度が遅い場合や、ＨＤＤへのアクセスが多い場合には、単一のスレッド等でＨＤＤへの書き込みを行うと、制御部へ処理を戻すまでに時間がかかっていた。つまり、書き込みを行うスレッドについては、次の書き込みまで待たされていた。
これに対して、本発明の実施の形態に係る画像形成装置１は、補助記憶部１９へ書き込む専用のスレッド等を作成し起動させる。書き込み用のスレッド等と読み出し用のスレッド等を用意して、書き込み側へ補助記憶部１９に書き込みする前に処理を戻す。これにより、並列的に補助記憶部１９への書き込みと読み出しを行うことができ、各スレッドの動作効率を上げることができる。
【００７０】
また、従来、データを同時に読み出し書き込みするような複数のジョブが起動すると、複数ドキュメントの複数ページが参照され、読み込むバンドのデータ数が莫大になる。このため、バンドを検索するのに、バンドのデータを毎回、先頭から検索すると検索時間に多くの時間を費やすことになっていた。
これに対して、本発明の実施の形態に係る画像形成装置１は、リンクリスト３２０を用いることで、複数のスレッドやジョブにより、バンドデータ３１０の保存された論理アドレスと物理アドレスとが異なる場合でも、バンドデータ３１０を素早く検索して、所定速度で出力可能となる。
【００７１】
なお、上述の実施の形態では、入力するデータを画像形成装置１のページデータ３００を含む文書データ５００として、ページプリンター用の入出力を行う例について示したものの、これに限られない。
本発明は、データの出力手段側と入力手段側のデータ送受信スピードが異なり、ＲＡＭ等のバッファーの他に、出力手段の出力する所定速度よりもデータの書き込み／読み出しが高速な補助記憶手段を備えた各種機器に適用できる。
たとえば、入力するデータとして、動画像や静止画像データ、音声データ、通信データ等の各種データについて、データの送受信を行うことが可能である。この場合、所定出力単位として、動画像や静止画像データのフレーム、音声データのチャンク、通信データのパケットやフレーム等の単位を用いてもよい。また、この場合、バッファーよりも容量の小さい所定単位として、動画像や静止画像データのフレーム内のチャンク、音声データのサンプリングデータの所定単位、通信データのパケットやフレーム等の一部等の単位を用いてもよい。また、入力されたデータを情報処理装置で変換して出力してもよい。
このように構成することで、画像形成装置１以外の情報処理装置においても、入力データでバッファオーバーフローを起こすことなく、出力することが可能となる。
【００７２】
また、本発明は、画像形成装置以外の情報処理装置にも適用できる。つまり、ネットワークスキャナ、スキャナーをＵＳＢ等で別途接続したサーバー等を用いる構成であってもよい。
【００７３】
また、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【００７４】
１  画像形成装置
１０  制御部
１１  画像処理部
１２  原稿読取部
１２ａ  スキャナー
１２ｂ  プラテンガラス
１２ｃ  原稿読取スリット
１３  原稿給送部
１３ａ  原稿載置部
１３ｂ  原稿排出部
１３ｃ  原稿搬送機構
１４  本体部
１５  ネットワーク送受信部
１６  操作パネル部
１７  画像形成部
１７ａ  感光体ドラム
１７ｂ  露光部
１７ｃ  現像部
１７ｄ  転写部
１７ｅ  定着部
１８  主記憶部
１９  補助記憶部
４１  排出口
４２  給紙部
４２ａ  給紙カセット
４２ｂ  給紙ローラー
４３  用紙搬送路
４４  搬送ローラー
４５  排出ローラー
５０  スタックトレイ
１００  データ入力部
１１０  非同期データライト部
１２０  データ先読み部
１３０  データ出力部
１４０  データ削除部
２００、２００ａ、２００ｂ  ページバッファー
２１０  バンドバッファー
３００、３００ａ、３００ｂ、３００ｃ、３００ｄ  ページデータ
３１０、３１１ａ、３１１ｂ、３１１ｃ、３１２ａ、３１２ｂ、３１２ｃ、３１３ａ、３１３ｂ、３１３ｃ、３１４ａ、３１４ｂ  バンドデータ
３２０  リンクリスト
５００  文書データ
【図１】
0005989616.tif 000002
【図２】
0005989616.tif 000003
【図３】
0005989616.tif 000004
【図４】
0005989616.tif 000005
【図５】
0005989616.tif 000006
【図６】
0005989616.tif 000007
【図７】
0005989616.tif 000008
【図８】
0005989616.tif 000009
【図９】
0005989616.tif 000010
【図１０】
0005989616.tif 000011
【図１１】
0005989616.tif 000012