(57)【要約】【課題】生産性の高い画像形成装置を提供する。【解決手段】ＨＤＤなどの二次記憶装置を搭載した画像形成装置では、ジョブの入力を受け付けると（Ｓ１０１）、当該ジョブでの、二次記憶装置に対する画像データの入力処理と、二次記憶装置からの画像データの出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングが判断される（Ｓ１０５，Ｓ１２１）。そして、その判断結果に応じて、画像形成装置の一次記憶装置に設定されている領域である、二次記憶装置からの画像データの出力処理に用いられる出力バッファが、入力処理に用いるバッファか出力処理に用いるバッファかに切り替えられる（Ｓ１０７，Ｓ１２４）。【選択図】図５
2015179949.tif 000002
【特許請求の範囲】
【請求項１】
二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能な画像形成装置であって、
ジョブの入力を受け付けるための入力手段と、
前記ジョブでの、前記二次記憶装置に対する画像データの入力処理と、前記二次記憶装置からの画像データの出力処理とのそれぞれの要否、および前記入力処理と前記出力処理とのタイミングを判断するための判断手段と、
前記判断手段での判断結果に応じて、一次記憶装置に設定されている領域である、前記二次記憶装置からの画像データの出力処理に用いられる出力バッファを、前記入力処理に用いるバッファか前記出力処理に用いるバッファかに切り替える制御を行なうためのメモリ制御手段とを備える、画像形成装置。
【請求項２】
前記ジョブが前記入力処理を要するものであって前記出力処理を要しないもの、または、前記出力処理の開始よりも以前に前記入力処理を完了するものである場合、前記メモリ制御手段は、前記ジョブの処理を開始するときに前記出力バッファを前記入力処理に用いるバッファに切り替える、請求項１に記載の画像形成装置。
【請求項３】
前記入力処理を要するものであって前記出力処理を要しないジョブの処理中に次のジョブの入力を受け付けた場合、前記メモリ制御手段は、さらに、前記次のジョブの入力を受け付けた際に前記出力バッファを用いて行なわれていた前記入力処理が完了すると、前記出力バッファを前記次のジョブの処理用のバッファに切り替える、請求項２に記載の画像形成装置。
【請求項４】
前記出力処理の開始よりも以前に前記入力処理を完了するジョブの処理中に次のジョブの入力を受け付けた場合、前記メモリ制御手段は、さらに、前記処理中のジョブの処理が完了すると前記出力バッファを前記次のジョブの処理用のバッファに切り替える、請求項２に記載の画像形成装置。
【請求項５】
前記入力手段はファクシミリ受信手段を含み、
前記次のジョブがファクシミリデータである場合に、前記メモリ制御手段は、前記ファクシミリ受信手段でファクシミリデータを１ページ受信するごとに前記出力バッファを前記次のジョブの処理用のバッファに切り替え、前記１ページの処理が完了するごとに前記出力バッファを前記処理中のジョブの処理用のバッファに切り替える、請求項３または４に記載の画像形成装置。
【請求項６】
二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能な画像形成装置の制御方法であって、
ジョブの入力を受け付けるステップと、
前記ジョブでの、前記二次記憶装置に対する画像データの入力処理と、前記二次記憶装置からの画像データの出力処理とのそれぞれの要否、および前記入力処理と前記出力処理とのタイミングを判断するステップと、
前記判断するステップでの判断結果に応じて、前記画像形成装置の一次記憶装置に設定されている領域である、前記二次記憶装置からの画像データの出力処理に用いられる出力バッファを、前記入力処理に用いるバッファか前記出力処理に用いるバッファかに切り替えるステップとを備える、画像形成装置の制御方法。
【請求項７】
二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能な画像形成装置にバッファ切替処理を実行させるためのプログラムであって、
ジョブの入力を受け付けるステップと、
前記ジョブでの、前記二次記憶装置に対する画像データの入力処理と、前記二次記憶装置からの画像データの出力処理とのそれぞれの要否、および前記入力処理と前記出力処理とのタイミングを判断するステップと、
前記判断するステップでの判断結果に応じて、前記画像形成装置の一次記憶装置に設定されている領域である、前記二次記憶装置からの画像データの出力処理に用いられる出力バッファを、前記入力処理に用いるバッファか前記出力処理に用いるバッファかに切り替えるステップとを前記画像形成装置に実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像形成装置、制御方法、および画制御プログラムに関し、特に、二次記憶装置としての大容量記憶装置を有する画像形成装置、当該画像形成装置の制御方法、および当該画像形成装置の制御プログラムに関する。
【背景技術】
【０００２】
ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの大容量記憶装置を二次記憶装置として搭載している処理装置がある。このような処理装置は、二次記憶装置である大容量記憶装置にデータを保存したり読み出したりする場合に、メインメモリとも呼ばれる一次記憶装置を介して行なう。すなわち、当該処理装置は、大容量記憶装置にデータを保存する場合にはメインメモリに保存用のバッファを確保し、データを読み出す場合にはメインメモリに読み出し用のバッファを確保する。さらに、大容量記憶装置にデータを保存する際に、保存速度を高速化するために、メインメモリの読み出し用のバッファを第２の保存用のバッファとして、通常の保存用のバッファと第２の保存用のバッファとをトグルバッファとして用いる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２９５５４６号公報
【特許文献２】特開２００３−１９８８１７号公報
【特許文献３】特開平７−３２２０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
たとえば、画像形成装置の動作の中には、いわゆる小冊子印刷と呼ばれる、印刷物を重ねて縦方向に谷折りにすると小冊子となるように各ページの画像データを配置する印刷や、ページ番号などの全ページに関連した画像を付加する印刷など、原稿の全ページの読み取りの完了後に印刷用の画像形成を行なう動作がある。画像形成装置は原稿の読み取り動作の完了前に他の印刷ジョブを受け付けると、先のジョブの原稿の読み取り動作と並行して印刷ジョブの印刷動作を行なうことはできる。しかしながら、画像形成装置が先のジョブの読み取り動作と並行して後の印刷ジョブの印刷動作を行なうと、ジョブ処理の順がジョブ受け付けの順と異なってしまう。そのため、画像形成装置は、読み取り動作の完了前に次のジョブを受け付けても、先のジョブの処理が完了するまで他のジョブの処理を開始しないようにしている。
【０００５】
この場合、先のジョブの読み取り動作での、読み取って得られた画像データを大容量記憶装置に保存する動作においてメインメモリの読み出し用のバッファを第２の保存用のバッファとして用いないと、すなわち、トグルバッファ方式を採用しないと読み取り動作が遅くなり、次のジョブの処理の開始も遅くなってしまう、という問題があった。
【０００６】
そこで、トグルバッファ方式を画像形成装置に適用することが考えられる。
画像形成装置がトグルバッファ方式を用いてＳＣＡＮｔｏＢＯＸ（スキャン動作を実行して得られた画像データを大容量記憶装置に格納する動作）を実行すると、保存用のバッファと併せて、第２の保存用のバッファとしてメインメモリの読み出し用のバッファが用いられることになる。これにより、大容量記憶装置への画像データの保存速度を高速化することができる。
【０００７】
この動作の実行中に、ＢＯＸｔｏプリント（メモリから画像データを読み出してプリントする動作）などの、大容量記憶装置からの読み出しを伴う動作の指示がなされる場合がある。この場合、上記の動作によってメインメモリの読み出し用のバッファが第２の保存用のバッファとしてすでに用いられている。そのため、読み出し用のバッファが空くまで、つまり、先の保存動作が完了するまで、ＢＯＸｔｏプリントなど、読み出し用のバッファを用いた読み出し動作を開始することができない。そのため、次の印刷動作の開始が遅れてしまう、という問題があった。
【０００８】
本発明はこのような問題に鑑みてなされたものであって、生産性の高い画像形成装置、制御方法、および制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に従うと、画像形成装置は二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能であって、ジョブの入力を受け付けるための入力手段と、ジョブでの、二次記憶装置に対する画像データの入力処理と、二次記憶装置からの画像データの出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断するための判断手段と、判断手段での判断結果に応じて、一次記憶装置に設定されている領域である、二次記憶装置からの画像データの出力処理に用いられる出力バッファを、入力処理に用いるバッファか出力処理に用いるバッファかに切り替える制御を行なうためのメモリ制御手段とを備える。
【００１０】
好ましくは、ジョブが入力処理を要するものであって出力処理を要しないもの、または、出力処理の開始よりも以前に入力処理を完了するものである場合、メモリ制御手段は、ジョブの処理を開始するときに出力バッファを入力処理に用いるバッファに切り替える。
【００１１】
より好ましくは、入力処理を要するものであって出力処理を要しないジョブの処理中に次のジョブの入力を受け付けた場合、メモリ制御手段は、さらに、次のジョブの入力を受け付けた際に出力バッファを用いて行なわれていた入力処理が完了すると、出力バッファを次のジョブの処理用のバッファに切り替える。
【００１２】
より好ましくは、出力処理の開始よりも以前に入力処理を完了するジョブの処理中に次のジョブの入力を受け付けた場合、メモリ制御手段は、さらに、処理中のジョブの処理が完了すると出力バッファを次のジョブの処理用のバッファに切り替える。
【００１３】
より好ましくは、入力手段はファクシミリ受信手段を含み、次のジョブがファクシミリデータである場合に、メモリ制御手段は、ファクシミリ受信手段でファクシミリデータを１ページ受信するごとに出力バッファを次のジョブの処理用のバッファに切り替え、１ページの処理が完了するごとに出力バッファを処理中のジョブの処理用のバッファに切り替える。
【００１４】
本発明の他の局面に従うと、制御方法は二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能な画像形成装置の制御方法であって、ジョブの入力を受け付けるステップと、ジョブでの、二次記憶装置に対する画像データの入力処理と、二次記憶装置からの画像データの出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断するステップと、判断するステップでの判断結果に応じて、画像形成装置の一次記憶装置に設定されている領域である、二次記憶装置からの画像データの出力処理に用いられる出力バッファを、入力処理に用いるバッファか出力処理に用いるバッファかに切り替えるステップとを備える。
【００１５】
本発明のさらに他の局面に従うと、制御プログラムは二次記憶装置に対する画像データの入出力を伴うジョブ処理が可能な画像形成装置にバッファ切替処理を実行させるためのプログラムであって、ジョブの入力を受け付けるステップと、ジョブでの、二次記憶装置に対する画像データの入力処理と、二次記憶装置からの画像データの出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断するステップと、判断するステップでの判断結果に応じて、画像形成装置の一次記憶装置に設定されている領域である、二次記憶装置からの画像データの出力処理に用いられる出力バッファを、入力処理に用いるバッファか出力処理に用いるバッファかに切り替えるステップとを画像形成装置に実行させる。
【発明の効果】
【００１６】
この発明によると、画像形成装置における生産性（処理パフォーマンス）を高めることができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態にかかる画像形成装置の一例としてのＭＦＰ（Multi-Functional  Peripheral）装置構成の具体例を示すブロック図である。
【図２】ＭＦＰにおいて、二次記憶装置に対して入力データの符号化データを入出力する際の流れを説明するための図である。
【図３】ジョブの種類ごとの出力バッファの制御を規定する情報の具体例を表わした図である。
【図４】ＭＦＰの機能構成の具体例を示すブロック図である。
【図５】ＭＦＰでの動作の流れの具体例を表わしたフローチャートである。
【図６】ＭＦＰでの動作の流れの具体例を表わしたフローチャートである。
【図７】ＭＦＰでの動作の流れの具体例を表わしたフローチャートである。
【発明を実施するための形態】
【００１８】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００１９】
＜装置構成＞
図１は、本実施の形態にかかる画像形成装置の一例としてのＭＦＰ（Multi-Functional  Peripheral）１００の装置構成の具体例を示すブロック図である。図１を参照して、ＭＦＰ１００は、装置全体を制御するためのＣＰＵ（Central  Processing  Unit）１０と、ＣＰＵ１０で実行されるプログラムを記憶するためのメモリであるＲＯＭ（Read  Only  Memory）１１と、ＣＰＵ１０でプログラムを実行する際の作業領域となったり、各種情報を記憶したりするためのメモリであるＲＡＭ（Random  Access  Memory）１２と、画像データなどを記憶するための大容量の記憶装置の一例としてのＨＤＤ（Hard  Disk  Drive）１３と、スキャナー部１４と、プリンター部１５と、ファクシミリ（ＦＡＸ）部１６と、操作パネル１７と、他のＰＣ（パーソナルコンピューター）などの他の装置と通信するための通信部１８とを含む。
【００２０】
ＨＤＤ１３は、ＲＡＭ１２が一次記憶装置（または主記憶装置）であるのに対して、二次記憶装置に相当する。データがＨＤＤ１３に出入力される際にはＲＡＭ１２を経由される。すなわち、ＲＡＭ１２は、データをＨＤＤ１３に入力する際に用いられる一次バッファである入力バッファ１２１と、データをＨＤＤ１３から出力する際に用いられる一次バッファである出力バッファ１２２とを含む。
【００２１】
なお、本実施の形態にかかる画像形成装置はＨＤＤなどの二次記憶装置を搭載した装置であればよく、たとえば、プリンターやスキャナーなど他の装置であってもよい。また、二次記憶装置はＨＤＤに限定されず、たとえばＳＳＤ（solid  State  Drive）であってもよいし、他の記憶装置であってもよい。
【００２２】
＜動作概要＞
図２は、ＭＦＰ１００において、二次記憶装置であるＨＤＤ１３に対して入力データ（たとえば画像データ）の符号化データを入出力する際の流れを説明するための図である。
【００２３】
図２を参照して、ＭＦＰ１００は、スキャナー部１４での原稿をスキャンする、または通信部１８を介してＰＣなどから画像データを受信する、などして、画像データを取得する（ステップＳ１）。該画像データはジョブに含まれ、たとえば印刷処理の対象であったり、他の装置に転送する対象であったりしてもよい。
【００２４】
ＭＦＰ１００は、取得した画像データを符号化（圧縮：ステップＳ２）することで得られた符号化データを、ＨＤＤ１３にデータを入力する際の一次バッファメモリである入力バッファ１２１に転送し（ステップＳ３−１）、その後に入力バッファ１２１からＨＤＤ１３に転送する動作（ステップＳ４−１）を繰り返すことで、１ページ分の符号化データをＨＤＤ１３に保存する。
【００２５】
次に、ＭＦＰ１００は、ＨＤＤ１３から符号化データを読み出す際には、ＨＤＤ１３からデータを出力する際の一次バッファメモリである出力バッファ１２２にＨＤＤ１３から符号化データを転送する動作（ステップＳ５）を繰り返し、１ページ分の符号化データを読み出す。１ページ分の符号化データの出力バッファ１２２への転送が完了すると、ＭＦＰ１００は出力バッファ１２２から符号化データを読み出して伸張し（ステップＳ６）、たとえばプリンター部１５に渡す（ステップＳ７）などしてジョブ処理を行なう。
【００２６】
このとき、ＭＦＰ１００は、実行中のジョブの種類がＨＤＤ１３への入力（保存）のみを行なうジョブであって並行してＨＤＤ１３から出力（読み出し）を行なわないジョブである場合、または、ＨＤＤ１３への入力（保存）が完了した後にＨＤＤ１３からの出力（読み出し）を行なうジョブである場合には、ＨＤＤ１３にデータを入力する際の一次バッファメモリとして、入力バッファ１２１に加えて、一時的に出力バッファ１２２も用いる。すなわち、この場合ＭＦＰ１００は、出力バッファ１２２を一時的に入力処理用に切り替える。
【００２７】
この動作は、図２において太線で示されている。すなわち、この場合、ＭＦＰ１００は、符号化データを入力バッファ１２１に転送すると共に（ステップＳ３−１）、並行して、出力バッファ１２２にも転送して（ステップＳ３−２）、ＨＤＤ１３への転送を指示する。これは、出力バッファ１２２を入力処理用のトグルバッファとして使用している状態を指す。
【００２８】
画像データのサイズが大きいと、入力バッファ１２１は１ページ分すべての符号化データを保存し切れない場合がある。この場合、上記のように入力バッファ１２１を経由したＨＤＤ１３への符号化データの転送（ステップＳ３−１，Ｓ４−１）のみ行なう場合には、複数回、転送動作が繰り返されることになるためにＨＤＤ１３に符号化データの転送が完了するまでに要する時間が長くなる。
【００２９】
これに対して、ＭＦＰ１００が、たとえば、入力バッファ１２１を経由したＨＤＤ１３への符号化データの転送（ステップＳ３−１，Ｓ４−１）と、出力バッファ１２２を経由したＨＤＤ１３への符号化データの転送（ステップＳ３−２，Ｓ４−２）とを交互に行なうことで、上記の、入力バッファ１２１を経由したＨＤＤ１３への符号化データの転送（ステップＳ３−１，Ｓ４−１）のみの場合と比較してＨＤＤ１３への転送が完了するまでの時間を大幅に短縮でき、処理パフォーマンスを向上させることができる。
【００３０】
一方で、出力バッファ１２２をＨＤＤ１３に対する符号化データの入力処理に用いると、入力処理の間、出力バッファ１２２をＨＤＤ１３からの符号化データの出力処理に用いることができなくなる。そのため、たとえば実行中のジョブの種類がＨＤＤ１３への入力（保存）とＨＤＤ１３から出力（読み出し）とを並行して行なうジョブである場合には、ＨＤＤ１３への入力処理が完了して出力バッファ１２２が出力処理用に切り替えられるまでＨＤＤ１３からの出力（読み出し）処理が開始されないことになるため、ジョブ処理が完了するまでに要する時間が長くなってしまう。つまり、入力処理の完了よりも以前に出力処理を開始する必要のあるジョブの場合には、出力バッファ１２２を経由したＨＤＤ１３への符号化データの転送（ステップＳ３−２，Ｓ４−２）を行なうことでかえって処理パフォーマンスを低下させてしまうことになる。
【００３１】
そこで、本実施の形態にかかるＭＦＰ１００は、処理対象のジョブでの、入力処理および出力処理それぞれの要否、および入力処理と出力処理とのタイミングを判断して、その判断結果に応じて出力バッファを、入力処理に用いるバッファか出力処理に用いるバッファかに切り替える。具体的には、ＭＦＰ１００は、ジョブが入力処理を要するものであって出力処理を要しないもの、または、出力処理の開始よりも以前に入力処理を完了するものである場合、当該ジョブの処理を開始するときに出力バッファ１２２を入力処理に用いるバッファに切り替える。
【００３２】
この制御を行なうため、ＭＦＰ１００は、一例として図３のような、ジョブの種類ごとの出力バッファ１２２の制御を規定する情報を予め記憶しておく。この情報は、図３のようにテーブル形式であってもよいし、その他の形式であってもよい。また、管理者等の特定のユーザーによって登録、更新可能であってもよい。
【００３３】
図３を参照して、処理対象のジョブがいわゆるＳｃａｎＴｏＢｏｘと呼ばれる、スキャン動作を行なって得られた画像データをＨＤＤ１３に格納する動作である、ＨＤＤ１３に対する入力処理のみジョブ（出力処理のないジョブ）である場合には、出力バッファ１２２をジョブ処理開始時に入力処理用に切り替えると、予めＭＦＰ１００は記憶しておく。また、いわゆるコピー小冊子と呼ばれるような、入力処理完了後の出力処理を開始するジョブの場合にも、出力バッファ１２２をジョブ処理開始時に入力処理用に切り替えると、予めＭＦＰ１００は記憶しておく。なお、コピー小冊子とは、原稿の各ページを先だってスキャンして画像データを得、印刷物を重ねて縦方向に谷折りにすると小冊子となるように各ページの画像データを配置して印刷する動作を指す。入力処理完了後の出力処理を開始するジョブの他の例として、原稿の各ページをスキャンして画像データを得た後に、総ページ数を用いた画像（たとえば分数形式で各ページ数を表わした画像）を各ページに付して印刷する動作を伴うジョブなどが挙げられる。
【００３４】
上記種類のジョブを処理する際に図３の情報に従って出力バッファ１２２が入力処理用に切り替えられることによって、画像データをＨＤＤ１３に入力（格納）する処理に要する時間を入力バッファ１２１のみを用いる場合と比較して大幅に短縮することができ、処理パフォーマンスを向上させることができる。
【００３５】
一方、処理対象のジョブが入力処理と出力処理とを並行して行なうもの、つまり、入力処理の完了よりも以前に出力処理が開始するジョブである場合には、出力バッファ１２２をジョブ処理開始時に出力処理用に切り替えると、予めＭＦＰ１００は記憶しておく。また、いわゆるＢｏｘＴｏＰｒｉｎｔと呼ばれる、ＨＤＤ１３に格納されている画像データを読み出して印刷する動作である、ＨＤＤ１３からの出力処理のみジョブ（入力処理のないジョブ）である場合には、出力バッファ１２２をジョブ処理開始時に出力処理用に切り替えると、予めＭＦＰ１００は記憶しておく。
【００３６】
上記種類のジョブを処理する際に図３の情報に従って出力バッファ１２２が出力処理用に切り替えられることによって、画像データをＨＤＤ１３から出力（読み出す）動作の開始を早くすることができ、処理パフォーマンスを向上させることができる。
【００３７】
ＭＦＰ１００は、処理対象のジョブを受け付けると当該情報を参照して、出力バッファ１２２を入力処理用か出力処理用かに切り替える。
【００３８】
さらに、ジョブ処理を実行中に次のジョブ（次ジョブ）を受け付けた場合に、バッファ１２１，１２２が実行中のジョブ（実行中ジョブ）の処理用のままとされていると、次ジョブの処理の開始が遅れ、全体として処理パフォーマンスの低下につながる。詳しくは、実行中ジョブの種類がどのような種類であっても入力処理がある場合には、入力バッファ１２１は当該ジョブの処理において入力バッファ１２１からＨＤＤ１３への画像データの転送が完了するまで実行中ジョブから解放されることはない。一方、実行中ジョブにおいて出力バッファ１２２が入力処理用に切り替えられている場合に実行中ジョブが完了するまで出力バッファ１２２が実行中ジョブから解放されないと、実行中ジョブの処理が完了するまで次ジョブの出力動作は開始されない。また、次ジョブが上記のように出力バッファ１２２を入力処理用に切り替えて使用可能な種類のジョブである場合には、入力処理も処理時間が長くなる。
【００３９】
そこで、本実施の形態にかかるＭＦＰ１００は、さらに次ジョブを受け付けた際の実行中ジョブに応じて、入力処理用に切り替えられていた出力バッファ１２２を実行中ジョブの処理用か次ジョブ用か（実行ジョブの処理用から解放）に切り替える。この場合、本実施の形態にかかるＭＦＰ１００は、実行中ジョブにおける入力処理および出力処理それぞれの要否、および入力処理と出力処理とのタイミングに加えて、次ジョブにおける入力処理および出力処理それぞれの要否、および入力処理と出力処理とのタイミングも判断し、その判断結果に応じて出力バッファ１２２を切り替える。この制御を行なうため、ＭＦＰ１００は、さらに図３に示されるように、実行中ジョブと次ジョブとそれぞれのジョブの種類ごとの出力バッファ１２２の制御を規定する情報を予め記憶しておく。
【００４０】
図３を参照して、実行中ジョブが入力処理のみ行なって出力処理を行なわない種類のジョブである場合であって、かつ、次ジョブがファクシミリ受信以外の種類のジョブである場合、出力バッファ１２２をジョブ処理開始時に次ジョブ用に切り替える（実行中ジョブ用から解放する）と、予めＭＦＰ１００は記憶しておく。
【００４１】
次ジョブがファクシミリ受信以外の種類のジョブである場合に図３の情報に従って出力バッファ１２２が実行中ジョブから解放されることによって、実行中ジョブにおいて出力バッファ１２２に転送されたデータがＨＤＤ１３にすべて転送された時点で出力バッファ１２２を次ジョブの処理に使用することが可能となる。そのため、たとえば次ジョブが入力処理のみのジョブである場合、または入力処理の完了後に出力処理が開始されるジョブである場合、出力バッファ１２２は次ジョブの入力処理に用いると切り替えることができる。また、次ジョブが出力処理のみのジョブである場合、または入力処理と並行して出力処理を行なうジョブである場合、出力バッファ１２２は次ジョブの出力処理に用いると切り替えることができる。これにより、ＭＦＰ１００は実行中ジョブの処理中であっても次ジョブの処理を開始することができ、つまりマルチアクセスを可能とし、全体として処理パフォーマンスを向上させることができる。
【００４２】
一方、実行中ジョブが入力処理の完了の後に出力処理を開始する種類のジョブである場合であって、かつ、次ジョブがファクシミリ受信以外の種類のジョブである場合には、出力バッファ１２２を実行中ジョブの処理完了後に次ジョブ用に切り替える（実行中ジョブ用から解放する）と、予めＭＦＰ１００は記憶しておく。
【００４３】
実行中ジョブが入力処理の完了の後に出力処理を開始する種類のジョブである場合には、少なくとも実行中ジョブの入力処理が完了した時点では入力処理用とされた出力バッファ１２２のデータのＨＤＤ１３への転送は完了している。そのため、少なくとも実行中ジョブの入力処理の完了時点で出力バッファ１２２を開放し、次ジョブ用に用いることも可能である。しかしながら、実行中ジョブの処理と並行して出力バッファ１２２を使用して次ジョブの処理が行なわれると、実行中ジョブよりも先に次ジョブの処理が完了する場合もある。たとえば印刷動作の場合、実行中ジョブよりも先に次ジョブの印刷物が出力されてしまう場合もある。この場合、ジョブの投入順に従って処理結果（たとえば印刷物）が出力されると考えているユーザーに混乱を与えることになる。たとえば、実行中ジョブの発行元のユーザーが誤って次ジョブの印刷物を持ち帰ってしまう場合もある。そこで、この場合、上記のように実行中ジョブの処理の完了の後に出力バッファ１２２を実行中ジョブ用から解放し次ジョブ用に切り替える。
【００４４】
実行中ジョブが入力処理の完了の後に出力処理を開始する種類のジョブである場合に図３の情報に従って出力バッファ１２２が実行中ジョブの処理の完了後に実行中ジョブから解放されることによって、ジョブの処理完了順と投入順とが異なるという事態を防止でき、ユーザーの混乱を回避することができる。
【００４５】
なお、次ジョブがファクシミリ受信の場合、ＭＦＰ１００が１ページ分の画像データを取得するのに要する時間が、スキャナー部１４から取得する時間や通信部１８を介してＰＣ等から取得する時間に比べて格段に長い。したがって、この場合、図３を参照して、次ジョブのファクシミリの受信が１ページ分完了するたびに出力バッファ１２２を実行中ジョブ用と次ジョブ用とで切り替えると、予めＭＦＰ１００は記憶しておく。詳しくは、次ジョブの処理の開始を早めるために、次ジョブのファクシミリの受信が１ページ分完了した後であって、実行中ジョブの入力処理に使用されていた出力バッファ１２２からＨＤＤ１３へのデータの転送が完了した時点で、ＭＦＰ１００は出力バッファ１２２を実行中ジョブ用から解放して次ジョブ用に切り替え、次ジョブの入力処理に使用する。その後、次ジョブの１ページ分のデータのＨＤＤ１３への転送が完了すると、ＭＦＰ１００は再度出力バッファ１２２を次ジョブ用から解放して実行中ジョブ用に切り替え、実行中ジョブの入力処理に使用する。以降、ＭＦＰ１００は、次ジョブのファクシミリの受信が１ページ分完了するごとに、出力バッファ１２２を実行中ジョブ用と次ジョブ用とで切り替える。
【００４６】
次ジョブがファクシミリ受信の場合に図３の情報に従って出力バッファ１２２が実行中ジョブ用と次ジョブ用とで切り替わることによって、実行中ジョブの入力処理と並行して、１ページずつファクシミリ受信である次ジョブのＨＤＤ１３への保存が行なわれることになる。これにより、ＭＦＰ１００は実行中ジョブの処理とファクシミリ受信である次ジョブの処理とを並行して実行することができ、つまりマルチアクセスを可能とし、全体として処理パフォーマンスを向上させることができる。
【００４７】
＜機能構成＞
図４は、上記動作を行なうためのＭＦＰ１００の機能構成の具体例を示すブロック図である。図４の各機能は、ＭＦＰ１００のＣＰＵ１０がＲＯＭ１１に記憶されているプログラムをＲＡＭ１２上に読み出して実行することで、主にＣＰＵ１０によって実現される。しかしながら、少なくとも一部機能が図１に示された他の装置構成、または図示されていない電気回路などの他のハードウェア構成によって実現されてもよい。
【００４８】
図４を参照して、ＭＦＰ１００のＣＰＵ１０は、スキャナー部１４でのスキャン動作や通信部１８でのＰＣ等からの画像データの受信やＦＡＸ部１６でのファクシミリ受信などによって画像データの入力を受け付けるための画像入力部１０１と、受け付けたジョブでの、二次記憶装置であるＨＤＤ１３に対する画像データの入力処理とＨＤＤ１３からの画像データの出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断するための判断部１０２と、その判断結果に応じて、一次記憶装置であるＲＡＭ１２に一次バッファとして設定されている出力処理に用いられる出力バッファ１２２を、入力処理に用いるバッファか出力処理に用いるバッファかに切り替える制御を行なうためのメモリ制御部１０３と、符号化処理を行なうための符号化処理部１０６と、符号化データ（画像データ）を一次バッファを介してＨＤＤ１３に入力してＨＤＤ１３に格納する処理を行なうための入力処理部１０４と、ＨＤＤ１３から符号化データ（画像データ）を出力する処理を行なうための出力処理部１０５と、符号化処理部１０６によって伸張された、ＨＤＤ１３から出力された画像データをプリンター部１５に渡して印刷を行なわせるための画像出力部１０７とを含む。
【００４９】
メモリ制御部１０３は、上記制御として、ジョブが入力処理を要するものであって出力処理を要しないもの、または、出力処理の開始よりも以前に入力処理を完了するものである場合、当該ジョブの処理を開始するときに出力バッファ１２２を入力処理に用いるバッファに切り替える。
【００５０】
好ましくは、メモリ制御部１０３は、実行中ジョブとして入力処理を要するものであって出力処理を要しない種類のジョブの処理中に次ジョブの入力を受け付けた場合、さらに、次ジョブの入力を受け付けた際に出力バッファ１２２を用いて行なわれていた入力処理が完了すると、つまり、次ジョブの入力を受け付けた際に出力バッファ１２２に保存されていた画像データのＨＤＤ１３への転送が完了すると、出力バッファ１２２を実行中ジョブから解放して次ジョブの処理用に切り替える。一方、メモリ制御部１０３は、実行中ジョブとしてたとえばコピー小冊子などの出力処理の開始よりも以前に入力処理を完了する種類のジョブの処理中に次ジョブの入力を受け付けた場合には、処理中のジョブの処理が完了してから出力バッファ１２２を実行中ジョブから解放して次ジョブの処理用に切り替える。
【００５１】
なお、メモリ制御部１０３は、次ジョブがファクシミリ受信によるものである場合（ファクシミリ受信データを含む場合）には、１ページの受信が完了するごとに、そのときに出力バッファ１２２を用いて行なわれていた入力処理の完了に応じて出力バッファ１２２を実行中ジョブの処理用とファクシミリ受信である次ジョブの処理用のバッファとに切り替える。
【００５２】
符号化処理部１０６は、入力された画像データを符号化し、符号化データ（画像データ）を入力処理部１０４に渡す。入力処理部１０４は、符号化データ（画像データ）を入力バッファ１２１に転送した上でＨＤＤ１３の画像データの記憶領域である画像記憶部１３１に転送する。入力処理部１０４は、メモリ制御部１０３での制御に従って符号化データ（画像データ）を出力バッファ１２２にも転送した上でＨＤＤ１３の画像データの記憶領域である画像記憶部１３１に転送する。
【００５３】
出力処理部１０５はＨＤＤ１３から指定された符号化データ（画像データ）を出力バッファ１２２を介して出力し、符号化処理部１０６に渡す。符号化処理部１０６は符号化データを伸張して得られた画像データを画像出力部１０７に渡す。
【００５４】
＜動作フロー＞
図５〜図７は、本実施の形態にかかるＭＦＰ１００での動作の流れの具体例を表わしたフローチャートである。図５〜図７のフローチャートで表わされた動作は、ＭＦＰ１００のＣＰＵ１０がＲＯＭ１１に記憶されているプログラムをＲＡＭ１２上に読み出して実行し、図４の各機能を発揮することによって実現される。
【００５５】
はじめに図５を参照して、ＣＰＵ１０はジョブの入力を受け付けると（ステップＳ１０１でＹＥＳ）、入力時にすでに実行中のジョブがない場合には（ステップＳ１０３でＮＯ）、受け付けたジョブについて、入力処理と出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断する。
【００５６】
受け付けたジョブが出力処理の開始よりも以前に入力処理を完了するものである場合（ステップＳ１０５でＹＥＳ）、ＣＰＵ１０は出力バッファ１２２を当該ジョブの入力処理用に切り替えて（ステップＳ１０７）、入力バッファ１２１と出力バッファ１２２とを当該ジョブの入力処理用に確保する（ステップＳ１０９）。そして、ＣＰＵ１０は、当該ジョブの入力処理を実行する（ステップＳ１１１）。
【００５７】
入力処理が完了すると（ステップＳ１１３でＹＥＳ）、ＣＰＵ１０は出力バッファ１２２を出力処理用に切り替えて（ステップＳ１１５）、出力バッファ１２２を出力処理用に確保する（ステップＳ１１７）。そして、ＣＰＵ１０は、当該ジョブの処理（出力処理および印刷処理等）を実行する（ステップＳ１１９）。
【００５８】
なお、受け付けたジョブが入力処理を要するものであって出力処理を要しないものである場合には（ステップＳ１１４でＹＥＳ）、ＣＰＵ１０は上記処理のうちのステップＳ１０７〜Ｓ１１３を実行し、以降の処理はスキップする。
【００５９】
受け付けたジョブが入力処理と出力処理とが並行して行なわれるものである場合（ステップＳ１０５でＮＯ、かつステップＳ１２１でＹＥＳ）、ＣＰＵ１０は、入力バッファ１２１を当該ジョブの入力処理用に確保し、また、出力バッファ１２２を出力処理用に切り替えて当該ジョブの出力処理用に確保し（ステップＳ１２３）、当該ジョブの処理を実行する（ステップＳ１１９）。
【００６０】
受け付けたジョブが入力処理を行なわずに出力処理のみのものである場合には（ステップＳ１０５でＮＯ、かつステップＳ１２１でＮＯ）、ＣＰＵ１０は、上記ステップＳ１１７以降の処理を実行する。そして、ＣＰＵ１０は処理を最初に戻して、次のジョブの処理を行なう。
【００６１】
ジョブの入力を受け付けた際にすでに実行中ジョブがあった場合（ステップＳ１０３でＹＥＳ）、つまり、受け付けたジョブが上記の説明での「次ジョブ」に該当するものである場合、図６を参照して、ＣＰＵ１０は、受け付けたジョブと実行中ジョブとのそれぞれについて、入力処理と出力処理とのそれぞれの要否、および入力処理と出力処理とのタイミングを判断する。
【００６２】
受け付けたジョブが出力処理の開始よりも以前に入力処理を完了するものであり（ステップＳ１３１でＹＥＳ）、かつ、実行中ジョブが入力処理のみであって出力処理を行なわないものである場合（ステップＳ１３３でＹＥＳ）、受け付けたジョブがファクシミリ受信によるものでない場合には（ステップＳ１３５でＮＯ）、ＣＰＵ１０は、出力バッファ１２２に保存されていた実行中ジョブの画像データのＨＤＤ１３への転送の完了を待って（ステップＳ１３７でＹＥＳ）、出力バッファ１２２を実行中ジョブから解放して受け付けたジョブの処理用に確保する（ステップＳ１３９）。そして、ＣＰＵ１０は、受け付けたジョブの処理を実行する（ステップＳ１１９）。
【００６３】
受け付けたジョブがファクシミリ受信によるものである場合には（ステップＳ１３５でＹＥＳ）、または、実行中ジョブが出力処理の開始よりも以前に入力処理を完了するものであって（ステップＳ１３３でＮＯ、かつステップＳ１４３でＹＥＳ）、かつ、受け付けたジョブがファクシミリ受信によるものである場合には（ステップＳ１４５でＹＥＳ）、ＣＰＵ１０は、ファクシミリ１ページ分を受信すると（ステップＳ１４７）、その時点で出力バッファ１２２に保存されていた実行中ジョブの画像データのＨＤＤ１３への転送の完了を待って（ステップＳ１４９でＹＥＳ）、出力バッファ１２２を実行中ジョブから解放して受け付けたファクシミリ受信によるジョブの処理用に確保する（ステップＳ１５１）。そして、ＣＰＵ１０は、受け付けたファクシミリ１ページ分のジョブの処理を実行する（ステップＳ１５３）。その後、ＰＣＵ１０は、出力バッファ１２２をファクシミリ受信によるジョブの処理用から解放して元の実行中ジョブの処理用に確保し（ステップＳ１５５）、当該ジョブの処理を行なう。そして、ＣＰＵ１０は、受信ファクシミリ１ページ分の処理を完了すると（ステップＳ１５７でＹＥＳ）、処理を最初に戻して、次の１ページ分の処理を行なう。すなわち、ＣＰＵ１０は、ファクシミリ１ページを受信するごとに上記ステップＳ１４７〜Ｓ１５５の処理を繰り返す。
【００６４】
図６および図７を参照して、実行中ジョブが入力処理と出力処理とが並行して行なわれるものであり（ステップＳ１４３でＮＯ、かつステップＳ１６１でＹＥＳ）、かつ、受け付けたジョブがファクシミリ受信によるものでない場合には（ステップＳ１６３でＮＯ）、ＣＰＵ１０は、出力バッファ１２２に保存されていた実行中ジョブの画像データのＨＤＤ１３への転送の完了を待って（ステップＳ１６５でＹＥＳ）、出力バッファ１２２を実行中ジョブから解放して受け付けたジョブの処理用に確保する（ステップＳ１６７）。そして、ＣＰＵ１０は、受け付けたジョブの処理を実行する（ステップＳ１１９）。受け付けたジョブがファクシミリ受信によるものである場合には（ステップＳ１６３でＹＥＳ）、ＣＰＵ１０は上記ステップＳ１４７以降の処理を実行する。
【００６５】
実行中ジョブが入力処理を行なわずに出力処理のみのものである場合には（ステップＳ１６１でＮＯ）、ＣＰＵ１０は上記ステップＳ１６３〜Ｓ１６５をスキップして出力バッファ１２２を実行中ジョブから解放して受け付けたジョブの処理用に確保する（ステップＳ１６７）。そして、ＣＰＵ１０は、受け付けたジョブの処理を実行する（ステップＳ１１９）。
【００６６】
図６および図７を参照して、受け付けたジョブが入力処理と出力処理とが並行して行なわれるものである場合（ステップＳ１３１でＮＯ、かつステップＳ１７１でＹＥＳ）、ＣＰＵ１０は入力バッファ１２１が実行中ジョブの処理用から解放されるのを待って（ステップＳ１７３でＹＥＳ）、入力バッファ１２１を受け付けたジョブ用に確保する（ステップＳ１７５）。また、ＣＰＵ１０は、出力バッファ１２２が実行中ジョブの処理用から解放されるのを待って（ステップＳ１７７でＹＥＳ）、出力バッファ１２２を受け付けたジョブ用に確保する（ステップＳ１７９）。そして、ＣＰＵ１０は、受け付けたジョブの処理を実行する（ステップＳ１１９）。
【００６７】
＜実施の形態の効果＞
本実施の形態にかかるＭＦＰ１００が以上のように動作することによって、二次記憶装置としてのＨＤＤ１３にデータを保存する処理を行なう場合に、当該ジョブが出力処理が入力処理の終了以前に開始するものでない場合には入力バッファ１２１と出力処理用の一次バッファである出力バッファ１２２とをトグルバッファとして用いる。これにより、ＭＦＰ１００は、入力処理の処理時間を短縮させて処理全体の時間を短縮し、処理パフォーマンスを向上させることができる。
【００６８】
さらに、ＭＦＰ１００は、次ジョブの種類に応じて実行中ジョブの入力処理に用いていた出力バッファ１２２を実行中ジョブから解放することで、次ジョブの処理開始を早めることができる。これにより、ＭＦＰ１００は全体として処理時間を短縮することができ、処理パフォーマンスを向上させることができる。
【００６９】
＜他の例＞
さらに、上述の処理をＭＦＰ１００のＣＰＵ１０に実行させるためのプログラムを提供することもできる。このようなプログラムは、コンピューターに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピューター読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピューターに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００７０】
このようなプログラムを提供することによって、ＨＤＤやＳＳＤなどの大容量記憶装置を二次記憶装置として搭載している汎用のＭＦＰに上記の処理を実行させ、ＭＦＰ１００として機能させることができる。
【００７１】
なお、本発明にかかるプログラムは、コンピューターのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【００７２】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【００７３】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００７４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７５】
１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  ＨＤＤ、１４  スキャナー部、１５  プリンター部、１６  ＦＡＸ部、１７  操作パネル、１８  通信部、１００  ＭＦＰ、１０１  画像入力部、１０２  判断部、１０３  メモリ制御部、１０４  入力処理部、１０５  出力処理部、１０６  符号化処理部、１０７  画像出力部、１２１  入力バッファ、１２２  出力バッファ、１３１  画像記憶部。
【図１】
2015179949.tif 000003
【図２】
2015179949.tif 000004
【図３】
2015179949.tif 000005
【図４】
2015179949.tif 000006
【図５】
2015179949.tif 000007
【図６】
2015179949.tif 000008
【図７】
2015179949.tif 000009