(57)【要約】【課題】複数の画像処理を並列で行う際に動的に画像処理回路を構成して効率的な処理を実現すること。【解決手段】本発明は、動的に回路が再構成される動的回路再構成部１０と、動的回路再構成部１０で構成する回路の情報を記憶する回路構成記憶部と、１つの画像処理を単独で処理する回路の構成の情報と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む回路の構成の情報とを回路構成記憶部から切り替えて読み出し、動的回路再構成部１０の回路の再構成を制御する回路構成制御部２１とを有する画像処理装置である。【選択図】図１
2010232801.tif 000002
【特許請求の範囲】
【請求項１】
動的に回路が再構成される動的回路再構成手段と、
前記動的回路再構成手段で構成する回路の情報を記憶する回路構成記憶手段と、
１つの画像処理を単独で処理する回路の構成の情報と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む回路の構成の情報とを前記回路構成記憶手段から切り替えて読み出し、前記動的回路再構成手段の回路の再構成を制御する回路構成制御手段と
を有する画像処理装置。
【請求項２】
動的に回路が再構成される動的回路再構成手段と、
前記動的回路再構成手段で構成する回路の情報を記憶する回路構成記憶手段と、
複数の画像処理を並列で処理するため画像情報の圧縮回路を含む第１の回路の構成の情報と、前記圧縮回路を含む第２の回路の構成の情報とを前記回路構成記憶手段から切り替えて読み出し、前記動的回路再構成手段の回路の再構成を制御する回路構成制御手段と
を有する画像処理装置。
【請求項３】
前記回路構成制御手段は、前記並列で処理する回路を構成して複数の画像処理を行う際の処理時間が第１閾値を超える場合、前記複数の画像処理の各々について単独で処理する回路を順次再構成する制御を行う
請求項１記載の画像処理装置。
【請求項４】
前記並列で処理する回路を構成して複数の画像処理を行う際の効果を示す率を計算し、当該率が第２閾値となるよう前記第１閾値を変更する計算を行う第１閾値計算手段を備えており、
前記回路構成制御手段は、前記第１閾値計算手段で計算された第１閾値を用いて回路の再構成を制御する
請求項３記載の画像処理装置。
【請求項５】
前記複数の画像処理のうち一の画像処理は複写処理であり、他の画像処理は印刷処理である
請求項１から４のうちいずれか１項に記載の画像処理装置。
【請求項６】
動的に回路が再構成される動的回路再構成手段に対して、１つの画像処理を単独で処理する回路の構成と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む回路の構成とを切り替えるステップを画像処理コンピュータに実行させる
画像処理制御プログラム。
【請求項７】
動的に回路が再構成される動的回路再構成手段に対して、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む第１の回路の構成と、前記圧縮回路を含む第２の回路の構成を切り替えるステップを画像処理コンピュータに実行させる
画像処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理制御プログラムに関する。
【背景技術】
【０００２】
近年、画像処理装置は複写機能、画像入力機能、印刷機能、ファクシミリ機能等の多機能を有するものが多く開発されている。ここで、複数の処理を並列で行う技術として、従来よりマルチタスク制御技術が開示されている（例えば、特許文献１〜３参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２２３３８２号公報
【特許文献２】特開平１０−２４０４６７号公報
【特許文献３】特開２００６−１９２８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、複数の画像処理を並列で行う際に動的に画像処理回路を構成して効率的な処理を実現する技術の提供を目的とする。
【課題を解決するための手段】
【０００５】
本願請求項１に係る発明は、動的に回路が再構成される動的回路再構成手段と、前記動的回路再構成手段で構成する回路の情報を記憶する回路構成記憶手段と、１つの画像処理を単独で処理する回路の構成の情報と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む回路の構成の情報とを前記回路構成記憶手段から切り替えて読み出し、前記動的回路再構成手段の回路の再構成を制御する回路構成制御手段とを有する画像処理装置である。
【０００６】
本願請求項２に係る発明は、動的に回路が再構成される動的回路再構成手段と、前記動的回路再構成手段で構成する回路の情報を記憶する回路構成記憶手段と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む第１の回路の構成の情報と、前記圧縮回路を含む第２の回路の構成の情報とを前記回路構成記憶手段から切り替えて読み出し、前記動的回路再構成手段の回路の再構成を制御する回路構成制御手段とを有する画像処理装置である。
【０００７】
本願請求項３に係る発明は、前記回路構成制御手段が、前記並列で処理する回路を構成して複数の画像処理を行う際の処理時間が第１閾値を超える場合、前記複数の画像処理の各々について単独で処理する回路を順次再構成する制御を行う請求項１記載の画像処理装置である。
【０００８】
本願請求項４に係る発明は、前記並列で処理する回路を構成して複数の画像処理を行う際の効果を示す率を計算し、当該率が第２閾値となるよう前記第１閾値を変更する計算を行う第１閾値計算手段を備えており、前記回路構成制御手段が、前記第１閾値計算手段で計算された第１閾値を用いて回路の再構成を制御する請求項３記載の画像処理装置である。
【０００９】
本願請求項５に係る発明は、前記複数の画像処理のうち一の画像処理は複写処理であり、他の画像処理は印刷処理である請求項１から４のうちいずれか１項に記載の画像処理装置である。
【００１０】
本願請求項６に係る発明は、動的に回路が再構成される動的回路再構成手段に対して、１つの画像処理を単独で処理する回路の構成と、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む回路の構成とを切り替えるステップを画像処理コンピュータに実行させる画像処理制御プログラムである。
【００１１】
本願請求項７に係る発明は、動的に回路が再構成される動的回路再構成手段に対して、複数の画像処理を並列で処理するため画像情報の圧縮回路を含む第１の回路の構成と、前記圧縮回路を含む第２の回路の構成を切り替えるステップを画像処理コンピュータに実行させる画像処理制御プログラムである。
【発明の効果】
【００１２】
本願請求項１に係る発明によれば、１つの画像処理を単独で行う場合と複数の画像処理を並列して行う場合とに対応した回路構成の切り替えが可能となる。
【００１３】
本願請求項２に係る発明によれば、複数の画像処理を並列して行う場合に第１の回路の構成と第２の回路の構成とを切り替えて処理することが可能となる。
【００１４】
本願請求項３に係る発明によれば、複数の画像処理について並列処理もしくは単独処理を処理時間の閾値によって機動的に切り替えることが可能となる。
【００１５】
本願請求項４に係る発明によれば、複数の画像処理を並列処理する際の効果に応じた回路構成を実現することが可能となる。
【００１６】
本願請求項５に係る発明によれば、複写処理に対応した回路構成と印刷処理に対応した回路構成とを切り替えて処理することが可能となる。
【００１７】
本願請求項６に係る発明によれば、１つの画像処理を単独で行う場合と複数の画像処理を並列して行う場合とに対応した回路構成の切り替えが可能となる。
【００１８】
本願請求項７に係る発明によれば、複数の画像処理を並列して行う場合に第１の回路の構成と第２の回路の構成とを切り替えて処理することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態の画像処理装置の装置構成（その１）を説明するブロック図である。
【図２】本実施形態の画像処理装置の装置構成（その２）を説明するブロック図である。
【図３】本実施形態の画像処理装置の機能ブロック図である。
【図４】比較例（その１）を説明するブロック図である。
【図５】比較例（その２）を説明するブロック図である。
【図６】本実施形態に係る画像処理装置の基本動作を説明するブロック図である。
【図７】本実施形態に係る画像処理装置の基本構成を説明するブロック図である。
【図８】複写処理を実行する場合の動作を説明するブロック図である。
【図９】印刷処理を実行する場合の動作を説明するブロック図である。
【図１０】複写処理および印刷処理のマルチタスク化の場合の動作を説明するブロック図である。
【図１１】本実施形態に係る画像処理制御プログラムでの回路再構成制御について説明するフローチャートである。
【図１２】スケジューラによる制御のフローチャート（その１）である。
【図１３】スケジューラによる制御のフローチャート（その２）である。
【図１４】マルチタスクの効果の把握によるΔＴｐの変更の流れを説明するフローチャートである。
【図１５】マルチタスクの場合のＳｌｏｔが入る状態を模式的に示す図である。
【図１６】第２実施例に係るスケジューラによる制御のフローチャート（その１）である。
【図１７】第２実施例に係るスケジューラによる制御のフローチャート（その２）である。
【図１８】タスク毎のＳｌｏｔ時間について模式的に示す図である。
【図１９】Ｔn、ΔＴｐ、Ｔn+1の関係を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態（以下、「実施形態」という。）について説明する。なお、説明は以下の順序で行う。
１．装置構成
２．比較例
３．本実施形態の基本動作
４．本実施形態の基本構成
５．具体的な動作
６．画像処理制御プログラム
【００２１】
＜１．装置構成＞
［第１の装置構成］
図１は、本実施形態の画像処理装置の装置構成（その１）を説明するブロック図である。本実施形態の画像処理装置は、動的回路再構成部１０を備えている。動的回路再構成部１０は、所定のタイミングで内部回路が再構成されるもので、例えば、ＤＲＰ（Dynamically Reconfigurable Processor）やＦＰＧＡ（Field Programmable Gate Array）が用いられる。好ましくは、クロック単位で回路の再構成が成されるＤＲＰを用いる。
【００２２】
動的回路再構成部１０は、コントローラＣＰＵ２０によって制御される。コントローラＣＰＵ２０には、回路構成制御部２１とスケジューラ２２とが設けられる。回路構成制御部２１およびスケジューラ２２は、コントローラＣＰＵ２０によって実行されるソフトウェアとして実装される。
【００２３】
動的回路再構成部１０にはローカルメモリＭ１が接続され、コントローラＣＰＵ２０にはメインメモリＭ２が接続される。ローカルメモリＭ１およびメインメモリＭ２の少なくとも一方には、動的回路再構成部１０によって構成される回路の情報が記憶されている。この回路の情報を記憶する領域が、回路構成記憶部となる。
【００２４】
スケジューラ２２は、複数の画像処理を並列処理（マルチタスク）で行う際、回路構成記憶部に記憶される回路の情報のアドレス指定や再構成依頼等の指示を動的回路再構成部１０に対して行う。
【００２５】
回路構成制御部２１は、スケジューラ２２の指示に従い回路構成記憶部に記憶される回路の構成の情報を読み出し、動的回路再構成部１０の回路構成を制御する。例えば、１つの画像処理を単独で処理する回路の構成の情報を読み出し、当該単独の画像処理回路を動的回路再構成部１０に構成するよう制御したり、複数の画像処理を並列で処理する回路の構成の情報を読み出し、当該並列で処理する回路を動的回路再構成部１０に構成するよう制御したりする。また、画像処理の要求に応じて、単独の画像処理回路と並列で処理する画像処理回路との切り替えを制御する。
【００２６】
動的回路再構成部１０には、スキャナＩ／Ｆ（インタフェース）回路３０およびプリントエンジンＩ／Ｆ（インタフェース）回路４０が接続される。スキャナＩ／Ｆ回路３０は、図示しない画像入力部で読み取った原稿の画像情報を動的回路再構成部１０に送る処理を行う。プリントエンジンＩ／Ｆ回路４０は、動的回路再構成部１０やコントローラＣＰＵ２０から送られる印刷用の情報をプリントエンジンに送る処理を行う。
【００２７】
図１に示す画像処理装置の装置構成では、動的回路再構成部１０による回路構成制御をコントローラＣＰＵ２０で一元管理することになる。
【００２８】
［第２の装置構成］
図２は、本実施形態の画像処理装置の装置構成（その２）を説明するブロック図である。図２に示す画像処理装置は、図１に示す画像処理装置と同様、動的回路再構成部１０、コントローラＣＰＵ２０、ローカルメモリＭ１、メインメモリＭ２、スキャナＩ／Ｆ回路３０、プリントエンジンＩ／Ｆ回路４０を備えているが、回路構成制御部２１が動的回路再構成部内１０に設けられている点で相違する。
【００２９】
図２に示す画像処理装置の装置構成では、複数の画像処理をマルチタスクで行う際、動的回路再構成部１０での回路構成を動的回路再構成部１０内の回路構成制御部２１で一括して行うため、コントローラＣＰＵ２０の管理が簡素化される。なお、図２に示す画像処理装置では、マルチタスクの実行中、マルチタスクの対象となる回路構成の情報をローカルメモリＭ１内に常駐させておくことになる。
【００３０】
［機能ブロック構成］
図３は、本実施形態の画像処理装置の機能ブロック図である。画像処理装置の主要機能は、動的回路再構成部１０、回路構成制御部２１、回路構成記憶部２３、スケジューラ２２である。この機能ブロック図では、回路構成制御部２１を中心として、動的回路再構成部１０、回路構成記憶部２３、スケジューラ２２、画像処理制御プログラムＰとの間での信号の入出力が示されている。
【００３１】
回路構成制御部２１から動的回路再構成部１０へは、回路構成情報、回路構成実行依頼が送られ、動的回路再構成部から回路構成制御部へは、回路構成終了信号が送られる。ここで、回路構成情報は、動的回路再構成部１０で構成される回路の構成を示す情報である。また、回路構成実行依頼は、動的回路再構成部１０に送られた回路構成情報に基づき回路の構成の実行を依頼する信号である。また、回路構成終了信号は、動的回路再構成部１０で回路の構成が終了した旨を示す信号である。
【００３２】
回路構成制御部２１から回路構成記憶部２３へは、アドレス情報が送られ、回路構成記憶部２３から回路構成制御部２１へは、回路構成情報が送られる。ここで、アドレス情報は、回路構成記憶部２３に記憶される回路構成の格納場所を示す情報である。また、回路構成情報は、アドレス情報で示す格納場所に記憶された回路構成のための情報である。
【００３３】
回路構成制御部２１からスケジューラ２２および画像処理制御プログラムＰへは、回路構成終了信号が送られ、スケジューラ２２および画像処理制御プログラムＰから回路構成制御部２１へは回路構成実行アドレス情報、回路構成実行依頼が送られる。
【００３４】
画像処理制御プログラムＰからスケジューラ２２へは、アドレス情報、スケジューラ開始信号が送られ、スケジューラ２２から画像処理制御プログラムＰへは、スケジューラ終了信号が送られる。
【００３５】
ここで、マルチタスクの対象となる回路構成のアドレス情報は、マルチタスクで実行される複数の回路構成のアドレス情報である。また、回路構成終了信号は、スケジューラ２２によって依頼された回路構成の実行が終了した旨を示す信号である。また、スケジューラ開始信号は、スケジューラ２２の実行開始を依頼する信号である。また、回路構成実行アドレス情報は、スケジューラ２２が選択した回路構成のアドレス情報である。また、回路構成実行依頼は、スケジューラ２２および画像処理制御プログラムＰが回路構成制御部２１に回路構成のアドレス情報を設定したことを示す信号である。また、スケジューラ終了信号は、依頼されたマルチタスクのスケジューリングが完了したことを示す信号である。
【００３６】
＜２．比較例＞
［その１］
図４は、比較例（その１）を説明するブロック図である。比較例（その１）では、複写処理の画像処理回路、コントローラＣＰＵ、アクセラレータ、画像出力装置へのインタフェースを備えている。
【００３７】
比較例（その１）に係る画像処理装置において、各機能の画像処理は次のようになる。
（１）複写処理：画像入力部から入力された画像情報について、複写処理の画像処理回路で、例えば、色空間変換、フィルタ、ＴＩ分離、適応フィルタ、拡縮、ＹＭＣＫ変換、スクリーン処理などをパイプライン処理で行い、画像出力部に出力する。
（２）画像入力処理：画像入力部から入力された画像情報について、複写処理の画像処理回路で拡縮まで処理した後、圧縮してコントローラＣＰＵに送信し、出力フォーマット（例えば、ＰＤＦ）への生成処理を行う。出力フォーマットに生成された画像情報は、ネットワークを介して外部の端末（コンピュータ等）へ送信する。
（３）印刷処理：ネットワークから入力されたページ記述言語をコントローラＣＰＵで解釈（インタープリット）し、アクセラレータを使用してラスタライズ、ＹＭＣＫ変換、スクリーン処理等を行い、その後、圧縮して画像出力部へ出力する。
【００３８】
比較例（その１）に係る画像処理装置では、多機能化に伴い、ハードウェアの構成量が増加し、複数の画像処理を実行する際の冗長性が発生する。
【００３９】
［その２］
図５は、比較例（その２）を説明するブロック図である。比較例（その２）では、動的回路再構成部、コントローラＣＰＵを備えている。動的回路再構成部は、ＤＲＰやＦＰＧＡが用いられる。
【００４０】
比較例（その２）に係る画像処理装置では、複写処理が要求されたときは、複写処理に対応する回路を、印刷処理が要求されたときは印刷処理に対応する回路を動的回路再構成部に構成する。
【００４１】
このように、要求された処理に応じて回路構成を構築することで、ハードウェアの構成量の削減を図る。ここで、動的回路再構成部がＤＲＰの場合は、再構成にｎｓｅｃ（ナノ秒）で済むが、ＦＰＧＡの場合はｍｓｅｃ（ミリ秒）かかる。したがって、ＤＲＰが好ましい。これにより、印刷処理では、描画オブジェクト単位での回路構成の切り替えが行われる。
【００４２】
比較例（その２）に係る画像処理装置では、複数の画像処理を並列に実行するのが困難である。つまり、ハードウェア規模の削減を図るため、動的回路再構成部を一つに限定しており、これによって処理の並列性が困難となる。
【００４３】
例えば、複写処理を実行しているときに印刷処理の要求が発生した場合、複写処理はリアルタイム性が要求されるので、印刷処理との並列化による生産性の低下を発生させることはできない。そこで、複写処理が終了するまで印刷処理を待たせることになる。
【００４４】
＜３．本実施形態の基本動作＞
図６は、本実施形態に係る画像処理装置の基本動作を説明するブロック図である。本実施形態では、動的回路再構成部１０、コントローラＣＰＵ２０を備える点で図５に示す比較例（その２）と同じであるが、コントローラＣＰＵ２０で実行されるスケジューラ２２によってマルチタスクを実現している点で相違する。
【００４５】
具体的には、複数の画像処理の並列処理であるマルチタスクが発生した場合のみ、複写処理の画像処理を圧縮処理に変更する。また、コントローラＣＰＵ２０上でスケジューラ２２によるマルチタスク化をスケジュールし、動的回路再構成部１０によって複数の画像処理に対応した複数の回路構成を構築する。例えば、複写処理および印刷処理の要求を受けた場合、画像情報の圧縮回路を含む第１のマルチタスク化回路構成と、圧縮回路を含む第２のマルチタスク化回路構成とを切り替えるスケジューリングを実行する。これによって、複写処理における画像処理で画像入力部との同期（リアルタイム性）が確保され、かつ、スケジューラによるマルチタスク（並列化）も達成される。複数の画像処理を並列処理する以外、例えば、複写処理の画像処理では、複写処理の回路構成を単独で構築し、処理時間の短縮化を図る。
【００４６】
＜４．本実施形態の基本構成＞
図７は、本実施形態に係る画像処理装置の基本構成を説明するブロック図である。本実施形態の画像処理装置では、動的回路再構成部１０を中心に、スキャナＩ／Ｆ回路３０、プリントエンジンＩ／Ｆ回路４０、ローカルメモリＭ１、コントローラＣＰＵ２０が設けられている。この動的回路再構成部１０に、必要な画像処理（例えば、複写処理、印刷処理、画像入力処理）の回路が動的に構成される。
【００４７】
本実施形態の画像処理装置の構成では、マルチタスク要求が終了したら速やかにシングルタスク状態で実行する。例えば、複写処理の画像処理と印刷処理の画像処理がマルチタスク化で実行中、印刷処理が終了した場合、速やかに複写処理のシングルタスクを構成する。これにより、複写処理の最大性能が発揮される。
【００４８】
ここで、動的回路再構成部１０以外のブロック構成は固定回路であっても、動的回路であってもよい。また、印刷処理では、コントローラＣＰＵ２０からプリントエンジンＩ／Ｆ回路４０へ直接出力してもよい。
【００４９】
＜５．具体的な動作＞
［複写処理］
図８は、複写処理を実行する場合の動作を説明するブロック図である。複写処理を実行する場合、動的回路再構成部１０に複写処理の画像処理回路を構成する。画像入力部であるスキャナで取り込んだ画像情報は、スキャナＩ／Ｆ回路３０を介して動的回路再構成部１０に送られる。ここで構成された複写処理の画像処理回路によって複写処理に関する画像処理が行われ、プリントエンジンＩ／Ｆ回路４０へ出力される。複写処理は単独の回路構成によって処理時間の短縮化を図る。
【００５０】
［印刷処理］
図９は、印刷処理を実行する場合の動作を説明するブロック図である。印刷処理を実行する場合、動的回路再構成部１０に、ＲＩＰ（Raster Image Processing）アシスト回路および伸長回路を構成する。ＲＩＰアシスト回路は、外部から送られたページ記述言語に含まれるイメージの画像処理を行う。伸長回路では、前ページでＲＩＰが完了したものを伸長する処理を行う。なお、先に示したように、印刷処理では、コントローラＣＰＵ２０からプリントエンジンＩ／Ｆ回路４０へ直接出力してもよい。
【００５１】
［複写処理および印刷処理］
図１０は、複写処理および印刷処理のマルチタスク化の場合の動作を説明するブロック図である。複写処理および印刷処理のマルチタスク化を図る場合、動的回路再構成部１０では圧縮回路および印刷処理の画像処理回路（例えば、ＲＩＰアシスト回路）を構成する第１の回路構成と、圧縮回路および複写回路の画像処理回路を構成する第２の回路構成との切り替えが行われる。
【００５２】
図１０（ａ）は、第１の回路構成を示す図である。第１の回路構成では、動的回路再構成部１０に画像情報の圧縮回路と印刷処理の画像処理回路とが構築される。第１の回路構成が構築された場合、複写処理では、画像入力部であるスキャナで取り込んだ画像情報をスキャナＩ／Ｆ回路３０を介して圧縮回路に送る。圧縮回路で圧縮された画像情報は、コントローラＣＰＵ２０へ送られ、後にスケジューラによって複写処理と印刷処理の画像処理がマルチタスクで実行される。なお、コントローラＣＰＵ２０に、圧縮された画像情報を送るのは、バスのバンド幅制限によるためである。
【００５３】
一方、印刷処理では、外部から送られたページ記述言語に含まれる画像情報（イメージデータ）をコントローラＣＰＵ２０から動的回路再構成部１０に構成された印刷処理の画像処理回路に送る。ここで、ＲＩＰが完了したものをコントローラＣＰＵ２０からプリントエンジンＩ／Ｆ回路４０へ出力する。印刷処理の出力時には、スケジューラによって複写処理の出力との順番が制御される。
【００５４】
図１０（ｂ）は、第２の回路構成を示す図である。第２の回路構成では、動的回路再構成部１０に画像情報の圧縮回路と、複写処理の画像処理回路とが構築される。第２の回路構成が構築された場合、複写処理では、画像入力部であるスキャナで取り込んだ画像情報をスキャナＩ／Ｆ回路３０を介して圧縮回路に送る。圧縮回路で圧縮された画像情報は、コントローラＣＰＵ２０へ送られ、後にスケジューラによって複写処理と印刷処理の画像処理がマルチタスクで実行される。
【００５５】
コントローラＣＰＵ２０に送られた圧縮された画像情報は、コントローラＣＰＵ２０から複写処理の画像処理回路へ送られ、伸張処理された後、プリントエンジンＩ／Ｆ回路４０に出力される。
【００５６】
本実施形態では、後述するスケジューラによって上記第１の回路構成と第２の回路構成とが切り替えられ、異なるマルチタスク回路の実行がスケジューリングされる。
【００５７】
＜６．画像処理制御プログラム：回路再構成制御およびスケジューラ＞
［回路再構成制御］
図１１は、本実施形態に係る画像処理制御プログラムでの回路再構成制御について説明するフローチャートである。ここで、本実施形態に係る画像処理制御プログラムは、図１に示す画像処理装置のコントローラＣＰＵの回路構成制御部で実行されるステップであったり、動的回路再構成部１０で実行されるステップであったりする。また、画像処理制御プログラムは、図３に示すように回路構成制御部２１およびスケジューラ２２との間で信号の入出力を行い、これらを制御するものでもある。画像処理制御プログラムは、コントローラＣＰＵで管理される不揮発性メモリやハードディスク（いずれも図示せず）、ＣＤ−ＲＯＭ等の記録媒体に記録されていたり、ネットワークを介して配信されてもよい。
【００５８】
以下に示すフローチャートに沿った動作説明では、各フローチャートとともに図３の機能ブロック図を参照するものとする。なお、説明を簡単にするため画像入力処理は除く。
【００５９】
先ず、回路構成制御部２１は、画像処理の要求を受けた場合、複写処理であるか否かを判断する（ステップＳ１０１）。複写処理の要求であった場合、印刷処理の実行中であるか否かを判断する（ステップＳ１０２）。
【００６０】
印刷処理の実行中でない場合には、複写処理の単独であるとして、複写処理の画像処理を行う回路構成を動的回路再構成部１０に設定し、処理を実行する（ステップＳ１０３）。すなわち、回路構成制御部２１は、回路構成記憶部２３に複写処理の回路構成情報を格納するアドレス情報を送り、回路構成記憶部２３から複写処理の回路構成情報を読み出す。そして、この回路構成情報を動的回路再構成部１０へ設定する。動的回路再構成部１０は、設定された回路構成情報に基づき複写処理の回路構成を行い、回路構成制御部２１から回路構成実行依頼Ｓ７を受けて複写処理を実行する。回路構成制御部２１が動的回路再構成部１０から回路構成終了信号Ｓ８を受けた場合、処理を終了する（ステップＳ１０４）。
【００６１】
一方、ステップＳ１０１の判断で複写処理の要求でなかった場合（つまり、印刷処理である場合）、複写処理の実行中であるか否かを判断する（ステップＳ１０５）。
【００６２】
複写処理の実行中でない場合には、印刷処理の単独であるとして、印刷処理の画像処理を行う回路構成を動的回路再構成部１０に設定し、実行する（ステップＳ１０６）。すなわち、回路構成制御部２１は、回路構成記憶部２３に印刷処理の回路構成情報を格納するアドレス情報を送り、回路構成記憶部２３から印刷処理の回路構成情報を読み出す。そして、この回路構成情報を動的回路再構成部１０へ設定する。動的回路再構成部１０は、設定された回路構成情報に基づき印刷処理の回路構成を行い、回路構成制御部２１から回路構成実行依頼Ｓ７を受けて印刷処理を実行する。回路構成制御部２１が動的回路再構成部１０から回路構成終了信号Ｓ８を受けた場合、処理を終了する（ステップＳ１０７）。
【００６３】
また、ステップＳ１０１の判断で複写処理の要求でなく、ステップＳ１０５の判断で複写処理の実行中であった場合、現在の回路構成を停止し（ステップＳ１０８）、複写処理と印刷処理との並列処理（マルチタスク）となる。また、ステップＳ１０１の判断で複写処理の要求であり、ステップＳ１０２の判断でプリント処理実行中であった場合、複写処理と印刷処理との並列処理（マルチタスク）となる。
【００６４】
マルチタスクとなる場合、マルチタスクの対象となる画像処理の回路構成を動的回路再構成部１０に設定する（ステップＳ１０９）。この例では、マルチタスクの画像処理として、圧縮回路と印刷処理の回路とを動的回路再構成部１０に設定する。
【００６５】
具体的には、画像処理制御プログラムＰからスケジューラ２２へマルチタスクの対象となる回路構成のアドレス情報Ｓ１（例えば、圧縮回路および印刷処理の画像処理回路を構成する第１の回路構成と、圧縮回路および複写処理の画像処理回路を構成する第２の回路構成とのアドレス情報）を送り、スケジューラ２２から回路構成制御部２１へスケジューリングされた回路構成実行アドレス情報Ｓ４を得る。これに基づき、回路構成制御部２１は、回路構成記憶部２３に当該アドレス情報を送り、マルチタスクの対象となる回路構成情報を読み出して、動的回路再構成部１０へ設定する。動的回路再構成部１０は、設定された回路構成情報に基づき、マルチタスクの対象となる回路構成（ここでは、圧縮回路と印刷処理の回路）を構成する。
【００６６】
次に、スケジューラ２２を起動する（ステップＳ１１０）。スケジューラ２２の起動は、画像処理制御プログラムＰからスケジューラ２２にスケジューラ開始信号Ｓ２を送ることで行われる。スケジューラ２２が起動すると、スケジューラ２２は回路構成制御部２１を介して動的回路再構成部１０へ回路構成実行依頼Ｓ７を送り、これを受けて動的回路再構成部１０がマルチタスクを実行する。その後、マルチタスクのスケジューラ２２から画像処理制御プログラムＰにスケジューラ終了信号Ｓ３の割り込みが入った段階で処理を終了する（ステップＳ１１１）。
【００６７】
［スケジューラ制御］
スケジューラ制御には、第１実施例と第２実施例とがある。以下、各々の実施例について説明する。
【００６８】
［第１実施例］
図１２、図１３は、第１実施例に係るスケジューラによる制御のフローチャートである。このフローチャートに示す制御は、マルチタスクの開始直前に行われる。スケジューラ２２は、一の画像処理を実行中に他の画像処理の要求があった場合、第１閾値を超えない範囲で後続となる他の画像処理を現処理である一の画像処理に挿入する（マルチタスク化）。
【００６９】
また、スケジューラ２２は、第１閾値を超えない範囲で後続の画像処理を挿入することができない場合、現処理である一の画像処理を優先して実行した後、後続となる他の画像処理を実行する。
【００７０】
ここで、マルチタスク化を図る上での用語を解説する。複写処理タスクの１回の実行に割り当てる時間をＳｌｏｔ＿Ｃ１、元（シングルタスク）の処理時間を拡張する係数をＣｄとすると、元の処理時間合計はΣＳｌｏｔ＿Ｃ１となる。
【００７１】
したがって、処理時間の増分は、ΔＴcｐ＝（ΣＳｌｏｔ＿Ｃ１）×（Ｃｄ−１．０）であらわすことができ、このΔＴcｐを第１閾値と呼ぶ。つまり、複写処理タスクのΔＴcｐは、処理時間の許容増加分である。
【００７２】
例えば、１分当たり６０枚の複写画像処理で、１００枚を処理する場合、処理時間はΣＳｌｏｔ＿Ｃ１は１００秒となる。Ｃｄが１．５の場合、許容処理時間は１００秒×１．５＝１５０秒となり、ΔＴcｐは５０秒となる。つまり、Ｃｄが１．５程度の場合には、複写処理の待ち時間としての増分は問題にならない。
【００７３】
次に、図１２、図１３のフローチャートに沿って制御の流れを説明する。なお、以下の説明で示す符号の「ｎ」は１以上の整数を示す変数である。先ず、図１２に示すように、現画像処理の要求（Ｔａｓｋn＿Ａｄｒ）と後続の画像処理の要求（Ｔａｓｋm＿Ａｄｒ）とを受理する（ステップＳ２０１）。すなわち、スケジューラ２２は、回路構成制御部２１から複数の回路構成のアドレス情報Ｓ１を受理する。また、タスク毎の終了カウンタの計算を行う。終了カウンタの計算については後述する。
【００７４】
次いで、ΔＴｐを計算する（ステップＳ２０２）。次に、Ｔａｓｋnが終わりであるか否かを判断する（ステップＳ２０３）。終わりである場合にはステップＳ２１０へ進む。ステップＳ２１０以降の処理は後述する。終わりでない場合、ループカウンタＬｏｏｐをカウントアップする（ステップＳ２０４）。
【００７５】
次に、Ｔａｓｋnの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋｎの計算を行い（ステップＳ２０５）、Ｔａｓｋnの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ２０６）。その後、Ｔａｓｋmが終了したか否かを判断し（ステップＳ２０７）、終了している場合にはＴａｓｋnの終了割り込みがあるか否かを判断する（ステップＳ２０８）。終了割り込みがあった場合には処理を終了する。
【００７６】
一方、Ｔａｓｋmが終了していない場合には、Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｎ分処理が終了したかを判断する（ステップＳ２０９）。Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｎ分処理が終了した場合には、図１３に示す処理へ移行する。
【００７７】
ステップＳ２０３の判断でＴａｓｋnが終了している場合、ステップＳ２１０へ移行する。先ず、Ｔａｓｋmが終了しているか否かを判断する（ステップＳ２１０）。終了している場合、処理を終了する。一方、終了していない場合、Ｔａｓｋmの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋｍの計算を行い（ステップＳ２１１）、Ｔａｓｋmの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ２１２）。
【００７８】
その後、Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｍ分処理が終了したかを判断する（ステップＳ２１３）。Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｍ分処理が終了した場合には、ステップＳ２１０の処理へ戻る。
【００７９】
ステップＳ２０９の判断で、Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｎ分処理が終了した場合、図１３に示す処理へ移行する。先ず、Ｔａｓｋmが終了したか否かを判断する（ステップＳ３０１）。終了している場合には、図１２に示すステップＳ２０３へ戻る。終了していない場合には、Ｔａｓｋmの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋｍの計算を行い（ステップＳ３０２）、Ｔａｓｋmの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ３０３）。
【００８０】
そして、Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｍ分処理が終了したかを判断する（ステップＳ３０４）。Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｍ分処理が終了した場合には、図１２に示すステップＳ２０３の処理へ戻る。
【００８１】
図１４は、第１実施例でのタスクの処理を模式的に説明する図である。今、Ｓｌｏｔ時間をＳ、ＴａｓｋnのＳｌｏｔ別実行単位をｎｘ、Ｔａｓｋnの処理時間をＴnとし、Ｔn＝Ｓ×２、Ｔｍ＝Ｓ×２＋α（αは十分大きな値）と仮定すると、第１実施例のスケジューリング結果は図１４に示すようになる。
【００８２】
図１４では、ＴａｓｋnをＴn、ＴａｓｋmをＴmで示している。ここで、図１４に示すマルチタスク部では、マルチタスクである第１の回路構成と第２の回路構成との切り替えにおいて、第１の回路構成にＴａｓｋnを実行する回路が設定され、第２の回路構成にＴａｓｋmを実行する回路が設定される。
【００８３】
第１実施例では、各タスクのＳｌｏｔ時間が等しいため、Ｔnはマルチタスク化すると処理されるが、Ｔmはマルチタスク化だけでは処理しきれず、単独での処理（Ｔm3部分）が発生している。このため、第１実施例では、Ｔn（またはＴm)を優先的に処理する効果がある。
【００８４】
［終了カウンタの計算］
シングルタスク時の処理時間をＴｓｔ、Ｔａｓｋnのマルチタスクでの１回あたりの割り当て時間をＳｌｏｔ＿ｎとすると、回路構成における終了カウンタＣｔｒ＿Ｔａｓｋnは次のようになる。
Ｃｔｒ＿Ｔａｓｋn＝Ｔｓｔ÷Ｓｌｏｔ＿ｎ
ただし、説明を簡単にするため、ＴｓｔはＳｌｏｔ＿ｎで割り切れるものとする。
【００８５】
次に、全入力画素数をＮｐｉｘとすると、Ｔａｓｋnでマルチタスクでの１回あたり処理する画素数は、
Ｎｐｉｘ＿Ｔａｓｋn＝Ｎｐｉｘ÷Ｃｔｒ＿Ｔａｓｋnとなる。
つまり、タイマーではなく、画素数で処理時間を把握する。
【００８６】
［ΔＴｐとＳｌｏｔ時間との関係］
図１５は、マルチタスクの場合に間に必ず他のジョブのＳｌｏｔが入る状態を模式的に示す図である。ここで、ＮをＳｌｏｔの繰り返し回数、多重度を２（２つのジョブを多重化する）と仮定すると、Ｓｌｏｔ×２Ｎ＝Ｔｓｔ−ΔＴｐとなる。つまり、ΔＴｐ＝Ｓｌｏｔ×２Ｎ−Ｔｓｔとなる。
【００８７】
今、Ｔｓｔ＝１０、Ｓｌｏｔ＝５、ΔＴｐ＝１０とすると、Ｎ＝２（これはＬｏｏｐ回数に相当）、つまり、Ｓｌｏｔ時間＝５の場合、２回マルチタスクを実行することでΔＴｐに収まる。
【００８８】
［第２実施例］
図１６、図１７は、第２実施例に係るスケジューラによる制御のフローチャートである。なお、以下の説明で示す符号の「ｎ」は１以上の整数を示す変数である。先ず、図１６に示すように、現画像処理の要求（Ｔａｓｋn＿Ａｄｒ）と後続の画像処理の要求（Ｔａｓｋm＿Ａｄｒ）とを受理する（ステップＳ４０１）。すなわち、スケジューラ２２は、回路構成制御部２１から複数の回路構成のアドレス情報Ｓ１を受理する。また、タスク毎のＳｌｏｔ時間の計算およびタスク毎の終了カウンタ（上記参照）の計算を行う。タスク毎のＳｌｏｔ時間の計算は後述する。
【００８９】
次いで、ΔＴｐを計算する（ステップＳ４０２）。次に、Ｔａｓｋnが終わりであるか否かを判断する（ステップＳ４０３）。終わりである場合にはステップＳ４１０へ進む。ステップＳ４１０以降の処理は後述する。終わりでない場合、ループカウンタＬｏｏｐをカウントアップする（ステップＳ４０４）。
【００９０】
次に、Ｔａｓｋnの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋｎの計算を行い（ステップＳ４０５）、Ｔａｓｋnの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ４０６）。その後、Ｔａｓｋmが終了したか否かを判断し（ステップＳ４０７）、終了している場合にはＴａｓｋnの終了割り込みがあるか否かを判断する（ステップＳ４０８）。終了割り込みがあった場合には処理を終了する。
【００９１】
一方、Ｔａｓｋmが終了していない場合には、Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋn分処理が終了したかを判断する（ステップＳ４０９）。Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋn分処理が終了した場合には、図１７に示す処理へ移行する。
【００９２】
ステップＳ４０３の判断でＴａｓｋnが終了している場合、ステップＳ４１０へ移行する。先ず、Ｔａｓｋmが終了しているか否かを判断する（ステップＳ４１０）。終了している場合、処理を終了する。一方、終了していない場合、Ｔａｓｋmの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋmの計算を行い（ステップＳ４１１）、Ｔａｓｋmの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ４１２）。
【００９３】
その後、Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｍ分処理が終了したかを判断する（ステップＳ４１３）。Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋm分処理が終了した場合には、ステップＳ４１０の処理へ戻る。
【００９４】
ステップＳ４０９の判断で、Ｔａｓｋnの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋｎ分処理が終了した場合、図１７に示す処理へ移行する。先ず、Ｔａｓｋmが終了したか否かを判断する（ステップＳ５０１）。終了している場合には、図１６に示すステップＳ４０３へ戻る。終了していない場合には、Ｔａｓｋmの開始画素ポインタのセットおよびＮｐｉｘ＿ｔａｓｋmの計算を行い（ステップＳ５０２）、Ｔａｓｋmの実行アドレス情報Ｓ５を回路構成制御部２１へ送る（ステップＳ５０３）。
【００９５】
そして、Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋm分処理が終了したかを判断する（ステップＳ５０４）。Ｔａｓｋmの終了割り込みがあったか、もしくはＮｐｉｘ＿ｔａｓｋm分処理が終了した場合には、図１６に示すステップＳ４０３の処理へ戻る。
【００９６】
［タスク毎のＳｌｏｔ時間の計算］
図１８は、タスク毎のＳｌｏｔ時間について模式的に示す図である。ここで、各タスクごとのＳｌｏｔ時間をＳn、ＴａｓｋnのＳｌｏｔ別実行単位をｎｘ、Ｔａｓｋnの処理時間をＴnとし、Ｔn＝Ｓn×２、Ｔm＝Ｓm×２と仮定すると、第２実施例におけるスケジューリング結果は図１８に示すようになる。
【００９７】
図１８では、ＴａｓｋnをＴn、ＴａｓｋmをＴmで示している。ここで、図１８に示すマルチタスク部では、マルチタスクである第１の回路構成と第２の回路構成との切り替えにおいて、第１の回路構成にＴａｓｋnを実行する回路が設定され、第２の回路構成にＴａｓｋmを実行する回路が設定される。
【００９８】
第２実施例では、各タスクのＳｌｏｔ時間が異なるため、ＴnおよびＴmはマルチタスク化することで全て処理される。このため、第２実施例では、マルチタスク化の効果を最大限に得られることになる。
【００９９】
［タスク毎のスロット時間］
次に、タスク毎のスロット時間の決定について説明する。ここで、Ｔａｓｋnの処理時間合計をＴn、Ｔａｓｋnのスロット時間をＳｌｏｔn、Ｔａｓｋn+1の処理時間合計をＴn+1、Ｔａｓｋn+1のスロット時間をＳｌｏｔn+1、マルチタスク時のスロット回数をＮ、マルチタスクの効果の閾値をＥｔｈとすると、
Ｔn＝Ｓｌｏｔn×Ｎ…（１）
Ｔn+1×Ｅｔｈ＝Ｓｌｏｔn+1×Ｎ…（２）となる。
【０１００】
上記（１）式のＮを（２）式に代入すると、
Ｔn+1×Ｅｔｈ＝Ｓｌｏｔn+1×Ｔn／Ｓｌｏｔn
Ｓｌｏｔn+1／Ｓｌｏｔn＝Ｔn+1×Ｅｔｈ／Ｔn＝Ｔn+1／Ｔn×Ｅｔｈ…（３）となる。
【０１０１】
つまり、タスク毎のスロット時間は処理時間の比にマルチタスクの効果の閾値Ｅｔｈを乗じた値になる。例えば、Ｔn＝１０、Ｔn+1＝４０、Ｅｔｈ＝０．５（＝５０％）とすると、
Ｓｌｏｔn+1／Ｓｌｏｔn＝４０×０．５／１０＝２０／１０＝２
Ｓｌｏｔn＝５とすると、Ｓｌｏｔn+1＝１０となる。
【０１０２】
第１実施例で示したΔＴｐ（シングルタスクからの処理時間の増分）とＥｔｈ（マルチタスク化の効果）とは、Ｅｔｈ＝ΔＴｐ／Ｔn+1、つまり、ΔＴｐ＝Ｅｔｈ×Ｔn+1となるようにΔＴｐを決定することで、マルチタスク化の効果も制御されることが分かる（図１９参照）。
【符号の説明】
【０１０３】
１０…動的回路再構成部、２０…コントローラＣＰＵ、２１…回路構成制御部、２２…スケジューラ２２…回路構成記憶部、３０…スキャナＩ／Ｆ回路、４０…プリントエンジンＩ／Ｆ回路
【図１】
2010232801.tif 000003
【図２】
2010232801.tif 000004
【図３】
2010232801.tif 000005
【図４】
2010232801.tif 000006
【図５】
2010232801.tif 000007
【図６】
2010232801.tif 000008
【図７】
2010232801.tif 000009
【図８】
2010232801.tif 000010
【図９】
2010232801.tif 000011
【図１０】
2010232801.tif 000012
【図１１】
2010232801.tif 000013
【図１２】
2010232801.tif 000014
【図１３】
2010232801.tif 000015
【図１４】
2010232801.tif 000016
【図１５】
2010232801.tif 000017
【図１６】
2010232801.tif 000018
【図１７】
2010232801.tif 000019
【図１８】
2010232801.tif 000020
【図１９】
2010232801.tif 000021