以下、本発明の実施の形態について図面を参照しながら詳述する。まず、本発明の第1の実施の形態に係る複合機について説明する。
図1は、本発明の実施の形態に係る複合機としてのMFP100の構成を概略的に示すブロック図である。
図1において、MFP100は、制御部101、蓄積メモリ105、操作部109、スキャナ部114、及びプリンタ部115を備える。制御部101は、蓄積メモリ105、操作部109、スキャナ部114(読取部)、及びプリンタ部115と接続されている。また、制御部101は、CPU102、ROM103、RAM104、LANI/F部106、回線I/F部107、操作部制御部108、IO制御部110、画像処理部113、及び送受信制御部116を備える。CPU102、ROM103、RAM104、LANI/F部106、回線I/F部107、操作部制御部108、IO制御部110、及び送受信制御部116は、システムバス111を介して互いに接続されている。画像処理部113は、画像バス112(データバス)を介してIO制御部110と接続されている。
制御部101は、MFP100の全体を統括的に制御する。CPU102は、ROM103や蓄積メモリ105に格納されたプログラムを実行してMFP100のソフトウェアモジュール(不図示)に各処理を実行させる。ROM103は、システムのブートプログラム等を記憶する。RAM104は、CPU102がMFP100のソフトウェアモジュール(不図示)を実行するためのシステムワークメモリエリアである。また、RAM104は、画像データを処理する際に当該画像データを一時的に記憶するための画像メモリである。蓄積メモリ105は、HDD(ハードディスク)やSSD(SolidStateDrive)で構成され、内部ストレージとして使用される。蓄積メモリ105には、例えば、MFP100の各機能を実現するためのシステムソフトウェアモジュールや、RAM104から転送された画像データが記憶される。
LANI/F部106は、MFP100をLANに接続するためのI/Fである。LANI/F部106は、LANに接続された外部装置とデータ通信を行う。回線I/F部107は、MFP100をWANに接続するためのI/Fである。回線I/F部107は、WANに接続された外部装置とデータ通信を行う。送受信制御部116は、蓄積メモリ105から読み出した画像データをLANI/F部106や回線I/F部107を介して外部装置へ送信する制御を行う。また、送受信制御部116は、LANI/F部106や回線I/F部107を介して受信したデータを蓄積メモリ105に保存する制御を行う。操作部制御部108は、制御部101及び操作部109のI/Fである。例えば、操作部制御部108は、VGA信号を操作部109に出力し、該VGA信号に対応する画像を操作部109に表示させる。また、操作部制御部108は、ユーザが操作部109で入力した情報をCPU102に出力する。操作部109は、LCDタッチパネル等で構成される。操作部109は、操作部制御部108から出力されるVGA信号を解釈して該VGA信号に対応する画像を表示する。
IO制御部110は、システムバス111と画像バス112とを接続し、システムバス111のデータ構造を変換するバスブリッジである。画像バス112は、PCIバス、IEEE1394、及びPCIEx等の汎用バスで構成され、画像データを高速で転送する。画像バス112には、IO制御部110及び画像処理部113の他に、スキャナ部114及びプリンタ部115が接続されている。画像バス112は、画像データの同期系/非同期系の変換を行う。画像処理部113は、後述する図7に示すように、複数のASICで構成される。画像処理部113は、画像データに対し、解像度変換処理、圧縮処理、伸張処理、及び2値多値変換処理等を施す。スキャナ部114は、図2のDF(DocumentFeeder)部200及び図3のスキャナ制御ユニット300(読取制御部)を備える。スキャナ部114は、原稿を読み取って画像データを生成する。プリンタ部115は、スキャナ部114が生成した画像データを印刷する。
図2は、図1のスキャナ部114におけるDF部200の内部構造を示す側面図である。なお、図2では、理解を容易にするために内部の構成が透過して示される。
DF部200には、原稿を載置するための原稿トレイ201が設けられている。原稿トレイ201には、ドキュメントセンサ202、2つの原稿ガイド203、及び原稿サイズ検知センサ204が設けられている。ドキュメントセンサ202は、原稿が原稿トレイ201に載置されているか否かを検知する。2つの原稿ガイド203は、原稿の搬送方向に直交する方向において対向するように配置されている。原稿トレイ201に載置された原稿は、ピックアップローラ205、搬送ローラ207、及び排紙ローラ208によって搬送される。ピックアップローラ205は、原稿トレイ201に載置された原稿をDF部200の原稿搬送路(不図示)へ搬送する。ピックアップローラ205によって搬送された原稿は、原稿通過検知センサ206によって検出される。DF部200では、原稿通過検知センサ206が検出した時間に基づいて1枚目の原稿が通過したか否かが判別される。搬送ローラ207は、ピックアップローラ205によって原稿搬送路に搬送された原稿を排紙ローラ208へ搬送する。排紙ローラ208は、搬送ローラ207によって搬送された原稿を排紙トレイ209に搬送する。なお、ピックアップローラ205、搬送ローラ207、及び排紙ローラ208は、ステッピングモータ(不図示)によって駆動される。
上記原稿搬送路に搬送された原稿は、当該原稿搬送路に設けられる透明なDF読み取り窓210を通過した際にセンサユニット211によって読み取られる。センサユニット211は、CIS212を備え、上記原稿搬送路に搬送された原稿をDF読み取り窓210を通して読み取り可能な位置に配置される。センサユニット211は、副走査方向に自由に移動可能である。例えば、センサユニット211は、搬送ローラ207から排紙ローラ208へ搬送された原稿の搬送方向と同じ方向に移動する。なお、DF読み取り窓210は、副走査方向に或る程度の長さを有する。CIS212は、その長さの範囲内で任意の位置に移動し、移動した位置で原稿を読み取ることができる。CIS212は、複数の光電変換素子、例えば、CCD素子で構成される。CIS212では、CCD素子が一列に配列されている。CIS212は、各CCD素子で読み取った画素データを蓄積するためのFIFO等を制御するための制御信号を生成する。
図3は、図1のスキャナ部114におけるスキャナ制御ユニット300の構成を概略的に示すブロック図である。
図3において、スキャナ制御ユニット300は、CPU301、ROM302、CLK制御部303、モータコントローラ304、CCD制御部306、及びRAM307を備える。
スキャナ制御ユニット300は、ROM302に記憶されたスキャナ部制御アプリケーションプログラム(不図示)をCPU301に実行させることによってスキャナ部114の動作を制御する。スキャナ部制御アプリケーションプログラムは、スキャナ制御ユニット300を制御するスキャナ部制御アプリケーション(不図示)を起動するためのプログラムである。なお、本実施の形態では、CPU301がスキャナ部制御アプリケーションプログラムを実行する場合について説明するが、スキャナ部制御アプリケーションプログラムを実行するデバイスはCPU301に限られない。例えば、制御部101のCPU102がスキャナ部制御アプリケーションプログラムを実行することによってスキャナ部114の動作を制御しても良い。
CLK制御部303は、スキャナ制御ユニット300を構成する各デバイスにクロックを提供する。クロックは、後述する画像転送クロックを含む。CLK制御部303は、クロックを生成する水晶振動子(不図示)及びPLL(不図示)で構成される。PLLは、水晶振動子が生成したクロックを逓倍又は分周する。ユーザからスキャンの実行指示を受け付けると、スキャナ部114では、CLK制御部303が、モータコントローラ304、CCD制御部306、及びRAM307にクロックを出力する。例えば、モータコントローラ304は、CLK制御部303から受けたクロックに基づいてローラ305を回転させるモータ(不図示)の制御クロックを生成する。スキャンの実行指示には、カラー/モノクロ区別や解像度等の情報が含まれ、スキャナ部制御アプリケーションは、指示の内容に基づいてCLK制御部303のPLLの設定を変更する。CLK制御部303は、出力するクロックの周波数をPLLの設定に基づいて制御する。これにより、スキャナ部114の読み取り速度が変更される。RAM307は、CIS212が読み取った原稿の画像データを蓄積する。RAM307の容量は、A4サイズで4枚分の画像データのみを記憶可能な程度である。
スキャナ制御ユニット300は、図4(a)の読み出しクロック401及び図4(b)の転送イネーブルクロック402に基づいてCIS212による画像の読み出し制御を行う。読み出しクロック401は、画像データを構成する画素データを各CCD素子から読み出すためのクロック信号である。転送イネーブルクロック402は、画像転送クロックである。画像転送クロックは、読み出した画素データを制御部101へ転送するか否かを制御するためのクロック信号である。スキャナ制御ユニット300は、読み出しクロック401の立ち上がり時に、各CCD素子から画素データを読み出す。各CCD素子から読み出された画素データは、RAM307に蓄積される。また、スキャナ制御ユニット300は、図4(a)の水平同期信号403に基づいて制御された転送イネーブルクロック402の立ち上がりに同期して、RAM307に蓄積された画素データを制御部101に転送する。水平同期信号403は、CCD1ラインの取り込み開始を制御するクロック信号である。
また、スキャナ制御ユニット300は、水平同期信号403に同期して、スキャナ部114に設けられるピックアップローラ205を駆動するPWM信号を生成する。MFP100では、高速読み取りを行う場合、水平同期信号403の周期を短くする。これにより、ピックアップローラ205の回転速度が相対的に上がり、原稿搬送が早くなり、原稿1枚当たりの読み取り速度が上がる。また、原稿の読み取り速度に合わせて、CCD素子からの読み出しを短時間で行うために、スキャナ制御ユニット300は、読み出しクロック401の周波数を上げる。スキャナ制御ユニット300は、読み出しクロック401の周期に合わせてRAM307への画素データを蓄積する。また、スキャナ制御ユニット300は、読み出しクロック401の周波数の制御に対応して転送イネーブルクロック402の周波数を上げ、RAM307から制御部101への画素データの転送を短時間で行う。
図5は、図1のMFP100によって実行される画像の読み取り動作に関するシーケンス図である。図5の読み取り動作は、スキャナ部114を制御する上記スキャナ部制御アプリケーション及び制御部101を制御するジョブ制御アプリケーション(不図示)によって実行される。
図5において、スキャナ部114は、制御部101から読み取り開始要求を受け付けると(ステップS501)、読み出しクロック401に基づいてNページ目の原稿を読み取る(ステップS502)。各CCD素子によって読み取られた複数の画素データで構成されるNページ目の画像データは、RAM307に記憶される。Nページ目の原稿の読み取りを完了すると、スキャナ部114は、次のページ(N+1ページ目)の原稿を読み取る(ステップS503)。
一方、スキャナ部114は、制御部101からNページ目の画像データの転送要求を受け付けると(ステップS504)、転送イネーブルクロック402に基づいてNページ目の画像データを制御部101へ転送する(ステップS505)。制御部101への転送が完了した画像データは、RAM307から削除される。なお、MFP100では、図6に示すように、RAM307に4ページを超える画像データを記憶することができないので、RAM307の記憶領域を使い切る前に、RAM307に記憶された画像データが制御部101へ転送されるように制御される。
図7は、図1の画像処理部113の構成を説明するためのブロック図である。図7において、画像処理部113は、画像データに対し、解像度変換、圧縮伸張、画像合成、2値多値変換、多値2値変換、画像フォーマット変換、レンダリング等の変換処理を施す複数のASIC701~705を備える。各ASIC701~705は、RAM104を共有し、画像バス112を介してデータの入出力を行う。なお、本実施の形態におけるスキャン画像処理、プリント画像処理、Rip画像処理、Imaging画像処理、Send画像処理、及びFax画像処理では、上述した変換処理の少なくとも1つが実行される。例えば、スキャン画像処理では、画像データに対して、解像度変換、圧縮、画像フォーマット変換が行われ、画像データが所望のサイズ且つ所望のファイル形式の画像データに変換される。プリント画像処理では、画像データに対して、印刷処理を実施するための変換、具体的に、画像の伸張や画像合成が行われる。Rip画像処理では、画像データを用いてレンダリングや画像フォーマット変換が行われ、印刷用の画像データが生成される。Imaging画像処理では、画像データに対して、画像の伸張、2値多値変換、画像フォーマット変換、画像の圧縮が行われ、印刷用の画像データだけでなくEmailへの添付やFTPへの送信に適した画像データが生成される。Send画像処理では、画像データに対し、画像フォーマット変換が行われ、例えば、蓄積メモリ105に保存された画像データがJPEGやPDF等のファイル形式に変換される。Fax画像処理では、多値2値変換等が行われ、FAX送信用の画像データが生成される。
画像処理部113は、各ASIC701~705により複数の画像処理を並列で実行可能である。例えば、ASIC701によるスキャン画像処理が、ASIC702によるプリント画像処理と並列で実行される。このとき、各画像処理において画像バス112を介してデータ転送が行われるので、画像バス112が混み合う。ここで、例えば、スキャン画像処理において、スキャナ部114が高速読み取りを行った場合、画像バス112における単位時間当たりのデータ転送量が膨大となり、画像バス112の転送可能上限値を超えてしまう。画像バスのデータ転送量が転送可能上限値を超えると、画像バス112を介したデータ転送が実施できなくなり、各画像処理の実行が停止する。これに対応して、従来では、例えば、スキャナ部114の読み取り速度を落として、画像バス112における単位時間当たりのデータ転送量を制御していた。しかし、このような方法では、ASIC702による画像処理を並列で実行するために、スキャナ部114の読み取り速度を落とすので、MFP100が、ユーザに設定された高速読み取りに相当する性能を発揮することができない。その結果、スキャナ部114による読み取りを完了するまでのユーザの待ち時間が増えてしまう。
これに対して、本実施の形態では、スキャン画像処理が単独で実行される場合、転送イネーブルクロック402の周波数を所定の周波数に設定する。また、スキャン画像処理が他の画像処理と並列で実行される場合、転送イネーブルクロック402の周波数を所定の周波数より低い周波数に設定する。
図8は、図1のMFP100によって実行されるコピージョブ実行処理の手順を示すフローチャートである。図8の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。
図8において、まず、CPU102は、操作部109にてコピージョブの実行指示を受け付けると(ステップS801)、後述する図9のスキャン制御処理を実行する(ステップS802)。また、CPU102は、ステップS802と並列で後述する図10のプリント制御処理を実行する(ステップS803)。ステップS801で受け付けたコピージョブが複数ページの原稿をコピーするジョブである場合、CPU102は、1ページ毎にステップS802,S803の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS804)。
ステップS804の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS802の処理に戻る。ステップS804の判別の結果、DF部200に原稿が残っていないとき、CPU102は、全ページの印刷を完了したか否かを判別する(ステップS805)。
ステップS805の判別の結果、何れかのページの印刷を完了しないとき、CPU102は、ステップS803の処理に戻る。ステップS805の判別の結果、全ページの印刷を完了したとき、CPU102は、本処理を終了する。
図9は、図8のステップS802のスキャン制御処理の手順を示すフローチャートである。
図9において、CPU102は、操作部109で設定されたコピージョブにおけるスキャン設定を取得する(ステップS901)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得したスキャン設定に従ったスキャン画像処理を実行するためのASICを決定し、当該ASICにスキャン設定を設定する(ステップS902)。次いで、CPU102は、決定したASIC以外のASICによる他の画像処理が実行中又は待機中であるか否かを判別する(ステップS903)。他の画像処理は、実行指示を受け付けたジョブにおいて並列で実行される画像処理、例えば、コピージョブにおいて並列で実行されるプリント画像処理である。
ステップS903の判別の結果、他の画像処理が実行中及び待機中の何れでもないとき、CPU102は、スキャナ部114に単独転送クロックモードで動作するように通知する(ステップS904)。単独転送クロックモードでは、CLK制御部303が転送イネーブルクロック402の周波数を所定の周波数に設定し、スキャナ部114は、当該転送イネーブルクロック402で画像データを制御部101に転送する。次いで、CPU102は、後述するステップS906以降の処理を行う。
ステップS903の判別の結果、他の画像処理が実行中又は待機中であるとき、CPU102は、スキャナ部114に並列転送クロックモードで動作するように通知する(ステップS905)。並列転送クロックモードでは、CLK制御部303が転送イネーブルクロック402の周波数を所定の周波数より低い周波数に設定し、スキャナ部114は、当該転送イネーブルクロック402で画像データを制御部101に転送する。これにより、スキャン画像処理において、単位時間当たりの画像データのパルス信号の数が減り、画像バス112を経由した単位時間当たりのデータ転送量が抑制される。次いで、CPU102は、スキャナ部114から画像データを受信し(ステップS906)、受信した画像データに対して、スキャン設定が設定されたASICによるスキャン画像処理を施す(ステップS907)。次いで、CPU102は、スキャン画像処理を施した画像データをRAM104に保存し(ステップS908)、本処理を終了する。
図10は、図8のステップS803のプリント制御処理の手順を示すフローチャートである。
図10において、CPU102は、操作部109で設定されたコピージョブの印刷設定を取得する(ステップS1001)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した印刷設定に対応するプリント画像処理を実行するためのASICを決定し、当該ASICに印刷設定を設定する(ステップS1002)。次いで、CPU102は、スキャン画像処理を実行中であるか否かを判別する(ステップS1003)。
ステップS1003の判別の結果、スキャン画像処理を実行中でないとき、CPU102は、RAM104に保存された画像データに対し、印刷設定が設定されたASICによるプリント画像処理を施す(ステップS1004)。次いで、CPU102は、プリント画像処理を施した画像データをプリンタ部115へ出力する(ステップS1005)。プリンタ部115は、取得した画像データを用紙に印刷する。次いで、CPU102は、本処理を終了する。
ステップS1003の判別の結果、スキャン画像処理を実行中であるとき、CPU102はスキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したかを判別する(ステップS1006)。
ステップS1006の判別の結果、スキャナ部114が並列転送クロックモードで動作しておらず、且つスキャン画像処理を終了していないとき、CPU102は、図9のスキャン制御処理を実行する(ステップS1007)。ステップS1007の処理を終了すると、CPU102は、ステップS1006の処理に戻る。
ステップS1006の判別の結果、スキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したとき、CPU102は、ステップS1004以降の処理を行う。
図11(a)は、図1のMFP100によって実行されるSENDジョブ実行処理の手順を示すフローチャートである。SENDジョブ実行処理も、上述したコピージョブ実行処理と同様に、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。
図11(a)において、CPU102は、操作部109にてSENDジョブの実行指示を受け付けると(ステップS1101)、SENDジョブの実行に必要となるSEND設定に基づいて上述したスキャン制御処理を実行する(ステップS1102)。なお、本実施の形態では、ユーザがSENDジョブの実行を指示する際にSEND設定を操作部109に入力する。また、CPU102は、ステップS1102と並列で、上記SEND設定に基づいて図11(b)のImaging制御処理を実行する(ステップS1103)。ステップS1101で受け付けたSENDジョブが複数ページの原稿の読み取りを伴うジョブである場合、CPU102は、1ページ毎にステップS1102,S1103の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1104)。
ステップS1104の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1102の処理に戻る。ステップS1104の判別の結果、DF部200に原稿が残っていないとき、CPU102は、全ページの画像データの変換を完了したか否かを判別する(ステップS1105)。
ステップS1105の判別の結果、何れかのページの画像データの変換を完了しないとき、CPU102は、ステップS1103の処理に戻る。ステップS1105の判別の結果、全ページの画像データの変換を完了したとき、CPU102は、送受信制御部116に送信指示を行う(ステップS1106)。送信指示を受けた送受信制御部116は、変換済みの画像データを外部装置へ送信する。次いで、CPU102は、本処理を終了する。
図11(b)は、図11(a)のステップS1103のImaging制御処理の手順を示すフローチャートである。
図11(b)において、CPU102は、操作部109にて入力されたSEND設定における画像変換設定を取得する(ステップS1107)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した画像変換設定に従ったImaging画像処理を実行するためのASICを決定し、当該ASICに画像変換設定を設定する(ステップS1108)。次いで、CPU102は、スキャン画像処理を実行中であるか否かを判別する(ステップS1109)。
ステップS1109の判別の結果、スキャン画像処理を実行中でないとき、CPU102は、RAM104に保存された画像データに対して、Imaging画像処理を実行する(ステップS1110)。次いで、CPU102は、画像処理済みの画像データを蓄積メモリ105に保存し(ステップS1111)、本処理を終了する。
ステップS1109の判別の結果、スキャン画像処理を実行中であるとき、CPU102は、スキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したかを判別する(ステップS1112)。
ステップS1112の判別の結果、スキャナ部114が並列転送クロックモードで動作しておらず、且つスキャン画像処理を終了していないとき、CPU102は、上述したスキャン制御処理を実行する(ステップS1113)。ステップS1113の処理を終了すると、CPU102は、ステップS1112の処理に戻る。
ステップS1113の判別の結果、スキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したとき、CPU102は、ステップS1110以降の処理を行う。
図12(a)は、図1のMFP100によって実行されるFAX送信ジョブ実行処理の手順を示すフローチャートである。FAX送信ジョブ実行処理も、上述したコピージョブ実行処理と同様に、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。
図12(a)において、CPU102は、操作部109にてFAX送信ジョブの実行指示を受け付けると(ステップS1201)、FAX送信ジョブの実行に必要となるFAX送信設定に基づいて上述したスキャン制御処理を実行する(ステップS1202)。なお、本実施の形態では、ユーザがFAX送信ジョブの実行を指示する際にFAX送信設定を操作部109に入力する。また、CPU102は、ステップS1202と並列で、上記FAX送信設定に基づいて後述する図12(b)のFax送信制御処理を実行する(ステップS1203)。ステップS1201で受け付けたFAX送信ジョブが複数ページの原稿をFAX送信するジョブである場合、CPU102は、1ページ毎にステップS1202,S1203の処理を行う。次いで、CPU102は、送受信制御部116にFAX送信指示を行う(ステップS1204)。FAX送信指示を受けた送受信制御部116は、Fax画像処理を完了した画像データを外部装置へFAX送信する。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1205)。
ステップS1205の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1202の処理に戻る。ステップS1205の判別の結果、DF部200に原稿が残っていないとき、CPU102は、全ページの画像処理を完了したか否かを判別する(ステップS1206)。
ステップS1206の判別の結果、何れかのページの画像処理を完了しないとき、CPU102は、ステップS1203の処理に戻る。ステップS1206の判別の結果、全ページの画像処理を完了したとき、CPU102は、本処理を終了する。
図12(b)は、図12(a)のステップS1203のFax送信制御処理の手順を示すフローチャートである。
図12(b)において、CPU102は、操作部109にて入力されたFAX送信設定における画像変換設定を取得する(ステップS1207)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した画像変換設定に従ったFax画像処理を実行するためのASICを決定し、当該ASICに画像変換設定を設定する(ステップS1208)。次いで、CPU102は、スキャン画像処理を実行中であるか否かを判別する(ステップS1209)。
ステップS1209の判別の結果、スキャン画像処理を実行中でないとき、CPU102は、RAM104に保存された画像データに対して、Fax画像処理を実行する(ステップS1210)。次いで、CPU102は、画像処理済みの画像データを蓄積メモリ105に保存し(ステップS1211)、本処理を終了する。
ステップS1209の判別の結果、スキャン画像処理を実行中であるとき、CPU102は、スキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したかを判別する(ステップS1212)。
ステップS1212の判別の結果、スキャナ部114が並列転送クロックモードで動作しておらず、且つスキャン画像処理を終了していないとき、CPU102は、上述したスキャン制御処理を実行する(ステップS1213)。ステップS1213の処理を終了すると、CPU102は、ステップS1212の処理に戻る。
ステップS1213の判別の結果、スキャナ部114が並列転送クロックモードで動作している又はスキャン画像処理を終了したとき、CPU102は、ステップS1210以降の処理を行う。
上述した図8~図12の処理では、スキャン画像処理が単独で実行される場合、転送イネーブルクロック402の周波数が所定の周波数に設定される。また、スキャン画像処理が他の画像処理と並列で実行される場合、転送イネーブルクロック402の周波数が所定の周波数より低い周波数に設定される。これにより、スキャン画像処理を他の画像処理と並列で実行する際に、スキャナ部114の読み取り速度の制御以外の方法で、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように制御することができる。その結果、スキャナ部114の読み取り速度を落とすことなく、他の画像処理を並列で実行することができる。
次に、複数のジョブ間で画像処理が並列動作(並行して実行)する際の制御について説明する。
図13は、複数のジョブ間で画像処理が並列動作する際の制御を説明するための表である。図13(a)は、ジョブの種別毎の画像処理の構成を示す表である。図13(b)は、複数のジョブ間で画像処理が並列動作するケースを示す表である。
本実施の形態では、ジョブの一例として、コピージョブ、SENDジョブ、FAX送信ジョブ、PDLジョブ、BOXジョブ、PULLSCANジョブについて説明する。なお、ここで述べるコピージョブは、スキャナ部114が読み取った原稿をプリンタ部115が複製して出力するジョブである。SENDジョブは、スキャナ部114が読み取った原稿の画像データに対して画像処理部113が画像変換を施し、送受信制御部116が変換済みの画像データを外部装置へEmail送信又はFTPを用いた送信を行うジョブである。FAX送信ジョブは、スキャナ部114が読み取った原稿の画像データに対して画像処理部113が画像変換を施し、送受信制御部116が変換済みの画像データをFAX送信するジョブである。PDLジョブは、送受信制御部116を介して受信した印刷データに基づいて画像処理部113がレンダリングを行って画像データを生成し、プリンタ部115が当該画像データを印刷するジョブである。BOXジョブは、スキャナ部114が読み取った原稿の画像データを蓄積メモリ105に保存するジョブである。PULLSCANジョブは、送受信制御部116を介してPCから受け付けた指示に従って、スキャナ部114が原稿を読み取って生成した画像データを蓄積メモリ105に保存し、送受信制御部116が上記画像データを上記PCへ送信するジョブである。
上述した各ジョブは、図13(a)に示すように、上述した複数の画像処理の少なくとも1つで構成される。このため、複数のジョブが投入された場合には、図13(b)に示すように、複数のジョブ間で画像処理が並列動作することとなる。
例えば、コピージョブは、スキャン画像処理(図13(a)では「Scan」と表す。)とプリント画像処理(図13(a)では「Print」と表す。)で構成される。BOXジョブは、スキャン画像処理で構成される。このようなコピージョブ及びBOXジョブが投入された場合、MFP100は、スキャン画像処理を実行するスキャナ部114を1つしか備えていないため、スキャン画像処理を並列動作できない。このため、例えば、コピージョブのスキャン画像処理を先行して実行した場合には、BOXジョブのスキャン画像処理は実行されずに待機状態となる。コピージョブにおいて、スキャン画像処理が完了してプリント画像処理が開始されると、BOXジョブにおけるスキャン画像処理が開始される。
一方、BOXジョブのスキャン画像処理を先行して実行した場合には、コピージョブのスキャン画像処理は実行されずに待機状態となる。BOXジョブにおけるスキャン画像処理が完了すると、コピージョブにおけるスキャン画像処理が開始される。しかし、この時点でBOXジョブは全ての処理を終了しているので、コピージョブとBOXジョブが並列動作することは無い。上述したように、本実施の形態では、コピージョブが先行投入された場合にはBOXジョブが並列動作するが、BOXジョブが先行投入された場合にはコピージョブが並列動作することは無い。図13(b)では、先行投入されたジョブ(以下、「先行ジョブ」という。)と後続投入されたジョブ(以下、「後続ジョブ」という。)が並列動作する組み合わせには「〇」が記され、並列動作しない組み合わせには「×」が記されている。
次に、図13(b)の表において2つのジョブが並列動作する場合の制御について説明する。
図14(a)は、BOXジョブが投入された場合にMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図14(a)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。なお、図14(a)の処理は、コピージョブ又はPDLジョブが先行で動作していることを前提とする。
図14(a)において、CPU102は、操作部109にてBOXジョブの実行指示を受け付けると(ステップS1401)、他のジョブのスキャン画像処理を実行しているか否かを判別する(ステップS1402)。
ステップS1402の判別の結果、他のジョブのスキャン画像処理を実行しているとき、CPU102は、他のジョブのスキャン画像処理の実行を優先させ、他のジョブのスキャン画像処理を終了するまで待機する(ステップS1403)。
他のジョブのスキャン画像処理を終了したとき(ステップS1403でYES)、又はステップS1402の判別の結果、他のジョブのスキャン画像処理を実行していないとき、CPU102は、ステップS1404の処理を行う。ステップS1404では、CPU102は、BOXジョブの実行に必要となるBOX設定に基づいて上述したスキャン制御処理を実行する。ステップS1401で受け付けたBOXジョブが複数ページの原稿の読み取りを伴うジョブである場合、CPU102は、1ページ毎にステップS1404の処理を行う。なお、本実施の形態では、ユーザがBOXジョブの実行を指示する際にBOX設定を操作部109に入力する。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1405)。
ステップS1405の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1404の処理に戻る。ステップS1405の判別の結果、DF部200に原稿が残っていないとき、CPU102は、本処理を終了する。
図14(b)は、PULLSCANジョブが投入された場合にMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図14(b)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。なお、図14(b)の処理は、コピージョブ又はPDLジョブが先行で動作していることを前提とする。
図14(b)において、CPU102は、送受信制御部116によって外部装置からPULLSCANジョブの実行指示を受け付けると(ステップS1406)、他のジョブのスキャン画像処理を実行しているか否かを判別する(ステップS1407)。
ステップS1407の判別の結果、他のジョブのスキャン画像処理を実行しているとき、CPU102は、他のジョブのスキャン画像処理の実行を優先させ、他のジョブのスキャン画像処理を終了するまで待機する(ステップS1408)。
他のジョブのスキャン画像処理を終了したとき(ステップS1408でYES)、又はステップS1407の判別の結果、他のジョブのスキャン画像処理を実行していないとき、CPU102は、ステップS1409の処理を行う。ステップS1409では、CPU102は、送受信制御部116によって外部装置から取得したPULLSCAN設定に基づいて上述したスキャン制御処理を実行する。ステップS1406で受け付けたPULLSCANジョブが複数ページの原稿の読み取りを伴うジョブである場合、CPU102は、1ページ毎にステップS1409の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1410)。
ステップS1410の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1409の処理に戻る。ステップS1410の判別の結果、DF部200に原稿が残っていないとき、CPU102は、送受信制御部116に送信指示を行う(ステップS1411)。送信指示を受けた送受信制御部116は、変換済みの画像データを外部装置へ送信する。次いで、CPU102は、本処理を終了する。
図15は、SENDジョブが投入された場合にMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図15の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。なお、図15の処理は、コピージョブ又はPDLジョブが先行で動作していることを前提とする。
図15において、CPU102は、操作部109においてSENDジョブの実行指示を受け付けると(ステップS1501)、他のジョブのスキャン画像処理を実行しているか否かを判別する(ステップS1502)。
ステップS1502の判別の結果、他のジョブのスキャン画像処理を実行しているとき、CPU102は、他のジョブのスキャン画像処理の実行を優先させ、他のジョブのスキャン画像処理を終了するまで待機する(ステップS1503)。
他のジョブのスキャン画像処理を終了したとき(ステップS1503でYES)、又はステップS1502の判別の結果、他のジョブのスキャン画像処理を実行していないとき、CPU102は、ステップS1504の処理を行う。ステップS1504では、CPU102は、操作部109にて入力されたSEND設定に基づいて上述したスキャン制御処理を実行する。ステップS1501で受け付けたSENDジョブが複数ページの原稿の読み取りを伴うジョブである場合、CPU102は、1ページ毎にステップS1504の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1505)。
ステップS1505の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1504の処理に戻る。ステップS1505の判別の結果、DF部200に原稿が残っていないとき、CPU102は、上述したImaging制御処理を実行する(ステップS1506)。次いで、CPU102は、送受信制御部116に送信指示を行い(ステップS1507)、本処理を終了する。
なお、本実施の形態では、コピージョブ又はPDLジョブが先行で動作し、後からFAX送信ジョブが投入された場合にも、上述した図15と同様の処理が行われる。具体的に、CPU102は、操作部109においてFAX送信ジョブの実行指示を受け付けると、ステップS1502の処理を行う。ステップS1502の判別の結果、他のジョブのスキャン画像処理を実行しているとき、CPU102は、ステップS1503以降の処理を行う。ステップS1502の判別の結果、他のジョブがスキャン画像処理を実行していないとき、CPU102は、操作部109にて入力されたFAX送信設定に基づいて上述したスキャン制御処理を実行し、ステップS1505の処理を行う。ステップS1505の判別の結果、DF部200に原稿が残っているとき、CPU102は、FAX送信設定に基づいてスキャン制御処理を実行する処理に戻る。ステップS1505の判別の結果、DF部200に原稿が残っていないとき、CPU102は、上述したFax送信制御処理を実行する。次いで、CPU102は、送受信制御部116にFAX送信指示を行い、本処理を終了する。
図16は、コピージョブが投入された場合にMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図16の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。なお、図16の処理は、PDLジョブが先行で動作していることを前提とする。
図16において、CPU102は、操作部109においてコピージョブの実行指示を受け付けると(ステップS1601)、操作部109に入力された設定に基づいて上述したスキャン制御処理を実行する(ステップS1602)。次いで、CPU102は、ステップS1601にて実行指示を受け付けたコピージョブにおけるプリント画像処理を実行しているか否かを判別する(ステップS1603)。
ステップS1603の判別の結果、上記コピージョブにおけるプリント画像処理を実行しているとき、CPU102は、後述するステップS1605の処理を行う。ステップS1603の判別の結果、上記コピージョブにおけるプリント画像処理を実行していないとき、CPU102は、他のジョブのプリント画像処理を実行するか否かを判別する(ステップS1604)。
ステップS1604の判別の結果、他のジョブのプリント画像処理を実行するとき、MFP100は、プリンタ部115を1つしか備えていないので、プリント画像処理を並列動作できない。このため、CPU102は、後述するステップS1606の処理を行う。
ステップS1604の判別の結果、他のジョブのプリント画像処理を実行しないとき、操作部109に入力された設定に基づいて上述したプリント制御処理を実行する(ステップS1605)。ステップS1601で受け付けたコピージョブが複数ページの原稿をコピーするジョブである場合、CPU102は、1ページ毎にステップS1602~S1605の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS1606)。
ステップS1606の判別の結果、DF部200に原稿が残っているとき、CPU102は、ステップS1602の処理に戻る。ステップS1606の判別の結果、DF部200に原稿が残っていないとき、CPU102は、全ページの印刷を完了したか否かを判別する(ステップS1607)。
ステップS1607の判別の結果、何れかのページの印刷を完了しないとき、CPU102は、ステップS1603の処理に戻る。ステップS1607の判別の結果、全ページの印刷を完了したとき、CPU102は、本処理を終了する。
図17(a)は、PDLジョブが投入された場合にMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図17(a)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。なお、図17(a)の処理は、コピージョブ、BOXジョブ、PULLSCANジョブ、SENDジョブ、FAXジョブの何れかが先行で動作していることを前提とする。
図17(a)において、CPU102は、送受信制御部116によって外部装置からPDLジョブの画像データや設定を受信すると(ステップS1701)、受信した画像データを蓄積メモリ105に格納する(ステップS1702)。次いで、CPU102は、受信した設定に基づいて図17(b)のRip制御処理を実行する(ステップS1703)。このとき、CPU102は、他のジョブのスキャン画像処理を実行している場合、当該他のジョブのスキャン画像処理の実行を優先させ、Rip制御処理の実行を待機させても良い。次いで、CPU102は、上記PDLジョブのプリント画像処理を実行しているか否かを判別する(ステップS1704)。
ステップS1704の判別の結果、上記PDLジョブのプリント画像処理を実行しているとき、CPU102は、後述するステップS1706の処理を行う。ステップS1704の判別の結果、PDLジョブにおけるプリント画像処理を実行していないとき、CPU102は、他のジョブのプリント画像処理を実行するか否かを判別する(ステップS1705)。
ステップS1705の判別の結果、他のジョブのプリント画像処理を実行するとき、MFP100は、プリンタ部115を1つしか備えていないので、プリント画像処理を並列動作できない。このため、CPU102は、後述するステップS1707の処理を行う。
ステップS1705の判別の結果、他のジョブのプリント画像処理を実行しないとき、CPU102は、受信した設定に基づいて上述したプリント制御処理を実行する(ステップS1706)。ステップS1701において複数の画像データを受信した場合、CPU102は、画像データ毎にステップS1703~S1706の処理を行う。次いで、CPU102は、ステップS1701にて受信した全ての画像データに対して画像処理を施したか否かを判別する(ステップS1707)。
ステップS1707の判別の結果、受信した何れかの画像データに対して画像処理を施していないとき、CPU102は、ステップS1703の処理に戻る。ステップS1707の判別の結果、受信した全ての画像データに対して画像処理を施したとき、CPU102は、ステップS1701にて受信した全ての画像データの印刷を完了したか否かを判別する(ステップS1708)。
ステップS1708の判別の結果、何れかの画像データの印刷を完了しないとき、CPU102は、ステップS1704の処理に戻る。ステップS1708の判別の結果、全ての画像データの印刷を完了したとき、CPU102は、本処理を終了する。
図17(b)は、図17(a)のステップS1703のスキャン制御処理の手順を示すフローチャートである。
図17(b)において、CPU102は、ステップ1701にて受信した設定のうちのレンダリング設定を取得する(ステップS1709)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得したレンダリング設定に従ったRip画像処理を実行するためのASICを決定し、当該ASICにレンダリング設定を設定する(ステップS1710)。次いで、CPU102は、他のジョブのスキャン画像処理を実行しているか否かを判別する(ステップS1711)。
ステップS1711の判別の結果、他のジョブのスキャン画像処理を実行しているとき、CPU102は、他のジョブのスキャン画像処理の実行を優先させ、他のジョブのスキャン画像処理の実行を終了するまで待機する(ステップS1712)。
他のジョブのスキャン画像処理の実行を終了したとき(ステップS1712でYES)、又はステップS1711の判別の結果、他のジョブのスキャン画像処理を実行していないとき、CPU102は、次のように制御する。すなわち、CPU102は、蓄積メモリ105に保存された画像データをRAM104に展開する(ステップS1713)。次いで、CPU102は、展開した画像データに対し、Rip画像処理を実行し(ステップS1714)、Rip画像処理済みの画像データを蓄積メモリ105に保存し(ステップS1715)、本処理を終了する。
上述した図14~図17の処理を行うことで、先行ジョブにおけるスキャナ部114の読み取り速度を落とすことなく、先行ジョブ及び後続ジョブを並列動作させることができる。
次に、本発明の第2の実施の形態に係る複合機について説明する。
第2の実施の形態は、その構成や作用が上述した第1の実施の形態と基本的に同じであり、転送クロックモードの切り替え制御に後述する読み取り関連設定を用いる点で上述した第1の実施の形態と異なる。したがって、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
図18(a)は、第2の実施の形態におけるMFP100によって実行されるスキャン制御処理の手順を示すフローチャートである。図18(a)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。
図18(a)において、CPU102は、操作部109で設定された読み取り関連設定を取得する(ステップS1801)。読み取り関連設定は、原稿の画像の読み取りに関連する設定であり、例えば、スキャン読み取り色の設定、スキャン読み取り面の設定、スキャン解像度の設定を含む。スキャン読み取り色の設定は、カラー読み取り及び白黒読み取りの何れかを示す値を含む。スキャン読み取り面の設定は、読み取り面が両面及び片面の何れであるかを示す値を含む。スキャン解像度の設定は、300×300dpi等の読み取り解像度を示す値を含む。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した読み取り関連設定に従ったスキャン画像処理を実行するためのASICを決定し、当該ASICに読み取り関連設定を設定する(ステップS1802)。次いで、CPU102は、決定したASIC以外のASICによる他の画像処理が実行中又は待機中であるか否かを判別する(ステップS1803)。他の画像処理は、例えば、プリント画像処理、Imaging画像処理、FAX送信画像処理、Rip画像処理である。
ステップS1803の判別の結果、他の画像処理が実行中及び待機中の何れでもないとき、CPU102は、スキャナ部114に単独転送クロックモードで動作するように通知する(ステップS1804)。次いで、CPU102は、後述するステップS1808の処理を行う。
ステップS1803の判別の結果、他の画像処理が実行中又は待機中であるとき、CPU102は、後述する図18(b)の切替要否判別処理を実行する(ステップS1805)。次いで、ステップS1805にて判別した結果に基づいて転送速度の切り替えの要否を判別する(ステップS1806)。
ステップS1806の判別の結果、転送速度の切り替えが不要であるとき、CPU102は、後述するステップS1808の処理を行う。これにより、CLK制御部303は、転送イネーブルクロック402の周波数を切り替えることなく、予め設定された周波数のまま維持し、スキャナ部114は、当該転送イネーブルクロック402で画像データを制御部101に転送する。予め設定された周波数は、例えば、転送イネーブルクロック402のデフォルトの周波数や、上述した所定の周波数である。
ステップS1806の判別の結果、転送速度の切り替えが必要であるとき、CPU102は、スキャナ部114に並列転送クロックモードで動作するように通知する(ステップS1807)。次いで、CPU102は、スキャナ部114から画像データを受信し(ステップS1808)、受信した画像データに対して、読み取り関連設定が設定されたASICによるスキャン画像処理を施す(ステップS1809)。次いで、CPU102は、スキャン画像処理を施した画像データを蓄積メモリ105に保存し(ステップS1810)、本処理を終了する。
図18(b)は、図18(a)におけるステップS1805の切替要否判別処理の手順を示すフローチャートである。
図18(b)において、CPU102は、ステップS1801にて取得した読み取り関連設定に基づいてスキャン読み取り色の設定がカラー読み取りであるか否かを判別する(ステップS1811)。
ステップS1811の判別の結果、スキャン読み取り色の設定がカラー読み取りであるとき、CPU102は、スキャン読み取り面の設定が両面であるか否かを判別する(ステップS1812)。
ステップS1812の判別の結果、スキャン読み取り面の設定が両面であるとき、CPU102は、スキャン解像度の設定が300×300dpiであるか否かを判別する(ステップS1813)。
ステップS1813の判別の結果、スキャン解像度の設定が300×300dpiであるとき、CPU102は、図19に示すように、転送速度の切り替えが必要であると判別する(ステップS1814)。ここで、読み取り関連設定が所定の設定である場合、画像バス112においてデータ量が比較的大きい高解像度且つカラーの画像データを両面分高速で転送することになる。所定の設定とは、具体的に、スキャン読み取り色の設定がカラー読み取り且つスキャン読み取り面の設定が両面且つスキャン解像度の設定が300×300dpiである。このような場合に、転送イネーブルクロック402の周波数を所定の周波数で動作させると、画像バス112における単位時間当たりのデータ転送量が転送可能上限値を超える懸念がある。これに対し、本実施の形態では、読み取り関連設定が上述した所定の設定である場合に、CPU102は、画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように転送速度を制御する。具体的に、CPU102は、転送イネーブルクロック402の周波数を所定の周波数より低い周波数に切り替える。次いで、CPU102は、本処理を終了する。
ステップS1811の判別の結果、スキャン読み取り色の設定がカラー読み取りでないとき、CPU102は、図19に示すように、転送速度の切り替えが不要であると判別する(ステップS1815)。又は、ステップS1812の判別の結果、スキャン読み取り面の設定が両面でないとき、CPU102は、図19に示すように、転送速度の切り替えが不要であると判別する(ステップS1815)。又は、ステップS1813の判別の結果、スキャン解像度の設定が300×300dpiでないとき、CPU102は、図19に示すように、転送速度の切り替えが不要であると判別する(ステップS1815)。次いで、CPU102は、本処理を終了する。
上述した第2の実施の形態によれば、他の画像処理が実行中及び待機中の何れでもない場合、スキャン画像処理における転送イネーブルクロック402の周波数が所定の周波数に設定される。他の画像処理が実行中又は待機中であり且つ読み取り関連設定が所定の設定である場合、スキャン画像処理における転送イネーブルクロック402の周波数が所定の周波数より遅い周波数に設定される。これにより、スキャン画像処理を他の画像処理と並列で実行する際に、スキャナ部114の読み取り速度の制御以外の方法で、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように制御することができる。その結果、スキャナ部114の読み取り速度を落とすことなく、他の画像処理を並列で実行することができる。
また、上述した第2の実施の形態では、読み取り関連設定は、読み取り色の設定、読み取り面の設定、及びスキャン解像度の設定を含む。これにより、画像バス112における単位時間当たりのデータ転送量が転送可能上限値を超える懸念がある設定を含むスキャン画像処理を、スキャナ部114の読み取り速度を落とすことなく、他の画像処理と並列で実行させることができる。
さらに、上述した第2の実施の形態では、他の画像処理は、プリント画像処理、Imaging画像処理、FAX送信画像処理、Rip画像処理の何れかである。これにより、スキャナ部114の読み取り速度を落とすことなく、スキャン画像処理と、上述した各画像処理を並列で実行させることができる。
次に、本発明の第3の実施の形態に係る複合機について説明する。
第3の実施の形態は、その構成や作用が上述した各実施の形態と基本的に同じであり、転送クロックモードの切り替え制御にジョブの種別を用いる点で上述した各実施の形態と異なる。したがって、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
図20(a)は、第3の実施の形態におけるMFP100によって実行されるスキャン制御処理の手順を示すフローチャートである。図20(a)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。図20(a)の処理は、ジョブの実行指示を受け付けた際に実行される。
図20(a)において、CPU102は、操作部109で設定された上記読み取り関連設定を取得する(ステップS2001)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した読み取り関連設定に従ったスキャン画像処理を実行するためのASICを決定し、当該ASICに読み取り関連設定を設定する(ステップS2002)。次いで、CPU102は、決定したASIC以外のASICによる他の画像処理が実行中又は待機中であるか否かを判別する(ステップS2003)。
ステップS2003の判別の結果、他の画像処理が実行中及び待機中の何れでもないとき、CPU102は、スキャナ部114に単独転送クロックモードで動作するように通知する(ステップS2004)。次いで、CPU102は、後述するステップS2010の処理を行う。
ステップS2003の判別の結果、他の画像処理が実行中又は待機中であるとき、CPU102は、後述する図20(b)の実行要否判別処理を実行する(ステップS2005)。次いで、ステップS2005にて判別した結果に基づいて切替要否判別処理の実行の要否を判別する(ステップS2006)。
ステップS2006の判別の結果、切替要否判別処理の実行が必要であるとき、CPU102は、上述した図18(b)の切替要否判別処理を実行する(ステップS2007)。次いで、CPU102は、ステップS2007にて判別した結果に基づいて転送速度の切り替えの要否を判別する(ステップS2008)。
ステップS2008の判別の結果、転送速度の切り替えが不要であるとき、又はステップS2006の判別の結果、切替要否判別処理の実行が不要であるとき、CPU102は、後述するステップS2010の処理を行う。これにより、CLK制御部303は、転送イネーブルクロック402の周波数を切り替えることなく、予め設定された周波数のまま維持し、スキャナ部114は、当該転送イネーブルクロック402で画像データを制御部101に転送する。予め設定された周波数は、例えば、転送イネーブルクロック402のデフォルトの周波数や、上述した所定の周波数である。
ステップS2008の判別の結果、転送速度の切り替えが必要であるとき、CPU102は、スキャナ部114に並列転送クロックモードで動作するように通知する(ステップS2009)。次いで、CPU102は、スキャナ部114から画像データを受信し(ステップS2010)、受信した画像データに対して、読み取り関連設定が設定されたASICによるスキャン画像処理を施す(ステップS2011)。次いで、CPU102は、スキャン画像処理を施した画像データを蓄積メモリ105に保存し(ステップS2012)、本処理を終了する。
図20(b)は、図20(a)におけるステップS2005の実行要否判別処理の手順を示すフローチャートである。
図20(b)において、CPU102は、受け付けたジョブの種別が、転送速度を切り替える可能性がない所定の種別(以下、「切替不要種別」という。)であるか否かを判別する(ステップS2013)。切替不要種別は、具体的に、図13(a)に示すジョブのうち、図21に示すように、コピージョブ、BOXジョブ、FAX送信ジョブである。本実施の形態において、コピージョブ、BOXジョブ、FAX送信ジョブでは、読み取り関連設定が上述した所定の設定に設定されることはない。このため、これらのジョブを構成する画像処理がスキャン画像処理と並列動作しても、画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えることは無い。一方、図13(a)に示すジョブのうち、SENDジョブ、PULLSCANジョブでは、読み取り関連設定が上述した所定の設定に設定されることがある。このため、これらのジョブを構成する画像処理がスキャン画像処理と並列動作すると、画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超える可能性がある。本実施の形態では、図13(a)に示すジョブのうち、スキャン画像処理と並列動作すると画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超える可能性があるジョブの種別に対してのみ、ステップS2007,S2008の処理が行われる。
ステップS2013の判別の結果、受け付けたジョブの種別が切替不要種別であるとき、CPU102は、切替要否判別処理の実行が不要であると判別し(ステップS2014)、本処理を終了する。
ステップS2013の判別の結果、受け付けたジョブの種別が切替不要種別でないとき、CPU102は、切替要否判別処理の実行が必要であると判別し(ステップS2015)、本処理を終了する。
上述した第3の実施の形態では、他の画像処理が実行中及び待機中の何れでもない場合、スキャン画像処理における転送イネーブルクロック402の周波数が所定の周波数に設定される。他の画像処理が実行中又は待機中であり且つ受け付けたジョブの種別が切替不要種別でなく且つ読み取り関連設定が所定の設定である場合、スキャン画像処理における転送イネーブルクロック402の周波数が所定の周波数より遅い周波数に設定される。これにより、スキャン画像処理を他の画像処理と並列で実行する際に、スキャナ部114の読み取り速度の制御以外の方法で、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように制御することができる。その結果、スキャナ部114の読み取り速度を落とすことなく、他の画像処理を並列で実行することができる。
また、上述した第3の実施の形態では、受け付けたジョブの種別が切替不要種別である場合、切替要否判別処理による判別が行われない。これにより、転送クロックモードの切り替え制御を必要としない場合における切替要否判別処理の実行を抑制することができ、もって、当該切替要否判別処理による処理負荷を軽減することができる。
次に、本発明の第4の実施の形態に係る複合機について説明する。
第4の実施の形態は、その構成や作用が上述した各実施の形態と基本的に同じであり、転送クロックモードの切り替え制御を、スキャン画像処理を施すページ単位ではなく、ジョブ単位で行う点で上述した各実施の形態と異なる。したがって、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
以下では、一例として、BOXジョブを受け付けた場合の処理について説明する。
図22(a)は、BOXジョブが投入された場合に第4の実施の形態におけるMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。図22(a)の処理は、CPU102がROM103等に記憶されたプログラムを実行することによって行われる。
図22(a)において、CPU102は、操作部109にてBOXジョブの実行指示を受け付けると(ステップS2201)、後述する図22(b)の転送クロックモード決定処理を実行する (ステップS2202)。次いで、CPU102は、設定されたBOX設定及びステップS2202の処理による決定に基づいて、後述する図23のスキャン制御処理を実行する(ステップS2203)。ステップS2201で受け付けたBOXジョブが複数ページの原稿を読み取るジョブである場合、CPU102は、1ページ毎にステップS2203の処理を行う。次いで、CPU102は、DF部200に原稿が残っているか否かを判別する(ステップS2204)。
ステップS2204の判別の結果、DF部200に原稿が残っていないとき、CPU102は、本処理を終了する。ステップS2204の判別の結果、DF部200に原稿が残っているとき、CPU102は、新たなジョブの実行指示を受け付けたか否かを判別する(ステップS2205)。
ステップS2205の判別の結果、新たなジョブの実行指示を受け付けたとき、CPU102は、ステップS2202の処理に戻る。ステップS2205の判別の結果、新たなジョブの実行指示を受け付けないとき、CPU102は、ステップS2203の処理に戻る。
図22(b)は、図22(a)のステップS2202の転送クロックモード決定処理の手順を示すフローチャートである。
図22(b)において、CPU102は、スキャン画像処理を伴う他のジョブが実行中又は待機中であるか否かを判別する(ステップS2206)。
ステップS2206の判別の結果、スキャン画像処理を伴う他のジョブが実行中及び待機中の何れでもないとき、CPU102は、単独転送クロックモードの使用を決定し(ステップS2207)、本処理を終了する。
ステップS2206の判別の結果、スキャン動作を伴う他のジョブが実行中又は待機中であるとき、CPU102は、並列転送クロックモードの使用を決定し(ステップS2208)、本処理を終了する。
図23は、図22(a)のステップS2203のスキャン制御処理の手順を示すフローチャートである。
図23において、CPU102は、操作部109で設定された上記読み取り関連設定を取得する(ステップS2301)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した読み取り関連設定に従ったスキャン画像処理を実行するためのASICを決定し、当該ASICに読み取り関連設定を設定する(ステップS2302)。次いで、CPU102は、上述した転送クロックモード決定処理による決定に基づいて転送クロックモードの切り替えの要否を判別する(ステップS2303)。ステップS2303では、例えば、上述した転送クロックモード決定処理によって決定された転送クロックモードが、既に設定されている転送クロックモードと同一である場合、CPU102は、転送クロックモードの切り替えが不要であると判別する。一方、上述した転送クロックモード決定処理によって決定された転送クロックモードが、既に設定されている転送クロックモードと異なる場合、CPU102は、転送クロックモードの切り替えが必要であると判別する。
ステップS2303の判別の結果、転送クロックモードの切り替えが不要であるとき、CPU102は、後述するステップS2305の処理を行う。ステップS2303の判別の結果、転送クロックモードの切り替えが必要であるとき、CPU102は、上述した図22(b)の転送クロックモード決定処理にて決定された転送クロックモードで動作するようにスキャナ部114へ通知する(ステップS2304)。次いで、CPU102は、スキャナ部114から画像データを受信し(ステップS2305)、受信した画像データに対して、読み取り関連設定が設定されたASICによるスキャン画像処理を施す(ステップS2306)。次いで、CPU102は、スキャン画像処理を施した画像データを蓄積メモリ105に保存し(ステップS2307)、本処理を終了する。
上述した第4の実施の形態では、転送クロックモードの切り替え制御が、ジョブ単位で行われる。すなわち、各ページのスキャン画像処理を実行する度に転送クロックモードの切り替え処理を行う必要がない。これにより、スキャン画像処理を伴うジョブを他の画像処理と並列で実行する際に、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように制御することができる。特に、スキャナ部114の読み取り速度の制御以外の方法であって転送クロックモードの切り替え処理の負荷を低減した方法で、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないようにすることができる。その結果、スキャナ部114の読み取り速度を落とすことなく、他の画像処理を並列で実行することができる。
次に、本発明の第5の実施の形態に係る複合機について説明する。
第5の実施の形態は、その構成や作用が上述した各実施の形態と基本的に同じであり、スキャン画像処理が当該スキャン画像処理以外の他の画像処理より先に実行される点で上述した各実施の形態と異なる。したがって、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。
以下では、スキャン画像処理を含まないジョブの一例として、Imaging画像処理及びPrint画像処理で構成されるFAX受信ジョブを受け付けた場合の処理について説明する。
図24は、FAX受信ジョブが投入された場合に第5の実施の形態におけるMFP100によって実行される並列動作制御処理の手順を示すフローチャートである。
図24において、送受信制御部116がFAX受信ジョブの画像データ及び設定を受信すると(ステップS2401)、CPU102は、ステップS2401にて受信した画像データを蓄積メモリ105に保存する(ステップS2402)。次いで、CPU102は、スキャン画像処理を伴うジョブが実行中又は待機中であるか否かを判別する(ステップS2403)。
ステップS2403の判別の結果、スキャン画像処理を伴うジョブが実行中又は待機中であるとき、CPU102は、後述する図25(a)の並列動作可否判別処理を実行する(ステップS2404)。次いで、CPU102は、並列動作可否判別処理によって判別した結果に基づいて、受け付けたFAX受信ジョブを実行中又は待機中のジョブと並列動作可能であるか否かを判別する(ステップS2405)。
ステップS2405の判別の結果、並列動作不可能であるとき、CPU102は、ステップS2404の処理に戻る。ステップS2405の判別の結果、並列動作可能であるとき、又はステップS2403の判別の結果、スキャン画像処理を伴うジョブが実行中及び待機中の何れでもないとき、CPU102は、ステップS2406の処理を行う。ステップS2406では、CPU102は、後述する図25(b)のImaging制御処理を実行し、画像データに対してImaging画像処理を施す。次いで、CPU102は、受け付けたFAX受信ジョブのプリント画像処理を実行しているか否かを判別する(ステップS2407)。
ステップS2407の判別の結果、受け付けたFAX受信ジョブのプリント画像処理を実行していないとき、CPU102は、他のジョブのプリント画像処理を実行するか否かを判別する(ステップS2408)。
ステップS2408の判別の結果、他のジョブのプリント画像処理を実行するとき、CPU102は、後述するステップS2410の処理を行う。ステップS2408の判別の結果、他のジョブのプリント画像処理を実行しないとき、又はステップS2407の判別の結果、受け付けたFAX受信ジョブのプリント画像処理を実行するとき、CPU102は、ステップS2409の処理を行う。ステップS2409では、CPU102は、後述する図25(c)のプリント制御処理を実行して、ステップS2401にて受信した画像データを印刷する。受け付けたFAX受信ジョブが複数ページの画像データを受信するジョブである場合、CPU102は、1ページ毎にステップS2406~S2409の処理を行う。次いで、CPU102は、処理対象となる全ての画像データを処理したか否かを判別する(ステップS2410)。
ステップS2410の判別の結果、処理対象となる何れかの画像データを処理しないとき、CPU102は、ステップS2406の処理に戻る。ステップS2410の判別の結果、処理対象となる全ての画像データを処理したとき、CPU102は、処理対象となる全ての画像データの印刷を完了したか否かを判別する(ステップS2411)。
ステップS2411の判別の結果、処理対象となる何れかの画像データの印刷を完了しないとき、CPU102は、ステップS2407の処理に戻る。ステップS2411の判別の結果、処理対象となる全ての画像データの印刷を完了したとき、CPU102は、本処理を終了する。
図25(a)は、図24のステップS2404の並列動作可否判別処理の手順を示すフローチャートである。
図25(a)において、CPU102は、スキャン画像処理を実行しているか否かを判別する(ステップS2501)。
ステップS2501の判別の結果、スキャン画像処理を実行しているとき、CPU102は、当該スキャン画像処理が並列転送クロックモードで実行されているか否かを判別する(ステップS2502)。
ステップS2502の判別の結果、上記スキャン画像処理が並列転送クロックモードで実行されていないとき、CPU102は、上記スキャン画像処理を終了したか否かを判別する(ステップS2503)。
ステップS2503の判別の結果、上記スキャン画像処理を終了しないとき、CPU102は、並列動作不可能であると判別し(ステップS2504)、本処理を終了する。
ステップS2503の判別の結果、上記スキャン画像処理を終了したとき、CPU102は、並列動作可能であると判別し(ステップS2505)、本処理を終了する。又は、ステップS2502の判別の結果、上記スキャン画像処理が並列転送クロックモードで実行されているとき、CPU102は、並列動作可能であると判別し(ステップS2505)、本処理を終了する。又は、ステップS2501の判別の結果、スキャン画像処理を実行していないとき、CPU102は、並列動作可能であると判別し(ステップS2505)、本処理を終了する。
図25(b)は、図24のステップS2406のImaging制御処理の手順を示すフローチャートである。
図25(b)において、CPU102は、ステップS2401にて受信した設定における画像変換設定を取得する(ステップS2506)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した画像変換設定に従ったImaging画像処理を実行するためのASICを決定し、当該ASICに画像変換設定を設定する(ステップS2507)。次いで、CPU102は、蓄積メモリ105に保存された画像データに対して、Imaging画像処理を実行し(ステップS2508)、画像処理済みの画像データを蓄積メモリ105に保存し(ステップS2509)、本処理を終了する。
図25(c)は、図24のステップS2409のプリント制御処理の手順を示すフローチャートである。
図25(c)において、CPU102は、ステップS2401にて受信した設定における印刷設定を取得する(ステップS2510)。次いで、CPU102は、画像処理部113のASIC701~705の中から、取得した印刷設定に従ったプリント画像処理を実行するためのASICを決定し、当該ASICに印刷設定を設定する(ステップS2511)。次いで、CPU102は、蓄積メモリ105に保存された画像データに対して、プリント画像処理を実行する(ステップS2512)。次いで、CPU102は、プリンタ部115へ画像処理済みの画像データを出力する(ステップS2513)。プリンタ部115は、受信した画像データを用紙に印刷する。次いで、CPU102は、本処理を終了する。
上述した第5の実施の形態では、スキャン画像処理が当該スキャン画像処理以外の他の画像処理より先に実行された場合も、転送クロックモードの切り替え制御が、ジョブ単位で行われる。すなわち、各ページのスキャン画像処理を実行する度に転送クロックモードの切り替え処理を行う必要がない。これにより、スキャン画像処理を伴うジョブを他の画像処理と並列で実行する際に、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないように制御することができる。特に、スキャナ部114の読み取り速度の制御以外の方法であって転送クロックモードの切り替え処理の負荷を低減した方法で、スキャン画像処理における画像バス112の単位時間当たりのデータ転送量が転送可能上限値を超えないようにすることができる。その結果、スキャナ部114の読み取り速度を落とすことなく、他の画像処理を並列で実行することができる。
本発明は、上述の実施の形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。