(57)【要約】【課題】動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐ技術を提供する。【解決手段】画像処理装置１００は、一部の回路構成を動的に再構成可能な再構成可能回路として、動的再構成部１３１を備える。動的再構成部１３１には、動的部分再構成により、画像処理を行う画像処理部１３２と、画像処理部１３２の動作状態を示す、画像処理のためのレジスタ値（回路情報）を保持するレジスタ部とが構成される。ＣＰＵ１０１は、動的再構成部１３１が、コンフィグコントローラ１３０によって第１の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第２の画像処理を実行可能な回路構成に再構成される前に、レジスタ部１３３に保持されているレジスタ値を、動的再構成部１３１の外部に設けられたＳＲＡＭ１３４に格納する。【選択図】図１
2015197863.tif 000002
【特許請求の範囲】
【請求項１】
一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、
前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、
前記再構成手段によって、前記再構成可能回路が、第１の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第２の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている前記回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記第１及び第２の画像処理を含む複数の画像処理に対応する複数の回路構成が、前記再構成可能回路に時分割で再構成されるよう、前記再構成手段を制御しながら、前記複数の画像処理を必要とするジョブを実行する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記再構成可能回路を用いた前記第１の画像処理の実行後、前記第２の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する前に、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納する
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記制御手段は、前記再構成可能回路を用いた前記第１の画像処理の実行中に、前記画像処理部においてエラーが発生していなければ、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納することなく、前記第２の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納する格納制御手段を更に備え、
前記制御手段は、前記再構成可能回路を用いた前記第１の画像処理の実行後、前記第２の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する前に、前記格納制御手段に対して、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納すべきことを指示する
ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記格納制御手段は、更に、前記画像処理部においてエラーが発生すると、前記レジスタ部に保持されている前記回路情報を自動的に前記記憶手段に格納する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、
前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、
第１の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第１の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第２の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう、前記再構成手段を制御する制御手段と
を備えることを特徴とする画像処理装置。
【請求項８】
前記レジスタ部は、前記画像処理装置が実行可能な各ジョブで必要となる全ての画像処理のための前記回路情報を同時に格納可能な記憶容量を有するように予め構成されることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記制御手段は、前記ジョブの実行を開始する際に、当該ジョブで必要となる全ての画像処理のための前記回路情報を同時に格納可能な記憶容量を有するように、前記再構成手段によって前記レジスタ部を再構成させることを特徴とする請求項７に記載の画像処理装置。
【請求項１０】
前記制御手段は、前記再構成手段によって、前記第２の画像処理を実行可能な回路構成に前記画像処理部が再構成された後に、前記第２の画像処理のための前記回路情報を前記レジスタ部に設定する
ことを特徴とする請求項７から９のいずれか１項に記載の画像処理装置。
【請求項１１】
一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路を備える画像処理装置の制御方法であって、
前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成工程と、
前記再構成工程で、前記再構成可能回路が、第１の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第２の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御工程と
を含むことを特徴とする画像処理装置の制御方法。
【請求項１２】
一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路を備える画像処理装置の制御方法であって、
前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成工程と、
第１の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第１の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第２の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう制御する制御工程と
を含むことを特徴とする画像処理装置の制御方法。
【請求項１３】
コンピュータを請求項１から１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
論理回路の構成を変更可能なＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等の再構成可能回路が良く知られている。一般的に、ＰＬＤやＦＰＧＡの論理回路の変更は、起動時に、ＲＯＭ等の不揮発性メモリに格納された回路構成情報（回路構成データ）を、ＰＬＤやＦＰＧＡ内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことで実現される。また、コンフィギュレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ＲＯＭに記憶している回路構成情報をコンフィギュレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけＰＬＤやＦＰＧＡの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるＦＰＧＡ等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
【０００３】
またＦＰＧＡには、ＦＰＧＡのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリの一部の領域のみを書き換えることで、ＦＰＧＡの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばＦＰＧＡのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。
【０００４】
また、ＭＦＰ（Multi Function Printer）等の画像処理装置は、実行可能な複数の処理（コピージョブ、プリントジョブ、ＳＥＮＤジョブ等）のうちでユーザからの要求に応じて選択した画像処理を実行する。このような画像処理装置では、画像不良、ハングアップ等のエラーが発生する場合がある。そのようなエラーの解析及びデバッグ等のために、一般に、各種機能を実行するアプリケーションソフトウェア及び画像処理用のハードウェアに対するレジスタ設定を行うドライバソフトウェアが扱う各種のソフトウェアパラメータが解析されうる。更に、画像処理用のハードウェア内部に保持される画像処理パラメータ及び回路内部のステータス等のレジスタ値が、ソフトウェアによって外部の不揮発メモリへ格納され、エラーの解析に使用されうる。
【０００５】
例えば特許文献１では、ＦＰＧＡ等の再構成可能なコア（回路）の再構成用のコンフィギュレーションデータの付随情報（バージョン情報、更新日時等）を、再構成可能なコアの外部の記憶部に格納する、再構成可能な回路装置が提案されている。これにより、外部デバイスから付随情報を読み出すことができ、再構成可能なコアに構成されている回路に関する情報を外部から知ることを可能にしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１２３１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、複数の画像処理を時分割で実行するために、動的部分再構成が可能な回路に対して時分割で複数の論理回路を切り替えて実装するような場合、再構成により新たな回路が実装されると再構成前の回路に関する情報の少なくとも一部が失われてしまう。具体的には、特許文献１では、コンフィギュレーションデータの付随情報を再構成可能回路の外部の記憶部に格納することで、当該回路のハードウェア構成を示す回路情報を得ることは可能である。一方で、画像処理で用いられたパラメータ（レジスタ値）、及び回路のステータス等の、回路の動作状態を示す回路情報は、回路の再構成によって失われてしまう。その結果、そのような回路情報を、エラーの解析及びデバッグ等に使用することができない。このように、再構成可能回路の再構成によって当該回路の動作状態を示す回路情報が失われると、エラーが発生した場合のエラーの解析及びデバッグ等に、そのような回路情報を利用することができなくなってしまう。
【０００８】
本発明は、上述の問題に鑑みてなされたものである。本発明は、動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐ技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、例えば、画像処理装置として実現できる。本発明の一態様に係る画像処理装置は、一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、前記再構成手段によって、前記再構成可能回路が、第１の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第２の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている前記回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御手段とを備えることを特徴とする。
【００１０】
本発明の他の一態様に係る画像処理装置は、一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、第１の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第１の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第２の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう、前記再構成手段を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐことが可能になる。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置の構成例を示す図（第１及び第３の実施形態）。
【図２】ＲＯＭに格納されるコンフィグデータの一例と、画像形成装置で実行可能な各ジョブで実行される画像処理の順序及び対応するコンフィグデータの一例とを示す図。
【図３】画像処理装置がコピージョブを実行する場合の、動的再構成部の再構成手順の例を示す図（第１〜第３の実施形態）。
【図４】動的再構成部の再構成制御の手順を示すフローチャート（第１の実施形態）。
【図５】画像処理装置の構成例を示す図（第２の実施形態）。
【図６】動的再構成部の再構成制御の手順を示すフローチャート（第２の実施形態）。
【図７】、
【図８】動的再構成部の再構成制御の手順を示すフローチャート（第２の実施形態の変形例）。
【図９】画像処理装置がコピージョブを実行する場合の、動的再構成部の再構成手順の例を示す図（第３の実施形態）。
【図１０】動的再構成部の再構成制御の手順を示すフローチャート（第３の実施形態）。
【図１１】動的再構成部の再構成制御の手順を示すフローチャート（第３の実施形態の変形例）。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１４】
＜画像処理装置の構成＞
図１は、第１の実施形態に係る画像処理装置１００の構成例を示すブロック図である。なお、本実施形態では、画像処理装置１００が、スキャナ部及びプリンタ部を有する複合機（多機能処理装置）である場合を例に説明する。
【００１５】
画像処理装置１００は、画像処理装置１００を使用するユーザが各種の操作を行うための操作部１０３と、原稿の画像情報を読み取るスキャナ部１０９と、画像データに基づいて用紙に画像を印刷するプリンタ部１０７とを有する。スキャナ部１０９は、スキャナ部１０９を制御するＣＰＵ（不図示）や原稿の読取を行うための照明ランプや走査ミラー（いずれも不図示）等を有する。プリンタ部１０７は、当該プリンタ部１０７の制御を行うＣＰＵ（不図示）や、画像の形成（印刷）や定着を行うための感光体ドラムや定着器（いずれも不図示）等を有する。
【００１６】
また、画像処理装置１００は、画像処理装置１００の制御を行うコントローラとして、動的再構成部を備えるＦＰＧＡ１４０を有する。この例では、ＦＰＧＡ１４０が、画像処理装置１００の動作を統括的に制御するＣＰＵ１０１を備える。このＣＰＵ１０１が、ＦＰＧＡ１４０や、再構成を制御するコンフィグコントローラ１３０等を制御するためのプログラムを実行する。尚、ＦＰＧＡ１４０がＣＰＵ１０１を備えていることはあくまで一例にすぎず、ＦＰＧＡ１４０の外部にＣＰＵを設けてもよい。
【００１７】
また、画像処理装置１００は、ＲＯＭ１０４及びＲＡＭ１１１を有する。ＲＯＭ１０４には、ＣＰＵ１０１が実行するブートプログラム、及び、動的再構成部１３１を構成する（コンフィギュレーションする）ための回路構成データ（コンフィギュレーションデータ）が格納されている。ＲＡＭ１１１は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもある。ＣＰＵ１０１は、ＲＯＭ１０４に格納された回路構成データの複製データをＲＡＭ１１１に格納するとともに、ＲＡＭ１１１から回路構成データを高速に読み出すことができる。
【００１８】
ＦＰＧＡ１４０は、ＣＰＵ１０１、ネットワークインタフェース（ネットワークＩ／Ｆ）１０２、プリンタＩ／Ｆ１０６、スキャナＩ／Ｆ１０８、メモリコントローラ１１０、ＲＯＭ Ｉ／Ｆ１１２、操作部Ｉ／Ｆ１１３、ＵＳＢ Ｉ／Ｆ１１５、ＦＡＸ Ｉ／Ｆ１１６、コンフィグコントローラ１３０、動的再構成部１３１、ＳＲＡＭ１３４、システムバス１２０、及び画像バス１２１を備える。ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、ＲＯＭ Ｉ／Ｆ１１２、操作部Ｉ／Ｆ１１３、ＵＳＢ Ｉ／Ｆ１１５、ＦＡＸ Ｉ／Ｆ１１６、コンフィグコントローラ１３０、並びに動的再構成部１３１の画像処理部１３２及びレジスタ部１３３は、システムバス１２０を介して相互に接続される。また、動的再構成部１３１の画像処理部１３２、スキャナＩ／Ｆ１０８、及びプリンタＩ／Ｆ１０６は、画像バス１２１を介して相互に接続される。画像バス１２１は、処理される画像データを転送するために用いられる。なお、メモリコントローラ１１０は、システムバス１２０及び画像バス１２１の両方に接続される。
【００１９】
動的再構成部１３１は、回路構成（コンフィギュレーション）を動的に再構成可能（書き換え可能）であり、かつ、一部の回路構成を書き換え可能な再構成可能回路である。即ち、動的再構成部１３１の一部の回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。コンフィグコントローラ１３０は、動的再構成部１３１の回路構成（コンフィギュレーション）を制御し、ＣＰＵ１０１による制御に従って動的再構成部１３１を再構成する。本実施形態で、コンフィグコントローラ１３０は、動的再構成部１３１（再構成可能回路）を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段の一例である。
【００２０】
動的再構成部１３１には、動的部分再構成により、画像処理部１３２とレジスタ部１３３とが構成される。画像処理部１３２は、各種の画像処理を行うための論理回路を部分的に再構成可能であり、再構成された回路構成によって画像処理を行う。レジスタ部１３３は、画像処理部１３２による画像処理のためのパラメータ（レジスタ値）を保持する。レジスタ部１３３によって保持されるパラメータは、画像処理部１３２による画像処理の実行中に画像処理部１３２によって使用され、画像処理部１３２の動作状態を示す回路情報に相当する。なお、本実施形態では動的再構成部１３１に構成される画像処理部及びレジスタ部の数がそれぞれ１つの場合を示しているが、画像処理部及びレジスタ部の数は１つに限定されるものではない。ＳＲＡＭ１３４は、動的再構成部１３１の外部に設けられ、動的再構成部１３１のレジスタ部１３３が保持するパラメータ（レジスタ値）を格納しておくための不揮発性メモリである。
【００２１】
ＣＰＵ１０１は、画像処理装置１００の動作を統括的に制御する。また、ＣＰＵ１０１は、ネットワークＩ／Ｆ１０２を介して、ネットワーク上の汎用コンピュータ（不図示）と通信（送受信）を行う。ＲＯＭ Ｉ／Ｆ１１２は、ＲＯＭ１０４へのアクセス（ＲＯＭ１０４へのデータの書き込み及びＲＯＭ１０４からのデータの読み出し）を制御する。また、ＣＰＵ１０１は、動的再構成部１３１内に構成されたレジスタ部１３３に対するパラメータ設定を、システムバス１２０を介して行う。
【００２２】
ＣＰＵ１０１は、ＵＳＢＩ／Ｆ１１５を介して、画像処理装置１００と接続された汎用コンピュータ（不図示）と通信（送受信）を行う。また、ＣＰＵ１０１は、ＦＡＸ Ｉ／Ｆ１１６を介して公衆回線網に接続されており、他の画像処理装置またはファクシミリ装置（不図示）と通信（送受信）を行う。ＦＡＸ Ｉ／Ｆ１１６は、公衆回線網からの呼出信号であるＣＩ（Call Indicator）信号を検知するＣＩ検知回路（不図示）を含む。
【００２３】
操作部Ｉ／Ｆ１１３は、システムバス１２０と操作部１０３との間のインタフェースとして機能する。スキャナＩ／Ｆ１０８は、スキャナ部１０９から画像データが入力される。プリンタＩ／Ｆ１０６は、プリンタ部１０７へ画像データを出力する。メモリコントローラ１１０は、ＲＡＭ１１１へのデータの書き込み、ＲＡＭ１１１からのデータの読み出しを制御する。メモリコントローラ１１０は、システムバス１２０及び画像バス１２１に接続されている。メモリコントローラ１１０は、画像バス１２１に接続されたバスマスタからのＲＡＭ１１１へのアクセスと、システムバス１２０に接続されたバスマスタからのＲＡＭ１１１へのアクセスとを排他的に切り替える。
【００２４】
＜動的再構成部の再構成例＞
次に、図２及び図３を参照して、本実施形態に係る画像処理装置１００における動的再構成部１３１の再構成の例について説明する。
図２（Ａ）は、ＲＯＭ１０４に格納される回路構成データ（コンフィギュレーションデータ）の一例を示す図である。図２（Ａ）に示すように、ＲＯＭ１０４には、動的再構成部１３１の一部の回路（画像処理部１３２及びレジスタ部１３３）を再構成するための複数のコンフィギュレーションデータ（以下、「コンフィグデータ」と省略して表記する。）が予め格納されている。各コンフィグデータは、それぞれ特定の画像処理機能を実現する（画像処理を実行可能な）論理回路を動的再構成部１３１に実装するためのデータである。
【００２５】
動的再構成部１３１の画像処理部１３２及びレジスタ部１３３は、各コンフィグデータを用いた再構成により、特定の画像処理機能を実現する論理回路に再構成される。例えば、コンフィグデータ１を用いた再構成により、画像処理部１３２及びレジスタ部１３３は、画像処理Ａ（フィルタ処理）を実行する画像処理部Ａ及び画像処理Ａ用のレジスタ値が格納されるレジスタ部Ａに再構成される。画像処理装置１００は、ＲＯＭ１０４に格納されているコンフィグデータを用いて動的再構成部１３１を再構成することで、様々な画像処理機能を実現できる。
【００２６】
画像処理装置１００は、各ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部１３１に順に時分割で再構成することで、一連の画像処理機能を実現可能である。図２（Ｂ）は、画像処理装置１００で実行可能なジョブごとの、各ジョブで必要となる画像処理機能（即ち、各ジョブで実行される画像処理）及びその実行順序と、各画像処理機能に対応するコンフィグデータとの一例を示す図である。なお本実施形態では、画像処理装置１００が実行可能なジョブの例として、コピージョブ、プリントジョブ及びＳＥＮＤジョブを示している。図２（Ｂ）の「再構成番号」は、画像処理装置１００が各ジョブを実行する際に、必要となる画像処理機能に対応するコンフィグデータを用いた動的再構成部１３１の再構成の実行順序を表す。
【００２７】
例えば、図２（Ｂ）に示すように、４つの画像処理Ａ〜Ｄを順に実行することで、コピージョブ用の画像処理機能を実現できる。画像処理Ａは、スキャナ部１０９で得られた画像の、デバイス特性に起因した特性のばらつきを補正するテーブル変換処理やフィルタ処理等である。画像処理Ｂは、原稿画像の文字部分や写真部分等の属性判定を行う像域分離処理等である。画像処理Ｃは、ＲＧＢデータをＣＭＹＫデータへ変換する色変換処理である。画像処理Ｄは、入力画像データを所定の閾値と比較することによりＮ値化を行うハーフトーン処理等である。
【００２８】
画像処理装置１００は、コピージョブを実行する場合、画像処理Ａ〜Ｄに対応するコンフィグデータ１〜４を時分割で順にＲＯＭ１０４から読み出して、動的再構成部１３１の再構成に使用する。これにより、画像処理部１３２は、画像処理Ａ〜Ｄを実行する回路（画像処理部Ａ〜Ｄ）に順に再構成されながら、画像処理Ａ〜Ｄを順に時分割で実行する。
【００２９】
また、図２（Ｂ）に示すように、画像処理Ｃ，Ｄを実行した後に、画像処理Ｅを実行することで、プリントジョブ用の画像処理機能を実現できる。画像処理Ｅは、プリンタ部１０７のプリンタ画像出力を走査する際のレジずれを補正するレジ補正処理等である。画像処理装置１００は、プリントジョブを実行する場合には、画像処理Ｃ〜Ｅに対応するコンフィグデータ１〜４を時分割で順にＲＯＭ１０４から読み出して、動的再構成部１３１の再構成に使用する。
【００３０】
また、図２（Ｂ）に示すように、画像処理Ａ，Ｂを実行した後、画像処理Ｆを実行することで、ＳＥＮＤジョブ用の画像処理機能を実現できる。画像処理Ｆは、スキャン画像データをネットワーク転送するために適したフォーマットに変換するための高解像圧縮処理等である。画像処理装置１００は、ＳＥＮＤジョブを実行する場合には、画像処理Ａ，Ｂ，Ｆに対応するコンフィグデータ１，２，６を時分割で順にＲＯＭ１０４から読み出して、動的再構成部１３１の再構成に使用する。
【００３１】
次に、図３は、画像処理装置１００がコピージョブを実行する場合の、動的再構成部１３１の再構成手順の例を示す図である。本実施形態の画像処理装置１００は、ジョブの実行を開始すると、ジョブの種類に応じて定まる順序で、ＲＯＭ１０４から必要なコンフィグデータを読み出して、動的再構成部１３１を順次再構成し、再構成された動的再構成部１３１に画像処理を実行させる。
【００３２】
操作部１０３を介してコピージョブの実行が指示されると、画像処理装置１００は、図２（Ｂ）に示すように、まず再構成番号を「１」に設定し、コンフィグデータ１を用いて動的再構成部１３１を再構成する。これにより、画像処理部１３２及びレジスタ部１３３はに、画像処理Ａを実行する画像処理部Ａ及び画像処理Ａ用のレジスタ値が格納されるレジスタ部Ａが構成される。
【００３３】
画像処理Ａの実行が完了すると、画像処理装置１００は、次に再構成番号を「２」に設定し、コンフィグデータ２を用いて動的再構成部１３１を再構成する。これにより、画像処理部１３２及びレジスタ部１３３には、画像処理Ｂを実行する画像処理部Ｂ及び画像処理Ｂ用のレジスタ値が格納されるレジスタ部Ｂが構成される。
【００３４】
画像処理Ｂの実行が完了すると、画像処理装置１００は、次に再構成番号を「３」に設定し、コンフィグデータ３を用いて動的再構成部１３１を再構成する。これにより、画像処理部１３２及びレジスタ部１３３には、画像処理Ｃを実行する画像処理部Ｃ及び画像処理Ｃ用のレジスタ値が格納されるレジスタ部Ｃが構成される。
【００３５】
画像処理Ｃの実行が完了すると、画像処理装置１００は、次に再構成番号を「４」に設定し、コンフィグデータ４を用いて動的再構成部１３１を再構成する。これにより、画像処理部１３２及びレジスタ部１３３には、画像処理Ｄを実行する画像処理部Ｃ及び画像処理Ｄ用のレジスタ値が格納されるレジスタ部Ｄが構成される。
【００３６】
このように、本実施形態の画像処理装置１００では、ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部１３１に順に時分割で再構成することで、各ジョブ用の画像処理機能を実現できる。なお、図２及び図３に示すジョブは一例にすぎず、画像処理装置１００が実行可能なジョブは図２及び図３に示すものに限定されるわけではない。また、画像処理の単位に関しても、図２及び図３に示すものに限定されるわけではなく、各ジョブに含まれている画像処理を、より細かい処理に分割することも可能である。
【００３７】
図３に示すように、動的再構成１３１を用いた特定の画像処理の完了後、動的再構成部１３１を、次に実行すべき画像処理を実行可能な回路構成に再構成することによって、ジョブで必要となる画像処理を動的再構成部１３１で順に実行することが可能である。しかし、次の画像処理に対応する回路構成を得るために動的再構成部１３１を再構成すると、画像処理部１３２だけでなくレジスタ部１３３も再構成される。その結果、上述のように、レジスタ部１３３に保持されている、画像処理部１３２の動作状態を示すレジスタ値が失われることになる。
【００３８】
本実施形態では、画像処理装置１００において、動的再構成部１３１の再構成によってレジスタ部１３３に保持されているレジスタ値（回路情報）が失われることを避けるために、以下のような制御を実行する。ＣＰＵ１０１は、動的再構成部１３１が、第１の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第２の画像処理を実行可能な回路構成に再構成される前に、レジスタ部１３３から他の記憶デバイスにレジスタ値を退避させる制御を行う。具体的には、ＣＰＵ１０１は、レジスタ部１３３に保持されているレジスタ値を、動的再構成部１３１の外部に設けられたＳＲＡＭ１３４に格納するための制御を行う。これにより、レジスタ部１３３が保持されているレジスタ値（回路情報）が、動的再構成部１３１の再構成によって消えてしまうことを防ぐことが可能である。
【００３９】
＜動的再構成部の再構成制御＞
図４は、本実施形態に係る画像処理装置１００が動的再構成部１３１を用いてジョブを実行する際の、動的再構成部１３１の再構成制御の手順を示すフローチャートである。なお、図４（Ａ）のフローチャートに示す各処理は、ＣＰＵ１０１がＲＯＭ１０４等に予め格納された制御プログラムをＲＡＭ１１１に読み出して実行することによって実現される。また、図４（Ｂ）のフローチャートに示す各処理は、コンフィグコントローラ１３０によって実行され、図４（Ｃ）のフローチャートに示す各処理は、画像処理部１３２によって実行される。
【００４０】
画像処理装置１００が電源停止状態から起動またはスリープ状態から復帰すると、ＣＰＵ１０１は、Ｓ１０１の処理を開始する。Ｓ１０１で、ＣＰＵ１０１は、操作部１０３から受信した情報、ネットワークＩ／Ｆ１０２を介して受信した情報等に基づいて、ジョブの実行要求が生じたか否かを判定する。ＣＰＵ１０１は、実行要求が生じると（Ｓ１０１で「ＹＥＳ」）、Ｓ１０２に処理を進める。Ｓ１０２で、ＣＰＵ１０１は、実行要求で指定されたジョブの種類を判定する。ＣＰＵ１０１は、例えば、指定されたジョブがコピージョブ、プリントジョブ及びＳＥＮＤジョブ等のうちのいずれのジョブであるかを判定する。
【００４１】
次にＳ１０３で、ＣＰＵ１０１は、指定されたジョブの実行を開始して、処理をＳ１０４に進める。ここで、ＣＰＵ１０１は、Ｓ１０２で判定されたジョブ種類に応じて、図２（Ｂ）に示すように、必要となる画像処理の実行順序と、それらの画像処理に対応する、動的再構成部１３１の再構成のためのコンフィグデータの使用順序とを決定する。上述のように、指定されたジョブの実行中には、当該ジョブで必要となる複数の画像処理に対応する複数のコンフィグデータを順に用いて、動的再構成部１３１の再構成が繰り返し実行される。ＣＰＵ１０１は、再構成番号Ｎ（Ｎは整数）を用いて動的再構成部１３１の再構成の回数を管理する。ＣＰＵ１０１は、Ｎ＝１に設定してジョブの実行を開始する。このようにして、ＣＰＵ１０１は、ジョブで必要となる（第１及び第２の画像処理を含む）複数の画像処理に対応する複数の回路構成が、動的再構成部１３１に時分割で再構成されるよう、コンフィグコントローラ１３０を制御しながら、当該ジョブを実行しうる。
【００４２】
Ｓ１０４で、ＣＰＵ１０１は、動的再構成部１３１についての再構成番号Ｎに対応する再構成を実行すべきことを示す再構成指示を、システムバス１２０を介して、コンフィグコントローラ１３０に対して送信する。なお、ＣＰＵ１０１は、再構成番号Ｎに対応する再構成に関する情報として、図２（Ｂ）に示す再構成番号Ｎに対応するコンフィグデータに関する情報を再構成指示に含める。その後Ｓ１０５で、ＣＰＵ１０１は、コンフィグコントローラ１３０から再構成完了通知を受信するまで待機し、再構成完了通知を受信するとＳ１０６に処理を進める。
【００４３】
（コンフィグコントローラ１３０の処理）
コンフィグコントローラ１３０は、ＣＰＵ１０１から再構成指示を受信すると、図４（Ｂ）に示す手順に従って、動的再構成部１３１を再構成する。まず、Ｓ１２１で、コンフィグコントローラ１３０は、ＣＰＵ１０１からの再構成指示を受信するまで待機する。コンフィグコントローラ１３０は、再構成指示を受信すると（Ｓ１２１で「ＹＥＳ」）、処理をＳ１２２に進める。
【００４４】
Ｓ１２２で、コンフィグコントローラ１３０は、ＣＰＵ１０１からの再構成指示に従って、ＲＯＭ１０４からコンフィグデータを読み出す。更に、コンフィグコントローラ１３０は、読み出したコンフィグデータを用いて、動的再構成部１３１の再構成対象の領域（画像処理部１３２及びレジスタ部１３３）の回路構成を再構成する。このようにして、コンフィグコントローラ１３０は、動的再構成部１３１の対象領域の再構成を行う。これにより、再構成番号Ｎに対応するコンフィグデータを用いて動的再構成部１３１が再構成される。
【００４５】
その後、コンフィグコントローラ１３０は、動的再構成部１３１の対象領域の再構成が完了すると（Ｓ１２３で「ＹＥＳ」）、処理をＳ１２４に進める。Ｓ１２４で、コンフィグコントローラ１３０は、再構成指示に従った再構成が完了したことを示す通知（再構成完了通知）を、システムバス１２０を介してＣＰＵ１０１に送信し、処理をＳ１２１に戻す。その後、コンフィグコントローラ１３０は、再び再構成指示をＣＰＵ１０１から受信するまでＳ１２１で待機状態となる。
【００４６】
説明を再び図４（Ａ）のフローチャートに戻し、ＣＰＵ１０１は、Ｓ１０５で再構成完了通知をコンフィグコントローラ１３０から受信すると（Ｓ１０５で「ＹＥＳ」）、処理をＳ１０６に進める。Ｓ１０６で、ＣＰＵ１０１は、システムバス１２０を介して、動的再構成部１３１に再構成されたレジスタ部１３３に対して、再構成番号Ｎに対応する画像処理の実行に必要なレジスタ値を設定する。
【００４７】
更にＳ１０７で、ＣＰＵ１０１は、再構成番号Ｎに対応する画像処理（第１の画像処理）を開始すべきことを示す指示を、システムバス１２０を介して、動的再構成部１３１に再構成された画像処理部１３２に対して送信する。これにより、画像処理部１３２は、ＲＡＭ１１１から転送される画像データに対する画像処理の実行を開始する。
【００４８】
（画像処理部１３２の処理）
画像処理部１３２は、ＣＰＵ１０１から画像処理の開始指示を受信すると、図４（Ｃ）に示す手順に従って画像処理を実行する。まず、Ｓ１３１で、画像処理部１３２は、ＣＰＵ１０１から画像処理の開始指示を受信するまで待機する。画像処理部１３２は、画像処理の開始指示を受信すると（Ｓ１３１で「ＹＥＳ」）、処理をＳ１３２に進める。Ｓ１３２で、画像処理部１３２は、当該開始指示に従って、ＲＡＭ１１１から転送される画像データに対する画像処理を開始する。
【００４９】
その後、画像処理部１３２は、ＣＰＵ１０１からの指示に従った画像処理を完了すると（Ｓ１３３で「ＹＥＳ」）、処理をＳ１３４に進める。Ｓ１３４で、画像処理部１３２は、画像処理が完了したことを示す通知（画像処理完了通知）を、システムバス１２０を介してＣＰＵ１０１に送信し、処理をＳ１３１に戻す。その後、画像処理部１３２は、再び画像処理の開始指示をＣＰＵ１０１から受信するまでＳ１３１で待機状態となる。
【００５０】
説明を再び図４（Ａ）のフローチャートに戻し、ＣＰＵ１０１は、画像処理部１３２から画像処理完了通知を受信すると（Ｓ１０８で「ＹＥＳ」）、処理をＳ１０９に進める。Ｓ１０９で、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成（再構成番号Ｎ＋１）を実行すべきか否かを判定する。ここでは、Ｓ１０３で使用順序を決定した複数のコンフィグデータに関して、動的再構成部１３１の再構成に使用すべきコンフィグデータが残っているか（即ち、実行順序を決定した複数の画像処理に関して、実行すべき画像処理が残っているか）が判定される。ＣＰＵ１０１は、動的再構成部１３１についての次の再構成（再構成番号Ｎ＋１）を実行しない場合（Ｓ１０９で「ＮＯ」）、ジョブの実行を終了し、次の再構成を実行する場合（Ｓ１０９で「ＹＥＳ」）、処理をＳ１１０に進める 。
【００５１】
Ｓ１１０で、ＣＰＵ１０１は、レジスタ部１３３に設定されている、再構成番号Ｎに対応する画像処理用のレジスタ値をＳＲＡＭ１３４へ転送して格納する。このように、ＣＰＵ１０１は、動的再構成部１３１を、次の画像処理（第２の画像処理）に対応する回路構成に再構成すべきことをコンフィグコントローラ１３０に指示する前に、レジスタ部１３３に保持されているレジスタ値をＳＲＡＭ１３４に格納する。これにより、動的再構成部１３１についての次の再構成が行われる前に、レジスタ部１３３に保持されたレジスタ値（回路情報）が保存され、レジスタ部１３３の再構成によって回路情報が消えてしまうことを防ぐことができる。
【００５２】
その後Ｓ１１１で、ＣＰＵ１０１は、再構成番号Ｎをインクリメントする（ＮからＮ＋１に１増加させる）とともに、処理をＳ１０４に戻す。これにより、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成番号Ｎ＋１に対応する、次に実行されるべき画像処理（第２の画像処理）のための動的再構成部１３１の再構成に関する制御を開始する。
【００５３】
以上説明したように、本実施形態では、動的再構成部１３１についての次の再構成が行われる前に、レジスタ部１３３が保持するレジスタ値（回路情報）をＳＲＡＭ１３４に格納することで、当該再構成に伴って回路情報が消えることを防ぐことが可能である。これにより、動的再構成部１３１の再構成の実行後において、ＳＲＡＭ１３４に保存した回路情報を、画像処理装置１００でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等に使用することが可能になる。その結果、そのような情報を使用して、ＦＰＧＡ等の再構成可能回路を備える装置の品質を向上させることが可能になる。
【００５４】
なお、画像処理部１３２が正常に動作しており、エラーが発生していなければ（即ち、エラーのデバッグが不要であれば）、ＣＰＵ１０１は、Ｓ１１０の処理を省略し、レジスタ値をＳＲＡＭ１３４に転送及び格納しなくてもよい。これにより、画像処理装置１００が正常に動作している場合には、Ｓ１１０の処理に要する時間だけ、ジョブの実行に要する時間を短縮できる。なお、特定の画像処理について生じるエラーのデバッグが必要な場合には、ＣＰＵ１０１は、特定の画像処理で用いられたレジスタ値（回路情報）のみをＳＲＡＭ１３４に転送及び格納することも可能である。
【００５５】
また、ジョブの実行終了後の任意のタイミングに、再構成番号Ｍ（Ｍは整数）に対応するコンフィグデータを用いた再構成を再び実行し、Ｓ１１０でＳＲＡＭ１３４に格納されたレジスタ値をレジスタ部１３３に書き戻すことも可能である。この場合、レジスタ部１３３に書き戻されるレジスタ値は、再構成番号Ｍに対応する画像処理用のレジスタ値である。これにより、例えば、再構成番号Ｍに対応する再構成後の動的再構成部１３１でエラーが発生した場合、エラーが発生した際の動的再構成部１３１の回路構成及び回路状態を再現することができ、エラーの解析及びデバッグに使用できるようになる。
【００５６】
［第２の実施形態］
第１の実施形態では、ＣＰＵ１０１は、ジョブの実行中に、次に実行すべき画像処理に対応する回路に動的再構成部１３１を再構成する前に、レジスタ部１３３に保持されたレジスタ値（回路情報）をＳＲＡＭ１３４に保存する。第２の実施形態では、ＣＰＵ１０１による処理の負荷を軽減するために、レジスタ部１３３に保持されたレジスタ値（回路情報）の保存を、ＣＰＵ１０１による処理によることなく自動的に実行する例について説明する。なお、説明の簡略化のため、第１の実施形態と同様の構成及び制御については説明を省略する。
【００５７】
＜画像処理装置の構成＞
図５は、第２の実施形態に係る画像処理装置１００の構成例を示すブロック図である。図５に示すように、本実施形態に係る画像処理装置１００は、第１の実施形態と異なり、ＦＰＧＡ１４０内に、システムバス１２０に接続されたレジスタ格納制御部５００を更に備えることを特徴としている。
【００５８】
レジスタ格納制御部５００は、ＣＰＵ１０１からの指示に従って、動的再構成部１３１のレジスタ部１３３に保持されているレジスタ値（回路情報）をＳＲＡＭ１３４に格納する。このような処理は、後述するように、コンフィグコントローラ１３０による動的再構成部１３１の再構成のタイミングに合わせて行われる。
【００５９】
＜動的再構成部の再構成制御＞
図６は、本実施形態に係る画像処理装置１００が動的再構成部１３１を用いてジョブを実行する際の、動的再構成部１３１の再構成制御の手順を示すフローチャートである。なお、図６（Ａ）のフローチャートに示す各処理は、ＣＰＵ１０１がＲＯＭ１０４等に予め格納された制御プログラムをＲＡＭ１１１に読み出して実行することによって実現される。コンフィグコントローラ１３０及び画像処理部１３２によって実行される処理は、第１の実施形態（図４（Ｂ）及び（Ｃ））と同様である。また、図６（Ｂ）のフローチャートに示す各処理は、レジスタ格納制御部５００によって実行される。
【００６０】
まず、Ｓ１０１〜Ｓ１０９は、第１の実施形態と同様である。Ｓ１０９で、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成（再構成番号Ｎ＋１）を実行する場合（Ｓ１０９で「ＹＥＳ」）、処理をＳ２０１に進める。
【００６１】
Ｓ２０１で、ＣＰＵ１０１は、レジスタ部１３３に保持されている、再構成番号Ｎに対応する画像処理用のレジスタ値をＳＲＡＭ１３４へ格納すべきことを示す指示（格納開始指示）を、システムバス１２０を介して、レジスタ格納制御部５００へ送信する。このように、ＣＰＵ１０１は、動的再構成部１３１を、次の画像処理（第２の画像処理）に対応する回路構成に再構成すべきことをコンフィグコントローラ１３０に指示する前に、格納開始指示をレジスタ格納制御部５００に送信する。これにより、レジスタ格納制御部５００は、画像処理部１３２によって実行される、再構成番号Ｎに対応する画像処理用にレジスタ部１３３に対して設定されたレジスタ値を、ＳＲＡＭ１３４に格納する。
【００６２】
その後、Ｓ２０２で、ＣＰＵ１０１は、レジスタ格納制御部５００から、ＳＲＡＭ１３４へのレジスタ値の格納が完了したことを示す通知（格納完了通知）を受信するまで待機する。この格納完了通知によって、ＣＰＵ１０１は、次の再構成（再構成番号Ｎ＋１）の開始が可能であることを知らされる。ＣＰＵ１０１は、レジスタ格納制御部５００からの格納完了通知を受信すると（Ｓ２０２で「ＹＥＳ」）、処理をＳ１１１に進め、再構成番号Ｎをインクリメントする（ＮからＮ＋１に１増加させる）とともに、処理をＳ１０４に戻す。これにより、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成番号Ｎ＋１に対応する再構成に関する制御を開始する。
【００６３】
（レジスタ格納制御部５００の処理）
レジスタ格納制御部５００は、ＣＰＵ１０１から格納開始指示を受信すると、図６（Ｂ）に示す手順に従って処理を実行する。まず、Ｓ２４１で、レジスタ格納制御部５００は、ＣＰＵ１０１から格納開始指示を受信するまで待機する。レジスタ格納制御部５００は、格納開始指示を受信すると（Ｓ２４１で「ＹＥＳ」）、処理をＳ２４２に進める。
【００６４】
Ｓ２４２で、レジスタ格納制御部５００は、再構成番号Ｎに対応する画像処理用のレジスタ値をレジスタ部１３３から読み出して、ＳＲＡＭ１３４に格納する。更に、レジスタ格納制御部５００は、ＳＲＡＭ１３４へのレジスタ値の格納が完了すると（Ｓ２４３で「ＹＥＳ」）、Ｓ２４４で、システムバス１２０を介して格納完了通知をＣＰＵ１０１に送信し、処理をＳ２４１に戻す。その後、レジスタ格納制御部５００は、再びレジスタ値の格納開始指示をＣＰＵ１０１から受信するまでＳ２４１で待機状態となる。
【００６５】
以上説明したように、本実施形態では、レジスタ格納制御部５００は、ＣＰＵ１０１からの通知を受信すると、レジスタ部１３３に保持されているレジスタ値をＳＲＡＭ１３４に自動的に保存する。これにより、ジョブの実行中に、ＣＰＵ１０１の負荷を軽減しつつ、次に実行すべき画像処理に対応する回路に動的再構成部１３１を再構成する前にレジスタ部１３３が保持するレジスタ値（回路情報）を自動的に保存することが可能である。
【００６６】
＜変形例＞
上述の第２の実施形態の変形例として、以下のように、画像処理部１３２でエラーが発生した場合の処理を追加することも可能である。
図７は、本変形例に係る画像処理装置１００が動的再構成部１３１を用いてジョブを実行する際の、動的再構成部１３１の再構成制御の手順を示すフローチャートである。なお、図７のフローチャートに示す各処理は、ＣＰＵ１０１がＲＯＭ１０４等に予め格納された制御プログラムをＲＡＭ１１１に読み出して実行することによって実現される。また、コンフィグコントローラ１３０によって実行される処理は、第１の実施形態（図４（Ｂ））と同様である。
【００６７】
図７に示すように、本変形例は、Ｓ１０８においてＣＰＵ１０１が画像処理部１３２から画像処理完了通知を受信していない場合に（Ｓ１０８で「ＮＯ」）、Ｓ１０９に処理を進める点で、図６と異なっている。この場合、ＣＰＵ１０１は、Ｓ１０９で、画像処理エラーの発生が発生したことを示す通知を画像処理部１３２から受信したか否かを判定する。ＣＰＵ１０１は、画像処理部１３２から当該通知を受信した場合（Ｓ１０９で「ＹＥＳ」）、ジョブの実行を終了し、当該通知を受信していない場合（Ｓ１０９で「ＮＯ」）、処理をＳ１０８に戻し、ジョブの実行を継続する。
【００６８】
（画像処理部１３２の処理）
本変形例では、画像処理部１３２は、ＣＰＵ１０１から画像処理の開始指示を受信すると（Ｓ１０７）、図８（Ａ）に示す手順に従って画像処理を実行する。本変形例は、Ｓ１３３において画像処理部１３２がＣＰＵ１０１からの指示に従った画像処理を完了していない場合に（Ｓ１３３で「ＮＯ」）、Ｓ２３１に処理を進める点で、図４（Ｃ）と異なっている。この場合、Ｓ２３１で、画像処理部１３２は、画像処理の実行中にエラーが発生したか否かを判定する。画像処理部１３２は、エラーが発生していない場合には（Ｓ２３１で「ＮＯ」）、処理をＳ１３３に戻し、エラーが発生した場合には（Ｓ２３１で「ＹＥＳ」）、処理をＳ２３２に進める。Ｓ２３２で、画像処理部１３２は、画像処理エラーが発生したことを示す通知（画像処理エラー通知）を、システムバス１２０を介して、ＣＰＵ１０１及びレジスタ格納制御部５００に対して送信し、処理を終了する
【００６９】
（レジスタ格納制御部５００の処理）
本変形例では、レジスタ格納制御部５００は、図８（Ｂ）に示す手順に従って処理を実行する。本変形例は、レジスタ格納制御部５００が、ＣＰＵ１０１からレジスタ値の格納開始指示を受信していない場合に（Ｓ２４１で「ＮＯ」）、処理をＳ２４５に進める点で、図６（Ｂ）と異なっている。この場合、レジスタ格納制御部５００は、画像処理エラーの発生が発生したことを示す通知を画像処理部１３２から受信したか否かを判定する。レジスタ格納制御部５００は、画像処理部１３２から当該通知を受信していない場合には（Ｓ２４５で「ＮＯ」）、処理をＳ２４１に戻し、当該通知を受信した場合には（Ｓ２４５で「ＹＥＳ」）、処理をＳ２４２に進める。
【００７０】
画像処理部１３２でエラーが発生した場合、Ｓ２４２で、レジスタ格納制御部５００は、エラー発生時点においてレジスタ部１３３に保持されているレジスタ値をレジスタ部１３３から読み出して、ＳＲＡＭ１３４に格納する。更に、レジスタ格納制御部５００は、ＳＲＡＭ１３４へのレジスタ値の格納が完了すると（Ｓ２４３で「ＹＥＳ」）、Ｓ２４４で、システムバス１２０を介して格納完了通知をＣＰＵ１０１に送信し、処理をＳ２４１に戻す。その後、レジスタ格納制御部５００は、再びレジスタ値の格納開始指示をＣＰＵ１０１から受信するまでＳ２４１で待機状態となる。
【００７１】
以上説明したように、本変形例では、画像処理部１３２でエラーが発生すると、レジスタ格納制御部５００は、画像処理部１３２からの通知に応じて自動的に、レジスタ部１３３に保持されているレジスタ値（回路情報）をＳＲＡＭ１３４に保存する。これにより、画像処理部１３２においてエラーが発生していない通常の動作時だけでなく、エラーの発生時にも、ＣＰＵ１０１の負荷を軽減しつつ、レジスタ部１３３が保持する回路情報を自動的に保存することが可能である。
【００７２】
なお、本実施形態及び本変形例では、レジスタ格納制御部５００は、動的再構成部１３１の内部に構成されてもよい。その場合、実行されるジョブ及び画像処理の内容に応じて様々な回路構成をとりうる画像処理部１３２及びレジスタ部１３３に適した構成で、レジスタ格納制御部５００を実現することが可能となる。
【００７３】
［第３の実施形態］
第１及び第２の実施形態では、レジスタ部１３３に保持されたレジスタ値（回路情報）をＳＲＡＭ１３４に格納することで、動的再構成部１３１の再構成に伴って回路情報が消えることを防いでいる。第３の実施形態では、各ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部１３１に順に時分割で再構成する際に、画像処理部１３２を部分的に再構成し、レジスタ部１３３で回路情報を継続的に保持する例について説明する。なお、説明の簡略化のため、第１の実施形態と同様の構成及び制御については説明を省略する。
【００７４】
＜動的再構成部の再構成例＞
図９は、画像処理装置１００がコピージョブを実行する場合の、動的再構成部１３１の再構成手順の例を示す図である。第１及び第２の実施形態（図３）との相違点は、動的再構成部１３１の画像処理部１３２のみをコンフィグデータによる再構成の対象とし、レジスタ部１３３を再構成しない点である。
【００７５】
本実施形態の画像処理装置１００は、ジョブの実行を開始すると、ジョブの種類に応じて定まる順序で、ＲＯＭ１０４から必要なコンフィグデータを読み出して、動的再構成部１３１の画像処理部１３２のみを順次再構成する。レジスタ部１３３は、画像処理装置１００が実行可能なあらゆるジョブで実行される一連の画像処理に用いられるレジスタ値の全てを格納可能な記憶容量を有するように、動的再構成部１３１に予め構成されている。
【００７６】
本実施形態では、操作部１０３を介してコピージョブの実行が指示されると、画像処理装置１００は、図２（Ｂ）に示すように、まず再構成番号を「１」に設定し、コンフィグデータ１を用いて動的再構成部１３１の画像処理部１３２を再構成する。これにより、画像処理部１３２には、画像処理Ａを実行する画像処理部Ａが構成される。更に、レジスタ部１３３には、画像処理Ａ用のレジスタ値が格納される。これにより、レジスタ部１３３は、レジスタ部Ａとして機能する。
【００７７】
画像処理Ａの実行が完了すると、画像処理装置１００は、次に再構成番号を「２」に設定し、コンフィグデータ２を用いて動的再構成部１３１の画像処理部１３２を再構成する。これにより、画像処理部１３２には、画像処理Ｂを実行する画像処理部Ｂが構成される。更に、レジスタ部１３３には、画像処理Ａ用のレジスタ値が保持されたまま、画像処理Ｂ用のレジスタ値が新たに格納される。これにより、レジスタ部１３３は、レジスタ部Ａ，Ｂとして機能する。
【００７８】
画像処理Ｂの実行が完了すると、画像処理装置１００は、次に再構成番号を「３」に設定し、コンフィグデータ２を用いて動的再構成部１３１の画像処理部１３２を再構成する。これにより、画像処理部１３２には、画像処理Ｃを実行する画像処理部Ｃが構成される。更に、レジスタ部１３３には、画像処理Ａ，Ｂ用のレジスタ値が保持されたまま、画像処理Ｃ用のレジスタ値が新たに格納される。これにより、レジスタ部１３３は、レジスタ部Ａ，Ｂ，Ｃとして機能する。
【００７９】
画像処理Ｃの実行が完了すると、画像処理装置１００は、次に再構成番号を「４」に設定し、コンフィグデータ２を用いて動的再構成部１３１の画像処理部１３２を再構成する。これにより、画像処理部１３２には、画像処理Ｄを実行する画像処理部Ｄが構成される。更に、レジスタ部１３３には、画像処理Ａ，Ｂ，Ｃ用のレジスタ値が保持されたまま、画像処理Ｄ用のレジスタ値が新たに格納される。これにより、レジスタ部１３３は、レジスタ部Ａ，Ｂ，Ｃ，Ｄとして機能する。
【００８０】
このように、本実施形態の画像処理装置１００では、各ジョブで必要となる一連の画像処理機能を実現するためのレジスタ値（回路情報）をレジスタ部１３３に保持した状態で、動的再構成部１３１に順に時分割で再構成する。これにより、次の画像処理の実行のための動的再構成部１３１の再構成に伴って、レジスタ部１３３に保持された回路情報が消えてしまうことを防ぎつつ、とで、各ジョブ用の画像処理機能を実現できる。
【００８１】
＜動的再構成部の再構成制御＞
図１０は、本実施形態に係る画像処理装置１００が動的再構成部１３１を用いてジョブを実行する際の、動的再構成部１３１の再構成制御の手順を示すフローチャートである。なお、図１０のフローチャートに示す各処理は、ＣＰＵ１０１がＲＯＭ１０４等に予め格納された制御プログラムをＲＡＭ１１１に読み出して実行することによって実現される。コンフィグコントローラ１３０及び画像処理部１３２によって実行される処理は、第１の実施形態（図４（Ｂ）及び（Ｃ））と同様である。
【００８２】
まず、Ｓ１０１〜Ｓ１０３は、第１の実施形態と同様である。Ｓ１０３の後、Ｓ３０１で、ＣＰＵ１０１は、動的再構成部１３１についての再構成番号Ｎに対応する再構成を実行すべきことを示す再構成指示を、システムバス１２０を介して、コンフィグコントローラ１３０に対して送信する。その際、ＣＰＵ１０１は、再構成番号Ｎに対応する再構成に関する情報として、図２（Ｂ）に示す再構成番号Ｎに対応するコンフィグデータに関する情報を再構成指示に含めるとともに、画像処理部１３２のみを再構成対象の領域として指定する。
【００８３】
これにより、コンフィグコントローラ１３０は、Ｓ１２２で、ＣＰＵ１０１からの再構成指示に従って、ＲＯＭ１０４からコンフィグデータを読み出して、再構成対象の領域として指定された画像処理部１３２のみの回路を再構成する。一方、コンフィグコントローラ１３０は、再構成対象の領域として指定されていないレジスタ部１３３の回路の再構成は行わない。その後Ｓ１０５で、ＣＰＵ１０１は、コンフィグコントローラ１３０から再構成完了通知を受信するまで待機し、再構成完了通知を受信するとＳ１０６に処理を進める。Ｓ１０６で、ＣＰＵ１０１は、システムバス１２０を介して、レジスタ部１３３に対して、再構成番号Ｎに対応する画像処理の実行に必要なレジスタ値を新たに設定し、処理をＳ１０７に進める。
【００８４】
Ｓ１０７〜Ｓ１０９は、第１の実施形態と同様である。本実施形態では、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成（再構成番号Ｎ＋１）を実行する場合（Ｓ１０９で「ＹＥＳ」）、処理をＳ３０２に進める。Ｓ３０２で、ＣＰＵ１０１は、第１の実施形態のように、再構成番号Ｎに対応する画像処理用のレジスタ値をＳＲＡＭ１３４へ転送して格納するのではなく、レジスタ部１３３のレジスタ値をそのままレジスタ部１３３に保持させる。これは、本実施形態ではＳ１０４における再構成指示によって画像処理部１３２のみの再構成が行われ、レジスタ部１３３の再構成が行われることがなく、レジスタ部１３３の再構成によってレジスタ値が消えることがないためである。このように、ＣＰＵ１０１は、再構成番号Ｎに対応する画像処理用のレジスタ値がレジスタ部１３３に保持されたまま、次に実行されるべき画像処理を実行可能な回路構成に画像処理部１３２が再構成されるよう、コンフィグコントローラ１３０を制御する。
【００８５】
その後Ｓ１１１で、ＣＰＵ１０１は、第１の実施形態と同様、再構成番号Ｎをインクリメントする（ＮからＮ＋１に１増加させる）とともに、処理をＳ１０４に戻す。これにより、ＣＰＵ１０１は、動的再構成部１３１についての次の再構成番号Ｎ＋１に対応する再構成に関する制御を開始する。
【００８６】
以上説明したように、本実施形態では、ジョブの実行中に、動的再構成部１３１内のレジスタ部１３３の再構成を行わず、画像処理部１３２のみを部分的に再構成する。これにより、ジョブの実行中に動的再構成部１３１についての次の再構成が行われる前に、レジスタ部１３３でレジスタ値（回路情報）を継続的に保持する。その結果、第１及び第２の実施形態と同様、動的再構成部１３１の再構成に伴って回路情報が消えることを防ぐことが可能である。また、動的再構成部１３１の再構成の実行後において、レジスタ部１３３に保持されている回路情報を、画像処理装置１００でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等に使用することが可能になる。
【００８７】
＜変形例＞
上述の第２の実施形態の変形例として、以下のように、画像処理部１３２でエラーが発生した場合の処理を追加することも可能である。
図１１は、本変形例に係る画像処理装置１００が動的再構成部１３１を用いてジョブを実行する際の、動的再構成部１３１の再構成制御の手順を示すフローチャートである。なお、図１１のフローチャートに示す各処理は、ＣＰＵ１０１がＲＯＭ１０４等に予め格納された制御プログラムをＲＡＭ１１１に読み出して実行することによって実現される。コンフィグコントローラ１３０及び画像処理部１３２によって実行される処理は、第１の実施形態（図４（Ｂ）及び（Ｃ））と同様である。
【００８８】
まず、Ｓ１０１〜Ｓ１０３は、第１の実施形態と同様である。Ｓ１０３の処理が完了すると、次にＳ３１１で、ＣＰＵ１０１は、動的再構成部１３１のレジスタ部１３３を、指定されたジョブの内容に応じて再構成すべきことを示す再構成指示を、システムバス１２０を介して、コンフィグコントローラ１３０へ送信する。具体的には、ＣＰＵ１０１は、コンフィグコントローラ１３０に、実行中のジョブで必要となる全ての画像処理用のレジスタ値を格納可能な記憶容量を有するようにレジスタ部１３３を再構成させる。例えば、コピージョブの場合、レジスタ部１３３は、画像処理Ａ，Ｂ，Ｃ，Ｄ用のレジスタ値を格納可能な記憶容量を有する回路に再構成される。
【００８９】
その後、ＣＰＵ１０１は、レジスタ部１３３についての再構成完了通知をコンフィグコントローラ１３０から受信すると、処理をＳ３０１に進める。Ｓ３０１以降の処理は、上述の図１０に示す実施形態と同様である。
【００９０】
上述のように、図１０に示す実施形態では、ジョブの実行開始後にレジスタ部１３３の再構成は行われない。このため、レジスタ部１３３は、画像処理装置１００が実行可能な各ジョブで必要となる全ての画像処理のためのレジスタ値を同時に格納可能な記憶容量を有するように、予め構成されている必要がある。例えば、図２（Ａ）に示すように、画像処理Ａ〜Ｘに対応するコンフィグデータがＲＯＭ１０４に格納されている場合、画像処理Ａ〜Ｘに用いられるレジスタ値を格納可能な記憶容量を有するレジスタ部１３３を用意する必要がある。
【００９１】
これに対し、図１１に示す変形例では、ＣＰＵ１０１は、ジョブを実行するごとに、当該ジョブで必要となる全ての画像処理のためのレジスタ値を同時に格納可能な記憶容量を有するよう、コンフィグコントローラ１３０にレジスタ部１３３を再構成させる。例えば図２（Ｂ）に示すように、コピージョブの場合は画像処理Ａ〜Ｄ、プリントジョブの場合は画像処理Ｃ〜Ｅに用いられるレジスタ値を格納可能な記憶容量を有するようにレジスタ部１３３が再構成される。したがって、本変形例では、図１０に示す実施形態よりも、画像処理装置１００でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等のためにレジスタ値（回路情報）を保持するレジスタ部１３３の記憶容量を、必要最小限に抑えることが可能である。
【００９２】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９３】
１００：画像処理装置、１３１：動的再構成部、１３２：画像処理部、１３３：レジスタ部、１３４：ＳＲＡＭ、１０１：ＣＰＵ、１０４：ＲＯＭ、１１１：ＲＡＭ、１４０：ＦＰＧＡ
【図１】
2015197863.tif 000003
【図２】
2015197863.tif 000004
【図３】
2015197863.tif 000005
【図４】
2015197863.tif 000006
【図５】
2015197863.tif 000007
【図６】
2015197863.tif 000008
【図７】
2015197863.tif 000009
【図８】
2015197863.tif 000010
【図９】
2015197863.tif 000011
【図１０】
2015197863.tif 000012
【図１１】
2015197863.tif 000013