(57)【要約】【課題】動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減する仕組みを提供する。【解決手段】本画像処理装置は、複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する。さらに、本画像処理装置は、ジョブが終了したタイミング等で、予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、予め定められた回路機能以外の回路機能が構成されている部分再構成部に、予め定められた回路機能のうち、再構成回路に現在構成されていない回路機能を構成する。【選択図】  図２
2016136359.tif 000002
【特許請求の範囲】
【請求項１】
複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置であって、
前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定手段と、
前記決定手段によって前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記決定手段は、
前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を確認する確認手段と、
前記確認手段によって確認された前記予め定められた回路機能以外の回路機能が、現在受け付けているジョブの何れかで使用されるか否かを判定する判定手段と、を備え、
前記判定手段によって前記予め定められた回路機能以外の回路機能が、現在受け付けているジョブの何れかで使用されないと判定されると、前記予め定められた回路機能以外の回路機能を再構成する必要があると決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記確認手段によって確認された前記予め定められた回路機能以外の回路機能が、現在使用されている場合についても、現在受け付けているジョブの何れかで使用されると判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記確認手段は、１つのジョブが完了するごとに、再構成回路の回路機能を確認することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
ジョブを実行する実行手段をさらに備え、
前記再構成手段は、さらに、
前記実行手段によって実行するジョブに必要な回路機能が前記再構成回路に構成されていない場合に、前記予め定められた回路機能以外の回路機能が構成されている前記部分再構成部から優先して、該必要な回路機能を構成することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記再構成手段は、前記必要な回路機能を構成する場合に、前記再構成回路に構成されている回路機能のうち、優先順位が最も高い回路機能が構成されている前記部分再構成部へ前記必要な回路機能を構成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記優先順位は、前記再構成回路に構成されている回路機能の回路構成情報が小さい順であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記予め定められた回路機能は、使用される頻度が高い順に決定されることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記予め定められた回路機能は、回路構成情報が大きい順に決定されることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記再構成手段は、
前記決定手段によって再構成する必要があると決定された回路機能が複数有る場合、再構成する複数の回路機能のうち、回路構成情報の大きい回路機能から順に構成することを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記決定手段は、
前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能が所定のサイズよりも小さい場合は、再構成する必要がないと決定することを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記決定手段は、
前記予め定められた回路機能以外の回路機能の使用頻度が、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能の使用頻度よりも高い場合は、再構成する必要がないと決定することを特徴とする請求項１乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置の制御方法であって、
決定手段が、前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定工程と、
再構成手段が、前記決定工程で前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成工程と
を実行することを特徴とする画像処理装置の制御方法。
【請求項１４】
請求項１３に記載の画像処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを扱う画像処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
内部の論理回路の構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの再構成可能回路が良く知られている。一般的に、ＰＬＤやＦＰＧＡの論理回路の変更は、起動時に、ＲＯＭ等の不揮発性メモリに格納された回路構成情報を、ＰＬＤやＦＰＧＡ内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことで実現される。また、コンフィギュレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ＲＯＭに記憶している回路構成情報をコンフィギュレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけＰＬＤやＦＰＧＡの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるＦＰＧＡ等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
【０００３】
また、ＦＰＧＡには、ＦＰＧＡのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリの一部の領域のみを書き換えることで、ＦＰＧＡの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばＦＰＧＡのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。この動的部分再構成を用いた技術として、特許文献１には、例えばパイプライン構成の処理において、パイプラインの先頭の部分回路から順に再構成可能回路上に再構成して、機能を切り替えながらデータ処理する手法が開示されている。
【０００４】
近年のＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）等の画像処理装置は、ユーザからの要求に応じた複数の処理（コピー，  プリント，  ＳＥＮＤジョブ等）を選択可能であり、各処理に応じた画像処理はハードウェア又はソフトウェアにより実現される。この画像処理装置の画像処理ハードウェアとしてＦＰＧＡ等の再構成可能回路を適用した場合、上述した様な機能毎に回路構成を動的かつ部分的に切り替えることが可能となる。その結果少ないハードウェアリソースで様々な画像処理機能が実現可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１８６９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術には以下に記載する問題がある。例えば、上記従来技術の画像処理装置においては、ジョブの内容を把握し、必要な画像処理回路が分かってから、構成（コンフィギュレーション）を行うため、ジョブを受け付けてから構成に要する時間分、画像処理の開始が遅くなってしまう。
【０００７】
本発明は、上述の問題に鑑みて成されたものであり、動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置であって、前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定手段と、前記決定手段によって前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成手段とを備えることを特徴とする特徴とする。
【発明の効果】
【０００９】
本発明によれば、動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る画像処理装置の構成の一例を示すブロック図。
【図２】第１の実施形態に係る画像処理装置における動的部分再構成に関わる構成を示すブロック図。
【図３】第１の実施形態に係る画像処理装置における再構成部に構成される回路情報の格納方法の一例を示す図。
【図４】第１の実施形態に係る画像処理装置のジョブと、実行される部分再構成される回路機能の例を示す図。
【図５】第１の実施形態に係る画像処理装置における電源投入後の初期設定時に実施するコンフィギュレーション制御を示すフローチャート。
【図６】第１の実施形態に係る画像処理装置における電源投入後の初期設定時にＦＰＧＡ１４０の部分再構成部２０１〜２０４へ構成するデフォルト機能の一例を示す図。
【図７】第１の実施形態に係る、初期設定時のコンフィギュレーション終了時のＰＲ管理テーブル２２０の一例を示す図。
【図８】第１の実施形態に係る画像処理装置におけるジョブ処理及びデフォルト機能への再構成処理についての全体制御を示すフローチャート。
【図９】第１の実施形態に係る画像処理装置におけるジョブ実行処理制御を示すフローチャート。
【図１０】第１の実施形態に係る画像処理装置におけるジョブ毎にＦＰＧＡ１４０の部分再構成部２０１〜２０４で実施される制御、構成される機能、ジョブキュー状態の関係を示すタイミングチャート。
【図１１】第１の実施形態に係る画像処理装置におけるタイミングＴ２時点でのＰＲ管理テーブル２２０の一例を示す図。
【図１２】比較例となる画像処理装置における、ジョブ毎にＦＰＧＡ１４０の部分再構成部２０１〜２０４で実施される制御、構成される機能、ジョブキュー状態の関係を示すタイミングチャート。
【図１３】第１の実施形態に画像処理装置における編集用画像処理を使用するユースケースの一例を示す図。
【図１４】第１の実施形態に係る画像処理装置におけるデフォルト機能以外の機能を使用するジョブが投入されている場合の、部分再構成部２０１〜２０４で実施される制御、構成される機能、ジョブキュー状態の関係を示すタイミングチャート。
【図１５】第２の実施形態に係る画像処理装置における電源投入後の初期設定時に実施するコンフィギュレーション制御を示すフローチャート。
【図１６】第２の実施形態に係る画像処理装置における構成情報容量テーブル２２１の一例を示す図。
【図１７】第２の実施形態に係る画像処理装置における電源投入後の初期設定時にＦＰＧＡ１４０の部分再構成部２０１〜２０４へ構成するデフォルト機能の一例を示す図。
【図１８】第２の実施形態に係る、初期設定時のコンフィギュレーション終了時のＰＲ管理テーブル２２０の一例を示す図。
【図１９】第３の実施形態に係る画像処理装置におけるジョブ実行処理制御を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
＜第１の実施形態＞
＜画像処理装置の構成＞
以下では、図１乃至図１４を参照して、本発明の第１の実施形態について説明する。まず、図１を参照して、本実施形態に係る画像処理装置の構成について説明する。
【００１３】
本実施形態の画像処理装置１００は、画像処理装置１００を使用するユーザが各種の操作を行うための操作部１０３と、操作部１０３からの指示に従い画像情報を読み取るスキャナ部１０９と、画像データを用紙に印刷するプリンタ部１０７とを有する。スキャナ部１０９は、スキャナ部１０９を制御するＣＰＵや原稿読取を行うための照明ランプや走査ミラーなどを有する。プリンタ部１０７は、プリンタ部１０７の制御を行うＣＰＵや画像形成や定着を行うための感光体ドラムや定着器を有する。
【００１４】
また、画像処理装置１００は、画像処理装置１００の動作を統括的に制御するＣＰＵ１０１を備え、画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。また、画像処理装置１００は、ＣＰＵ１０１が実行するプログラムが格納されているＲＯＭ１０４を有する。また、画像処理装置１００は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるＲＡＭ１１１と、ＲＡＭ１１１への書き込み、読み出し動作を制御するメモリコントローラ１１０とを有する。メモリコントローラ１１０は、システムバス１２０及び画像バス１２１に接続され、ＲＡＭ１１１へのアクセスを制御する。
【００１５】
画像処理装置１００は、画像処理回路として、回路構成が不変なデバイスのＡＳＩＣ１１８と、後で部分的に再構成可能な再構成回路であるＦＰＧＡ１４０とを有する。ＡＳＩＣ１１８は回路構成を変えられないが、量産コストを抑えられるため、ＭＦＰにとって重要な機能であるスキャナ用の画像処理回路やプリント用の画像処理回路などにより構成されている。一方、ＦＰＧＡ１４０では、種類は豊富であるが処理によって毎回使用される回路が異なる編集機能用の画像処理回路を動的に切り替えて構成することができる。本実施形態では、再構成可能デバイスとしてＦＰＧＡを例に説明しているが本発明はこれに限定されず、ＦＰＧＡ以外の再構成可能デバイスが接続される構成を適用することもできる。
【００１６】
画像処理装置１００は、ＣＰＵ１０１の制御に従って、ＦＰＧＡ１４０の回路構成（コンフィギュレーション）を制御するコンフィグコントローラ１３０を有する。また、画像処理装置１００は、ＦＰＧＡ１４０に構成するための論理回路構成情報（コンフィグデータ）が格納されているコンフィギュレーション用ＲＯＭ１５０を有する。ＦＰＧＡ１４０は、動的書き換え可能かつ部分書き換え可能なものである。即ち、ＦＰＧＡ１４０の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。
【００１７】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタへ画像データを出力するプリンタＩ／Ｆ１０６とを有する。ＦＰＧＡ１４０、スキャナＩ／Ｆ１０８及びプリンタＩ／Ｆ１０６は、処理される画像データを転送するための画像バス１２１に接続される。
【００１８】
また、画像処理装置１００は、ネットワークＩ／Ｆ１０２を介し、ネットワーク上の汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＵＳＢＩ／Ｆ１１４を介し、画像処理装置１００と接続された汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＦＡＸＩ／Ｆ１１５を介し、公衆回線網と接続し、他の画像処理装置やファクシミリ装置と通信（送受信）を行う。画像処理装置１００は、ＣＰＵ１０１が実行するプログラム、ＲＯＭ１０４への書き込み、読み出し動作を制御するＲＯＭＩ／Ｆ１１２を有する。また、画像処理装置１００は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部１０３、ＲＯＭＩ／Ｆ１１２、コンフィグコントローラ１３０、及びＦＰＧＡ１４０を相互に接続するシステムバス１２０を有する。ＣＰＵ１０１は、ＦＰＧＡ１４０と、スキャナＩ／Ｆ１０８、及びプリンタＩ／Ｆ１０６のパラメータ設定を、システムバス１２０を介して行う。
【００１９】
＜部分再構成に関する構成＞
次に、図２を参照して、本実施形態に係る画像処理装置１００における部分再構成に関する構成について説明する。ＣＰＵ１０１、コンフィグコントローラ１３０、コンフィギュレーション用ＲＯＭ１５０、ＦＰＧＡ１４０、メモリコントローラ１１０、及びＲＯＭＩ／Ｆ１１２については図１を用いて前述した通りであるため説明を省略する。
【００２０】
ＦＰＧＡ１４０は内部に、部分再構成部（ＰＲ１）２０１、部分再構成部（ＰＲ２）２０２、部分再構成部（ＰＲ３）２０３、及び部分再構成部（ＰＲ４）２０４を備える。各部分再構成部は、動的に画像処理回路等を書き換えることが可能である。本実施形態においては、画像処理機能を有する回路を部分再構成部に構成する例について説明をするが、もちろん画像処理機能以外の回路を部分再構成部に構成可能であることは言うまでもない。
【００２１】
ＲＡＭ１１１は、後述するＰＲ管理テーブル２２０のための領域を有する。ＰＲ管理テーブル２２０は、４つの部分再構成部（ＰＲ１￣ＰＲ４）がそれぞれ何の機能回路を構成しているかを示す機能ＩＤと、それらが現在使用されているかどうかを示すフラグとから構成される。
【００２２】
ＲＯＭ１０４は、後述する優先順位テーブルを保持する。ＲＯＭ１０４は、部分再構成部に構成され得る回路機能と各回路機能の使用頻度を示す優先順位の関係を記憶している。優先順位は画像処理装置１００が一般的なジョブを実行するにあたって使用される頻度を予め想定しておきＲＯＭ１０４に用意しておくものである。
【００２３】
＜コンフィギュレーションデータ＞
次に、図３を用いて本実施形態に係る画像処理装置におけるＦＰＧＡ１４０の部分再構成部２０１〜２０４に構成されるコンフィギュレーションデータの格納方法について説明する。コンフィギュレーション用ＲＯＭ１５０には、部分再構成に必要な複数のコンフィギュレーションデータが格納される。
【００２４】
ＰＲ１用のコンフィギュレーションデータ３００は、部分再構成部（ＰＲ１）２０１に構成することが可能なコンフィギュレーションデータを表している。図３においては、部分再構成部（ＰＲ１）２０１に構成可能な機能がＡ、Ｂ、Ｃ、Ｄの４つである場合を例にしている。３０１はＰＲ１に機能Ａの回路を構成するためのコンフィギュレーションデータである。同様に３０２はＰＲ１に機能Ｂの回路構成を、３０３はＰＲ１に機能Ｃの回路構成、３０４はＰＲ１に機能Ｄの回路構成を構成するためのコンフィギュレーションデータを表している。
【００２５】
また、ＰＲ２用のコンフィギュレーションデータ３１０は部分再構成部（ＰＲ２）２０２に構成することが可能なコンフィギュレーションデータを表している。ＰＲ２用のコンフィギュレーションデータ３１０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィギュレーションデータを格納しており、部分再構成部（ＰＲ２）２０２には６つの機能を切り替えて構成することが可能である。
【００２６】
また、ＰＲ３用のコンフィギュレーションデータ３２０は部分再構成部（ＰＲ３）２０３に構成することが可能なコンフィギュレーションデータを表している。ＰＲ３用のコンフィギュレーションデータ３２０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィギュレーションデータを格納しており、部分再構成部（ＰＲ３）２０３には６つの機能を切り替えて構成することが可能である。
【００２７】
また、ＰＲ４用のコンフィギュレーションデータ３３０は部分再構成部（ＰＲ４）２０４に構成することが可能なコンフィギュレーションデータを表している。ＰＲ４用のコンフィギュレーションデータ３３０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィギュレーションデータを格納しており、部分再構成部（ＰＲ４）２０４には６つの機能を切り替えて構成することが可能である。
【００２８】
上述したように、各部分再構成部ごとにコンフィギュレーションデータを用意する必要がある。例えば、機能Ａの回路構成を部分再構成部（ＰＲ１）２０１と部分再構成部（ＰＲ２）２０２に構成する場合を例にとる。ＰＲ１用の機能Ａ３０１と、ＰＲ２用の機能Ａ３１１というように同じ機能を実現する場合においても、構成場所によって異なるコンフィギュレーションデータを用意しておく必要がある。
【００２９】
本実施形態では、ＦＰＧＡ１４０は４つの部分再構成部を有し、部分再構成部に構成する機能をＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの場合を例に説明する。各機能の内容の具体例は図４に示す。ここで部分再構成部の数を４、機能数を６としているが、説明を容易にするためだけであり、それらの数に限定されるわけではない。
【００３０】
ここで、デフォルト機能と良く使われる機能について説明する。本発明の画像形成装置は、上述した課題を解決するために、ＭＦＰにおいて良く使われる機能、デフォルト機能を使用するジョブが指定された際の、再構成を事前（ジョブを受け付ける前）に実施するよう制御することで、ジョブ処理開始を早くすることを特徴とする。デフォルト機能（予め定められた回路機能）とは、電源投入後の最初にＦＰＧＡ１４０の部分再構成部２０１〜２０４に構成する回路機能である。ここでいう電源投入後とは、画像処理装置１００全体の電源供給後はもちろん、スリープ状態時にＦＰＧＡ１４０の電源が遮断され、スリープ解除時に再度ＦＰＧＡ１４０に対して電源が供給された場合なども含む。ＦＰＧＡ１４０へ構成される回路機能とは、原稿画像を用紙へ印字する迄の間で行われる種々の画像処理機能であったり、ＵＳＢやＳＤカード等ＩＦの通信処理機能であったり、温度や位置などを検知するためのセンサ処理機能などが考えられる。
【００３１】
よく使われる機能とは、画像処理装置１００に搭載される機能の中で、他の機能と比較して使用頻度の多い機能である。例えば画像処理装置１００を使用する際は、毎回利用されるコピーやプリント等の基本機能や、他の機能と比べて偏って著しく使われるような機能である。
【００３２】
ＦＰＧＡ１４０に構成するデフォルト機能は、ＭＦＰの機種によって異なり、例えば画像処理機能をＦＰＧＡ１４０へ構成する場合を例に挙げると、オフィス機では良く使われるコピーやプリント機能などの基本機能が相当する。ハイエンド機など豊富な編集機能を搭載している場合は、編集機能の中で回転機能や変倍機能など他の編集機能と比べ使用頻度の高い機能などが相当する。
【００３３】
また、良く使われる機能は、ユーザによって異なる。従って、画像処理装置１００では、ログイン後に操作部１０３に最初に表示させる操作画面をユーザが予め登録しておくことで、変更することが可能である。このような場合には、ユーザが予め登録した操作部１０３に最初に表示される操作画面より操作される機能がデフォルト機能としてＦＰＧＡ１４０に構成することが考えられる。
【００３４】
＜ＦＰＧＡ１４０へ構成する画像処理回路＞
次に、図４を参照して、本発明の画像処理装置において、ＦＰＧＡ１４０構成される画像処理回路について説明する。ここでは、ＦＰＧＡ１４０には、編集用画像処理回路を構成する場合について説明する。４１０にＦＰＧＡ１４０へ構成する編集用画像処理回路の一例を示す。
【００３５】
４１０に示すように、本発明の画像処理装置１００は、編集用画像処理回路として機能Ａ〜Ｆの６つの機能を有する。機能Ａは回転処理機能４０１であり、入力されるページ画像を０度、９０度、１８０度、２７０度の角度で回転し出力する機能である。機能Ｂは変倍処理機能４０２であり、入力されるページ画像について２次元変倍処理を行い、最大８倍から最小１／４倍までの倍率で変倍し出力する機能である。機能Ｃは移動処理機能４０３であり、入力されるページ画像について上下左右方向に画素単位で移動し出力する機能である。ページ画像の中から複数の矩形領域を移動対象として指定し、矩形領域のみを抽出し移動することも可能である。機能Ｄは二値化処理機能４０４であり、入力される多値画像を既知の誤差拡散方式により二値化処理を行い、二値画像を出力する機能である。機能Ｅは合成処理機能４０５であり、入力される２つのページ画像について、特定の合成モードに従って合成処理を行い、合成画像を出力する機能である。合成モードは複数のモードを有し、それぞれの入力画像の画素値について所定の係数で乗算した後に加算するモードや、２つの入力画像のうち各座標の画素毎に最大値もしくは最小値を選択して出力するモード等を有する。機能Ｆは色変換処理機能４０６であり、入力されるページ画像について、色空間フォーマットを変換し、色空間変換画像を出力する機能である。例えばスキャナで読み取られる際に表現されるＲＧＢ色空間を、用紙上にプリントする際に表現されるＣＭＹＫ色空間への変換や、ＪＰＥＧ圧縮方式等の際に扱われるＹＵＶ色空間への変換を行う。
【００３６】
上述した機能Ａ〜Ｆの編集用画像処理は、全てＲＡＭ１１１へ格納されているラスタ画像をメモリコントローラ１１０により読み出し、画像バス１２１を介してＦＰＧＡ１４０へ入力された画像データに対して処理が行われる。そして画像処理後の画像データは、画像バス１２１を介してＦＰＧＡ１４０より出力され、メモリコントローラ１１０によりＲＡＭ１１１へ再び格納される。４００に示すジョブ種別回路機能テーブルの詳細については後述する。
【００３７】
＜編集用画像処理のユースケース＞
次に、図１３を参照して、編集用画像処理を使用するユースケースについて説明する。まず初めに、画像処理装置１００がオフィスで使用されるケースを想定して、オフィスで良く使われると思われるユースケースを３つ例（ユースケース１〜３）に挙げ説明する。
【００３８】
（ユースケース１）
１３０１に記載のユースケース１は、Ａ４サイズの原稿をスキャナ部１０９で読み取り、Ａ３サイズの用紙サイズに変倍して出力するユースケースである。スキャナ部１０９で読み取ったＡ４サイズ原稿の画像データは、ＲＡＭ１１１へ格納されている。まず始めに機能Ａの回転処理機能４０１を実施し、Ａ４載置方向のラスタ画像を、９０度回転して、Ａ４Ｒ載置方向のラスタ画像を生成する。Ａ４Ｒ載置方向のラスタ画像データは、一旦ＲＡＭ１１１へ格納される。次に機能Ｂの変倍処理機能４０２を実施し、Ａ４サイズのラスタ画像を１４１％に変倍処理して、Ａ３サイズのラスタ画像を生成する。Ａ３サイズの出力画像は、再度ＲＡＭ１１１へ格納する。
【００３９】
（ユースケース２）
１３０２に記載のユースケース２は、左上に寄っている画像を操作部１０３を操作して用紙中央にレイアウトして出力するユースケースである。ユースケース２では、機能Ｃの移動処理機能４０３を実施し、操作部１０３に指定した上下左右方向の移動量をＣＰＵ１０１により取得し、取得した移動量より画素単位での移動量を算出して、ラスタ画像を画素単位で移動する。
【００４０】
（ユースケース３）
１３０３に記載のユースケース３は、サイズが大きい多値の画像を二値化してサイズを小さくし、画像をネットワーク経由で送信するユースケースである。ユースケース３では、機能Ｄの二値化処理機能４０４を実施し、多値のラスタ画像を誤差拡散処理して、二値のラスタ画像を生成する。二値の出力画像はＲＡＭ１１１へ格納される。そしてメモリコントローラ１１０によりＲＡＭ１１１の二値画像を読み出し、ネットワークＩ／Ｆ１０２を介して画像をネットワーク経由で送信する。
【００４１】
次にオフィスにおいては稀に使用されるユースケース４について説明する。
（ユースケース４）
１３０４に記載のユースケース４は、原稿をスキャナ部１０９で読み取り、ＨＤＤ１１７に予め格納されている定型フォーマット画像と合成するユースケースである。ユースケース４では、機能Ｅの合成処理機能４０５を実施し、ＲＡＭ１１１に格納されている原稿画像と定型フォーマット画像を読み出し、原稿画像に対して定型フォーマット画像を優先して配置する合成処理を行い、合成された画像を生成する。
【００４２】
図４の４００に上述したユースケースを行うジョブについて、必要な画像処理機能の関係が定義されたジョブ種別回路機能テーブルを示す。ジョブ種別回路機能テーブル４００は、ジョブ毎に必要な回路機能と、その処理順序を示すテーブルであり、本発明の画像処理装置１００においては、予めＲＯＭ１０４へ格納される。ジョブ種別回路機能テーブル４００は、ジョブ処理を実行する際に、ジョブに必要な回路機能情報を取得する為に使用される。詳細についてはジョブ処理の説明において後述する。
【００４３】
以上のユースケースにおいて説明したように、編集用画像処理においても、良く使われる機能と、使われることが稀である機能に分けられる。ジョブ種別回路機能テーブル４００に定義した機能は、ＦＰＧＡ１４０へ構成する編集用画像処理回路の６種類であるが、ほとんどのユーザは使用しないが、ニッチで幅広い市場の要求に応えるために、画像処理装置１００に搭載される編集機能は非常に豊富である。つまり、殆どは一般ユーザによっては使用されない機能である。従って、豊富な編集機能を画像処理装置１００に搭載するために、動的に一つの領域に対して複数の画像処理回路を切り換えて構成することが可能なＦＰＧＡは、理に叶ったデバイスといえる。つまり、殆ど使われない機能のために、個別に構成された処理回路を設けることは無駄にハードウェア資源やコストを増大させる結果となる。
【００４４】
そこで、本発明の画像処理装置は、編集用画像処理において良く使われる機能と、そうではない機能が存在することに着目し、良く使われる機能を電源投入後の初期時にＦＰＧＡ１４０へ構成する。この電源投入後の最初にＦＰＧＡ１４０へ構成する機能について、説明の便宜上、デフォルト機能と以降記載し説明する。本発明の画像処理装置は、種類が豊富に存在する編集用画像処理機能の中でも、良く使われる機能についてのＦＰＧＡ１４０への再構成をなるべく少なくなるよう制御し、良く使われる機能の処理開始を速くすることを特徴とする。
【００４５】
本発明の画像処理装置において、図１３の１３０１〜１３０３に記載した、良く使われるユースケース１〜３において、使用される回転処理機能４０１、変倍処理機能４０２、移動処理機能４０３、二値化処理機能４０４の４つを良く使われる機能とする。そして良く使われる機能である、回転処理機能４０１、変倍処理機能４０２、移動処理機能４０３、及び二値化処理機能４０４をデフォルト機能として、電源投入後の初期時にＦＰＧＡ１４０へ構成する例について説明する。
【００４６】
＜ＦＰＧＡ初期コンフィギュレーション＞
次に、図５を参照して、本実施形態に係る画像処理装置１００のＦＰＧＡ１４０について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、ＣＰＵ１０１がＲＯＭ１０４に格納された制御プログラムを実行することにより実現される。さらに、ＣＰＵ１０１は、ＦＰＧＡ１４０に対する再構成制御については、コンフィグコントローラ１３０を介して行う。
【００４７】
まず、Ｓ５０１で、ＣＰＵ１０１は、ＦＰＧＡ１４０の部分再構成部２０１〜２０４へ予め決められた初期設定時に構成するデフォルト機能を構成する。なお、ＣＰＵ１０１は、ＦＰＧＡ１４０における再構成制御を行う場合には、コンフィグコントローラ１３０を介して行う。コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０に格納されたコンフィギュレーションデータを用いてＦＰＧＡ１４０の各部分再構成部２０１〜２０４への再構成を制御する。また、Ｓ５０１及び後述するＳ５０２の処理は、部分再構成部２０１〜２０４ごとに行われる。
【００４８】
ここで、図６を参照して、初期設定時においてＦＰＧＡ１４０の部分再構成部２０１〜２０４へ構成するデフォルト機能について説明する。部分再構成部２０１についての構成では、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０のＰＲ１用コンフィギュレーションデータ３００から、回転処理機能４０１（機能Ａ）のＰＲ１用コンフィギュレーションデータ３０１を読み出す。コンフィグコントローラ１３０は、読み出された機能ＡのＰＲ１用コンフィギュレーションデータ３０１を、部分再構成部２０１のコンフィギュレーションメモリへ書き込む。これにより、部分再構成部２０１には機能Ａとして割り当てられている回転処理機能４０１が構成される。
【００４９】
部分再構成部２０２について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ２用コンフィギュレーションデータ３００から、変倍処理機能４０２（機能Ｂ）のＰＲ２用コンフィギュレーションデータ３０２を読み出す。読み出された機能ＢのＰＲ２用コンフィギュレーションデータ３０２を、部分再構成部２０２のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０２には機能Ｂとして割り当てられている変倍処理機能４０２が構成される。
【００５０】
部分再構成部２０３について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ３用コンフィギュレーションデータ３００から、移動処理機能４０３（機能Ｃ）のＰＲ３用コンフィギュレーションデータ３０３を読み出す。読み出された機能ＣのＰＲ３用コンフィギュレーションデータ３０３を、部分再構成部２０３のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０３には機能Ｃとして割り当てられている移動処理機能４０３が構成される。
【００５１】
部分再構成部２０４について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ４用コンフィギュレーションデータ３００から、二値化処理機能４０４（機能Ｄ）のＰＲ４用コンフィギュレーションデータ３０４を読み出す。読み出された機能ＤのＰＲ４用コンフィギュレーションデータ３０４を、部分再構成部２０４のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０４には機能Ｄとして割り当てられている二値化処理機能４０４が構成される。
【００５２】
図５の説明に戻る。Ｓ５０２で、ＣＰＵ１０１は、ＰＲ管理テーブル２２０の各部分再構成部２０１〜２０４のステータスを「停止中」へ変更する。具体的には、部分再構成部２０１についてステータスを変更する場合は、ＰＲ１のステータスを「停止中」へ変更する。部分再構成部２０２についてステータスを変更する場合は、ＰＲ２のステータスを「停止中」へ変更する。部分再構成部２０３についてステータスを変更する場合は、ＰＲ３のステータスを「停止中」へ変更する。部分再構成部２０４についてステータスを変更する場合は、ＰＲ４のステータスを「停止中」へ変更する。上記のＳ５０１とＳ５０２の処理を、部分再構成部２０１〜２０４の領域分繰り返すと、処理を終了する。
【００５３】
ここで、図７を参照して、ＦＰＧＡ１４０についての初期設定時のコンフィギュレーションが終了した時点でのＰＲ管理テーブル２２０について説明する。ＰＲ管理テーブル２２０は、部分再構成部２０１〜２０４のそれぞれについて、何の機能を有する回路が構成されているかを示す機能ＩＤと、各部分再構成部が使用中であるかどうかを示すステータスの情報とを含む。これらの機能ＩＤと、ステータスの情報とは、後述する処理ステップで逐次書き換えられる。
【００５４】
図７に示すように、ＰＲ１には機能ＩＤとして機能Ａ（回転処理）、ＰＲ２には機能ＩＤとして機能Ｂ（変倍処理）、ＰＲ３には機能ＩＤとして機能Ｃ（移動処理）、ＰＲ４には機能ＩＤとして機能Ｄ（二値化処理）が設定される。そしてＰＲ１〜４の各ステータスに「停止中」が設定される。
【００５５】
以上説明した制御により、ＦＰＧＡ１４０についての初期設定時のコンフィギュレーションが終了すると、各部分再構成部には回転処理機能４０１、変倍処理機能４０２、移動処理機能４０３、及び二値化処理機能４０４が構成される。即ち、よく使われる機能でない、合成処理機能４０５及び色変換処理機能４０６については、初期設定時はＦＰＧＡ１４０へは構成されない。
【００５６】
＜再構成手順＞
次に、図８を参照して、本実施形態における画像処理装置１００の再構成制御に係る制御手順について説明する。まず、本実施形態におけるＦＰＧＡ１４０への書き換え（再構成）方針について説明する。本発明の画像処理装置１００において、ＦＰＧＡ１４０へ再構成するケースは２ケースある。
【００５７】
１つ目のケースは、新規ジョブを実行する際に、ジョブに必要な機能がＦＰＧＡ１４０へ構成されていないときに、必要な機能をコンフィギュレーション用ＲＯＭ１５０より読み出し、ＦＰＧＡ１４０へ再構成する場合である。このケースは従来の画像処理装置において、ジョブ処理をする際に行われている一般的なケースである。
【００５８】
２つ目のケースは、ＦＰＧＡ１４０にデフォルト機能以外（予め定められた回路機能以外）の機能が構成されているときに、ＦＰＧＡ１４０に構成されていないデフォルト機能をコンフィギュレーション用ＲＯＭ１５０から読み出し、ＦＰＧＡ１４０へ再構成する場合である。２つ目のケースにおいて、ＦＰＧＡ１４０に対して再構成を行うか否かは、条件があり、次のジョブとしてＦＰＧＡ１４０に構成されているデフォルト機能以外の機能を使用するジョブが投入されている場合には、デフォルト機能への再構成は行わない。ＦＰＧＡ１４０に構成されているデフォルト機能以外の機能を使用するジョブが投入されていない場合には、デフォルト機能への再構成を行う。
【００５９】
以下では、１つ以上の部分再構成部においてデータ処理を実行中に、それ以外の部分再構成部においてデフォルト機能以外の機能が構成されている場合には、デフォルト機能へ再構成する制御について説明する。図８のフローチャートでは、画像処理装置がスタンバイの状態であり、ＦＰＧＡ１４０にはデフォルト機能が構成されている状態からの手順について説明している。本フローチャートを説明するために、合成ジョブ、二値画像送信ジョブ、Ａ３画像をＡ４出力するジョブの３つのジョブを連続して画像処理装置において処理する場合を例に挙げて説明する。なお、以下で説明する各処理は、ＣＰＵ１０１がＲＯＭ１０４に格納された制御プログラムを実行することにより実現される。さらに、ＣＰＵ１０１は、ＦＰＧＡ１４０に対する再構成制御については、コンフィグコントローラ１３０を介して行う。
【００６０】
また、図１０には、画像処理装置１００において、複数ジョブを連続して行う際の、ジョブ毎にＦＰＧＡ１４０の部分再構成部２０１〜２０４で実施される制御と、部分再構成部２０１〜２０４に構成される機能の関係を表すタイミングチャートを示す。さらに、図１０にはジョブが投入されてから、ジョブが実行されるまでの間に、ジョブの実行順に従って格納されるジョブキューの状態を示している。図１０に示すジョブキューの状態は、ジョブキューに格納されるジョブが更新されたタイミングのみを記載している。また、以下で説明する処理は、１つのジョブに対する処理が完了するごとに行われことが望ましい。
【００６１】
図８の説明に移る。Ｓ８０１で、ＣＰＵ１０１は、ＲＡＭ１１１内に保存されたＰＲ管理テーブル２２０より部分再構成部２０１〜２０４についての機能ＩＤとステータスを順次読み出す。続いて、Ｓ８０２で、ＣＰＵ１０１は、デフォルト機能以外の機能ＩＤで且つステータスが停止中の部分再構成部が有るか否かを判定する。デフォルト機能以外の機能ＩＤで且つステータスが停止中の部分再構成部２０１〜２０４が有ればＳ８０２に進み、無ければＳ８０８に進む。画像処理装置１００がスタンバイ状態であり、ＦＰＧＡ１４０が初期のコンフィギュレーション設定がされている場合（以下、初期設定時）には、ＦＰＧＡ１４０の部分再構成部２０１〜２０４にはデフォルト機能が構成されている。当該タイミングは、図１０のタイミングＴ０に示す。
【００６２】
初期設定時のＰＲ管理テーブル２２０の設定内容は、図７に示す通りである。従って、Ｓ８０１では、ＣＰＵ１０１によって、タイミングＴ０における部分再構成部２０１〜２０４についての機能ＩＤとして、回転処理機能、変倍処理機能、移動処理機能、及び二値化処理機能が読み出される。同様に部分再構成部２０１〜２０４についてのステータスとして、全て「停止中」が読み出される。つまり、図７に示すＰＲ管理テーブル２２０の設定内容では、デフォルト機能以外の機能である合成処理、色変換処理の機能ＩＤが設定されている部分再構成部２０１〜２０４が無いので、Ｓ８０２における判断分岐でＮＯとなりＳ８０８へ進むことになる。
【００６３】
Ｓ８０８で、ＣＰＵ１０１は、画像処理装置１００に新規のジョブが投入されているかを確認する。続いて、Ｓ８０９で、ＣＰＵ１０１は、Ｓ８０８の確認の結果、新規ジョブが投入されているか否かを判定する。投入されていればＳ８１０へ進み、そうでない場合には、Ｓ８０１へ戻る。図１０の例では、タイミングＴ１、タイミングＴ３、タイミングＴ５の時点で、それぞれジョブ１として合成ジョブ、ジョブ２として二値画像送信ジョブ、ジョブ３としてＡ４画像をＡ３出力するジョブを受け付ける例を示している。つまり、Ｓ８０９の判断分岐において、新規ジョブが投入されるタイミングＴ１、タイミングＴ３、タイミングＴ５では、ＹＥＳとなりＳ８１０へ進む。上記以外のタイミングでは、Ｓ８０９の判断分岐においてＮＯとなり、Ｓ８０１へ戻る。
【００６４】
Ｓ８１０で、ＣＰＵ１０１は、投入された新規ジョブをジョブキューに格納する。ジョブキューはＲＡＭ１１１上に作成され、ジョブを実行する順番に投入されたジョブを格納する。投入された新規ジョブは、ジョブキューに格納されたジョブの中で、最後の順番に実行されるジョブとして格納される。続いて、Ｓ８１１で、ＣＰＵ１０１は、投入されたジョブのジョブ処理を開始する。ジョブ処理の詳細については後述する。
【００６５】
図１１は、図１０のタイミングＴ２の時点でのＰＲ管理テーブル２２０の一例を示す。タイミングＴ２は、ジョブ１の合成ジョブが終了したタイミングである。図１０の例では、合成ジョブを実行するために、部分再構成部２０１に対して合成処理機能４０５を構成し、データ処理を行う。従って、図１１に示すようにＰＲ１には機能ＩＤとして機能Ｅ（合成処理）、ＰＲ２には機能ＩＤとして機能Ｂ（変倍処理）、ＰＲ３には機能ＩＤとして機能Ｃ（移動処理）、ＰＲ４には機能ＩＤとして機能Ｄ（二値化処理）が設定される。そしてＰＲ１〜４の各ステータスに「停止中」が設定される。
【００６６】
このタイミングＴ２の時点で、Ｓ８０１のステップを行うと、ＰＲ１にはデフォルト機能以外の機能ＩＤである機能Ｅ（合成処理）が設定され、且つステータスに「停止中」が設定されているため、Ｓ８０２の判断分岐でＹＥＳとなり、Ｓ８０３へ進む。Ｓ８０３で、ＣＰＵ１０１は、現在受け付けているジョブ、即ち、ジョブキューに格納されているジョブの内容を取得する。続いて、Ｓ８０４で、ＣＰＵ１０１は、Ｓ８０３で取得した内容に従って、デフォルト機能以外の機能を使用するジョブが有るか否かを判定する。デフォルト機能以外の機能を使用するジョブが有る場合にはＳ８０８へ進み、無ければＳ８０５に進む。Ｓ８０８へ進む場合は、ＦＰＧＡ１４０への書き換え（再構成）方針で説明した２つ目のケースにおいて、書き換えを行わない場合に相当する。一方、Ｓ８０５へ進む場合は、ＦＰＧＡ１４０への書き換え（再構成）方針で説明した２つ目のケースにおいて、書き換えを行う場合に相当する。
【００６７】
以下では、デフォルト機能への再構成を行う場合、即ち、ジョブキューにデフォルト機能以外の機能を使用するジョブが無い場合の処理について説明する。図１０のタイミングＴ２の時点では、ジョブキューにはジョブ２のみがジョブキューに格納されている。
【００６８】
ジョブ２の二値画像送信のジョブで使用する機能は、図４のジョブ種別回路機能テーブル４００に示す二値化処理機能４０４である。つまり、ＰＲ１に構成されているデフォルト機能以外の機能である合成処理機能４０５を使用するジョブは存在しないので、Ｓ８０５へ進む。
【００６９】
Ｓ８０５で、ＣＰＵ１０１は、ＲＡＭ１１１内に保存されたＰＲ管理テーブル２２０より部分再構成部２０１〜２０４についての機能ＩＤとステータスを順次読み出し、デフォルト機能以外の機能ＩＤで、且つステータスが停止中の部分再構成部を特定する。例えば、図１０のタイミングＴ２において、ジョブ１の合成ジョブが終了する時点を例に挙げて説明する。図１１に示すタイミングＴ２の時点でのＰＲ管理テーブル２２０の例の場合には、ＣＰＵ１０１は、部分再構成部２０１（ＰＲ１）がデフォルト機能以外である機能Ｅ（合成処理）の機能ＩＤで、ステータスが「停止中」の設定がされていると特定する。以降、Ｓ８０６とＳ８０７のステップは、特定した部分再構成部が複数存在する場合には、部分再構成部２０１〜２０４に対してそれぞれ繰り返す。
【００７０】
Ｓ８０６で、ＣＰＵ１０１は、特定した部分再構成部２０１〜２０４に対して、現在構成されていないデフォルト機能を構成する。予め定めたデフォルト機能の中で、ＦＰＧＡ１４０に実装されていないデフォルト機能を構成するよう制御する。図１１に示すタイミングＴ２の時点でのＰＲ管理テーブル２２０の例の場合には、デフォルト機能である機能Ａ（回転処理）が存在していない。従って、ＣＰＵ１０１は、コンフィギュレーション用ＲＯＭ１５０のＰＲ１用コンフィギュレーションデータ３００より機能ＡのＰＲ１用コンフィギュレーションデータ３０１を読み出し、部分再構成部２０１のコンフィギュレーションメモリへ書き込む。Ｓ８０７で、ＣＰＵ１０１は、ＰＲ管理テーブル２２０のデフォルト機能への構成を行った部分再構成部２０１〜２０４について、デフォルト機能の機能ＩＤを設定し、ステータスとして「停止中」を設定する。図１０においてデフォルト機能への構成が終了したタイミングＴ４時点における、ＰＲ管理テーブル２２０の一例を図７に示す。
【００７１】
なお、上記Ｓ８０６及びＳ８０７において、再構成する必要があると決定された対象（回路機能）が複数有る場合は、再構成する回路機能の回路構成情報が大きい順に行うことが望ましい。これにより、当該ジョブが開始される前に、コンフィギュレーション時間が長いと予想されるものから
続いて、デフォルト機能への再構成を行わない場合、即ち、ジョブキューにデフォルト機能以外の機能を使用するジョブが有る場合の処理について説明する。図１４にジョブ実行中に、次のジョブが投入された際の、ジョブ毎にＦＰＧＡ１４０の部分再構成部２０１〜２０４で実施される制御と、部分再構成部２０１〜２０４に構成される機能の関係を表すタイミングチャートを示す。図１４において、タイミングＴ０〜Ｔ５の時点は、図１０と同じタイミングを示している。
【００７２】
図１４では、図１０とは異なり、タイミングＴ２の時点では既にジョブキューに、次のジョブのジョブ３が格納されている。ジョブ３の合成のジョブで使用する機能は、図４のジョブ種別回路機能テーブルより、合成処理機能４０５である。つまり、ＰＲ１に構成されているデフォルト機能以外の機能である合成処理機能４０５を使用するジョブは存在するので、Ｓ８０４の判定の結果、Ｓ８０８へ進む。Ｓ８０８以降の処理は、上述したため説明を省略する。上述したＳ８０１乃至Ｓ８１１のステップを繰り返すことにより、ＰＲ管理テーブル２２０の内容によって、ジョブ処理と、デフォルト機能への再構成処理が繰り返される。
【００７３】
＜ジョブ実行処理＞
次に、図９を参照して、本実施形態に係る画像処理装置１００のジョブ実行処理の手順について説明する。なお、以下で説明する各処理は、ＣＰＵ１０１がＲＯＭ１０４に格納された制御プログラムを実行することにより実現される。さらに、ＣＰＵ１０１は、ＦＰＧＡ１４０に対する再構成制御については、コンフィグコントローラ１３０を介して行う。
【００７４】
Ｓ９０１で、ＣＰＵ１０１は、受信したジョブを実行するにあたり、ＦＰＧＡ１４０に構成する必要がある機能を図４に示すジョブ種別回路機能テーブル４００を参照し特定する。例えば、図１０のタイミングＴ１において、ジョブ１の合成ジョブを実行する時点を例に挙げて説明すると、合成ジョブでは合成処理機能４０５が必要であると特定する。
【００７５】
Ｓ９０２で、ＣＰＵ１０１は、ＲＡＭ１１１内に保存されたＰＲ管理テーブル２２０を順次読出し必要な回路でかつ停止中の回路が有るか判断する。その後、Ｓ９０３で、ＣＰＵ１０１は、Ｓ９０２の判断結果から、再構成が必要か否かを判定する。例えば、機能Ｅ（合成処理機能４０５）が必要なときに、ＰＲ管理テーブル２２０が図７に示す状態（図１０のタイミングＴ１）であった場合、機能Ｅはいずれの部分再構成部にも存在しないのでＳ９０３からＳ９０４へ進み、部分再構成を行う。ここで仮に機能Ｅがいずれかの部分再構成部に存在していたとしてもステータスが使用中で有る場合は再構成が必要になることに注意されたい。
【００７６】
これに対して、例えば機能Ｃ（移動処理）が必要な場合はＰＲ管理テーブル２２０が図７に示すようにＰＲ３に既に機能Ｃの回路が構成されているから次のＳ９０３からＳ９０７へ進み、既存の回路機能を再構成することなく処理の実行へ移行することができる。即ち、回路の再構成動作をスキップできるためジョブ実行の全体時間を減らしパフォーマンスが向上する。機能Ｅが必要で部分再構成を行う場合Ｓ９０４へ移行して再構成領域の選択処理を行う。
【００７７】
Ｓ９０４で、ＣＰＵ１０１は、再構成する部分再構成部２０１〜２０４を選択する。部分再構成部２０１〜２０４のうち、どこへ再構成を行うかは、例えば機能毎に優先順位を設定して、ＦＰＧＡ１４０へ構成されている機能の中で、優先順位の高い機能が構成されている部分再構成部２０１〜２０４を選択する等の方法が考えられる。本実施形態では、機能毎に使用する部分再構成部２０１〜２０４について制約があり、予め決められている場合を例に挙げて説明する。図１０のタイミングＴ１において、合成処理機能は部分再構成部２０１を使用するよう予め決められている場合には、部分再構成部２０１を選択する。
【００７８】
続いて、Ｓ９０５で、ＣＰＵ１０１は、コンフィグコントローラ１３０により部分再構成部を再構成する。上の例に従えばＰＲ１に機能Ｅを再構成する。さらに、Ｓ９０６で、ＣＰＵ１０１は、ＰＲ管理テーブル２２０の機能ＩＤとステータスを変更する。即ち、機能ＥをＰＲ１に再構成する場合はＰＲ管理テーブル２２０のＰＲ１に対応する機能ＩＤを機能Ａから機能Ｅへ変更するとともにＰＲ１に対応するステータスを「停止中」から「使用中」へ変更する。これらの処理によって他の並列実行中のジョブがＰＲ１を誤って使用することを防止する。
【００７９】
Ｓ９０７で、ＣＰＵ１０１は、Ｓ９０４からＳ９０６のステップで構成された部分再構成部又は、既に構成されていた部分再構成部の回路を起動しジョブ実行に必要な回路機能を実行する。本ステップは回路起動のためのレジスタ設定、終了割込み待ち動作、終了割り込み対応処理動作等も含む。回路機能の動作が終了すると、Ｓ９０８でＰＲ管理テーブル２２０のステータスを「停止中」に変更する。例えばＰＲ１の動作が終了した場合は、ＰＲ１に対応するステータスを「使用中」から「停止中」へ変更する。これにより他の並列実行中のジョブがＰＲ１を使用することが可能になる。
【００８０】
以上説明したように、本実施形態に係る画像処理装置では、ＦＰＧＡ１４０の部分再構成部２０１〜２０４にデフォルト機能以外の機能が構成されている場合には、部分再構成部での処理が行われていない際に、デフォルト機能への構成を前もって行っておく。図１２に上記の制御を行わない比較例となる画像処理装置での、ジョブ毎にＦＰＧＡ１４０の部分再構成部２０１〜２０４で実施される制御と、部分再構成部２０１〜２０４に構成される機能の関係を表すタイミングチャートを示す。
【００８１】
図１２に示すように、比較例となる画像処理装置では、タイミングＴ５の時点でデフォルトの機能を使用するＡ４画像をＡ３出力するジョブがジョブ３として投入された場合、Ａ４画像をＡ３出力するジョブで使用する回転処理機能４０１を構成する必要がある。従って、データ処理の開始が構成が終了したタイミングＴ６となり、構成にかかる時間分データ処理の開始が遅くなる。一方、本実施形態に係る画像処理装置では、図１０のタイミングＴ４の時点で既にデフォルト機能の構成が終了しているため、ジョブ３が投入されたタイミングＴ５の時点でデータ処理を開始できるという効果を奏する。即ち、本発明によれば、予め定めた機能以外の機能が再構成可能回路に構成されている場合には、未使用時に予め定めた機能への再構成を行う。つまり、ジョブが指定される前に、予め定めた機能への再構成を行うよう制御するので、後に予め定めた機能を使用するジョブを処理する際の再構成の時間を省略でき、動作可能になるまでの時間を短縮できパフォーマンスが向上する。
【００８２】
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、Ｓ８０６でデフォルト機能を再構成する際に、当該デフォルト機能の回路構成情報が所定のサイズより小さい場合は、再構成を行わないように制御してもよい。これは、回路構成情報が小さく、ジョブの実行前に再構成を実行したとしても待機時間にさほど影響しない場合に有効である。これにより、再構成する頻度を低減することができ、ＦＰＧＡ１４０の耐久性を向上させることができる。
【００８３】
＜第２の実施形態＞
以下では、図１５乃至図１８を参照して、本発明の第２の実施形態について説明する。上記第１の実施形態では、編集用画像処理機能をＦＰＧＡ１４０へ構成する場合を例に挙げて、編集用画像処理機能の中で、良く使われる機能をデフォルト機能としてＦＰＧＡ１４０へ構成する形態について説明した。しかしながら、良く使われる機能の回路構成情報（コンフィギュレーションデータ）が小さい場合には、再構成の時間は小さくなるので、回路構成情報の大きさによっては、さほど問題にならない場合も考えられる。このようなケースを想定し、本実施形態では、回路構成情報が大きい機能より優先してデフォルト機能に割り当て、ＦＰＧＡ１４０の電源投入後に構成するよう制御する。もちろん、上記第１の実施形態と本実施形態とを組み合わせて、使用される頻度が高い順であって、さらに、回路構成情報が大きい順も考慮してデフォルト機能を決定してもよい。
【００８４】
＜ＦＰＧＡ初期コンフィギュレーション＞
まず、図１５を参照して、本実施形態に係る画像処理装置のＦＰＧＡ１４０について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、ＣＰＵ１０１がＲＯＭ１０４に格納された制御プログラムを実行することにより実現される。さらに、ＣＰＵ１０１は、ＦＰＧＡ１４０に対する再構成制御については、コンフィグコントローラ１３０を介して行う。
【００８５】
Ｓ１５０１で、ＣＰＵ１０１は、構成情報容量テーブル２２１より各機能の構成情報容量を順次読み出し、構成情報容量が大きい機能より順番にデフォルト機能として割り当てる。
【００８６】
図１６は構成情報容量テーブル２２１の一例を示す。構成情報容量テーブル２２１は、各機能の構成情報容量の情報を示すテーブルであり、ＲＯＭ１０４に予め格納されている。図１６の例では、機能Ａ〜Ｆの構成情報容量は、それぞれ、２００、５００、５２０、６００、４５０、１８０である。ＣＰＵ１０１は、構成情報容量テーブル２２１の各機能の構成情報容量を順次取得して、構成情報容量が大きい機能より順番に、ＦＰＧＡ１４０の部分再構成部２０１〜２０４へ構成するデフォルト機能として割り当てる。図１６の例においては、機能Ｄ（二値化処理機能４０４）、機能Ｃ（移動処理機能４０３）、機能Ｂ（変倍処理機能４０２）、機能Ｅ（合成処理機能４０５）が、部分再構成部２０１〜２０４のデフォルト機能として割り当てられる。
【００８７】
次に、Ｓ１５０２で、ＣＰＵ１０１は、ＦＰＧＡ１４０の部分再構成部２０１〜２０４へ割り当てられたデフォルト機能を構成する。図１７は、本実施形態に係る画像処理装置の初期設定時におけるＦＰＧＡ１４０の部分再構成部２０１〜２０４へ構成するデフォルト機能の一例を示す。部分再構成部２０１について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ１用コンフィギュレーションデータ３００から、二値化処理機能４０４（機能Ｄ）のＰＲ１用コンフィギュレーションデータ３０４を読み出す。読み出された機能ＤのＰＲ１用コンフィギュレーションデータ３０４を、部分再構成部２０１のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０１には機能Ｄとして割り当てられている二値化処理機能４０４が構成される。
【００８８】
部分再構成部２０２について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ２用コンフィギュレーションデータ３００から、移動処理機能４０３（機能Ｃ）のＰＲ２用コンフィギュレーションデータ３０３を読み出す。読み出された機能ＣのＰＲ２用コンフィギュレーションデータ３０３を、部分再構成部２０２のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０２には機能Ｃとして割り当てられている移動処理機能４０３が構成される。
【００８９】
部分再構成部２０３について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ３用コンフィギュレーションデータ３００から、変倍処理機能４０２（機能Ｂ）のＰＲ３用コンフィギュレーションデータ３０２を読み出す。読み出された機能ＢのＰＲ３用コンフィギュレーションデータ３０２を、部分再構成部２０３のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０３には機能Ｂとして割り当てられている変倍処理機能４０２が構成される。
【００９０】
部分再構成部２０４について、コンフィグコントローラ１３０は、コンフィギュレーション用ＲＯＭ１５０よりＰＲ４用コンフィギュレーションデータ３００から、合成処理機能４０５（機能Ｅ）のＰＲ４用コンフィギュレーションデータ３０５を読み出す。読み出された機能ＤのＰＲ４用コンフィギュレーションデータ３０５を、部分再構成部２０４のコンフィギュレーションメモリへ書き込むことにより、部分再構成部２０４には機能Ｅとして割り当てられている合成処理機能４０５が構成される。
【００９１】
次に、Ｓ１５０３で、ＣＰＵ１０１は、ＰＲ管理テーブル２２０の各部分再構成部２０１〜２０４の機能ＩＤとしてデフォルト機能の機能ＩＤを設定し、ステータスを「停止中」へ変更する。上記のＳ１５０１乃至Ｓ１５０３の処理が、部分再構成部２０１〜２０４の領域分繰り返される。
【００９２】
図１８は、本実施形態に係る画像処理装置におけるＦＰＧＡ１４０についての初期設定時のコンフィギュレーションが終了した時点でのＰＲ管理テーブル２２０の一例を示す。図１８に示すように、ＰＲ１には機能ＩＤとして機能Ｄ（二値化処理）、ＰＲ２には機能ＩＤとして機能Ｃ（移動処理）、ＰＲ３には機能ＩＤとして機能Ｂ（変倍処理）、ＰＲ４には機能ＩＤとして機能Ｅ（合成処理）が設定される。そしてＰＲ１〜４の各ステータスに「停止中」が設定される。
【００９３】
このように、本実施形態によれば、ＦＰＧＡ１４０についての初期設定時のコンフィギュレーションが終了すると、変倍処理機能４０２、移動処理機能４０３、二値化処理機能４０４、及び合成処理機能４０５が構成される。回転処理機能４０１、色変換処理機能４０６については、初期設定時はＦＰＧＡ１４０へは構成されない。
【００９４】
以上説明したように、本実施形態では電源投入後にＦＰＧＡ１４０に構成するデフォルト機能として、回路構成情報の大きい機能から優先して割り当てるよう制御する。したがって、本実施形態では、回路構成情報の大きな機能を事前にＦＰＧＡ１４０に構成するよう制御するため、回路構成情報の大きな機能を使用するジョブを処理する際の、長い構成時間を低減することができる。
【００９５】
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、本実施形態では、デフォルト機能を回路構成情報が大きい順に決定されていることから、デフォルト機能への再構成を実施する場合に、既に構成されているデフォルト機能以外の機能の方が使用頻度が高い場合もある。このような場合には、再構成を制限するように制御してもよい。これにより、上記第１及び第２の実施形態を組み合わせた構成とすることもできる。
【００９６】
＜第３の実施形態＞
以下では、図１９を用いて、本発明の第３の実施形態について説明する。上記第１の実施形態では、再構成する部分再構成部２０１〜２０４を選択する際に、機能毎に使用する部分再構成部２０１〜２０４について制約があり、予め決められている場合を例に挙げて説明した。しかしながら、上記制約が無いのであれば、例えば機能毎に優先順位を設定して、ＦＰＧＡ１４０へ構成されている機能の中で、優先順位の高い機能が構成されている部分再構成部２０１〜２０４を選択する等の方法が考えられる。そこで、本実施形態では、部分再構成部２０１〜２０４に構成されている機能の回路構成情報の容量を参照して、回路構成情報の小さい機能が構成されている部分再構成部２０１〜２０４を優先して選択するよう制御する。
【００９７】
＜処理手順＞
図１９を参照して、本実施形態に係る画像処理装置のジョブ実行処理制御の手順について説明する。なお、以下で説明する各処理は、ＣＰＵ１０１がＲＯＭ１０４に格納された制御プログラムを実行することにより実現される。さらに、ＣＰＵ１０１は、ＦＰＧＡ１４０に対する再構成制御については、コンフィグコントローラ１３０を介して行う。図１９に示すフローチャートにおいて、Ｓ１９０１〜Ｓ１９０３、及びＳ１９０６〜Ｓ１９０９の処理は、図９に示す上記第１の実施形態のフローチャートに示すＳ９０１〜Ｓ９０３、及びＳ９０５〜Ｓ９０８の処理とそれぞれ同じであるため、説明を省略する。即ち、以下では、Ｓ１９０４及びＳ１９０５の処理について説明する。
【００９８】
Ｓ１９０４で、ＣＰＵ１０１は、Ｓ１９０２で読み出したＰＲ管理テーブル２２０の部分再構成部２０１〜２０４の機能ＩＤについての構成情報の容量を、構成情報容量テーブル２２１より取得する。図１０のタイミングＴ２の時点でのＰＲ管理テーブル２２０は図１１に示す通りであり、部分再構成部２０１〜２０４の機能ＩＤは、それぞれ機能Ｅ（合成処理）、機能Ｂ（変倍処理）、機能Ｃ（移動処理）、機能Ｄ（二値化処理）である。従って、ＣＰＵ１０１は、図１６に示す構成情報容量テーブル２２１より、機能Ｅ（合成処理）、機能Ｂ（変倍処理）、機能Ｃ（移動処理）、機能Ｄ（二値化処理）の構成情報容量として、それぞれ４５０、５００、５２０、６００を取得する。
【００９９】
Ｓ１９０５で、ＣＰＵ１０１は、最も小さい構成情報容量の機能が構成されている部分再構成部２０１〜２０４を再構成対象として選択する。ＦＰＧＡ１４０に構成されている、機能Ｅ（合成処理）、機能Ｂ（変倍処理）、機能Ｃ（移動処理）、機能Ｄ（二値化処理）の構成情報容量の中で最も小さい構成情報容量の機能は機能Ｅ（合成処理）の４５０である。従って、ＣＰＵ１０１は、機能Ｅ（合成処理）が構成されている部分再構成部２０１を再構成対象として選択する。
【０１００】
以上説明したように、本実施形態では再構成対象の部分再構成部２０１〜２０４を選択する際に、回路構成情報の小さい機能が構成されている部分再構成部２０１〜２０４を優先して割り当てるよう制御する。これにより、本実施形態では、回路構成情報の大きな機能を極力再構成しないよう制御するため、回路構成情報の大きな機能を使用するジョブを処理する際の、長い構成時間の低減可能となる。
【０１０１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０２】
１００：画像処理装置、１０１：ＣＰＵ、１０２：ネットワークＩ／Ｆ、１０３：操作部、１０４：ＲＯＭ、１０６：プリンタＩ／Ｆ、１０７：プリンタ部、１０８：スキャナＩ／Ｆ、１０９：スキャナ部、１１０：メモリコントローラ、１１１：ＲＡＭ、１１２：ＲＯＭＩ／Ｆ、１１３：操作部Ｉ／Ｆ、１１４：ＵＳＢＩ／Ｆ、１１５：ＦＡＸＩ／Ｆ、１１６：ＨＤＤＩ／Ｆ、１１７：ＨＤＤ、１１８：ＡＳＩＣ、１２０：システムバス、１２１：画像バス、１３０：コンフィグコントローラ、１４０：ＦＰＧＡ、１５０：コンフィギュレーション用ＲＯＭ
【図１】
2016136359.tif 000003
【図２】
2016136359.tif 000004
【図３】
2016136359.tif 000005
【図４】
2016136359.tif 000006
【図５】
2016136359.tif 000007
【図６】
2016136359.tif 000008
【図７】
2016136359.tif 000009
【図８】
2016136359.tif 000010
【図９】
2016136359.tif 000011
【図１０】
2016136359.tif 000012
【図１１】
2016136359.tif 000013
【図１２】
2016136359.tif 000014
【図１３】
2016136359.tif 000015
【図１４】
2016136359.tif 000016
【図１５】
2016136359.tif 000017
【図１６】
2016136359.tif 000018
【図１７】
2016136359.tif 000019
【図１８】
2016136359.tif 000020
【図１９】
2016136359.tif 000021