(57)【要約】【課題】回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えること。【解決手段】ＣＰＵ１０３の制御により、コンバータ７０３が、画像データの画像処理内容に基づいてＲＯＭ１０８から回路構成データを選択してフラッシュメモリ７０１に記憶させ（Ｓ１０５）、回路構成データを書き換えるための書き換えデータを生成し、該書き換えデータに基づいてフラッシュメモリ７０１に記憶されている前記回路構成データの一部を書き換えた後に（Ｓ１０６）、フラッシュメモリ７０１に記憶されている回路構成データによりＦＰＧＡ７００の回路構成を再構成させる（Ｓ１０７）。その後、ＦＰＧＡ７００が画像処理を実行する（Ｓ１１１）。【選択図】図１２
2010206704.tif 000002
【特許請求の範囲】
【請求項１】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、
複数の回路構成データを記憶する第１記憶手段と、
前記第１記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、
前記選択手段により選択された回路構成データを前記第１記憶手段から取得して記憶する第２記憶手段と、
前記第２記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、
前記入力手段により入力された前記画像処理内容に基づいて、前記第２記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、
前記生成手段により生成された前記書き換えデータに基づいて前記第２記憶手段に記憶されている前記回路構成データの一部を書き換える第１設定処理を行った後に、前記第２記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記画像処理手段が画像処理中であるか判定する判定手段を有し、
前記制御手段は、前記判定手段により前記画像処理手段が画像処理中と判定された場合には、前記第１設定処理を行い、前記画像処理手段による画像処理の終了を待って、前記再構成処理を行うよう制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段により前記画像処理手段が画像処理中でないと判定された場合に、前記第１設定処理のために要する第１設定時間と、前記画像処理手段に対して前記画像処理内容を設定する第２設定処理のために要する第２設定時間とを比較する比較手段を有し、
前記制御手段は、前記比較手段による比較の結果、前記第１設定時間が前記第２設定時間より短い場合には、前記第１設定処理を行った後に前記再構成処理を行い、一方、前記第１設定時間が前記第２設定時間より短くない場合には、前記再構成処理を行った後に前記第２設定処理を行うよう制御することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記比較手段は、前記画像処理内容に基づいて前記第２設定時間を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像処理内容ごとに該画像処理内容を前記画像処理手段に対して設定するための設定情報を記憶する第３記憶手段を有し、
前記生成手段は、前記入力手段により入力された前記画像処理内容に対応する前記設定情報を前記第３記憶手段から取得して、該取得した設定情報を前記書き換えデータに変換することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記入力手段により入力された前記画像処理内容に基づいて前記再構成処理が必要であるか判断する判断手段を有し、
前記判断手段に前記再構成処理が必要ないと判断された場合には、前記選択手段は前記回路構成データの選択を行わず、前記制御手段は前記再構成処理を行うことなく前記画像処理手段に対して前記画像処理内容を設定することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像処理内容は、印刷を行う画像データに対する画像処理内容であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記画像処理内容は、光学的に読み取られた画像データに対する画像処理内容であることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項９】
前記画像処理手段は、プログラマブルロジックデバイスであることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第１記憶手段と、第２記憶手段と、前記第２記憶手段に記憶される前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行する画像処理手段とを有する画像処理装置の制御方法であって、
入力手段が、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力ステップと、
選択手段が、前記第１記憶手段に記憶された複数の回路構成データのいずれかを選択して前記記憶手段に記憶させる選択ステップと、
生成手段が、前記入力ステップにより入力された前記画像処理内容に基づいて、前記第２記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成ステップと、
制御手段が、前記生成ステップにより生成された前記書き換えデータに基づいて前記第２記憶手段に記憶されている前記回路構成データの一部を書き換える第１設定処理を行った後に、前記第２記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御ステップと、
を有することを特徴とする画像処理装置の制御方法。
【請求項１１】
コンピュータを請求項１乃至９のいずれか１項に記載された画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
プログラマブルロジックデバイスは、回路を構成する素子や配線に関する回路構成データを外部記憶装置(ＲＯＭ、フラッシュメモリ等)に保持している。そして、プログラマブルロジックデバイスは、必要に応じて回路構成データを読み込み、読み込んだ回路構成データに基づいて内蔵する複数の論理エレメント間の接続状態を変更することによって、任意の論理回路を実現することができる集積回路である。
【０００３】
代表的なプログラマブルロジックデバイスとして、ＦＰＧＡ（Field Programmable Gate Array）がある。
近年、画像情報処理の高度化に伴い、画像の種類や状況に応じた処理のニーズが増えている。そのような場合、ＦＰＧＡを処理装置に実装し、処理装置ごとの要求仕様に最適化した回路構成データを作成することで、前述したニーズを満たすことができると考えられる。
【０００４】
また、一つの処理装置で状況に応じて複数のハードウェア機能を切り替えたい場合、複数の回路構成データを外部メモリに格納しておき、処理に応じて回路構成データを選択し読み出す技術が提案されている（特許文献１）。
特許文献１の技術を用いて画像処理装置のハードウェア機能を切り替える場合、回路構成データを読み込み、ＦＰＧＡ上に構成された回路に対してレジスタ設定を行い、その後、画像処理を開始することとなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１７９３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術を用いて画像処理装置のハードウェア機能を処理間で切り替える場合、切り替えに要する時間は、回路構成データを読み込みＦＰＧＡ上に回路構成データを展開する時間と、構成された回路に対するレジスタ設定にかかる時間（レジスタ設定時間）の合計時間である。このため、処理間に長い時間を要してしまい、処理装置全体のパフォーマンスが低下してしまうという課題があった。
【０００７】
なお、レジスタ設定時間を削減するため、特許文献１の技術を利用し、必要なレジスタ設定値を初期値とした回路構成データを、必要なレジスタ設定値全てに対して用意するという方法が考えられる。しかし、この方法では、大量の回路構成データを記憶しておく必要が生じ、必要なメモリ容量が大きくなってしまうため好ましくない。
【０００８】
以上のように、プログラマブルロジックデバイスを有する画像処理装置では、各種の問題点があった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第１記憶手段と、前記第１記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、前記選択手段により選択された回路構成データを前記第１記憶手段から取得して記憶する第２記憶手段と、前記第２記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、前記入力手段により入力された前記画像処理内容に基づいて、前記第２記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、前記生成手段により生成された前記書き換えデータに基づいて前記第２記憶手段に記憶されている前記回路構成データの一部を書き換える第１設定処理を行った後に、前記第２記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態を示すネットワークシステムの構成図である。
【図２】ＭＦＰ２１の構成の一例を示すブロック図である。
【図３】画像入力部であるスキャナ２００の概観を示す概観図である。
【図４】画像出力部であるプリンタ３００の概観を示す概観図である。
【図５】操作部４００の構成の一例を示す平面図である。
【図６】スキャナ画像処理部の構成の一例を示す図である。
【図７】プリンタ画像処理部の構成の一例を示す図である。
【図８】本実施形態における画像データの構成を説明するデータ構成図である。
【図９】本実施形態の回路構成データを説明する図である。
【図１０】本実施形態の設定情報生成テーブルを説明する図である。
【図１１】設定情報生成テーブルと各レジスタ設定情報テーブルとの関係を示す図である。
【図１２】第１実施形態における処理を示すフローチャートである。
【図１３】本発明におけるレジスタ設定方法を説明する図である。
【図１４】回路構成データ９００のレジスタ部の配線データ９０７を示す図である。
【図１５】レジスタ部配線データ９０７の書き換えの様子を示す図である。
【図１６】第１実施形態の効果を示す図である。
【図１７】第２実施形態における処理を示すフローチャートである。
【図１８】第３実施形態における処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
〔第１実施形態〕
図１は、本発明の一実施形態を示す画像形成装置を適用可能なネットワークシステムの一例を示すシステム構成図である。
図１に示すように、本実施形態のネットワークシステムは、ＰＣ１０、ＬＡＮ１１、ＭＦＰ（複合機）２１で構成されている。
ＰＣ１０は、パーソナルコンピュータ、ワークステーションなどの情報処理端末機であり、様々なアプリケーションを動作させる。また、ＰＣ１０は、後述のＬＡＮ１１などのネットワーク回線を介してプリンタやＭＦＰ２１などに対して印刷命令を発行し、印刷データを送信することができる。
【００１３】
ＬＡＮ１１は、情報処理装置を接続している全世界のネットワークを相互に接続した巨大なコンピュータネットワークであるインターネットの一部分である。ＬＡＮ１１には、ＰＣ１０とＭＦＰ２１と、ここでは図示しないＬＡＮ１１上の他のクライアントＰＣ、サーバ等が接続されており、各々ネットワークＩ／Ｆを介しデータを送受信することにより通信を行うことができる。なお、図示しないがＬＡＮ１１は、ルータなどを介して世界中の情報機器と通信可能である情報網のインターネットに接続されている。
ＭＦＰ２１は、原稿スキャン機能、プリント機能、ＢＯＸ機能を登載した複合機能周辺装置（ＭＦＰ：Multi Functional Peripheral）又はデジタル複合機と呼ばれるデバイスであり、本発明の画像処理装置に対応する。
【００１４】
次に、図１に示したＭＦＰ２１の構成の一例を図２に示す。
図２は、図１に示したＭＦＰ２１の構成の一例を示すブロック図である。
図２において、１００はコントローラユニットである。コントローラユニット１００は、画像入力装置であるスキャナ２００（図３）や、画像出力装置であるプリンタ３００（図４）と接続し、一方ではＬＡＮ１１、公衆回線１２等のネットワークと接続することで、画像情報やデバイス情報の入出力を行う。また、コントローラユニット１００は、操作部４００（図５）と接続する。操作部４００は、コントローラユニット１００からの情報表示を行うとともにユーザからの指示をコントローラユニット１００に伝える。
【００１５】
コントローラユニット１００において、１０３はＣＰＵである。ＣＰＵ１０３は、ＲＯＭ１０８に記録されるプログラムを読み出して実行することにより、デジタル複合機（ＭＦＰ２１）全体を制御するコントローラとして機能する。ＲＯＭ１０８（第１記憶部，第３記憶部）は、ブートＲＯＭとして利用され、ＭＦＰ２１のブートプログラム、ＦＰＧＡ７００に展開するための複数の回路構成データ９００（図９）、設定情報生成テーブル１０００（図１０）、レジスタ設定情報テーブル１１００（図１１）等が記憶されている。ＲＡＭ１０７は、ＣＰＵ１０３が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリとしても利用される。
【００１６】
ＨＤＤ１０９は、ハードディスクドライブで、システムソフトウェア、画像データ、アドレス帳などの個人データを格納する。これらのデータは、後述の画像圧縮部１１３で符号化されて格納され、使用時には復元される。なお、ＨＤＤを具備していない機器は、これらのデータを、他の記憶媒体（フラッシュメモリなど）に記憶するものとする。
【００１７】
操作部Ｉ／Ｆ１０４は、操作部４００とのインターフェース部で、操作部４００に表示する画像データを操作部４００に対して出力する。また、操作部Ｉ／Ｆ１０４は、操作部４００からユーザが入力した情報をＣＰＵ１０３に伝える役割をする。
ネットワークＩ／Ｆ１０５は、ＬＡＮ１１に接続し、情報の入出力を行う。モデム１０６は、公衆回線１２に接続し、データ送受信を行うための変調復調処理を行う。
以上のデバイス１０３〜１０９、及び、後述するＳｅｌｅｃｔｏｒ７０２、Ｃｏｎｖｅｒｔｅｒ７０３がシステムバス１０１上に配置される。
【００１８】
イメージバスＩ／Ｆ１１０は、システムバス１０１と画像データを高速で転送するイメージバス１０２を接続し、データ構造を変換するバスブリッジである。
イメージバス１０２は、ＰＣＩバス又はＩＥＥＥ１３９４などの高速バスで構成される。イメージバス１０２上には以下のデバイスが配置される。
ＰＤＬアクセラレータ１１１は、ＰＤＬコードから画像データ８００（図８）を生成する。デバイスＩ／Ｆ部１１２は、画像入出力デバイスであるスキャナ２００やプリンタ３００とコントローラ１００を接続し、画像データの同期系／非同期系の変換を行う。
【００１９】
画像圧縮部１１３は、多値画像データはＪＰＥＧ、２値画像データはＪＢＩＧ、ＭＭＲ、ＭＨの圧縮伸張処理を行う。なお、画像圧縮部１１３は、圧縮、或いは伸張する画像データをＨＤＤ１０９から読み出し、圧縮処理、或いは伸張処理した後に、再びＨＤＤ１０９に格納する。
【００２０】
ＦＰＧＡ７００は、プログラマブルロジックデバイスとしてのＦＰＧＡ（Field Programmable Gate Array）である。ＦＰＧＡ７００は、画像処理アルゴリズムを有する回路構成データを展開し、必要な画像処理アルゴリズムをハードウェアとして構成する機能を備える。本実施形態では、ＦＰＧＡ７００に回路構成データを展開することによりスキャナ画像処理部５００（図６）やプリンタ画像処理部６００（図７）が構成される。即ち、ＦＰＧＡ７００は、フラッシュメモリ７０１に記憶された回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行するものである。なお、ＦＰＧＡ７００は、１つのジョブを処理し終えるとＥｎｄＦｌａｇ（詳細は後述する）を生成する。
【００２１】
フラッシュメモリ（回路構成データメモリ（第２記憶部））７０１は、ＦＰＧＡ７００に展開するために、ＲＯＭ１０８から選択取得された回路構成データ９００（図９）を記憶する。なお、本実施形態における回路構成データ９００は、スキャナ画像処理部５００やプリンタ画像処理部６００の各部を構成するための回路構成データに相当する。
【００２２】
セレクタ（Ｓｅｌｅｃｔｏｒ）７０２は、ＣＰＵ１０３において生成されるＣｈｇＦｌａｇに基づいて、ＣＰＵ１０３から送信されるレジスタ設定情報の宛先をＦＰＧＡ７００又はＣｏｎｖｅｒｔｅｒ７０３のいずれかに制御する（詳細は後述する）。また、セレクタ７０２は、ＦＰＧＡ７００において生成されるＥｎｄＦｌａｇに基づいて、レジスタ設定情報をＦＰＧＡ７００に送信するタイミングを制御する（詳細は後述する）。
【００２３】
コンバータ（Ｃｏｎｖｅｒｔｅｒ）７０３は、セレクタ７０２から受け取ったレジスタ設定情報を、回路構成データ変更情報に変換する。なお、図２では、セレクタ７０２とコンバータ７０３をハードウェアとして実装する構成を示しているが、セレクタ７０２とコンバータ７０３を実装する手段は、ソフトウェア、ハードウェアのどちらでも構わない。即ち、ＣＰＵ１０３がＲＯＭ１０８に記録されるプログラムを読み出して実行することにより、セレクタ７０２とコンバータ７０３を実現する構成であってもよい。
【００２４】
図３は、図２に示した画像入力部であるスキャナ２００の概観を示す概観図である。
画像入力デバイスであるスキャナ２００は、原稿となる紙上の画像を照明し、図示しないＣＣＤラインセンサを走査することで、原稿を光学的に読み取り、ラスターイメージデータとして電気信号に変換する。以下、スキャナ２００の動作について説明する。
【００２５】
ユーザが原稿用紙を原稿フィーダ２０１のトレイ２０２にセットし、操作部４００から読み取り起動指示することにより、コントローラ１００のＣＰＵ１０３がスキャナ２００に指示を与える。この指示に応じて、スキャナ２００では、フィーダ２０１が原稿用紙を一枚ずつフィードし、図示しないＣＣＤラインセンサが原稿画像の読み取る原稿読取動作を行う。
【００２６】
図４は、図２に示した画像出力部であるプリンタ３００の概観を示す概観図である。
画像出力デバイスであるプリンタ部３００は、ラスターイメージデータを用紙上の画像に変換する部分である。その方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。以下、プリンタ３００の動作について説明する。
【００２７】
プリント動作の起動は、コントローラ１００のＣＰＵ１０３からの指示によって開始する。プリンタ部３００は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット３０２，３０３，３０４，３０５が装着される。また、排紙トレイ３０６は印字し終わった用紙を受けるものである。
また、ここでは図示しないが、コントローラ１００のＣＰＵ１０３からの指示により、出力順序をソートしたり、両面印刷したり、拡大縮小したり、出力した用紙をステイプル装置によって製本したりすることも可能である。
【００２８】
図５は、図２に示した操作部４００の構成の一例を示す平面図である。
図５において、４０１は液晶操作パネルである。液晶操作パネル４０１は、液晶にタッチパネルを組み合わせたものであり、設定内容の表示、ソフトキーの表示等がなされるものである。
スタートキー４０２は、コピー動作等を開始指示するためのハードキーであり、内部に緑色および赤色のＬＥＤが組み込まれており、スタート可能のときに緑色、スタート不可のときに赤色のＬＥＤが点灯する。
ストップキー４０３は、動作を停止させるときに使用するハードキーである。ハードキー群４０４には、テンキー、クリアキー、リセットキー、ガイドキー、ユーザモードキーが設けられている。
【００２９】
以下、図６，図７を参照して、図２に示したＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する機能について説明する。
図６は、図２に示したＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する機能の一つであるスキャナ画像処理部の構成の一例を示す図である。
図６において、５００はスキャナ画像処理部であり、ＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスＩ／Ｆコントローラ（画像バスＩ／Ｆコントローラ）５０１は、イメージバス１０２と接続し、そのバスアクセスシーケンスを制御する働きと、スキャナ画像処理部５００内の各デバイスの制御及びタイミングを発生させる。像域分離処理部５０２は、入力画像から文字部を検出することにより、像域を判定し、その後の画像処理に利用する像域信号を生成する。
【００３０】
テーブル処理部５０３は、読み取った輝度データである画像データを濃度データに変換するためのテーブル変換を行う。フィルタ処理部５０４は、エッジ強調などの目的に従ったデジタル空間フィルタでコンボリューション演算を行う。
編集部５０５は、例えば入力画像データからマーカーペンで囲まれた閉領域を認識して、その閉領域内の画像データに対して、影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。なお、処理が終了した画像データは、再び、画像Ｉ／Ｆバスコントローラ５０１を介して、イメージバス１０２上に転送される。
以上のようなスキャナ画像処理部５００の機能を、ＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する。
【００３１】
図７は、図２に示したＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する機能の一つであるプリンタ画像処理部の構成の一例を示す図である。
図７において、６００はプリンタ画像処理部であり、ＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスＩ／Ｆコントローラ（画像バスＩ／Ｆコントローラ）６０１は、イメージバス１０２と接続し、そのバスアクセスシーケンスを制御する働きと、プリンタ画像処理部６００内の各デバイスの制御及びタイミングを発生させる。下地除去処理部６０２は、背景に薄い色がある原稿を読み取った画像データ等が送られてきた場合に背景色を除去する。
【００３２】
色変換処理部６０３は、プリンタの出力特性に合わせた色変換を行う。解像度変換部６０４は、ＬＡＮ１１あるいは公衆回線１２から受信した画像データを、プリンタ３００の解像度に変換するための解像度変換を行う。不図示のスクリーン処理部では、画像データに対して２値化処理を行う。スムージング処理部６０５は、解像度変換後の画像データのジャギー（斜め線等の白黒境界部に現れる画像のがさつき）を滑らかにする処理を行う。
以上のようなプリンタ画像処理部６００の機能を、ＦＰＧＡ７００が回路構成データを展開してハードウェアとして構成する。
【００３３】
次に、図８を用いて本実施形態における画像データの構成を説明する。
図８は、本実施形態における画像データの構成を説明するデータ構成図である。
図８において、８００は画像データである。画像データ８００は、ヘッダ８０１、属性情報８０２、複数のピクセルデータ８０３、及び、フッタ８０４から構成される。
ヘッダ８０１は、プリントジョブＩＤやページ数、画像データ８００の長さや幅に関する情報や、画像データ８００の始点を示すために用いるスタートフラグを含む。属性情報８０２は、色、解像度や印刷モードといった画像の印刷に関わる情報（画像処理内容）を含む。
ピクセルデータ８０３は、画素ごとの画像データを含む。フッタ８０４は、画像データ８００の終点を示すために用いるエンドフラグを含む。
【００３４】
次に、図９を参照して、ＲＯＭ１０８から選択されてフラッシュメモリ７０１に格納され、ＦＰＧＡ７００に展開される回路構成データの構成を説明する。
図９は、本実施形態の回路構成データを説明する図である。
図９において、９００は回路構成データであり、ＲＯＭ１０８から選択されてフラッシュメモリ７０１に格納され、ＦＰＧＡ７００に展開されるものである。なお、本実施形態では、回路構成データ９００のデータ幅をＴビットとする。
【００３５】
図９に示すように、回路構成データ９００は、ヘッダ９０１、フッタ９０２、及び、複数の配線データ９０３から構成される。
ヘッダ９０１は、回路構成データ９００の始点を示すために用いるスタートフラグや、回路構成データ９００の回路ＩＤ（回路識別情報）等を有する。なお、回路ＩＤは、回路構成データ９００を判別するための識別情報であり、後述する図１０に示す回路ＩＤ１０１０に対応する。フッタ９０２は、回路構成データ９００の終点を示すために用いるエンドフラグ（ＥｎｄＦｌａｇ）と、ＦＰＧＡを起動させるために用いる起動フラグを有する。
【００３６】
配線データ９０３は、スタートビット９０４、エンドビット及びエラーチェックビット９０５、配線データビット９０６から構成される。
スタートビット９０４（データ幅１ビット）は、配線データの先頭に付加され、配線データの始まりを示すために用いられる。エンドビット及びエラーチェックビット９０５（データ幅ｎビット）は、配線データの末尾に付加され、配線データの正当性のチェック及び配線データの終わりを示すために用いられる。配線データビット９０６（データ幅ｍビット）は、ＦＰＧＡの論理エレメント間の接続状態を表すために用いられる。
【００３７】
次に、図１０を用いて本実施形態の設定情報生成テーブルを説明する。
図１０は、本実施形態の設定情報生成テーブルを説明する図である。
図１０において、１０００は設定情報生成テーブルであり、コントローラ１００のＲＯＭ１０８内に格納されている。設定情報生成テーブル１０００は、ユーザが設定した属性情報８０２（色、解像度、印刷モード、明度、彩度等の画像処理内容）に応じた回路ＩＤ１０１０と、レジスタ設定情報テーブルＩＤ（レジスタ設定情報テーブル識別情報）１０２０を対応付けるテーブルである。
【００３８】
回路ＩＤ１０１０は、ＦＰＧＡ７００上に展開する回路構成データ９００を判別するための識別情報であり、図９に示したヘッダ９０１内の回路ＩＤに対応する。
レジスタ設定情報テーブルＩＤ１０２０は、図１１に示すように、ＲＯＭ１０８内に格納されているレジスタ設定情報テーブル１１００を判別するための識別情報である。
【００３９】
図１１は、図１０に示した設定情報生成テーブル１０００とＲＯＭ１０８内に格納されている各レジスタ設定情報テーブル１１００との関係を示す図である。
図１１に示すように、ＲＯＭ１０８内に格納されている各レジスタ設定情報テーブル１１００には、レジスタ設定情報テーブルＩＤ１０２０と、レジスタ設定情報１１０１が格納されている。
【００４０】
レジスタ設定情報１１０１は、画像処理演算の係数や閾値の設定に必要なレジスタ値の設定に用いられる情報であり、アドレス（Address）と、データ（Data）から構成される（詳細は後述する）。即ち、ＲＯＭ１０８には、属性情報（画像処理内容）ごとに該属性情報に応じたレジスタ設定情報１１０１が記憶されている。
【００４１】
まず、ＣＰＵ１０３は、印刷ジョブに設定された属性情報８０２（色、解像度、印刷モード、明度、彩度等）に応じたレジスタ設定情報テーブルＩＤ１０２０を、設定情報生成テーブル１０００から取得する。そして、ＣＰＵ１０３は、前記取得したレジスタ設定情報テーブルＩＤ１０２０に対応するレジスタ設定情報テーブル１１００からレジスタ設定情報１１０１を取得する。ここで取得したレジスタ設定情報１１０１を用いて、回路構成データ９００の配線データ９０３を書き換える。
【００４２】
次に、図１２〜図１５を用いて、本発明における第１実施形態におけるＦＰＧＡ７００への回路構成データ９００の展開とレジスタ設定の方法を説明する。
図１２は、本発明の第１実施形態におけるＦＰＧＡ７００への回路構成データ９００の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット１００のＣＰＵ１０３がＲＯＭ１０８に記録されるプログラムを読み出して実行することによって、コントローラユニット１００により実現される。
【００４３】
図１３は、本発明におけるレジスタ設定方法を説明する図である。
まず、プリントジョブがＰＣ１０において生成され、ＬＡＮ１１を経由し、ネットワークＩ／Ｆ１０５を介してＭＦＰ２１に入力されると（Ｓ１００）、入力されたプリントジョブはＰＤＬアクセラレータ１１１に入力され、画像データ８００が生成される。
【００４４】
次に、ステップＳ１０１において、ＣＰＵ１０３は、ＲＯＭ１０８内に格納されている設定情報生成テーブル１０００（図１０）を用いて、画像データ８００内の属性情報８０２に対応した回路ＩＤ１０１０とレジスタ設定情報テーブルＩＤ１０２０を取得する。さらに、ＣＰＵ１０３は、レジスタ設定情報テーブルＩＤ１０２０に対応するＲＯＭ１０８内のレジスタ設定情報テーブル１１００からレジスタ設定情報１１０１を読み出してセレクタ７０２に転送する。なお、上記取得された回路ＩＤ１０１０はＲＡＭ１０７に転送される。
【００４５】
次に、ステップＳ１０２において、ＣＰＵ１０３は、上記Ｓ１０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとを比較する。この比較結果に基づいて、ＣＰＵ１０３は、ＦＰＧＡ７００上の回路書き換えが必要かどうかを判断し、ＣｈｇＦｌａｇを生成して、セレクタ７０２に転送する。なお、ＣＰＵ１０３は、上記Ｓ１０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとが異なる場合、ＦＰＧＡ７００上の回路書き換えが必要だと判断し、ＣｈｇＦｌａｇとして'1'を生成する。一方、上記Ｓ１０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとが等しい場合、ＣＰＵ１０３は、ＦＰＧＡ７００上の回路書き換えが必要ないと判断し、ＣｈｇＦｌａｇとして'０'を生成する。
【００４６】
なお、セレクタ７０２は、図１３に示すように、ＣＰＵ１０３が生成する前述したＣｈｇＦｌａｇと、ＦＰＧＡ７００が生成するＥｎｄＦｌａｇに基づいて、レジスタ設定情報１１０１の宛先を制御する（Ｓ１０３，Ｓ１０８）。なお、ＦＰＧＡ７００は、ジョブに関する処理が行われているときはＥｎｄＦｌａｇとして'０'を生成し、ジョブに関する処理が行われていない時はＥｎｄＦｌａｇとして'1'を生成する。即ち、ＥｎｄＦｌａｇは、ＦＰＧＡ７００が画像処理中であるか否かを判定するための状態判定信号として使用される。
【００４７】
ＣｈｇＦｌａｇが'０'（Ｓ１０３でＮ）で且つＥｎｄＦｌａｇが'１'（Ｓ１０８でＹ）である場合、セレクタ７０２は、レジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ１０９）。即ち、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、ＦＰＧＡ７００で処理が行われていない場合、セレクタ７０２は、レジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ１０９）。ＦＰＧＡ７００は、このレジスタ設定情報１１０１に基づいて、ＦＰＧＡ７００上の回路に対してレジスタ設定を行う（Ｓ１１０）。これにより、ＦＰＧＡ７００による、プリンタジョブの画像処理が可能となる。
【００４８】
また、ＣｈｇＦｌａｇが'０'（Ｓ１０３でＮ）で且つＥｎｄＦｌａｇが'０'（Ｓ１０８でＮ）である場合、セレクタ７０２は、レジスタ設定情報１１０１をセレクタ７０２内部で保持する。即ち、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、ＦＰＧＡ７００でジョブに関する処理が行われている場合、セレクタ７０２は、レジスタ設定情報１１０１をセレクタ７０２内部で保持する。そして、ＥｎｄＦｌａｇが'１'（Ｓ１０８でＹ）になると、即ち、ＦＰＧＡ７００でジョブに関する処理が終了すると、セレクタ７０２は、内部に保持していたレジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ１０９）。ＦＰＧＡ７００では、このレジスタ設定情報１１０１に基づいて、ＦＰＧＡ７００上の回路に対してレジスタ設定を行う（Ｓ１１０）。これにより、ＦＰＧＡ７００による、プリンタジョブの画像処理が可能となる。
【００４９】
また、セレクタ７０２は、ＣｈｇＦｌａｇが'１'（Ｓ１０３でＹ）である場合、セレクタ７０２は、ＥｎｄＦｌａｇの値に関わらず、レジスタ設定情報１１０１をコンバータ７０３に送信する（Ｓ１０４）。即ち、ＦＰＧＡ７００上の回路書き換えが必要である場合、ＦＰＧＡ７００で処理が行われているかいないかに関わらず、セレクタ７０２は、レジスタ設定情報１１０１をコンバータ７０３に送信する（Ｓ１０４）。これにより、コンバータ７０３では、レジスタ設定情報１１０１を配線変更情報にデータ変換できる。このデータ変換により、レジスタ設定情報１１０１は、フラッシュメモリ７０１内の回路構成データ９００のレジスタ部の配線データ９０７（図１４）を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記Ｓ１０４では、セレクタ７０２は、ＲＡＭ１０７に保持される回路ＩＤもコンバータ７０３に転送する。
【００５０】
次に、ステップＳ１０５において、コンバータ７０３は、上記転送された回路ＩＤ１０１０に対応する回路構成データ９００を書き換え対象として選択して、ＲＯＭ１０８から読出してフラッシュメモリ７０１に格納しておく（Ｓ１０５）。
【００５１】
次に、ステップＳ１０６において、コンバータ７０３は、レジスタ設定情報１１０１を配線変更情報にデータ変換し、フラッシュメモリ７０１内の回路構成データ９００に対するレジスタ設定を実行する（第１設定処理）。即ち、コンバータ７０３は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ７０１内の回路構成データ９００のレジスタ部の配線データ９０７（図１４）のうち、レジスタ初期値に関わる配線データビット９０８（図１５）を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ９００に与えられるため、ＦＰＧＡ７００上に回路構成データ９００を展開した後でレジスタ設定を行う必要がなくなる。
図１４は、図９に示した回路構成データ９００のレジスタ部の配線データ９０７を示す図である。
図１５は、図１４に示したレジスタ部配線データ９０７の書き換えの様子を示す図である。
【００５２】
次に、ステップＳ１０７では、コンバータ７０３は、上記Ｓ１０６で書き換えたフラッシュメモリ７０１上の回路構成データ９００を、ＦＰＧＡ７００からの展開要求に応じて（ＥｎｄＦｌａｇが'１'の状態で）、ＦＰＧＡ７００上に展開する。これにより、ＦＰＧＡ７００の書き換え（再構成処理）が行われる。なお、コンバータ７０３は、ＦＰＧＡ７００の書き換えが完了すると、その旨をＣＰＵ１０３に通知する。
【００５３】
上記Ｓ１０７又は上記Ｓ１１０の処理が終了すると、ステップＳ１１１において、ＣＰＵ１０３は、ＦＰＧＡ７００に画像データ８００のプリンタ画像処理を実行させ、処理を終了する。なお、ＦＰＧＡ７００では、プリントジョブの処理（プリンタ画像処理）が終了すると、処理終了フラグであるＥｎｄＦｌａｇを'１'にする。
【００５４】
なお、本フローチャートには示していないが、上記Ｓ１０２において、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、ＣＰＵ１０３は、そのままＦＰＧＡ７００にプリンタ画像処理を実行させる（Ｓ１１１）。即ち、この場合、ＦＰＧＡ７００上の回路書き換えもレジスタ設定の変更も行われない。
なお、図１２に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合、並行して図１２の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ７０１上でなされることになる。
以上のように、本実施形態によれば、プリントジョブの処理中に、次プリントジョブに関するレジスタ設定を、フラッシュメモリ７０１内の回路構成データ９００に対して行うことができる。そのため、ＦＰＧＡ７００上に回路構成データ９００を展開した後に、ＦＰＧＡ７００上の回路に対してレジスタ設定をする必要がなくなるので、プリントジョブ間の時間を短縮することができる。
【００５５】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ８００内の属性情報８０２は、カラーの属性となるものとする。
また、上記図１２に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図１２に示したフローチャートの処理を、画像データ８００内の属性情報８０２が変更される毎に実行するようにしてもよい。
【００５６】
以下、図１６を参照して、本実施形態の効果について説明する。
図１６は、本発明の第１実施形態の効果を示す図である。
図１６に示すように、従来では、１つ目のプリントジョブの印刷が完了してから、２つ目のプリントジョブ用にＦＰＧＡを書き換え、その後、ＦＰＧＡにレジスタ設定を行って、２つ目のプリントジョブの印刷を開始していた。
【００５７】
一方、本実施形態では、１つ目のプリントジョブの印刷中に、２つ目のプリントジョブ用にフラッシュメモリ７０１上でのレジスタ設定を行うことにより、ＦＰＧＡ７００の書き換え終了後すぐに、２つ目のプリントジョブの印刷を開始することができる。よって、本実施形態では、従来に比べて、プリントジョブ間の時間を短縮して、２つ目のプリントジョブの印刷の開始を早めることができる。
なお、本実施形態では、回路構成データ９００と、レジスタ設定情報テーブル１１００を、ＲＯＭ１０８に記憶しているが、それぞれ異なる記憶装置に記憶してもよい。
【００５８】
〔第２実施形態〕
上記第１実施形態では、ＦＰＧＡ７００上の回路書き換えが必要である場合には、フラッシュメモリ７０１上でレジスタ設定を行っておいてＦＰＧＡ７００の書き換えを行う構成について説明した。本実施形態では、ＦＰＧＡ７００上の回路書き換えが必要である場合には、フラッシュメモリ７０１上でレジスタ設定するのに要する時間と、ＦＰＧＡ７００上でレジスタ設定するために要する時間とを比較する。そして、比較結果に基づいて、より短い時間でレジスタ設定できる方法を選択して用いるように構成する。
【００５９】
以下、図１７を用いて、本発明における第２実施形態におけるＦＰＧＡ７００への回路構成データ９００の展開とレジスタ設定の方法を説明する。
図１７は、本発明の第２実施形態におけるＦＰＧＡ７００への回路構成データ９００の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット１００のＣＰＵ１０３がＲＯＭ１０８に記録されるプログラムを読み出して実行することによって、コントローラユニット１００により実現される。
【００６０】
まず、Ｓ２００〜Ｓ２０２に示す処理は、図１２のＳ１００〜Ｓ１０２に示した処理とそれぞれ同一の処理であるため、説明は省略する。
次に、ステップＳ２０３〜Ｓ２０６において、セレクタ７０２は、ＣｈｇＦｌａｇ、ＥｎｄＦｌａｇ、後述するＦＰＧＡ上レジスタ設定時間Ｔとメモリ上レジスタ設定時間Ｔｓｅｔとの比較結果に基づいて、レジスタ設定情報１１０１の宛先を制御する。なお、ＦＰＧＡ上レジスタ設定時間Ｔ（第２設定時間）とは、ＦＰＧＡ７００上の回路に対してレジスタ設定を行うために要する時間を示し、設定するレジスタ規模（設定するレジスタ設定情報１１０１のデータ量）に基づいて算出される。また、メモリ上レジスタ設定時間Ｔｓｅｔ（第１設定時間）とは、フラッシュメモリ７０１内の回路構成データ９００を書き換えることによってレジスタ設定を行うために要する時間を示し、予め設定されＲＯＭ１０８に記憶されているものとする。
【００６１】
まず、ＣｈｇＦｌａｇが'０'（Ｓ２０３でＮ）である場合には、Ｓ２１５〜Ｓ２１７に示す処理が実行される。なお、Ｓ２１５〜Ｓ２１７は、図１２のＳ１０８〜Ｓ１１０に示した処理とそれぞれ同一の処理であるため、説明は省略する。
また、ＣｈｇＦｌａｇが'１'（Ｓ２０３でＹ）で且つＥｎｄＦｌａｇが'０'（Ｓ２０４でＮ）である場合、Ｓ２１１〜Ｓ２１４に示す処理が実行される。この場合は、ＦＰＧＡ７００上の回路書き換えが必要であるが、ＦＰＧＡ７００がジョブ処理中であり、直ぐにＦＰＧＡ７００上の回路書き換えができない場合である。そのため、フラッシュメモリ７０１上でレジスタ設定を行っておき、ＦＰＧＡ７００でのジョブ処理終了を待って、ＦＰＧＡ７００の書き換えを行う。なお、Ｓ２１１〜Ｓ２１４は、図１２のＳ１０４〜Ｓ１０７に示した処理とそれぞれ同一の処理であるため、説明は省略する。
【００６２】
また、ＣｈｇＦｌａｇが'１'（Ｓ２０３でＹ）で且つＥｎｄＦｌａｇが'１'（Ｓ２０４でＹ）である場合、Ｓ２０５〜Ｓ２１０に示す処理が実行される。この場合は、ＦＰＧＡ７００上の回路書き換えが必要であり、ＦＰＧＡ７００がジョブ処理中でないため、直ぐにＦＰＧＡ７００上の回路書き換えが可能な場合である。以下、詳細に説明する。
【００６３】
まず、ステップＳ２０５において、セレクタ７０２は、設定するレジスタ設定情報１１０１に基づいてＦＰＧＡ上レジスタ設定時間Ｔを算出し、該算出されたＦＰＧＡ上レジスタ設定時間Ｔと予め設定されているメモリ上レジスタ設定時間Ｔｓｅｔとを比較する。
そして、ＦＰＧＡ上レジスタ設定時間Ｔがメモリ上レジスタ設定時間Ｔｓｅｔより長い場合（Ｔ＞Ｔｓｅｔ）（Ｓ２０６でＹ）、セレクタ７０２は、ＲＡＭ１０７に保持される回路ＩＤとレジスタ設定情報１１０１をコンバータ７０３に送信する（Ｓ２１１）。以下、上述したＳ２１２〜Ｓ２１４の処理が実行される。
【００６４】
一方、ＦＰＧＡ上レジスタ設定時間Ｔがメモリ上レジスタ設定時間Ｔｓｅｔより短い場合（Ｔ≦Ｔｓｅｔの場合）（Ｓ２０６でＮ）、セレクタ７０２は、レジスタ設定情報をセレクタ７０２内部で保持する。
【００６５】
次に、ステップＳ２０７において、セレクタ７０２は、ＲＡＭ１０７に保持される回路ＩＤに対応する回路構成データ９００を書き換え対象として選択して、ＲＯＭ１０８から読出してフラッシュメモリ７０１に格納しておく。
次に、ステップＳ２０８において、セレクタ７０２は、上記Ｓ２０７で選択したフラッシュメモリ７０１上の回路構成データ９００を、ＦＰＧＡ７００上に展開する。これにより、ＦＰＧＡ７００の書き換え（再構成処理）が行われる。
【００６６】
次に、ステップＳ２０９において、セレクタ７０２は、セレクタ７０２内部で保持しているレジスタ設定情報１１０１をＦＰＧＡ７００に送信する。ＦＰＧＡ７００は、このレジスタ設定情報１１０１に基づいて、ＦＰＧＡ７００上の回路に対してレジスタ設定を行う（第２設定処理）（Ｓ２１０）。これにより、ＦＰＧＡ７００による、プリンタジョブの画像処理が可能となる。
【００６７】
上記Ｓ２１０、Ｓ２１４、又は、Ｓ２１７の処理が終了すると、ステップＳ２１８において、ＣＰＵ１０３は、ＦＰＧＡ７００に画像データ８００のプリンタ画像処理を実行させ、処理を終了する。なお、ＦＰＧＡ７００では、プリントジョブの処理（プリンタ画像処理）が終了すると、処理終了フラグであるＥｎｄＦｌａｇを'１'にする。
【００６８】
なお、本フローチャートには示していないが、上記Ｓ２０２において、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、ＣＰＵ１０３は、そのままＦＰＧＡ７００にプリンタ画像処理を実行させる（Ｓ２１８）。即ち、この場合、ＦＰＧＡ７００上の回路書き換えもレジスタ設定の変更も行われない。
【００６９】
なお、図１７に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合には、並行して図１７の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ７０１上でなされることになる。
【００７０】
以上のように本実施形態によれば、プリントジョブの非処理中に、次プリントジョブに関するレジスタ設定の方法を、ＦＰＧＡ上レジスタ設定時間Ｔとメモリ上レジスタ設定時間Ｔｓｅｔとの比較結果によって切り替えることができる。そのため、より短い時間でレジスタ設定できる方法でレジスタ設定でき、画像処理を開始するまでの時間を最短にすることができる。
【００７１】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ８００内の属性情報８０２は、カラーの属性となるものとする。
また、上記図１７に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図１７に示したフローチャートの処理を、画像データ８００内の属性情報８０２が変更される毎に実行するようにしてもよい。
【００７２】
〔第３実施形態〕
上記第１，２実施形態では、ＭＦＰ２１にプリントジョブが入力された際のレジスタ設定方法について説明したが、本実施形態では、ＭＦＰ２１にスキャンジョブが入力された際のレジスタ設定方法について説明する。
図１８は、本発明の第３実施形態におけるＦＰＧＡ７００への回路構成データ９００の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット１００のＣＰＵ１０３がＲＯＭ１０８に記録されるプログラムを読み出して実行することによって、コントローラユニット１００により実現される。
【００７３】
まず、スキャンジョブが入力されると（Ｓ３００）、ＣＰＵ１０３は、スキャナ部２００において原稿をスキャンさせ、該スキャンされた画像データ８００がデバイスＩ／Ｆ１１２を介して入力される。
次に、ステップＳ３０１において、ＣＰＵ１０３は、ＲＯＭ１０８内に格納されている設定情報生成テーブル１０００（図１０）を用いて、画像データ８００内の属性情報８０２に対応した回路ＩＤ１０１０とレジスタ設定情報テーブルＩＤ１０２０を取得する。さらに、ＣＰＵ１０３は、レジスタ設定情報テーブルＩＤ１０２０に対応するＲＯＭ１０８内のレジスタ設定情報テーブル１１００からレジスタ設定情報１１０１を読み出してセレクタ７０２に転送する。なお、上記取得された回路ＩＤ１０１０はＲＡＭ１０７に転送される。
【００７４】
次に、ステップＳ３０２において、ＣＰＵ１０３は、上記Ｓ３０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとを比較する。この比較結果に基づいて、ＣＰＵ１０３は、ＦＰＧＡ７００上の回路書き換えが必要かどうかを判断し、ＣｈｇＦｌａｇを生成して、セレクタ７０２に転送する。なお、ＣＰＵ１０３は、上記Ｓ３０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとが異なる場合、ＦＰＧＡ７００上の回路書き換えが必要だと判断し、ＣｈｇＦｌａｇとして'1'を生成する。一方、上記Ｓ３０１で読み出した回路ＩＤ１０１０と、ＦＰＧＡ７００上に既に展開されている回路構成データ９００内の回路ＩＤとが等しい場合、ＣＰＵ１０３は、ＦＰＧＡ７００上の回路書き換えが必要ないと判断し、ＣｈｇＦｌａｇとして'０'を生成する。
【００７５】
なお、セレクタ７０２は、図１３に示したように、ＣＰＵ１０３が生成する前述したＣｈｇＦｌａｇと、ＦＰＧＡ７００が生成するＥｎｄＦｌａｇに基づいて、レジスタ設定情報１１０１の宛先を制御する（Ｓ３０３，Ｓ３０８）。なお、ＦＰＧＡ７００は、ジョブに関する処理が行われているときはＥｎｄＦｌａｇとして'０'を生成し、ジョブに関する処理が行われていない時はＥｎｄＦｌａｇとして'1'を生成する。
【００７６】
ＣｈｇＦｌａｇが'０'（Ｓ３０３でＮ）で且つＥｎｄＦｌａｇが'１'（Ｓ３０８でＹ）である場合、セレクタ７０２は、レジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ３０９）。即ち、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、ＦＰＧＡ７００で処理が行われていない場合、セレクタ７０２は、レジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ３０９）。ＦＰＧＡ７００は、このレジスタ設定情報１１０１に基づいて、ＦＰＧＡ７００上の回路に対してレジスタ設定を行う（Ｓ３１０）。これにより、ＦＰＧＡ７００による、スキャンジョブの画像処理が可能となる。
【００７７】
また、ＣｈｇＦｌａｇが'０'（Ｓ３０３でＮ）で且つＥｎｄＦｌａｇが'０'（Ｓ３０８でＮ）である場合、セレクタ７０２は、レジスタ設定情報１１０１をセレクタ７０２内部で保持する。即ち、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、ＦＰＧＡ７００でジョブに関する処理が行われている場合、セレクタ７０２は、レジスタ設定情報１１０１をセレクタ７０２内部で保持する。そして、ＥｎｄＦｌａｇが'１'（Ｓ３０８でＹ）になると、即ち、ＦＰＧＡ７００でジョブに関する処理が終了すると、セレクタ７０２は、内部に保持していたレジスタ設定情報１１０１をＦＰＧＡ７００に送信する（Ｓ３０９）。ＦＰＧＡ７００では、このレジスタ設定情報１１０１に基づいて、ＦＰＧＡ７００上の回路に対してレジスタ設定を行う（Ｓ３１０）。これにより、ＦＰＧＡ７００による、スキャンジョブの画像処理が可能となる。
【００７８】
また、セレクタ７０２は、ＣｈｇＦｌａｇが'１'（Ｓ３０３でＹ）である場合、セレクタ７０２は、ＥｎｄＦｌａｇの値に関わらず、レジスタ設定情報１１０１をコンバータ７０３に送信する（Ｓ３０４）。即ち、ＦＰＧＡ７００上の回路書き換えが必要である場合、ＦＰＧＡ７００で処理が行われているかいないかに関わらず、セレクタ７０２は、レジスタ設定情報１１０１をコンバータ７０３に送信する（Ｓ３０４）。これにより、コンバータ７０３では、レジスタ設定情報１１０１を配線変更情報にデータ変換する。このデータ変換により、レジスタ設定情報１１０１は、フラッシュメモリ７０１内の回路構成データ９００のレジスタ部の配線データ９０７（図１４）を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記Ｓ３０４では、セレクタ７０２は、ＲＡＭ１０７に保持される回路ＩＤもコンバータ７０３に転送する。
【００７９】
次に、ステップＳ３０５において、コンバータ７０３は、上記転送された回路ＩＤ１０１０に対応する回路構成データ９００を書き換え対象として選択して、ＲＯＭ１０８から読出してフラッシュメモリ７０１に格納しておく（Ｓ３０５）。
【００８０】
次に、ステップＳ３０６において、コンバータ７０３は、フラッシュメモリ７０１内の回路構成データ９００に対するレジスタ設定を実行する。即ち、コンバータ７０３は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ７０１内の回路構成データ９００のレジスタ部の配線データ９０７（図１４）のうち、レジスタ初期値に関わる配線データビット９０８（図１５）を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ９００に与えられるため、ＦＰＧＡ７００上に回路構成データ９００を展開した後でレジスタ設定を行う必要がなくなる。
【００８１】
次に、ステップＳ３０７において、コンバータ７０３は、上記Ｓ１０６で書き換えたフラッシュメモリ７０１上の回路構成データ９００を読み出して、ＦＰＧＡ７００からの展開要求に応じて（ＥｎｄＦｌａｇが'１'の状態で）、ＦＰＧＡ７００上に展開する。これにより、ＦＰＧＡ７００の書き換え（再構成処理）が行われる。なお、コンバータ７０３は、ＦＰＧＡ７００の書き換えが完了すると、その旨をＣＰＵ１０３に通知する。
【００８２】
上記Ｓ３０７又は上記Ｓ３１０の処理が終了すると、ステップＳ３１１において、ＣＰＵ１０３は、ＦＰＧＡ７００に画像データ８００のスキャン画像処理を実行させ、処理を終了する。なお、ＦＰＧＡ７００では、スキャンジョブの処理（スキャン画像処理）が終了すると、処理終了フラグであるＥｎｄＦｌａｇを'１'にする。
【００８３】
なお、本フローチャートには示していないが、上記Ｓ３０２において、ＦＰＧＡ７００上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、ＣＰＵ１０３は、ＦＰＧＡ７００にスキャン画像処理を実行させる（Ｓ３１１）。即ち、この場合、ＦＰＧＡ７００上の回路書き換えもレジスタ設定の変更も行われない。
【００８４】
なお、図１８に示したフローチャートの処理は、スキャンジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のスキャンジョブが入力された場合、並行して図１８の処理が実行され、前のスキャンジョブの画像処理中に、次のスキャンジョブに対応する回路構成データのレジスト設定がフラッシュメモリ７０１上でなされることになる。
【００８５】
以上のように、本実施形態によれば、スキャンジョブの処理中に、次スキャンジョブに関するレジスタ設定を、フラッシュメモリ７０１内の回路構成データ９００に対して行うことができる。そのため、ＦＰＧＡ７００上に回路構成データ９００を展開した後に、ＦＰＧＡ７００上の回路に対してレジスタ設定をする必要がなくなるので、スキャンジョブ間の時間を短縮することができる。
なお、本実施形態では、カラーページとモノクロページが混在するスキャンジョブの場合、画像データ８００内の属性情報８０２は、カラーの属性となるものとする。
また、上記図１８に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図１８に示したフローチャートの処理を、画像データ８００内の属性情報８０２が変更される毎に実行するようにしてもよい。
【００８６】
なお、第２実施形態で示したプリントジョブに対する処理（図１７）を、スキャンジョブに対して適用するようにしてもよい。即ち、スキャンジョブが入力された際にも、ＦＰＧＡ７００上の回路書き換えが必要であり、ＦＰＧＡがジョブ処理中でない場合には、スキャンジョブに関するレジスタ設定の方法を、上記ＴとＴｓｅｔとの比較結果によって切り替えるように構成する。Ｔ＞Ｔｓｅｔの場合には、フラッシュメモリ７０１上でレジスタ設定を行っておいてＦＰＧＡ７００の書き換えを行う。一方、Ｔ≦Ｔｓｅｔの場合には、ＦＰＧＡ７００の書き換え後にＦＰＧＡ７００に対してレジスタ設定を行う。
このような構成を設けることにより、より短い時間で設定できる方法でレジスタ設定でき、スキャンジョブの画像処理を開始するまでの時間を最短にすることができる。
【００８７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００８８】
なお、上記各実施形態では、ＲＯＭ１０８に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択してフラッシュメモリ７０１に記憶させ、フラッシュメモリ７０１上で一部を書き換えてから、ＦＰＧＡ７００に展開する構成を示した。しかし、フラッシュメモリ７０１に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択して、フラッシュメモリ７０１上で一部を書き換えてから、ＦＰＧＡ７００に展開するように構成してもよい。
【００８９】
以上説明したように、処理間でＦＰＧＡを書き換える場合でも、処理中に次の処理に対するレジスタ設定をフラッシュメモリ７０１上で行うことができるため、処理間に長い時間が必要ない。よって、回路の再構成に伴うパフォーマンスの低下を抑えることができる。
【００９０】
本実施形態における図１２，図１７，図１８に示す機能が外部からインストールされるプログラムによって、コンピュータにより遂行されていてもよい。そして、その場合、CD-ROMやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００９１】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００９２】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【００９３】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００９４】
２１    ＭＦＰ
７００    ＦＰＧＡ
【図１】
2010206704.tif 000003
【図２】
2010206704.tif 000004
【図３】
2010206704.tif 000005
【図４】
2010206704.tif 000006
【図５】
2010206704.tif 000007
【図６】
2010206704.tif 000008
【図７】
2010206704.tif 000009
【図８】
2010206704.tif 000010
【図９】
2010206704.tif 000011
【図１０】
2010206704.tif 000012
【図１１】
2010206704.tif 000013
【図１２】
2010206704.tif 000014
【図１３】
2010206704.tif 000015
【図１４】
2010206704.tif 000016
【図１５】
2010206704.tif 000017
【図１６】
2010206704.tif 000018
【図１７】
2010206704.tif 000019
【図１８】
2010206704.tif 000020