画像処理装置、画像処理装置の制御方法、及び、プログラム
【課題】回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えること。
【解決手段】CPU103の制御により、コンバータ703が、画像データの画像処理内容に基づいてROM108から回路構成データを選択してフラッシュメモリ701に記憶させ(S105)、回路構成データを書き換えるための書き換えデータを生成し、該書き換えデータに基づいてフラッシュメモリ701に記憶されている前記回路構成データの一部を書き換えた後に(S106)、フラッシュメモリ701に記憶されている回路構成データによりFPGA700の回路構成を再構成させる(S107)。その後、FPGA700が画像処理を実行する(S111)。
【解決手段】CPU103の制御により、コンバータ703が、画像データの画像処理内容に基づいてROM108から回路構成データを選択してフラッシュメモリ701に記憶させ(S105)、回路構成データを書き換えるための書き換えデータを生成し、該書き換えデータに基づいてフラッシュメモリ701に記憶されている前記回路構成データの一部を書き換えた後に(S106)、フラッシュメモリ701に記憶されている回路構成データによりFPGA700の回路構成を再構成させる(S107)。その後、FPGA700が画像処理を実行する(S111)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及び、プログラムに関する。
【背景技術】
【0002】
プログラマブルロジックデバイスは、回路を構成する素子や配線に関する回路構成データを外部記憶装置(ROM、フラッシュメモリ等)に保持している。そして、プログラマブルロジックデバイスは、必要に応じて回路構成データを読み込み、読み込んだ回路構成データに基づいて内蔵する複数の論理エレメント間の接続状態を変更することによって、任意の論理回路を実現することができる集積回路である。
【0003】
代表的なプログラマブルロジックデバイスとして、FPGA(Field Programmable Gate Array)がある。
近年、画像情報処理の高度化に伴い、画像の種類や状況に応じた処理のニーズが増えている。そのような場合、FPGAを処理装置に実装し、処理装置ごとの要求仕様に最適化した回路構成データを作成することで、前述したニーズを満たすことができると考えられる。
【0004】
また、一つの処理装置で状況に応じて複数のハードウェア機能を切り替えたい場合、複数の回路構成データを外部メモリに格納しておき、処理に応じて回路構成データを選択し読み出す技術が提案されている(特許文献1)。
特許文献1の技術を用いて画像処理装置のハードウェア機能を切り替える場合、回路構成データを読み込み、FPGA上に構成された回路に対してレジスタ設定を行い、その後、画像処理を開始することとなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−179358号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の技術を用いて画像処理装置のハードウェア機能を処理間で切り替える場合、切り替えに要する時間は、回路構成データを読み込みFPGA上に回路構成データを展開する時間と、構成された回路に対するレジスタ設定にかかる時間(レジスタ設定時間)の合計時間である。このため、処理間に長い時間を要してしまい、処理装置全体のパフォーマンスが低下してしまうという課題があった。
【0007】
なお、レジスタ設定時間を削減するため、特許文献1の技術を利用し、必要なレジスタ設定値を初期値とした回路構成データを、必要なレジスタ設定値全てに対して用意するという方法が考えられる。しかし、この方法では、大量の回路構成データを記憶しておく必要が生じ、必要なメモリ容量が大きくなってしまうため好ましくない。
【0008】
以上のように、プログラマブルロジックデバイスを有する画像処理装置では、各種の問題点があった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【0009】
本発明は、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第1記憶手段と、前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、前記選択手段により選択された回路構成データを前記第1記憶手段から取得して記憶する第2記憶手段と、前記第2記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、前記入力手段により入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、前記生成手段により生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態を示すネットワークシステムの構成図である。
【図2】MFP21の構成の一例を示すブロック図である。
【図3】画像入力部であるスキャナ200の概観を示す概観図である。
【図4】画像出力部であるプリンタ300の概観を示す概観図である。
【図5】操作部400の構成の一例を示す平面図である。
【図6】スキャナ画像処理部の構成の一例を示す図である。
【図7】プリンタ画像処理部の構成の一例を示す図である。
【図8】本実施形態における画像データの構成を説明するデータ構成図である。
【図9】本実施形態の回路構成データを説明する図である。
【図10】本実施形態の設定情報生成テーブルを説明する図である。
【図11】設定情報生成テーブルと各レジスタ設定情報テーブルとの関係を示す図である。
【図12】第1実施形態における処理を示すフローチャートである。
【図13】本発明におけるレジスタ設定方法を説明する図である。
【図14】回路構成データ900のレジスタ部の配線データ907を示す図である。
【図15】レジスタ部配線データ907の書き換えの様子を示す図である。
【図16】第1実施形態の効果を示す図である。
【図17】第2実施形態における処理を示すフローチャートである。
【図18】第3実施形態における処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
〔第1実施形態〕
図1は、本発明の一実施形態を示す画像形成装置を適用可能なネットワークシステムの一例を示すシステム構成図である。
図1に示すように、本実施形態のネットワークシステムは、PC10、LAN11、MFP(複合機)21で構成されている。
PC10は、パーソナルコンピュータ、ワークステーションなどの情報処理端末機であり、様々なアプリケーションを動作させる。また、PC10は、後述のLAN11などのネットワーク回線を介してプリンタやMFP21などに対して印刷命令を発行し、印刷データを送信することができる。
【0013】
LAN11は、情報処理装置を接続している全世界のネットワークを相互に接続した巨大なコンピュータネットワークであるインターネットの一部分である。LAN11には、PC10とMFP21と、ここでは図示しないLAN11上の他のクライアントPC、サーバ等が接続されており、各々ネットワークI/Fを介しデータを送受信することにより通信を行うことができる。なお、図示しないがLAN11は、ルータなどを介して世界中の情報機器と通信可能である情報網のインターネットに接続されている。
MFP21は、原稿スキャン機能、プリント機能、BOX機能を登載した複合機能周辺装置(MFP:Multi Functional Peripheral)又はデジタル複合機と呼ばれるデバイスであり、本発明の画像処理装置に対応する。
【0014】
次に、図1に示したMFP21の構成の一例を図2に示す。
図2は、図1に示したMFP21の構成の一例を示すブロック図である。
図2において、100はコントローラユニットである。コントローラユニット100は、画像入力装置であるスキャナ200(図3)や、画像出力装置であるプリンタ300(図4)と接続し、一方ではLAN11、公衆回線12等のネットワークと接続することで、画像情報やデバイス情報の入出力を行う。また、コントローラユニット100は、操作部400(図5)と接続する。操作部400は、コントローラユニット100からの情報表示を行うとともにユーザからの指示をコントローラユニット100に伝える。
【0015】
コントローラユニット100において、103はCPUである。CPU103は、ROM108に記録されるプログラムを読み出して実行することにより、デジタル複合機(MFP21)全体を制御するコントローラとして機能する。ROM108(第1記憶部,第3記憶部)は、ブートROMとして利用され、MFP21のブートプログラム、FPGA700に展開するための複数の回路構成データ900(図9)、設定情報生成テーブル1000(図10)、レジスタ設定情報テーブル1100(図11)等が記憶されている。RAM107は、CPU103が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリとしても利用される。
【0016】
HDD109は、ハードディスクドライブで、システムソフトウェア、画像データ、アドレス帳などの個人データを格納する。これらのデータは、後述の画像圧縮部113で符号化されて格納され、使用時には復元される。なお、HDDを具備していない機器は、これらのデータを、他の記憶媒体(フラッシュメモリなど)に記憶するものとする。
【0017】
操作部I/F104は、操作部400とのインターフェース部で、操作部400に表示する画像データを操作部400に対して出力する。また、操作部I/F104は、操作部400からユーザが入力した情報をCPU103に伝える役割をする。
ネットワークI/F105は、LAN11に接続し、情報の入出力を行う。モデム106は、公衆回線12に接続し、データ送受信を行うための変調復調処理を行う。
以上のデバイス103〜109、及び、後述するSelector702、Converter703がシステムバス101上に配置される。
【0018】
イメージバスI/F110は、システムバス101と画像データを高速で転送するイメージバス102を接続し、データ構造を変換するバスブリッジである。
イメージバス102は、PCIバス又はIEEE1394などの高速バスで構成される。イメージバス102上には以下のデバイスが配置される。
PDLアクセラレータ111は、PDLコードから画像データ800(図8)を生成する。デバイスI/F部112は、画像入出力デバイスであるスキャナ200やプリンタ300とコントローラ100を接続し、画像データの同期系/非同期系の変換を行う。
【0019】
画像圧縮部113は、多値画像データはJPEG、2値画像データはJBIG、MMR、MHの圧縮伸張処理を行う。なお、画像圧縮部113は、圧縮、或いは伸張する画像データをHDD109から読み出し、圧縮処理、或いは伸張処理した後に、再びHDD109に格納する。
【0020】
FPGA700は、プログラマブルロジックデバイスとしてのFPGA(Field Programmable Gate Array)である。FPGA700は、画像処理アルゴリズムを有する回路構成データを展開し、必要な画像処理アルゴリズムをハードウェアとして構成する機能を備える。本実施形態では、FPGA700に回路構成データを展開することによりスキャナ画像処理部500(図6)やプリンタ画像処理部600(図7)が構成される。即ち、FPGA700は、フラッシュメモリ701に記憶された回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行するものである。なお、FPGA700は、1つのジョブを処理し終えるとEndFlag(詳細は後述する)を生成する。
【0021】
フラッシュメモリ(回路構成データメモリ(第2記憶部))701は、FPGA700に展開するために、ROM108から選択取得された回路構成データ900(図9)を記憶する。なお、本実施形態における回路構成データ900は、スキャナ画像処理部500やプリンタ画像処理部600の各部を構成するための回路構成データに相当する。
【0022】
セレクタ(Selector)702は、CPU103において生成されるChgFlagに基づいて、CPU103から送信されるレジスタ設定情報の宛先をFPGA700又はConverter703のいずれかに制御する(詳細は後述する)。また、セレクタ702は、FPGA700において生成されるEndFlagに基づいて、レジスタ設定情報をFPGA700に送信するタイミングを制御する(詳細は後述する)。
【0023】
コンバータ(Converter)703は、セレクタ702から受け取ったレジスタ設定情報を、回路構成データ変更情報に変換する。なお、図2では、セレクタ702とコンバータ703をハードウェアとして実装する構成を示しているが、セレクタ702とコンバータ703を実装する手段は、ソフトウェア、ハードウェアのどちらでも構わない。即ち、CPU103がROM108に記録されるプログラムを読み出して実行することにより、セレクタ702とコンバータ703を実現する構成であってもよい。
【0024】
図3は、図2に示した画像入力部であるスキャナ200の概観を示す概観図である。
画像入力デバイスであるスキャナ200は、原稿となる紙上の画像を照明し、図示しないCCDラインセンサを走査することで、原稿を光学的に読み取り、ラスターイメージデータとして電気信号に変換する。以下、スキャナ200の動作について説明する。
【0025】
ユーザが原稿用紙を原稿フィーダ201のトレイ202にセットし、操作部400から読み取り起動指示することにより、コントローラ100のCPU103がスキャナ200に指示を与える。この指示に応じて、スキャナ200では、フィーダ201が原稿用紙を一枚ずつフィードし、図示しないCCDラインセンサが原稿画像の読み取る原稿読取動作を行う。
【0026】
図4は、図2に示した画像出力部であるプリンタ300の概観を示す概観図である。
画像出力デバイスであるプリンタ部300は、ラスターイメージデータを用紙上の画像に変換する部分である。その方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。以下、プリンタ300の動作について説明する。
【0027】
プリント動作の起動は、コントローラ100のCPU103からの指示によって開始する。プリンタ部300は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット302,303,304,305が装着される。また、排紙トレイ306は印字し終わった用紙を受けるものである。
また、ここでは図示しないが、コントローラ100のCPU103からの指示により、出力順序をソートしたり、両面印刷したり、拡大縮小したり、出力した用紙をステイプル装置によって製本したりすることも可能である。
【0028】
図5は、図2に示した操作部400の構成の一例を示す平面図である。
図5において、401は液晶操作パネルである。液晶操作パネル401は、液晶にタッチパネルを組み合わせたものであり、設定内容の表示、ソフトキーの表示等がなされるものである。
スタートキー402は、コピー動作等を開始指示するためのハードキーであり、内部に緑色および赤色のLEDが組み込まれており、スタート可能のときに緑色、スタート不可のときに赤色のLEDが点灯する。
ストップキー403は、動作を停止させるときに使用するハードキーである。ハードキー群404には、テンキー、クリアキー、リセットキー、ガイドキー、ユーザモードキーが設けられている。
【0029】
以下、図6,図7を参照して、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能について説明する。
図6は、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能の一つであるスキャナ画像処理部の構成の一例を示す図である。
図6において、500はスキャナ画像処理部であり、FPGA700が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスI/Fコントローラ(画像バスI/Fコントローラ)501は、イメージバス102と接続し、そのバスアクセスシーケンスを制御する働きと、スキャナ画像処理部500内の各デバイスの制御及びタイミングを発生させる。像域分離処理部502は、入力画像から文字部を検出することにより、像域を判定し、その後の画像処理に利用する像域信号を生成する。
【0030】
テーブル処理部503は、読み取った輝度データである画像データを濃度データに変換するためのテーブル変換を行う。フィルタ処理部504は、エッジ強調などの目的に従ったデジタル空間フィルタでコンボリューション演算を行う。
編集部505は、例えば入力画像データからマーカーペンで囲まれた閉領域を認識して、その閉領域内の画像データに対して、影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。なお、処理が終了した画像データは、再び、画像I/Fバスコントローラ501を介して、イメージバス102上に転送される。
以上のようなスキャナ画像処理部500の機能を、FPGA700が回路構成データを展開してハードウェアとして構成する。
【0031】
図7は、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能の一つであるプリンタ画像処理部の構成の一例を示す図である。
図7において、600はプリンタ画像処理部であり、FPGA700が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスI/Fコントローラ(画像バスI/Fコントローラ)601は、イメージバス102と接続し、そのバスアクセスシーケンスを制御する働きと、プリンタ画像処理部600内の各デバイスの制御及びタイミングを発生させる。下地除去処理部602は、背景に薄い色がある原稿を読み取った画像データ等が送られてきた場合に背景色を除去する。
【0032】
色変換処理部603は、プリンタの出力特性に合わせた色変換を行う。解像度変換部604は、LAN11あるいは公衆回線12から受信した画像データを、プリンタ300の解像度に変換するための解像度変換を行う。不図示のスクリーン処理部では、画像データに対して2値化処理を行う。スムージング処理部605は、解像度変換後の画像データのジャギー(斜め線等の白黒境界部に現れる画像のがさつき)を滑らかにする処理を行う。
以上のようなプリンタ画像処理部600の機能を、FPGA700が回路構成データを展開してハードウェアとして構成する。
【0033】
次に、図8を用いて本実施形態における画像データの構成を説明する。
図8は、本実施形態における画像データの構成を説明するデータ構成図である。
図8において、800は画像データである。画像データ800は、ヘッダ801、属性情報802、複数のピクセルデータ803、及び、フッタ804から構成される。
ヘッダ801は、プリントジョブIDやページ数、画像データ800の長さや幅に関する情報や、画像データ800の始点を示すために用いるスタートフラグを含む。属性情報802は、色、解像度や印刷モードといった画像の印刷に関わる情報(画像処理内容)を含む。
ピクセルデータ803は、画素ごとの画像データを含む。フッタ804は、画像データ800の終点を示すために用いるエンドフラグを含む。
【0034】
次に、図9を参照して、ROM108から選択されてフラッシュメモリ701に格納され、FPGA700に展開される回路構成データの構成を説明する。
図9は、本実施形態の回路構成データを説明する図である。
図9において、900は回路構成データであり、ROM108から選択されてフラッシュメモリ701に格納され、FPGA700に展開されるものである。なお、本実施形態では、回路構成データ900のデータ幅をTビットとする。
【0035】
図9に示すように、回路構成データ900は、ヘッダ901、フッタ902、及び、複数の配線データ903から構成される。
ヘッダ901は、回路構成データ900の始点を示すために用いるスタートフラグや、回路構成データ900の回路ID(回路識別情報)等を有する。なお、回路IDは、回路構成データ900を判別するための識別情報であり、後述する図10に示す回路ID1010に対応する。フッタ902は、回路構成データ900の終点を示すために用いるエンドフラグ(EndFlag)と、FPGAを起動させるために用いる起動フラグを有する。
【0036】
配線データ903は、スタートビット904、エンドビット及びエラーチェックビット905、配線データビット906から構成される。
スタートビット904(データ幅1ビット)は、配線データの先頭に付加され、配線データの始まりを示すために用いられる。エンドビット及びエラーチェックビット905(データ幅nビット)は、配線データの末尾に付加され、配線データの正当性のチェック及び配線データの終わりを示すために用いられる。配線データビット906(データ幅mビット)は、FPGAの論理エレメント間の接続状態を表すために用いられる。
【0037】
次に、図10を用いて本実施形態の設定情報生成テーブルを説明する。
図10は、本実施形態の設定情報生成テーブルを説明する図である。
図10において、1000は設定情報生成テーブルであり、コントローラ100のROM108内に格納されている。設定情報生成テーブル1000は、ユーザが設定した属性情報802(色、解像度、印刷モード、明度、彩度等の画像処理内容)に応じた回路ID1010と、レジスタ設定情報テーブルID(レジスタ設定情報テーブル識別情報)1020を対応付けるテーブルである。
【0038】
回路ID1010は、FPGA700上に展開する回路構成データ900を判別するための識別情報であり、図9に示したヘッダ901内の回路IDに対応する。
レジスタ設定情報テーブルID1020は、図11に示すように、ROM108内に格納されているレジスタ設定情報テーブル1100を判別するための識別情報である。
【0039】
図11は、図10に示した設定情報生成テーブル1000とROM108内に格納されている各レジスタ設定情報テーブル1100との関係を示す図である。
図11に示すように、ROM108内に格納されている各レジスタ設定情報テーブル1100には、レジスタ設定情報テーブルID1020と、レジスタ設定情報1101が格納されている。
【0040】
レジスタ設定情報1101は、画像処理演算の係数や閾値の設定に必要なレジスタ値の設定に用いられる情報であり、アドレス(Address)と、データ(Data)から構成される(詳細は後述する)。即ち、ROM108には、属性情報(画像処理内容)ごとに該属性情報に応じたレジスタ設定情報1101が記憶されている。
【0041】
まず、CPU103は、印刷ジョブに設定された属性情報802(色、解像度、印刷モード、明度、彩度等)に応じたレジスタ設定情報テーブルID1020を、設定情報生成テーブル1000から取得する。そして、CPU103は、前記取得したレジスタ設定情報テーブルID1020に対応するレジスタ設定情報テーブル1100からレジスタ設定情報1101を取得する。ここで取得したレジスタ設定情報1101を用いて、回路構成データ900の配線データ903を書き換える。
【0042】
次に、図12〜図15を用いて、本発明における第1実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明する。
図12は、本発明の第1実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0043】
図13は、本発明におけるレジスタ設定方法を説明する図である。
まず、プリントジョブがPC10において生成され、LAN11を経由し、ネットワークI/F105を介してMFP21に入力されると(S100)、入力されたプリントジョブはPDLアクセラレータ111に入力され、画像データ800が生成される。
【0044】
次に、ステップS101において、CPU103は、ROM108内に格納されている設定情報生成テーブル1000(図10)を用いて、画像データ800内の属性情報802に対応した回路ID1010とレジスタ設定情報テーブルID1020を取得する。さらに、CPU103は、レジスタ設定情報テーブルID1020に対応するROM108内のレジスタ設定情報テーブル1100からレジスタ設定情報1101を読み出してセレクタ702に転送する。なお、上記取得された回路ID1010はRAM107に転送される。
【0045】
次に、ステップS102において、CPU103は、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとを比較する。この比較結果に基づいて、CPU103は、FPGA700上の回路書き換えが必要かどうかを判断し、ChgFlagを生成して、セレクタ702に転送する。なお、CPU103は、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが異なる場合、FPGA700上の回路書き換えが必要だと判断し、ChgFlagとして'1'を生成する。一方、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが等しい場合、CPU103は、FPGA700上の回路書き換えが必要ないと判断し、ChgFlagとして'0'を生成する。
【0046】
なお、セレクタ702は、図13に示すように、CPU103が生成する前述したChgFlagと、FPGA700が生成するEndFlagに基づいて、レジスタ設定情報1101の宛先を制御する(S103,S108)。なお、FPGA700は、ジョブに関する処理が行われているときはEndFlagとして'0'を生成し、ジョブに関する処理が行われていない時はEndFlagとして'1'を生成する。即ち、EndFlagは、FPGA700が画像処理中であるか否かを判定するための状態判定信号として使用される。
【0047】
ChgFlagが'0'(S103でN)で且つEndFlagが'1'(S108でY)である場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S109)。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700で処理が行われていない場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S109)。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S110)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0048】
また、ChgFlagが'0'(S103でN)で且つEndFlagが'0'(S108でN)である場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700でジョブに関する処理が行われている場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。そして、EndFlagが'1'(S108でY)になると、即ち、FPGA700でジョブに関する処理が終了すると、セレクタ702は、内部に保持していたレジスタ設定情報1101をFPGA700に送信する(S109)。FPGA700では、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S110)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0049】
また、セレクタ702は、ChgFlagが'1'(S103でY)である場合、セレクタ702は、EndFlagの値に関わらず、レジスタ設定情報1101をコンバータ703に送信する(S104)。即ち、FPGA700上の回路書き換えが必要である場合、FPGA700で処理が行われているかいないかに関わらず、セレクタ702は、レジスタ設定情報1101をコンバータ703に送信する(S104)。これにより、コンバータ703では、レジスタ設定情報1101を配線変更情報にデータ変換できる。このデータ変換により、レジスタ設定情報1101は、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記S104では、セレクタ702は、RAM107に保持される回路IDもコンバータ703に転送する。
【0050】
次に、ステップS105において、コンバータ703は、上記転送された回路ID1010に対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく(S105)。
【0051】
次に、ステップS106において、コンバータ703は、レジスタ設定情報1101を配線変更情報にデータ変換し、フラッシュメモリ701内の回路構成データ900に対するレジスタ設定を実行する(第1設定処理)。即ち、コンバータ703は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)のうち、レジスタ初期値に関わる配線データビット908(図15)を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ900に与えられるため、FPGA700上に回路構成データ900を展開した後でレジスタ設定を行う必要がなくなる。
図14は、図9に示した回路構成データ900のレジスタ部の配線データ907を示す図である。
図15は、図14に示したレジスタ部配線データ907の書き換えの様子を示す図である。
【0052】
次に、ステップS107では、コンバータ703は、上記S106で書き換えたフラッシュメモリ701上の回路構成データ900を、FPGA700からの展開要求に応じて(EndFlagが'1'の状態で)、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。なお、コンバータ703は、FPGA700の書き換えが完了すると、その旨をCPU103に通知する。
【0053】
上記S107又は上記S110の処理が終了すると、ステップS111において、CPU103は、FPGA700に画像データ800のプリンタ画像処理を実行させ、処理を終了する。なお、FPGA700では、プリントジョブの処理(プリンタ画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0054】
なお、本フローチャートには示していないが、上記S102において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、そのままFPGA700にプリンタ画像処理を実行させる(S111)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
なお、図12に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合、並行して図12の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
以上のように、本実施形態によれば、プリントジョブの処理中に、次プリントジョブに関するレジスタ設定を、フラッシュメモリ701内の回路構成データ900に対して行うことができる。そのため、FPGA700上に回路構成データ900を展開した後に、FPGA700上の回路に対してレジスタ設定をする必要がなくなるので、プリントジョブ間の時間を短縮することができる。
【0055】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図12に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図12に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0056】
以下、図16を参照して、本実施形態の効果について説明する。
図16は、本発明の第1実施形態の効果を示す図である。
図16に示すように、従来では、1つ目のプリントジョブの印刷が完了してから、2つ目のプリントジョブ用にFPGAを書き換え、その後、FPGAにレジスタ設定を行って、2つ目のプリントジョブの印刷を開始していた。
【0057】
一方、本実施形態では、1つ目のプリントジョブの印刷中に、2つ目のプリントジョブ用にフラッシュメモリ701上でのレジスタ設定を行うことにより、FPGA700の書き換え終了後すぐに、2つ目のプリントジョブの印刷を開始することができる。よって、本実施形態では、従来に比べて、プリントジョブ間の時間を短縮して、2つ目のプリントジョブの印刷の開始を早めることができる。
なお、本実施形態では、回路構成データ900と、レジスタ設定情報テーブル1100を、ROM108に記憶しているが、それぞれ異なる記憶装置に記憶してもよい。
【0058】
〔第2実施形態〕
上記第1実施形態では、FPGA700上の回路書き換えが必要である場合には、フラッシュメモリ701上でレジスタ設定を行っておいてFPGA700の書き換えを行う構成について説明した。本実施形態では、FPGA700上の回路書き換えが必要である場合には、フラッシュメモリ701上でレジスタ設定するのに要する時間と、FPGA700上でレジスタ設定するために要する時間とを比較する。そして、比較結果に基づいて、より短い時間でレジスタ設定できる方法を選択して用いるように構成する。
【0059】
以下、図17を用いて、本発明における第2実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明する。
図17は、本発明の第2実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0060】
まず、S200〜S202に示す処理は、図12のS100〜S102に示した処理とそれぞれ同一の処理であるため、説明は省略する。
次に、ステップS203〜S206において、セレクタ702は、ChgFlag、EndFlag、後述するFPGA上レジスタ設定時間Tとメモリ上レジスタ設定時間Tsetとの比較結果に基づいて、レジスタ設定情報1101の宛先を制御する。なお、FPGA上レジスタ設定時間T(第2設定時間)とは、FPGA700上の回路に対してレジスタ設定を行うために要する時間を示し、設定するレジスタ規模(設定するレジスタ設定情報1101のデータ量)に基づいて算出される。また、メモリ上レジスタ設定時間Tset(第1設定時間)とは、フラッシュメモリ701内の回路構成データ900を書き換えることによってレジスタ設定を行うために要する時間を示し、予め設定されROM108に記憶されているものとする。
【0061】
まず、ChgFlagが'0'(S203でN)である場合には、S215〜S217に示す処理が実行される。なお、S215〜S217は、図12のS108〜S110に示した処理とそれぞれ同一の処理であるため、説明は省略する。
また、ChgFlagが'1'(S203でY)で且つEndFlagが'0'(S204でN)である場合、S211〜S214に示す処理が実行される。この場合は、FPGA700上の回路書き換えが必要であるが、FPGA700がジョブ処理中であり、直ぐにFPGA700上の回路書き換えができない場合である。そのため、フラッシュメモリ701上でレジスタ設定を行っておき、FPGA700でのジョブ処理終了を待って、FPGA700の書き換えを行う。なお、S211〜S214は、図12のS104〜S107に示した処理とそれぞれ同一の処理であるため、説明は省略する。
【0062】
また、ChgFlagが'1'(S203でY)で且つEndFlagが'1'(S204でY)である場合、S205〜S210に示す処理が実行される。この場合は、FPGA700上の回路書き換えが必要であり、FPGA700がジョブ処理中でないため、直ぐにFPGA700上の回路書き換えが可能な場合である。以下、詳細に説明する。
【0063】
まず、ステップS205において、セレクタ702は、設定するレジスタ設定情報1101に基づいてFPGA上レジスタ設定時間Tを算出し、該算出されたFPGA上レジスタ設定時間Tと予め設定されているメモリ上レジスタ設定時間Tsetとを比較する。
そして、FPGA上レジスタ設定時間Tがメモリ上レジスタ設定時間Tsetより長い場合(T>Tset)(S206でY)、セレクタ702は、RAM107に保持される回路IDとレジスタ設定情報1101をコンバータ703に送信する(S211)。以下、上述したS212〜S214の処理が実行される。
【0064】
一方、FPGA上レジスタ設定時間Tがメモリ上レジスタ設定時間Tsetより短い場合(T≦Tsetの場合)(S206でN)、セレクタ702は、レジスタ設定情報をセレクタ702内部で保持する。
【0065】
次に、ステップS207において、セレクタ702は、RAM107に保持される回路IDに対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく。
次に、ステップS208において、セレクタ702は、上記S207で選択したフラッシュメモリ701上の回路構成データ900を、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。
【0066】
次に、ステップS209において、セレクタ702は、セレクタ702内部で保持しているレジスタ設定情報1101をFPGA700に送信する。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(第2設定処理)(S210)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0067】
上記S210、S214、又は、S217の処理が終了すると、ステップS218において、CPU103は、FPGA700に画像データ800のプリンタ画像処理を実行させ、処理を終了する。なお、FPGA700では、プリントジョブの処理(プリンタ画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0068】
なお、本フローチャートには示していないが、上記S202において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、そのままFPGA700にプリンタ画像処理を実行させる(S218)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
【0069】
なお、図17に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合には、並行して図17の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
【0070】
以上のように本実施形態によれば、プリントジョブの非処理中に、次プリントジョブに関するレジスタ設定の方法を、FPGA上レジスタ設定時間Tとメモリ上レジスタ設定時間Tsetとの比較結果によって切り替えることができる。そのため、より短い時間でレジスタ設定できる方法でレジスタ設定でき、画像処理を開始するまでの時間を最短にすることができる。
【0071】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図17に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図17に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0072】
〔第3実施形態〕
上記第1,2実施形態では、MFP21にプリントジョブが入力された際のレジスタ設定方法について説明したが、本実施形態では、MFP21にスキャンジョブが入力された際のレジスタ設定方法について説明する。
図18は、本発明の第3実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0073】
まず、スキャンジョブが入力されると(S300)、CPU103は、スキャナ部200において原稿をスキャンさせ、該スキャンされた画像データ800がデバイスI/F112を介して入力される。
次に、ステップS301において、CPU103は、ROM108内に格納されている設定情報生成テーブル1000(図10)を用いて、画像データ800内の属性情報802に対応した回路ID1010とレジスタ設定情報テーブルID1020を取得する。さらに、CPU103は、レジスタ設定情報テーブルID1020に対応するROM108内のレジスタ設定情報テーブル1100からレジスタ設定情報1101を読み出してセレクタ702に転送する。なお、上記取得された回路ID1010はRAM107に転送される。
【0074】
次に、ステップS302において、CPU103は、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとを比較する。この比較結果に基づいて、CPU103は、FPGA700上の回路書き換えが必要かどうかを判断し、ChgFlagを生成して、セレクタ702に転送する。なお、CPU103は、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが異なる場合、FPGA700上の回路書き換えが必要だと判断し、ChgFlagとして'1'を生成する。一方、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが等しい場合、CPU103は、FPGA700上の回路書き換えが必要ないと判断し、ChgFlagとして'0'を生成する。
【0075】
なお、セレクタ702は、図13に示したように、CPU103が生成する前述したChgFlagと、FPGA700が生成するEndFlagに基づいて、レジスタ設定情報1101の宛先を制御する(S303,S308)。なお、FPGA700は、ジョブに関する処理が行われているときはEndFlagとして'0'を生成し、ジョブに関する処理が行われていない時はEndFlagとして'1'を生成する。
【0076】
ChgFlagが'0'(S303でN)で且つEndFlagが'1'(S308でY)である場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S309)。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700で処理が行われていない場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S309)。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S310)。これにより、FPGA700による、スキャンジョブの画像処理が可能となる。
【0077】
また、ChgFlagが'0'(S303でN)で且つEndFlagが'0'(S308でN)である場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700でジョブに関する処理が行われている場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。そして、EndFlagが'1'(S308でY)になると、即ち、FPGA700でジョブに関する処理が終了すると、セレクタ702は、内部に保持していたレジスタ設定情報1101をFPGA700に送信する(S309)。FPGA700では、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S310)。これにより、FPGA700による、スキャンジョブの画像処理が可能となる。
【0078】
また、セレクタ702は、ChgFlagが'1'(S303でY)である場合、セレクタ702は、EndFlagの値に関わらず、レジスタ設定情報1101をコンバータ703に送信する(S304)。即ち、FPGA700上の回路書き換えが必要である場合、FPGA700で処理が行われているかいないかに関わらず、セレクタ702は、レジスタ設定情報1101をコンバータ703に送信する(S304)。これにより、コンバータ703では、レジスタ設定情報1101を配線変更情報にデータ変換する。このデータ変換により、レジスタ設定情報1101は、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記S304では、セレクタ702は、RAM107に保持される回路IDもコンバータ703に転送する。
【0079】
次に、ステップS305において、コンバータ703は、上記転送された回路ID1010に対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく(S305)。
【0080】
次に、ステップS306において、コンバータ703は、フラッシュメモリ701内の回路構成データ900に対するレジスタ設定を実行する。即ち、コンバータ703は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)のうち、レジスタ初期値に関わる配線データビット908(図15)を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ900に与えられるため、FPGA700上に回路構成データ900を展開した後でレジスタ設定を行う必要がなくなる。
【0081】
次に、ステップS307において、コンバータ703は、上記S106で書き換えたフラッシュメモリ701上の回路構成データ900を読み出して、FPGA700からの展開要求に応じて(EndFlagが'1'の状態で)、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。なお、コンバータ703は、FPGA700の書き換えが完了すると、その旨をCPU103に通知する。
【0082】
上記S307又は上記S310の処理が終了すると、ステップS311において、CPU103は、FPGA700に画像データ800のスキャン画像処理を実行させ、処理を終了する。なお、FPGA700では、スキャンジョブの処理(スキャン画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0083】
なお、本フローチャートには示していないが、上記S302において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、FPGA700にスキャン画像処理を実行させる(S311)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
【0084】
なお、図18に示したフローチャートの処理は、スキャンジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のスキャンジョブが入力された場合、並行して図18の処理が実行され、前のスキャンジョブの画像処理中に、次のスキャンジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
【0085】
以上のように、本実施形態によれば、スキャンジョブの処理中に、次スキャンジョブに関するレジスタ設定を、フラッシュメモリ701内の回路構成データ900に対して行うことができる。そのため、FPGA700上に回路構成データ900を展開した後に、FPGA700上の回路に対してレジスタ設定をする必要がなくなるので、スキャンジョブ間の時間を短縮することができる。
なお、本実施形態では、カラーページとモノクロページが混在するスキャンジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図18に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図18に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0086】
なお、第2実施形態で示したプリントジョブに対する処理(図17)を、スキャンジョブに対して適用するようにしてもよい。即ち、スキャンジョブが入力された際にも、FPGA700上の回路書き換えが必要であり、FPGAがジョブ処理中でない場合には、スキャンジョブに関するレジスタ設定の方法を、上記TとTsetとの比較結果によって切り替えるように構成する。T>Tsetの場合には、フラッシュメモリ701上でレジスタ設定を行っておいてFPGA700の書き換えを行う。一方、T≦Tsetの場合には、FPGA700の書き換え後にFPGA700に対してレジスタ設定を行う。
このような構成を設けることにより、より短い時間で設定できる方法でレジスタ設定でき、スキャンジョブの画像処理を開始するまでの時間を最短にすることができる。
【0087】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0088】
なお、上記各実施形態では、ROM108に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択してフラッシュメモリ701に記憶させ、フラッシュメモリ701上で一部を書き換えてから、FPGA700に展開する構成を示した。しかし、フラッシュメモリ701に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択して、フラッシュメモリ701上で一部を書き換えてから、FPGA700に展開するように構成してもよい。
【0089】
以上説明したように、処理間でFPGAを書き換える場合でも、処理中に次の処理に対するレジスタ設定をフラッシュメモリ701上で行うことができるため、処理間に長い時間が必要ない。よって、回路の再構成に伴うパフォーマンスの低下を抑えることができる。
【0090】
本実施形態における図12,図17,図18に示す機能が外部からインストールされるプログラムによって、コンピュータにより遂行されていてもよい。そして、その場合、CD-ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0091】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0092】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0093】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0094】
21 MFP
700 FPGA
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及び、プログラムに関する。
【背景技術】
【0002】
プログラマブルロジックデバイスは、回路を構成する素子や配線に関する回路構成データを外部記憶装置(ROM、フラッシュメモリ等)に保持している。そして、プログラマブルロジックデバイスは、必要に応じて回路構成データを読み込み、読み込んだ回路構成データに基づいて内蔵する複数の論理エレメント間の接続状態を変更することによって、任意の論理回路を実現することができる集積回路である。
【0003】
代表的なプログラマブルロジックデバイスとして、FPGA(Field Programmable Gate Array)がある。
近年、画像情報処理の高度化に伴い、画像の種類や状況に応じた処理のニーズが増えている。そのような場合、FPGAを処理装置に実装し、処理装置ごとの要求仕様に最適化した回路構成データを作成することで、前述したニーズを満たすことができると考えられる。
【0004】
また、一つの処理装置で状況に応じて複数のハードウェア機能を切り替えたい場合、複数の回路構成データを外部メモリに格納しておき、処理に応じて回路構成データを選択し読み出す技術が提案されている(特許文献1)。
特許文献1の技術を用いて画像処理装置のハードウェア機能を切り替える場合、回路構成データを読み込み、FPGA上に構成された回路に対してレジスタ設定を行い、その後、画像処理を開始することとなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−179358号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の技術を用いて画像処理装置のハードウェア機能を処理間で切り替える場合、切り替えに要する時間は、回路構成データを読み込みFPGA上に回路構成データを展開する時間と、構成された回路に対するレジスタ設定にかかる時間(レジスタ設定時間)の合計時間である。このため、処理間に長い時間を要してしまい、処理装置全体のパフォーマンスが低下してしまうという課題があった。
【0007】
なお、レジスタ設定時間を削減するため、特許文献1の技術を利用し、必要なレジスタ設定値を初期値とした回路構成データを、必要なレジスタ設定値全てに対して用意するという方法が考えられる。しかし、この方法では、大量の回路構成データを記憶しておく必要が生じ、必要なメモリ容量が大きくなってしまうため好ましくない。
【0008】
以上のように、プログラマブルロジックデバイスを有する画像処理装置では、各種の問題点があった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【0009】
本発明は、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第1記憶手段と、前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、前記選択手段により選択された回路構成データを前記第1記憶手段から取得して記憶する第2記憶手段と、前記第2記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、前記入力手段により入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、前記生成手段により生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、回路構成データに基づいて回路を再構成可能な再構成回路を備える画像処理装置において、大量の回路構成データを記憶しておくことなく、回路の再構成に伴うパフォーマンス低下を抑えることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態を示すネットワークシステムの構成図である。
【図2】MFP21の構成の一例を示すブロック図である。
【図3】画像入力部であるスキャナ200の概観を示す概観図である。
【図4】画像出力部であるプリンタ300の概観を示す概観図である。
【図5】操作部400の構成の一例を示す平面図である。
【図6】スキャナ画像処理部の構成の一例を示す図である。
【図7】プリンタ画像処理部の構成の一例を示す図である。
【図8】本実施形態における画像データの構成を説明するデータ構成図である。
【図9】本実施形態の回路構成データを説明する図である。
【図10】本実施形態の設定情報生成テーブルを説明する図である。
【図11】設定情報生成テーブルと各レジスタ設定情報テーブルとの関係を示す図である。
【図12】第1実施形態における処理を示すフローチャートである。
【図13】本発明におけるレジスタ設定方法を説明する図である。
【図14】回路構成データ900のレジスタ部の配線データ907を示す図である。
【図15】レジスタ部配線データ907の書き換えの様子を示す図である。
【図16】第1実施形態の効果を示す図である。
【図17】第2実施形態における処理を示すフローチャートである。
【図18】第3実施形態における処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
〔第1実施形態〕
図1は、本発明の一実施形態を示す画像形成装置を適用可能なネットワークシステムの一例を示すシステム構成図である。
図1に示すように、本実施形態のネットワークシステムは、PC10、LAN11、MFP(複合機)21で構成されている。
PC10は、パーソナルコンピュータ、ワークステーションなどの情報処理端末機であり、様々なアプリケーションを動作させる。また、PC10は、後述のLAN11などのネットワーク回線を介してプリンタやMFP21などに対して印刷命令を発行し、印刷データを送信することができる。
【0013】
LAN11は、情報処理装置を接続している全世界のネットワークを相互に接続した巨大なコンピュータネットワークであるインターネットの一部分である。LAN11には、PC10とMFP21と、ここでは図示しないLAN11上の他のクライアントPC、サーバ等が接続されており、各々ネットワークI/Fを介しデータを送受信することにより通信を行うことができる。なお、図示しないがLAN11は、ルータなどを介して世界中の情報機器と通信可能である情報網のインターネットに接続されている。
MFP21は、原稿スキャン機能、プリント機能、BOX機能を登載した複合機能周辺装置(MFP:Multi Functional Peripheral)又はデジタル複合機と呼ばれるデバイスであり、本発明の画像処理装置に対応する。
【0014】
次に、図1に示したMFP21の構成の一例を図2に示す。
図2は、図1に示したMFP21の構成の一例を示すブロック図である。
図2において、100はコントローラユニットである。コントローラユニット100は、画像入力装置であるスキャナ200(図3)や、画像出力装置であるプリンタ300(図4)と接続し、一方ではLAN11、公衆回線12等のネットワークと接続することで、画像情報やデバイス情報の入出力を行う。また、コントローラユニット100は、操作部400(図5)と接続する。操作部400は、コントローラユニット100からの情報表示を行うとともにユーザからの指示をコントローラユニット100に伝える。
【0015】
コントローラユニット100において、103はCPUである。CPU103は、ROM108に記録されるプログラムを読み出して実行することにより、デジタル複合機(MFP21)全体を制御するコントローラとして機能する。ROM108(第1記憶部,第3記憶部)は、ブートROMとして利用され、MFP21のブートプログラム、FPGA700に展開するための複数の回路構成データ900(図9)、設定情報生成テーブル1000(図10)、レジスタ設定情報テーブル1100(図11)等が記憶されている。RAM107は、CPU103が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリとしても利用される。
【0016】
HDD109は、ハードディスクドライブで、システムソフトウェア、画像データ、アドレス帳などの個人データを格納する。これらのデータは、後述の画像圧縮部113で符号化されて格納され、使用時には復元される。なお、HDDを具備していない機器は、これらのデータを、他の記憶媒体(フラッシュメモリなど)に記憶するものとする。
【0017】
操作部I/F104は、操作部400とのインターフェース部で、操作部400に表示する画像データを操作部400に対して出力する。また、操作部I/F104は、操作部400からユーザが入力した情報をCPU103に伝える役割をする。
ネットワークI/F105は、LAN11に接続し、情報の入出力を行う。モデム106は、公衆回線12に接続し、データ送受信を行うための変調復調処理を行う。
以上のデバイス103〜109、及び、後述するSelector702、Converter703がシステムバス101上に配置される。
【0018】
イメージバスI/F110は、システムバス101と画像データを高速で転送するイメージバス102を接続し、データ構造を変換するバスブリッジである。
イメージバス102は、PCIバス又はIEEE1394などの高速バスで構成される。イメージバス102上には以下のデバイスが配置される。
PDLアクセラレータ111は、PDLコードから画像データ800(図8)を生成する。デバイスI/F部112は、画像入出力デバイスであるスキャナ200やプリンタ300とコントローラ100を接続し、画像データの同期系/非同期系の変換を行う。
【0019】
画像圧縮部113は、多値画像データはJPEG、2値画像データはJBIG、MMR、MHの圧縮伸張処理を行う。なお、画像圧縮部113は、圧縮、或いは伸張する画像データをHDD109から読み出し、圧縮処理、或いは伸張処理した後に、再びHDD109に格納する。
【0020】
FPGA700は、プログラマブルロジックデバイスとしてのFPGA(Field Programmable Gate Array)である。FPGA700は、画像処理アルゴリズムを有する回路構成データを展開し、必要な画像処理アルゴリズムをハードウェアとして構成する機能を備える。本実施形態では、FPGA700に回路構成データを展開することによりスキャナ画像処理部500(図6)やプリンタ画像処理部600(図7)が構成される。即ち、FPGA700は、フラッシュメモリ701に記憶された回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行するものである。なお、FPGA700は、1つのジョブを処理し終えるとEndFlag(詳細は後述する)を生成する。
【0021】
フラッシュメモリ(回路構成データメモリ(第2記憶部))701は、FPGA700に展開するために、ROM108から選択取得された回路構成データ900(図9)を記憶する。なお、本実施形態における回路構成データ900は、スキャナ画像処理部500やプリンタ画像処理部600の各部を構成するための回路構成データに相当する。
【0022】
セレクタ(Selector)702は、CPU103において生成されるChgFlagに基づいて、CPU103から送信されるレジスタ設定情報の宛先をFPGA700又はConverter703のいずれかに制御する(詳細は後述する)。また、セレクタ702は、FPGA700において生成されるEndFlagに基づいて、レジスタ設定情報をFPGA700に送信するタイミングを制御する(詳細は後述する)。
【0023】
コンバータ(Converter)703は、セレクタ702から受け取ったレジスタ設定情報を、回路構成データ変更情報に変換する。なお、図2では、セレクタ702とコンバータ703をハードウェアとして実装する構成を示しているが、セレクタ702とコンバータ703を実装する手段は、ソフトウェア、ハードウェアのどちらでも構わない。即ち、CPU103がROM108に記録されるプログラムを読み出して実行することにより、セレクタ702とコンバータ703を実現する構成であってもよい。
【0024】
図3は、図2に示した画像入力部であるスキャナ200の概観を示す概観図である。
画像入力デバイスであるスキャナ200は、原稿となる紙上の画像を照明し、図示しないCCDラインセンサを走査することで、原稿を光学的に読み取り、ラスターイメージデータとして電気信号に変換する。以下、スキャナ200の動作について説明する。
【0025】
ユーザが原稿用紙を原稿フィーダ201のトレイ202にセットし、操作部400から読み取り起動指示することにより、コントローラ100のCPU103がスキャナ200に指示を与える。この指示に応じて、スキャナ200では、フィーダ201が原稿用紙を一枚ずつフィードし、図示しないCCDラインセンサが原稿画像の読み取る原稿読取動作を行う。
【0026】
図4は、図2に示した画像出力部であるプリンタ300の概観を示す概観図である。
画像出力デバイスであるプリンタ部300は、ラスターイメージデータを用紙上の画像に変換する部分である。その方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。以下、プリンタ300の動作について説明する。
【0027】
プリント動作の起動は、コントローラ100のCPU103からの指示によって開始する。プリンタ部300は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット302,303,304,305が装着される。また、排紙トレイ306は印字し終わった用紙を受けるものである。
また、ここでは図示しないが、コントローラ100のCPU103からの指示により、出力順序をソートしたり、両面印刷したり、拡大縮小したり、出力した用紙をステイプル装置によって製本したりすることも可能である。
【0028】
図5は、図2に示した操作部400の構成の一例を示す平面図である。
図5において、401は液晶操作パネルである。液晶操作パネル401は、液晶にタッチパネルを組み合わせたものであり、設定内容の表示、ソフトキーの表示等がなされるものである。
スタートキー402は、コピー動作等を開始指示するためのハードキーであり、内部に緑色および赤色のLEDが組み込まれており、スタート可能のときに緑色、スタート不可のときに赤色のLEDが点灯する。
ストップキー403は、動作を停止させるときに使用するハードキーである。ハードキー群404には、テンキー、クリアキー、リセットキー、ガイドキー、ユーザモードキーが設けられている。
【0029】
以下、図6,図7を参照して、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能について説明する。
図6は、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能の一つであるスキャナ画像処理部の構成の一例を示す図である。
図6において、500はスキャナ画像処理部であり、FPGA700が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスI/Fコントローラ(画像バスI/Fコントローラ)501は、イメージバス102と接続し、そのバスアクセスシーケンスを制御する働きと、スキャナ画像処理部500内の各デバイスの制御及びタイミングを発生させる。像域分離処理部502は、入力画像から文字部を検出することにより、像域を判定し、その後の画像処理に利用する像域信号を生成する。
【0030】
テーブル処理部503は、読み取った輝度データである画像データを濃度データに変換するためのテーブル変換を行う。フィルタ処理部504は、エッジ強調などの目的に従ったデジタル空間フィルタでコンボリューション演算を行う。
編集部505は、例えば入力画像データからマーカーペンで囲まれた閉領域を認識して、その閉領域内の画像データに対して、影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。なお、処理が終了した画像データは、再び、画像I/Fバスコントローラ501を介して、イメージバス102上に転送される。
以上のようなスキャナ画像処理部500の機能を、FPGA700が回路構成データを展開してハードウェアとして構成する。
【0031】
図7は、図2に示したFPGA700が回路構成データを展開してハードウェアとして構成する機能の一つであるプリンタ画像処理部の構成の一例を示す図である。
図7において、600はプリンタ画像処理部であり、FPGA700が回路構成データを展開してハードウェアとして構成する機能に対応する。
イメージバスI/Fコントローラ(画像バスI/Fコントローラ)601は、イメージバス102と接続し、そのバスアクセスシーケンスを制御する働きと、プリンタ画像処理部600内の各デバイスの制御及びタイミングを発生させる。下地除去処理部602は、背景に薄い色がある原稿を読み取った画像データ等が送られてきた場合に背景色を除去する。
【0032】
色変換処理部603は、プリンタの出力特性に合わせた色変換を行う。解像度変換部604は、LAN11あるいは公衆回線12から受信した画像データを、プリンタ300の解像度に変換するための解像度変換を行う。不図示のスクリーン処理部では、画像データに対して2値化処理を行う。スムージング処理部605は、解像度変換後の画像データのジャギー(斜め線等の白黒境界部に現れる画像のがさつき)を滑らかにする処理を行う。
以上のようなプリンタ画像処理部600の機能を、FPGA700が回路構成データを展開してハードウェアとして構成する。
【0033】
次に、図8を用いて本実施形態における画像データの構成を説明する。
図8は、本実施形態における画像データの構成を説明するデータ構成図である。
図8において、800は画像データである。画像データ800は、ヘッダ801、属性情報802、複数のピクセルデータ803、及び、フッタ804から構成される。
ヘッダ801は、プリントジョブIDやページ数、画像データ800の長さや幅に関する情報や、画像データ800の始点を示すために用いるスタートフラグを含む。属性情報802は、色、解像度や印刷モードといった画像の印刷に関わる情報(画像処理内容)を含む。
ピクセルデータ803は、画素ごとの画像データを含む。フッタ804は、画像データ800の終点を示すために用いるエンドフラグを含む。
【0034】
次に、図9を参照して、ROM108から選択されてフラッシュメモリ701に格納され、FPGA700に展開される回路構成データの構成を説明する。
図9は、本実施形態の回路構成データを説明する図である。
図9において、900は回路構成データであり、ROM108から選択されてフラッシュメモリ701に格納され、FPGA700に展開されるものである。なお、本実施形態では、回路構成データ900のデータ幅をTビットとする。
【0035】
図9に示すように、回路構成データ900は、ヘッダ901、フッタ902、及び、複数の配線データ903から構成される。
ヘッダ901は、回路構成データ900の始点を示すために用いるスタートフラグや、回路構成データ900の回路ID(回路識別情報)等を有する。なお、回路IDは、回路構成データ900を判別するための識別情報であり、後述する図10に示す回路ID1010に対応する。フッタ902は、回路構成データ900の終点を示すために用いるエンドフラグ(EndFlag)と、FPGAを起動させるために用いる起動フラグを有する。
【0036】
配線データ903は、スタートビット904、エンドビット及びエラーチェックビット905、配線データビット906から構成される。
スタートビット904(データ幅1ビット)は、配線データの先頭に付加され、配線データの始まりを示すために用いられる。エンドビット及びエラーチェックビット905(データ幅nビット)は、配線データの末尾に付加され、配線データの正当性のチェック及び配線データの終わりを示すために用いられる。配線データビット906(データ幅mビット)は、FPGAの論理エレメント間の接続状態を表すために用いられる。
【0037】
次に、図10を用いて本実施形態の設定情報生成テーブルを説明する。
図10は、本実施形態の設定情報生成テーブルを説明する図である。
図10において、1000は設定情報生成テーブルであり、コントローラ100のROM108内に格納されている。設定情報生成テーブル1000は、ユーザが設定した属性情報802(色、解像度、印刷モード、明度、彩度等の画像処理内容)に応じた回路ID1010と、レジスタ設定情報テーブルID(レジスタ設定情報テーブル識別情報)1020を対応付けるテーブルである。
【0038】
回路ID1010は、FPGA700上に展開する回路構成データ900を判別するための識別情報であり、図9に示したヘッダ901内の回路IDに対応する。
レジスタ設定情報テーブルID1020は、図11に示すように、ROM108内に格納されているレジスタ設定情報テーブル1100を判別するための識別情報である。
【0039】
図11は、図10に示した設定情報生成テーブル1000とROM108内に格納されている各レジスタ設定情報テーブル1100との関係を示す図である。
図11に示すように、ROM108内に格納されている各レジスタ設定情報テーブル1100には、レジスタ設定情報テーブルID1020と、レジスタ設定情報1101が格納されている。
【0040】
レジスタ設定情報1101は、画像処理演算の係数や閾値の設定に必要なレジスタ値の設定に用いられる情報であり、アドレス(Address)と、データ(Data)から構成される(詳細は後述する)。即ち、ROM108には、属性情報(画像処理内容)ごとに該属性情報に応じたレジスタ設定情報1101が記憶されている。
【0041】
まず、CPU103は、印刷ジョブに設定された属性情報802(色、解像度、印刷モード、明度、彩度等)に応じたレジスタ設定情報テーブルID1020を、設定情報生成テーブル1000から取得する。そして、CPU103は、前記取得したレジスタ設定情報テーブルID1020に対応するレジスタ設定情報テーブル1100からレジスタ設定情報1101を取得する。ここで取得したレジスタ設定情報1101を用いて、回路構成データ900の配線データ903を書き換える。
【0042】
次に、図12〜図15を用いて、本発明における第1実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明する。
図12は、本発明の第1実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0043】
図13は、本発明におけるレジスタ設定方法を説明する図である。
まず、プリントジョブがPC10において生成され、LAN11を経由し、ネットワークI/F105を介してMFP21に入力されると(S100)、入力されたプリントジョブはPDLアクセラレータ111に入力され、画像データ800が生成される。
【0044】
次に、ステップS101において、CPU103は、ROM108内に格納されている設定情報生成テーブル1000(図10)を用いて、画像データ800内の属性情報802に対応した回路ID1010とレジスタ設定情報テーブルID1020を取得する。さらに、CPU103は、レジスタ設定情報テーブルID1020に対応するROM108内のレジスタ設定情報テーブル1100からレジスタ設定情報1101を読み出してセレクタ702に転送する。なお、上記取得された回路ID1010はRAM107に転送される。
【0045】
次に、ステップS102において、CPU103は、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとを比較する。この比較結果に基づいて、CPU103は、FPGA700上の回路書き換えが必要かどうかを判断し、ChgFlagを生成して、セレクタ702に転送する。なお、CPU103は、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが異なる場合、FPGA700上の回路書き換えが必要だと判断し、ChgFlagとして'1'を生成する。一方、上記S101で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが等しい場合、CPU103は、FPGA700上の回路書き換えが必要ないと判断し、ChgFlagとして'0'を生成する。
【0046】
なお、セレクタ702は、図13に示すように、CPU103が生成する前述したChgFlagと、FPGA700が生成するEndFlagに基づいて、レジスタ設定情報1101の宛先を制御する(S103,S108)。なお、FPGA700は、ジョブに関する処理が行われているときはEndFlagとして'0'を生成し、ジョブに関する処理が行われていない時はEndFlagとして'1'を生成する。即ち、EndFlagは、FPGA700が画像処理中であるか否かを判定するための状態判定信号として使用される。
【0047】
ChgFlagが'0'(S103でN)で且つEndFlagが'1'(S108でY)である場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S109)。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700で処理が行われていない場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S109)。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S110)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0048】
また、ChgFlagが'0'(S103でN)で且つEndFlagが'0'(S108でN)である場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700でジョブに関する処理が行われている場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。そして、EndFlagが'1'(S108でY)になると、即ち、FPGA700でジョブに関する処理が終了すると、セレクタ702は、内部に保持していたレジスタ設定情報1101をFPGA700に送信する(S109)。FPGA700では、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S110)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0049】
また、セレクタ702は、ChgFlagが'1'(S103でY)である場合、セレクタ702は、EndFlagの値に関わらず、レジスタ設定情報1101をコンバータ703に送信する(S104)。即ち、FPGA700上の回路書き換えが必要である場合、FPGA700で処理が行われているかいないかに関わらず、セレクタ702は、レジスタ設定情報1101をコンバータ703に送信する(S104)。これにより、コンバータ703では、レジスタ設定情報1101を配線変更情報にデータ変換できる。このデータ変換により、レジスタ設定情報1101は、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記S104では、セレクタ702は、RAM107に保持される回路IDもコンバータ703に転送する。
【0050】
次に、ステップS105において、コンバータ703は、上記転送された回路ID1010に対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく(S105)。
【0051】
次に、ステップS106において、コンバータ703は、レジスタ設定情報1101を配線変更情報にデータ変換し、フラッシュメモリ701内の回路構成データ900に対するレジスタ設定を実行する(第1設定処理)。即ち、コンバータ703は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)のうち、レジスタ初期値に関わる配線データビット908(図15)を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ900に与えられるため、FPGA700上に回路構成データ900を展開した後でレジスタ設定を行う必要がなくなる。
図14は、図9に示した回路構成データ900のレジスタ部の配線データ907を示す図である。
図15は、図14に示したレジスタ部配線データ907の書き換えの様子を示す図である。
【0052】
次に、ステップS107では、コンバータ703は、上記S106で書き換えたフラッシュメモリ701上の回路構成データ900を、FPGA700からの展開要求に応じて(EndFlagが'1'の状態で)、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。なお、コンバータ703は、FPGA700の書き換えが完了すると、その旨をCPU103に通知する。
【0053】
上記S107又は上記S110の処理が終了すると、ステップS111において、CPU103は、FPGA700に画像データ800のプリンタ画像処理を実行させ、処理を終了する。なお、FPGA700では、プリントジョブの処理(プリンタ画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0054】
なお、本フローチャートには示していないが、上記S102において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、そのままFPGA700にプリンタ画像処理を実行させる(S111)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
なお、図12に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合、並行して図12の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
以上のように、本実施形態によれば、プリントジョブの処理中に、次プリントジョブに関するレジスタ設定を、フラッシュメモリ701内の回路構成データ900に対して行うことができる。そのため、FPGA700上に回路構成データ900を展開した後に、FPGA700上の回路に対してレジスタ設定をする必要がなくなるので、プリントジョブ間の時間を短縮することができる。
【0055】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図12に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図12に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0056】
以下、図16を参照して、本実施形態の効果について説明する。
図16は、本発明の第1実施形態の効果を示す図である。
図16に示すように、従来では、1つ目のプリントジョブの印刷が完了してから、2つ目のプリントジョブ用にFPGAを書き換え、その後、FPGAにレジスタ設定を行って、2つ目のプリントジョブの印刷を開始していた。
【0057】
一方、本実施形態では、1つ目のプリントジョブの印刷中に、2つ目のプリントジョブ用にフラッシュメモリ701上でのレジスタ設定を行うことにより、FPGA700の書き換え終了後すぐに、2つ目のプリントジョブの印刷を開始することができる。よって、本実施形態では、従来に比べて、プリントジョブ間の時間を短縮して、2つ目のプリントジョブの印刷の開始を早めることができる。
なお、本実施形態では、回路構成データ900と、レジスタ設定情報テーブル1100を、ROM108に記憶しているが、それぞれ異なる記憶装置に記憶してもよい。
【0058】
〔第2実施形態〕
上記第1実施形態では、FPGA700上の回路書き換えが必要である場合には、フラッシュメモリ701上でレジスタ設定を行っておいてFPGA700の書き換えを行う構成について説明した。本実施形態では、FPGA700上の回路書き換えが必要である場合には、フラッシュメモリ701上でレジスタ設定するのに要する時間と、FPGA700上でレジスタ設定するために要する時間とを比較する。そして、比較結果に基づいて、より短い時間でレジスタ設定できる方法を選択して用いるように構成する。
【0059】
以下、図17を用いて、本発明における第2実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明する。
図17は、本発明の第2実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0060】
まず、S200〜S202に示す処理は、図12のS100〜S102に示した処理とそれぞれ同一の処理であるため、説明は省略する。
次に、ステップS203〜S206において、セレクタ702は、ChgFlag、EndFlag、後述するFPGA上レジスタ設定時間Tとメモリ上レジスタ設定時間Tsetとの比較結果に基づいて、レジスタ設定情報1101の宛先を制御する。なお、FPGA上レジスタ設定時間T(第2設定時間)とは、FPGA700上の回路に対してレジスタ設定を行うために要する時間を示し、設定するレジスタ規模(設定するレジスタ設定情報1101のデータ量)に基づいて算出される。また、メモリ上レジスタ設定時間Tset(第1設定時間)とは、フラッシュメモリ701内の回路構成データ900を書き換えることによってレジスタ設定を行うために要する時間を示し、予め設定されROM108に記憶されているものとする。
【0061】
まず、ChgFlagが'0'(S203でN)である場合には、S215〜S217に示す処理が実行される。なお、S215〜S217は、図12のS108〜S110に示した処理とそれぞれ同一の処理であるため、説明は省略する。
また、ChgFlagが'1'(S203でY)で且つEndFlagが'0'(S204でN)である場合、S211〜S214に示す処理が実行される。この場合は、FPGA700上の回路書き換えが必要であるが、FPGA700がジョブ処理中であり、直ぐにFPGA700上の回路書き換えができない場合である。そのため、フラッシュメモリ701上でレジスタ設定を行っておき、FPGA700でのジョブ処理終了を待って、FPGA700の書き換えを行う。なお、S211〜S214は、図12のS104〜S107に示した処理とそれぞれ同一の処理であるため、説明は省略する。
【0062】
また、ChgFlagが'1'(S203でY)で且つEndFlagが'1'(S204でY)である場合、S205〜S210に示す処理が実行される。この場合は、FPGA700上の回路書き換えが必要であり、FPGA700がジョブ処理中でないため、直ぐにFPGA700上の回路書き換えが可能な場合である。以下、詳細に説明する。
【0063】
まず、ステップS205において、セレクタ702は、設定するレジスタ設定情報1101に基づいてFPGA上レジスタ設定時間Tを算出し、該算出されたFPGA上レジスタ設定時間Tと予め設定されているメモリ上レジスタ設定時間Tsetとを比較する。
そして、FPGA上レジスタ設定時間Tがメモリ上レジスタ設定時間Tsetより長い場合(T>Tset)(S206でY)、セレクタ702は、RAM107に保持される回路IDとレジスタ設定情報1101をコンバータ703に送信する(S211)。以下、上述したS212〜S214の処理が実行される。
【0064】
一方、FPGA上レジスタ設定時間Tがメモリ上レジスタ設定時間Tsetより短い場合(T≦Tsetの場合)(S206でN)、セレクタ702は、レジスタ設定情報をセレクタ702内部で保持する。
【0065】
次に、ステップS207において、セレクタ702は、RAM107に保持される回路IDに対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく。
次に、ステップS208において、セレクタ702は、上記S207で選択したフラッシュメモリ701上の回路構成データ900を、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。
【0066】
次に、ステップS209において、セレクタ702は、セレクタ702内部で保持しているレジスタ設定情報1101をFPGA700に送信する。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(第2設定処理)(S210)。これにより、FPGA700による、プリンタジョブの画像処理が可能となる。
【0067】
上記S210、S214、又は、S217の処理が終了すると、ステップS218において、CPU103は、FPGA700に画像データ800のプリンタ画像処理を実行させ、処理を終了する。なお、FPGA700では、プリントジョブの処理(プリンタ画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0068】
なお、本フローチャートには示していないが、上記S202において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、そのままFPGA700にプリンタ画像処理を実行させる(S218)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
【0069】
なお、図17に示したフローチャートの処理は、プリントジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のプリントジョブが入力された場合には、並行して図17の処理が実行され、前のプリントジョブの画像処理中に、次のプリントジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
【0070】
以上のように本実施形態によれば、プリントジョブの非処理中に、次プリントジョブに関するレジスタ設定の方法を、FPGA上レジスタ設定時間Tとメモリ上レジスタ設定時間Tsetとの比較結果によって切り替えることができる。そのため、より短い時間でレジスタ設定できる方法でレジスタ設定でき、画像処理を開始するまでの時間を最短にすることができる。
【0071】
なお、本実施形態では、カラーページとモノクロページが混在するプリントジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図17に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図17に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0072】
〔第3実施形態〕
上記第1,2実施形態では、MFP21にプリントジョブが入力された際のレジスタ設定方法について説明したが、本実施形態では、MFP21にスキャンジョブが入力された際のレジスタ設定方法について説明する。
図18は、本発明の第3実施形態におけるFPGA700への回路構成データ900の展開とレジスタ設定の方法を説明するフローチャートである。なお、このフローチャートの処理は、コントローラユニット100のCPU103がROM108に記録されるプログラムを読み出して実行することによって、コントローラユニット100により実現される。
【0073】
まず、スキャンジョブが入力されると(S300)、CPU103は、スキャナ部200において原稿をスキャンさせ、該スキャンされた画像データ800がデバイスI/F112を介して入力される。
次に、ステップS301において、CPU103は、ROM108内に格納されている設定情報生成テーブル1000(図10)を用いて、画像データ800内の属性情報802に対応した回路ID1010とレジスタ設定情報テーブルID1020を取得する。さらに、CPU103は、レジスタ設定情報テーブルID1020に対応するROM108内のレジスタ設定情報テーブル1100からレジスタ設定情報1101を読み出してセレクタ702に転送する。なお、上記取得された回路ID1010はRAM107に転送される。
【0074】
次に、ステップS302において、CPU103は、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとを比較する。この比較結果に基づいて、CPU103は、FPGA700上の回路書き換えが必要かどうかを判断し、ChgFlagを生成して、セレクタ702に転送する。なお、CPU103は、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが異なる場合、FPGA700上の回路書き換えが必要だと判断し、ChgFlagとして'1'を生成する。一方、上記S301で読み出した回路ID1010と、FPGA700上に既に展開されている回路構成データ900内の回路IDとが等しい場合、CPU103は、FPGA700上の回路書き換えが必要ないと判断し、ChgFlagとして'0'を生成する。
【0075】
なお、セレクタ702は、図13に示したように、CPU103が生成する前述したChgFlagと、FPGA700が生成するEndFlagに基づいて、レジスタ設定情報1101の宛先を制御する(S303,S308)。なお、FPGA700は、ジョブに関する処理が行われているときはEndFlagとして'0'を生成し、ジョブに関する処理が行われていない時はEndFlagとして'1'を生成する。
【0076】
ChgFlagが'0'(S303でN)で且つEndFlagが'1'(S308でY)である場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S309)。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700で処理が行われていない場合、セレクタ702は、レジスタ設定情報1101をFPGA700に送信する(S309)。FPGA700は、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S310)。これにより、FPGA700による、スキャンジョブの画像処理が可能となる。
【0077】
また、ChgFlagが'0'(S303でN)で且つEndFlagが'0'(S308でN)である場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。即ち、FPGA700上の回路書き換えが必要なく、且つ、FPGA700でジョブに関する処理が行われている場合、セレクタ702は、レジスタ設定情報1101をセレクタ702内部で保持する。そして、EndFlagが'1'(S308でY)になると、即ち、FPGA700でジョブに関する処理が終了すると、セレクタ702は、内部に保持していたレジスタ設定情報1101をFPGA700に送信する(S309)。FPGA700では、このレジスタ設定情報1101に基づいて、FPGA700上の回路に対してレジスタ設定を行う(S310)。これにより、FPGA700による、スキャンジョブの画像処理が可能となる。
【0078】
また、セレクタ702は、ChgFlagが'1'(S303でY)である場合、セレクタ702は、EndFlagの値に関わらず、レジスタ設定情報1101をコンバータ703に送信する(S304)。即ち、FPGA700上の回路書き換えが必要である場合、FPGA700で処理が行われているかいないかに関わらず、セレクタ702は、レジスタ設定情報1101をコンバータ703に送信する(S304)。これにより、コンバータ703では、レジスタ設定情報1101を配線変更情報にデータ変換する。このデータ変換により、レジスタ設定情報1101は、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)を書き換えることによってレジスタ設定を行うためのデータ形式である配線変更情報に変換される。なお、上記S304では、セレクタ702は、RAM107に保持される回路IDもコンバータ703に転送する。
【0079】
次に、ステップS305において、コンバータ703は、上記転送された回路ID1010に対応する回路構成データ900を書き換え対象として選択して、ROM108から読出してフラッシュメモリ701に格納しておく(S305)。
【0080】
次に、ステップS306において、コンバータ703は、フラッシュメモリ701内の回路構成データ900に対するレジスタ設定を実行する。即ち、コンバータ703は、上記データ変換した回路構成データ変更情報により、フラッシュメモリ701内の回路構成データ900のレジスタ部の配線データ907(図14)のうち、レジスタ初期値に関わる配線データビット908(図15)を書き換える。
これによって、所望のレジスタ設定値が初期値として回路構成データ900に与えられるため、FPGA700上に回路構成データ900を展開した後でレジスタ設定を行う必要がなくなる。
【0081】
次に、ステップS307において、コンバータ703は、上記S106で書き換えたフラッシュメモリ701上の回路構成データ900を読み出して、FPGA700からの展開要求に応じて(EndFlagが'1'の状態で)、FPGA700上に展開する。これにより、FPGA700の書き換え(再構成処理)が行われる。なお、コンバータ703は、FPGA700の書き換えが完了すると、その旨をCPU103に通知する。
【0082】
上記S307又は上記S310の処理が終了すると、ステップS311において、CPU103は、FPGA700に画像データ800のスキャン画像処理を実行させ、処理を終了する。なお、FPGA700では、スキャンジョブの処理(スキャン画像処理)が終了すると、処理終了フラグであるEndFlagを'1'にする。
【0083】
なお、本フローチャートには示していないが、上記S302において、FPGA700上の回路書き換えが必要なく、且つ、レジスタ設定の変更もないと判断した場合、CPU103は、FPGA700にスキャン画像処理を実行させる(S311)。即ち、この場合、FPGA700上の回路書き換えもレジスタ設定の変更も行われない。
【0084】
なお、図18に示したフローチャートの処理は、スキャンジョブが入力されるたびに、実行されるものである。よって、画像処理が終了する前に次のスキャンジョブが入力された場合、並行して図18の処理が実行され、前のスキャンジョブの画像処理中に、次のスキャンジョブに対応する回路構成データのレジスト設定がフラッシュメモリ701上でなされることになる。
【0085】
以上のように、本実施形態によれば、スキャンジョブの処理中に、次スキャンジョブに関するレジスタ設定を、フラッシュメモリ701内の回路構成データ900に対して行うことができる。そのため、FPGA700上に回路構成データ900を展開した後に、FPGA700上の回路に対してレジスタ設定をする必要がなくなるので、スキャンジョブ間の時間を短縮することができる。
なお、本実施形態では、カラーページとモノクロページが混在するスキャンジョブの場合、画像データ800内の属性情報802は、カラーの属性となるものとする。
また、上記図18に示したフローチャートの処理を、ページ毎に実行するようにしてもよい。
また、上記図18に示したフローチャートの処理を、画像データ800内の属性情報802が変更される毎に実行するようにしてもよい。
【0086】
なお、第2実施形態で示したプリントジョブに対する処理(図17)を、スキャンジョブに対して適用するようにしてもよい。即ち、スキャンジョブが入力された際にも、FPGA700上の回路書き換えが必要であり、FPGAがジョブ処理中でない場合には、スキャンジョブに関するレジスタ設定の方法を、上記TとTsetとの比較結果によって切り替えるように構成する。T>Tsetの場合には、フラッシュメモリ701上でレジスタ設定を行っておいてFPGA700の書き換えを行う。一方、T≦Tsetの場合には、FPGA700の書き換え後にFPGA700に対してレジスタ設定を行う。
このような構成を設けることにより、より短い時間で設定できる方法でレジスタ設定でき、スキャンジョブの画像処理を開始するまでの時間を最短にすることができる。
【0087】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0088】
なお、上記各実施形態では、ROM108に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択してフラッシュメモリ701に記憶させ、フラッシュメモリ701上で一部を書き換えてから、FPGA700に展開する構成を示した。しかし、フラッシュメモリ701に複数の回路構成データを記憶させておき、ジョブに応じて必要な回路構成データを選択して、フラッシュメモリ701上で一部を書き換えてから、FPGA700に展開するように構成してもよい。
【0089】
以上説明したように、処理間でFPGAを書き換える場合でも、処理中に次の処理に対するレジスタ設定をフラッシュメモリ701上で行うことができるため、処理間に長い時間が必要ない。よって、回路の再構成に伴うパフォーマンスの低下を抑えることができる。
【0090】
本実施形態における図12,図17,図18に示す機能が外部からインストールされるプログラムによって、コンピュータにより遂行されていてもよい。そして、その場合、CD-ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0091】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0092】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0093】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0094】
21 MFP
700 FPGA
【特許請求の範囲】
【請求項1】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、
複数の回路構成データを記憶する第1記憶手段と、
前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、
前記選択手段により選択された回路構成データを前記第1記憶手段から取得して記憶する第2記憶手段と、
前記第2記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、
前記入力手段により入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、
前記生成手段により生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記画像処理手段が画像処理中であるか判定する判定手段を有し、
前記制御手段は、前記判定手段により前記画像処理手段が画像処理中と判定された場合には、前記第1設定処理を行い、前記画像処理手段による画像処理の終了を待って、前記再構成処理を行うよう制御することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記判定手段により前記画像処理手段が画像処理中でないと判定された場合に、前記第1設定処理のために要する第1設定時間と、前記画像処理手段に対して前記画像処理内容を設定する第2設定処理のために要する第2設定時間とを比較する比較手段を有し、
前記制御手段は、前記比較手段による比較の結果、前記第1設定時間が前記第2設定時間より短い場合には、前記第1設定処理を行った後に前記再構成処理を行い、一方、前記第1設定時間が前記第2設定時間より短くない場合には、前記再構成処理を行った後に前記第2設定処理を行うよう制御することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記比較手段は、前記画像処理内容に基づいて前記第2設定時間を算出することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
画像処理内容ごとに該画像処理内容を前記画像処理手段に対して設定するための設定情報を記憶する第3記憶手段を有し、
前記生成手段は、前記入力手段により入力された前記画像処理内容に対応する前記設定情報を前記第3記憶手段から取得して、該取得した設定情報を前記書き換えデータに変換することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記入力手段により入力された前記画像処理内容に基づいて前記再構成処理が必要であるか判断する判断手段を有し、
前記判断手段に前記再構成処理が必要ないと判断された場合には、前記選択手段は前記回路構成データの選択を行わず、前記制御手段は前記再構成処理を行うことなく前記画像処理手段に対して前記画像処理内容を設定することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記画像処理内容は、印刷を行う画像データに対する画像処理内容であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記画像処理内容は、光学的に読み取られた画像データに対する画像処理内容であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項9】
前記画像処理手段は、プログラマブルロジックデバイスであることを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
【請求項10】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第1記憶手段と、第2記憶手段と、前記第2記憶手段に記憶される前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行する画像処理手段とを有する画像処理装置の制御方法であって、
入力手段が、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力ステップと、
選択手段が、前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択して前記記憶手段に記憶させる選択ステップと、
生成手段が、前記入力ステップにより入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成ステップと、
制御手段が、前記生成ステップにより生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御ステップと、
を有することを特徴とする画像処理装置の制御方法。
【請求項11】
コンピュータを請求項1乃至9のいずれか1項に記載された画像処理装置の各手段として機能させるためのプログラム。
【請求項1】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、
複数の回路構成データを記憶する第1記憶手段と、
前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択する選択手段と、
前記選択手段により選択された回路構成データを前記第1記憶手段から取得して記憶する第2記憶手段と、
前記第2記憶手段に記憶されている前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、前記入力手段により入力された画像データに対して画像処理を実行する画像処理手段と、
前記入力手段により入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成手段と、
前記生成手段により生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記画像処理手段が画像処理中であるか判定する判定手段を有し、
前記制御手段は、前記判定手段により前記画像処理手段が画像処理中と判定された場合には、前記第1設定処理を行い、前記画像処理手段による画像処理の終了を待って、前記再構成処理を行うよう制御することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記判定手段により前記画像処理手段が画像処理中でないと判定された場合に、前記第1設定処理のために要する第1設定時間と、前記画像処理手段に対して前記画像処理内容を設定する第2設定処理のために要する第2設定時間とを比較する比較手段を有し、
前記制御手段は、前記比較手段による比較の結果、前記第1設定時間が前記第2設定時間より短い場合には、前記第1設定処理を行った後に前記再構成処理を行い、一方、前記第1設定時間が前記第2設定時間より短くない場合には、前記再構成処理を行った後に前記第2設定処理を行うよう制御することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記比較手段は、前記画像処理内容に基づいて前記第2設定時間を算出することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
画像処理内容ごとに該画像処理内容を前記画像処理手段に対して設定するための設定情報を記憶する第3記憶手段を有し、
前記生成手段は、前記入力手段により入力された前記画像処理内容に対応する前記設定情報を前記第3記憶手段から取得して、該取得した設定情報を前記書き換えデータに変換することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記入力手段により入力された前記画像処理内容に基づいて前記再構成処理が必要であるか判断する判断手段を有し、
前記判断手段に前記再構成処理が必要ないと判断された場合には、前記選択手段は前記回路構成データの選択を行わず、前記制御手段は前記再構成処理を行うことなく前記画像処理手段に対して前記画像処理内容を設定することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記画像処理内容は、印刷を行う画像データに対する画像処理内容であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記画像処理内容は、光学的に読み取られた画像データに対する画像処理内容であることを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項9】
前記画像処理手段は、プログラマブルロジックデバイスであることを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
【請求項10】
画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力手段と、複数の回路構成データを記憶する第1記憶手段と、第2記憶手段と、前記第2記憶手段に記憶される前記回路構成データに基づいて回路構成を再構成可能な再構成回路を含み、画像データに対して画像処理を実行する画像処理手段とを有する画像処理装置の制御方法であって、
入力手段が、画像データと、前記画像データに対して実行すべき画像処理内容を入力する入力ステップと、
選択手段が、前記第1記憶手段に記憶された複数の回路構成データのいずれかを選択して前記記憶手段に記憶させる選択ステップと、
生成手段が、前記入力ステップにより入力された前記画像処理内容に基づいて、前記第2記憶手段に記憶されている回路構成データを書き換えるための書き換えデータを生成する生成ステップと、
制御手段が、前記生成ステップにより生成された前記書き換えデータに基づいて前記第2記憶手段に記憶されている前記回路構成データの一部を書き換える第1設定処理を行った後に、前記第2記憶手段に記憶されている前記回路構成データにより前記画像処理手段の回路構成を再構成させる再構成処理を行うよう制御する制御ステップと、
を有することを特徴とする画像処理装置の制御方法。
【請求項11】
コンピュータを請求項1乃至9のいずれか1項に記載された画像処理装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−206704(P2010−206704A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−52316(P2009−52316)
【出願日】平成21年3月5日(2009.3.5)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願日】平成21年3月5日(2009.3.5)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]