JP2016136359A - 画像処理装置、その制御方法及びプログラム - Google Patents
画像処理装置、その制御方法及びプログラム Download PDFInfo
- Publication number
- JP2016136359A JP2016136359A JP2015011685A JP2015011685A JP2016136359A JP 2016136359 A JP2016136359 A JP 2016136359A JP 2015011685 A JP2015011685 A JP 2015011685A JP 2015011685 A JP2015011685 A JP 2015011685A JP 2016136359 A JP2016136359 A JP 2016136359A
- Authority
- JP
- Japan
- Prior art keywords
- function
- circuit
- image processing
- processing apparatus
- reconfiguration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減する仕組みを提供する。【解決手段】本画像処理装置は、複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する。さらに、本画像処理装置は、ジョブが終了したタイミング等で、予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、予め定められた回路機能以外の回路機能が構成されている部分再構成部に、予め定められた回路機能のうち、再構成回路に現在構成されていない回路機能を構成する。【選択図】 図2
Description
本発明は、画像データを扱う画像処理装置、その制御方法及びプログラムに関する。
内部の論理回路の構成を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)などの再構成可能回路が良く知られている。一般的に、PLDやFPGAの論理回路の変更は、起動時に、ROM等の不揮発性メモリに格納された回路構成情報を、PLDやFPGA内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことで実現される。また、コンフィギュレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ROMに記憶している回路構成情報をコンフィギュレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけPLDやFPGAの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるFPGA等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
また、FPGAには、FPGAのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリの一部の領域のみを書き換えることで、FPGAの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばFPGAのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。この動的部分再構成を用いた技術として、特許文献1には、例えばパイプライン構成の処理において、パイプラインの先頭の部分回路から順に再構成可能回路上に再構成して、機能を切り替えながらデータ処理する手法が開示されている。
近年のMFP(Multi Function Printer)等の画像処理装置は、ユーザからの要求に応じた複数の処理(コピー, プリント, SENDジョブ等)を選択可能であり、各処理に応じた画像処理はハードウェア又はソフトウェアにより実現される。この画像処理装置の画像処理ハードウェアとしてFPGA等の再構成可能回路を適用した場合、上述した様な機能毎に回路構成を動的かつ部分的に切り替えることが可能となる。その結果少ないハードウェアリソースで様々な画像処理機能が実現可能となる。
しかしながら、上記従来技術には以下に記載する問題がある。例えば、上記従来技術の画像処理装置においては、ジョブの内容を把握し、必要な画像処理回路が分かってから、構成(コンフィギュレーション)を行うため、ジョブを受け付けてから構成に要する時間分、画像処理の開始が遅くなってしまう。
本発明は、上述の問題に鑑みて成されたものであり、動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減する仕組みを提供することを目的とする。
本発明は、複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置であって、前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定手段と、前記決定手段によって前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成手段とを備えることを特徴とする特徴とする。
本発明によれば、動的部分再構成が可能な画像処理装置において、動的再構成の実施による受け付けたジョブの待機時間を低減することができる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1の実施形態>
<画像処理装置の構成>
以下では、図1乃至図14を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像処理装置の構成について説明する。
<画像処理装置の構成>
以下では、図1乃至図14を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像処理装置の構成について説明する。
本実施形態の画像処理装置100は、画像処理装置100を使用するユーザが各種の操作を行うための操作部103と、操作部103からの指示に従い画像情報を読み取るスキャナ部109と、画像データを用紙に印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPUや原稿読取を行うための照明ランプや走査ミラーなどを有する。プリンタ部107は、プリンタ部107の制御を行うCPUや画像形成や定着を行うための感光体ドラムや定着器を有する。
また、画像処理装置100は、画像処理装置100の動作を統括的に制御するCPU101を備え、画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。また、画像処理装置100は、CPU101が実行するプログラムが格納されているROM104を有する。また、画像処理装置100は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるRAM111と、RAM111への書き込み、読み出し動作を制御するメモリコントローラ110とを有する。メモリコントローラ110は、システムバス120及び画像バス121に接続され、RAM111へのアクセスを制御する。
画像処理装置100は、画像処理回路として、回路構成が不変なデバイスのASIC118と、後で部分的に再構成可能な再構成回路であるFPGA140とを有する。ASIC118は回路構成を変えられないが、量産コストを抑えられるため、MFPにとって重要な機能であるスキャナ用の画像処理回路やプリント用の画像処理回路などにより構成されている。一方、FPGA140では、種類は豊富であるが処理によって毎回使用される回路が異なる編集機能用の画像処理回路を動的に切り替えて構成することができる。本実施形態では、再構成可能デバイスとしてFPGAを例に説明しているが本発明はこれに限定されず、FPGA以外の再構成可能デバイスが接続される構成を適用することもできる。
画像処理装置100は、CPU101の制御に従って、FPGA140の回路構成(コンフィギュレーション)を制御するコンフィグコントローラ130を有する。また、画像処理装置100は、FPGA140に構成するための論理回路構成情報(コンフィグデータ)が格納されているコンフィギュレーション用ROM150を有する。FPGA140は、動的書き換え可能かつ部分書き換え可能なものである。即ち、FPGA140の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。
また、画像処理装置100は、スキャナ部109から画像データが入力されるスキャナI/F108と、プリンタへ画像データを出力するプリンタI/F106とを有する。FPGA140、スキャナI/F108及びプリンタI/F106は、処理される画像データを転送するための画像バス121に接続される。
また、画像処理装置100は、ネットワークI/F102を介し、ネットワーク上の汎用コンピュータと通信(送受信)を行う。また、画像処理装置100は、USBI/F114を介し、画像処理装置100と接続された汎用コンピュータと通信(送受信)を行う。また、画像処理装置100は、FAXI/F115を介し、公衆回線網と接続し、他の画像処理装置やファクシミリ装置と通信(送受信)を行う。画像処理装置100は、CPU101が実行するプログラム、ROM104への書き込み、読み出し動作を制御するROMI/F112を有する。また、画像処理装置100は、CPU101、ネットワークI/F102、操作部103、ROMI/F112、コンフィグコントローラ130、及びFPGA140を相互に接続するシステムバス120を有する。CPU101は、FPGA140と、スキャナI/F108、及びプリンタI/F106のパラメータ設定を、システムバス120を介して行う。
<部分再構成に関する構成>
次に、図2を参照して、本実施形態に係る画像処理装置100における部分再構成に関する構成について説明する。CPU101、コンフィグコントローラ130、コンフィギュレーション用ROM150、FPGA140、メモリコントローラ110、及びROMI/F112については図1を用いて前述した通りであるため説明を省略する。
次に、図2を参照して、本実施形態に係る画像処理装置100における部分再構成に関する構成について説明する。CPU101、コンフィグコントローラ130、コンフィギュレーション用ROM150、FPGA140、メモリコントローラ110、及びROMI/F112については図1を用いて前述した通りであるため説明を省略する。
FPGA140は内部に、部分再構成部(PR1)201、部分再構成部(PR2)202、部分再構成部(PR3)203、及び部分再構成部(PR4)204を備える。各部分再構成部は、動的に画像処理回路等を書き換えることが可能である。本実施形態においては、画像処理機能を有する回路を部分再構成部に構成する例について説明をするが、もちろん画像処理機能以外の回路を部分再構成部に構成可能であることは言うまでもない。
RAM111は、後述するPR管理テーブル220のための領域を有する。PR管理テーブル220は、4つの部分再構成部(PR1 ̄PR4)がそれぞれ何の機能回路を構成しているかを示す機能IDと、それらが現在使用されているかどうかを示すフラグとから構成される。
ROM104は、後述する優先順位テーブルを保持する。ROM104は、部分再構成部に構成され得る回路機能と各回路機能の使用頻度を示す優先順位の関係を記憶している。優先順位は画像処理装置100が一般的なジョブを実行するにあたって使用される頻度を予め想定しておきROM104に用意しておくものである。
<コンフィギュレーションデータ>
次に、図3を用いて本実施形態に係る画像処理装置におけるFPGA140の部分再構成部201〜204に構成されるコンフィギュレーションデータの格納方法について説明する。コンフィギュレーション用ROM150には、部分再構成に必要な複数のコンフィギュレーションデータが格納される。
次に、図3を用いて本実施形態に係る画像処理装置におけるFPGA140の部分再構成部201〜204に構成されるコンフィギュレーションデータの格納方法について説明する。コンフィギュレーション用ROM150には、部分再構成に必要な複数のコンフィギュレーションデータが格納される。
PR1用のコンフィギュレーションデータ300は、部分再構成部(PR1)201に構成することが可能なコンフィギュレーションデータを表している。図3においては、部分再構成部(PR1)201に構成可能な機能がA、B、C、Dの4つである場合を例にしている。301はPR1に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に302はPR1に機能Bの回路構成を、303はPR1に機能Cの回路構成、304はPR1に機能Dの回路構成を構成するためのコンフィギュレーションデータを表している。
また、PR2用のコンフィギュレーションデータ310は部分再構成部(PR2)202に構成することが可能なコンフィギュレーションデータを表している。PR2用のコンフィギュレーションデータ310についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR2)202には6つの機能を切り替えて構成することが可能である。
また、PR3用のコンフィギュレーションデータ320は部分再構成部(PR3)203に構成することが可能なコンフィギュレーションデータを表している。PR3用のコンフィギュレーションデータ320についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR3)203には6つの機能を切り替えて構成することが可能である。
また、PR4用のコンフィギュレーションデータ330は部分再構成部(PR4)204に構成することが可能なコンフィギュレーションデータを表している。PR4用のコンフィギュレーションデータ330についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR4)204には6つの機能を切り替えて構成することが可能である。
上述したように、各部分再構成部ごとにコンフィギュレーションデータを用意する必要がある。例えば、機能Aの回路構成を部分再構成部(PR1)201と部分再構成部(PR2)202に構成する場合を例にとる。PR1用の機能A301と、PR2用の機能A311というように同じ機能を実現する場合においても、構成場所によって異なるコンフィギュレーションデータを用意しておく必要がある。
本実施形態では、FPGA140は4つの部分再構成部を有し、部分再構成部に構成する機能をA、B、C、D、E、Fの6つの場合を例に説明する。各機能の内容の具体例は図4に示す。ここで部分再構成部の数を4、機能数を6としているが、説明を容易にするためだけであり、それらの数に限定されるわけではない。
ここで、デフォルト機能と良く使われる機能について説明する。本発明の画像形成装置は、上述した課題を解決するために、MFPにおいて良く使われる機能、デフォルト機能を使用するジョブが指定された際の、再構成を事前(ジョブを受け付ける前)に実施するよう制御することで、ジョブ処理開始を早くすることを特徴とする。デフォルト機能(予め定められた回路機能)とは、電源投入後の最初にFPGA140の部分再構成部201〜204に構成する回路機能である。ここでいう電源投入後とは、画像処理装置100全体の電源供給後はもちろん、スリープ状態時にFPGA140の電源が遮断され、スリープ解除時に再度FPGA140に対して電源が供給された場合なども含む。FPGA140へ構成される回路機能とは、原稿画像を用紙へ印字する迄の間で行われる種々の画像処理機能であったり、USBやSDカード等IFの通信処理機能であったり、温度や位置などを検知するためのセンサ処理機能などが考えられる。
よく使われる機能とは、画像処理装置100に搭載される機能の中で、他の機能と比較して使用頻度の多い機能である。例えば画像処理装置100を使用する際は、毎回利用されるコピーやプリント等の基本機能や、他の機能と比べて偏って著しく使われるような機能である。
FPGA140に構成するデフォルト機能は、MFPの機種によって異なり、例えば画像処理機能をFPGA140へ構成する場合を例に挙げると、オフィス機では良く使われるコピーやプリント機能などの基本機能が相当する。ハイエンド機など豊富な編集機能を搭載している場合は、編集機能の中で回転機能や変倍機能など他の編集機能と比べ使用頻度の高い機能などが相当する。
また、良く使われる機能は、ユーザによって異なる。従って、画像処理装置100では、ログイン後に操作部103に最初に表示させる操作画面をユーザが予め登録しておくことで、変更することが可能である。このような場合には、ユーザが予め登録した操作部103に最初に表示される操作画面より操作される機能がデフォルト機能としてFPGA140に構成することが考えられる。
<FPGA140へ構成する画像処理回路>
次に、図4を参照して、本発明の画像処理装置において、FPGA140構成される画像処理回路について説明する。ここでは、FPGA140には、編集用画像処理回路を構成する場合について説明する。410にFPGA140へ構成する編集用画像処理回路の一例を示す。
次に、図4を参照して、本発明の画像処理装置において、FPGA140構成される画像処理回路について説明する。ここでは、FPGA140には、編集用画像処理回路を構成する場合について説明する。410にFPGA140へ構成する編集用画像処理回路の一例を示す。
410に示すように、本発明の画像処理装置100は、編集用画像処理回路として機能A〜Fの6つの機能を有する。機能Aは回転処理機能401であり、入力されるページ画像を0度、90度、180度、270度の角度で回転し出力する機能である。機能Bは変倍処理機能402であり、入力されるページ画像について2次元変倍処理を行い、最大8倍から最小1/4倍までの倍率で変倍し出力する機能である。機能Cは移動処理機能403であり、入力されるページ画像について上下左右方向に画素単位で移動し出力する機能である。ページ画像の中から複数の矩形領域を移動対象として指定し、矩形領域のみを抽出し移動することも可能である。機能Dは二値化処理機能404であり、入力される多値画像を既知の誤差拡散方式により二値化処理を行い、二値画像を出力する機能である。機能Eは合成処理機能405であり、入力される2つのページ画像について、特定の合成モードに従って合成処理を行い、合成画像を出力する機能である。合成モードは複数のモードを有し、それぞれの入力画像の画素値について所定の係数で乗算した後に加算するモードや、2つの入力画像のうち各座標の画素毎に最大値もしくは最小値を選択して出力するモード等を有する。機能Fは色変換処理機能406であり、入力されるページ画像について、色空間フォーマットを変換し、色空間変換画像を出力する機能である。例えばスキャナで読み取られる際に表現されるRGB色空間を、用紙上にプリントする際に表現されるCMYK色空間への変換や、JPEG圧縮方式等の際に扱われるYUV色空間への変換を行う。
上述した機能A〜Fの編集用画像処理は、全てRAM111へ格納されているラスタ画像をメモリコントローラ110により読み出し、画像バス121を介してFPGA140へ入力された画像データに対して処理が行われる。そして画像処理後の画像データは、画像バス121を介してFPGA140より出力され、メモリコントローラ110によりRAM111へ再び格納される。400に示すジョブ種別回路機能テーブルの詳細については後述する。
<編集用画像処理のユースケース>
次に、図13を参照して、編集用画像処理を使用するユースケースについて説明する。まず初めに、画像処理装置100がオフィスで使用されるケースを想定して、オフィスで良く使われると思われるユースケースを3つ例(ユースケース1〜3)に挙げ説明する。
次に、図13を参照して、編集用画像処理を使用するユースケースについて説明する。まず初めに、画像処理装置100がオフィスで使用されるケースを想定して、オフィスで良く使われると思われるユースケースを3つ例(ユースケース1〜3)に挙げ説明する。
(ユースケース1)
1301に記載のユースケース1は、A4サイズの原稿をスキャナ部109で読み取り、A3サイズの用紙サイズに変倍して出力するユースケースである。スキャナ部109で読み取ったA4サイズ原稿の画像データは、RAM111へ格納されている。まず始めに機能Aの回転処理機能401を実施し、A4載置方向のラスタ画像を、90度回転して、A4R載置方向のラスタ画像を生成する。A4R載置方向のラスタ画像データは、一旦RAM111へ格納される。次に機能Bの変倍処理機能402を実施し、A4サイズのラスタ画像を141%に変倍処理して、A3サイズのラスタ画像を生成する。A3サイズの出力画像は、再度RAM111へ格納する。
1301に記載のユースケース1は、A4サイズの原稿をスキャナ部109で読み取り、A3サイズの用紙サイズに変倍して出力するユースケースである。スキャナ部109で読み取ったA4サイズ原稿の画像データは、RAM111へ格納されている。まず始めに機能Aの回転処理機能401を実施し、A4載置方向のラスタ画像を、90度回転して、A4R載置方向のラスタ画像を生成する。A4R載置方向のラスタ画像データは、一旦RAM111へ格納される。次に機能Bの変倍処理機能402を実施し、A4サイズのラスタ画像を141%に変倍処理して、A3サイズのラスタ画像を生成する。A3サイズの出力画像は、再度RAM111へ格納する。
(ユースケース2)
1302に記載のユースケース2は、左上に寄っている画像を操作部103を操作して用紙中央にレイアウトして出力するユースケースである。ユースケース2では、機能Cの移動処理機能403を実施し、操作部103に指定した上下左右方向の移動量をCPU101により取得し、取得した移動量より画素単位での移動量を算出して、ラスタ画像を画素単位で移動する。
1302に記載のユースケース2は、左上に寄っている画像を操作部103を操作して用紙中央にレイアウトして出力するユースケースである。ユースケース2では、機能Cの移動処理機能403を実施し、操作部103に指定した上下左右方向の移動量をCPU101により取得し、取得した移動量より画素単位での移動量を算出して、ラスタ画像を画素単位で移動する。
(ユースケース3)
1303に記載のユースケース3は、サイズが大きい多値の画像を二値化してサイズを小さくし、画像をネットワーク経由で送信するユースケースである。ユースケース3では、機能Dの二値化処理機能404を実施し、多値のラスタ画像を誤差拡散処理して、二値のラスタ画像を生成する。二値の出力画像はRAM111へ格納される。そしてメモリコントローラ110によりRAM111の二値画像を読み出し、ネットワークI/F102を介して画像をネットワーク経由で送信する。
1303に記載のユースケース3は、サイズが大きい多値の画像を二値化してサイズを小さくし、画像をネットワーク経由で送信するユースケースである。ユースケース3では、機能Dの二値化処理機能404を実施し、多値のラスタ画像を誤差拡散処理して、二値のラスタ画像を生成する。二値の出力画像はRAM111へ格納される。そしてメモリコントローラ110によりRAM111の二値画像を読み出し、ネットワークI/F102を介して画像をネットワーク経由で送信する。
次にオフィスにおいては稀に使用されるユースケース4について説明する。
(ユースケース4)
1304に記載のユースケース4は、原稿をスキャナ部109で読み取り、HDD117に予め格納されている定型フォーマット画像と合成するユースケースである。ユースケース4では、機能Eの合成処理機能405を実施し、RAM111に格納されている原稿画像と定型フォーマット画像を読み出し、原稿画像に対して定型フォーマット画像を優先して配置する合成処理を行い、合成された画像を生成する。
(ユースケース4)
1304に記載のユースケース4は、原稿をスキャナ部109で読み取り、HDD117に予め格納されている定型フォーマット画像と合成するユースケースである。ユースケース4では、機能Eの合成処理機能405を実施し、RAM111に格納されている原稿画像と定型フォーマット画像を読み出し、原稿画像に対して定型フォーマット画像を優先して配置する合成処理を行い、合成された画像を生成する。
図4の400に上述したユースケースを行うジョブについて、必要な画像処理機能の関係が定義されたジョブ種別回路機能テーブルを示す。ジョブ種別回路機能テーブル400は、ジョブ毎に必要な回路機能と、その処理順序を示すテーブルであり、本発明の画像処理装置100においては、予めROM104へ格納される。ジョブ種別回路機能テーブル400は、ジョブ処理を実行する際に、ジョブに必要な回路機能情報を取得する為に使用される。詳細についてはジョブ処理の説明において後述する。
以上のユースケースにおいて説明したように、編集用画像処理においても、良く使われる機能と、使われることが稀である機能に分けられる。ジョブ種別回路機能テーブル400に定義した機能は、FPGA140へ構成する編集用画像処理回路の6種類であるが、ほとんどのユーザは使用しないが、ニッチで幅広い市場の要求に応えるために、画像処理装置100に搭載される編集機能は非常に豊富である。つまり、殆どは一般ユーザによっては使用されない機能である。従って、豊富な編集機能を画像処理装置100に搭載するために、動的に一つの領域に対して複数の画像処理回路を切り換えて構成することが可能なFPGAは、理に叶ったデバイスといえる。つまり、殆ど使われない機能のために、個別に構成された処理回路を設けることは無駄にハードウェア資源やコストを増大させる結果となる。
そこで、本発明の画像処理装置は、編集用画像処理において良く使われる機能と、そうではない機能が存在することに着目し、良く使われる機能を電源投入後の初期時にFPGA140へ構成する。この電源投入後の最初にFPGA140へ構成する機能について、説明の便宜上、デフォルト機能と以降記載し説明する。本発明の画像処理装置は、種類が豊富に存在する編集用画像処理機能の中でも、良く使われる機能についてのFPGA140への再構成をなるべく少なくなるよう制御し、良く使われる機能の処理開始を速くすることを特徴とする。
本発明の画像処理装置において、図13の1301〜1303に記載した、良く使われるユースケース1〜3において、使用される回転処理機能401、変倍処理機能402、移動処理機能403、二値化処理機能404の4つを良く使われる機能とする。そして良く使われる機能である、回転処理機能401、変倍処理機能402、移動処理機能403、及び二値化処理機能404をデフォルト機能として、電源投入後の初期時にFPGA140へ構成する例について説明する。
<FPGA初期コンフィギュレーション>
次に、図5を参照して、本実施形態に係る画像処理装置100のFPGA140について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
次に、図5を参照して、本実施形態に係る画像処理装置100のFPGA140について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
まず、S501で、CPU101は、FPGA140の部分再構成部201〜204へ予め決められた初期設定時に構成するデフォルト機能を構成する。なお、CPU101は、FPGA140における再構成制御を行う場合には、コンフィグコントローラ130を介して行う。コンフィグコントローラ130は、コンフィギュレーション用ROM150に格納されたコンフィギュレーションデータを用いてFPGA140の各部分再構成部201〜204への再構成を制御する。また、S501及び後述するS502の処理は、部分再構成部201〜204ごとに行われる。
ここで、図6を参照して、初期設定時においてFPGA140の部分再構成部201〜204へ構成するデフォルト機能について説明する。部分再構成部201についての構成では、コンフィグコントローラ130は、コンフィギュレーション用ROM150のPR1用コンフィギュレーションデータ300から、回転処理機能401(機能A)のPR1用コンフィギュレーションデータ301を読み出す。コンフィグコントローラ130は、読み出された機能AのPR1用コンフィギュレーションデータ301を、部分再構成部201のコンフィギュレーションメモリへ書き込む。これにより、部分再構成部201には機能Aとして割り当てられている回転処理機能401が構成される。
部分再構成部202について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR2用コンフィギュレーションデータ300から、変倍処理機能402(機能B)のPR2用コンフィギュレーションデータ302を読み出す。読み出された機能BのPR2用コンフィギュレーションデータ302を、部分再構成部202のコンフィギュレーションメモリへ書き込むことにより、部分再構成部202には機能Bとして割り当てられている変倍処理機能402が構成される。
部分再構成部203について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR3用コンフィギュレーションデータ300から、移動処理機能403(機能C)のPR3用コンフィギュレーションデータ303を読み出す。読み出された機能CのPR3用コンフィギュレーションデータ303を、部分再構成部203のコンフィギュレーションメモリへ書き込むことにより、部分再構成部203には機能Cとして割り当てられている移動処理機能403が構成される。
部分再構成部204について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR4用コンフィギュレーションデータ300から、二値化処理機能404(機能D)のPR4用コンフィギュレーションデータ304を読み出す。読み出された機能DのPR4用コンフィギュレーションデータ304を、部分再構成部204のコンフィギュレーションメモリへ書き込むことにより、部分再構成部204には機能Dとして割り当てられている二値化処理機能404が構成される。
図5の説明に戻る。S502で、CPU101は、PR管理テーブル220の各部分再構成部201〜204のステータスを「停止中」へ変更する。具体的には、部分再構成部201についてステータスを変更する場合は、PR1のステータスを「停止中」へ変更する。部分再構成部202についてステータスを変更する場合は、PR2のステータスを「停止中」へ変更する。部分再構成部203についてステータスを変更する場合は、PR3のステータスを「停止中」へ変更する。部分再構成部204についてステータスを変更する場合は、PR4のステータスを「停止中」へ変更する。上記のS501とS502の処理を、部分再構成部201〜204の領域分繰り返すと、処理を終了する。
ここで、図7を参照して、FPGA140についての初期設定時のコンフィギュレーションが終了した時点でのPR管理テーブル220について説明する。PR管理テーブル220は、部分再構成部201〜204のそれぞれについて、何の機能を有する回路が構成されているかを示す機能IDと、各部分再構成部が使用中であるかどうかを示すステータスの情報とを含む。これらの機能IDと、ステータスの情報とは、後述する処理ステップで逐次書き換えられる。
図7に示すように、PR1には機能IDとして機能A(回転処理)、PR2には機能IDとして機能B(変倍処理)、PR3には機能IDとして機能C(移動処理)、PR4には機能IDとして機能D(二値化処理)が設定される。そしてPR1〜4の各ステータスに「停止中」が設定される。
以上説明した制御により、FPGA140についての初期設定時のコンフィギュレーションが終了すると、各部分再構成部には回転処理機能401、変倍処理機能402、移動処理機能403、及び二値化処理機能404が構成される。即ち、よく使われる機能でない、合成処理機能405及び色変換処理機能406については、初期設定時はFPGA140へは構成されない。
<再構成手順>
次に、図8を参照して、本実施形態における画像処理装置100の再構成制御に係る制御手順について説明する。まず、本実施形態におけるFPGA140への書き換え(再構成)方針について説明する。本発明の画像処理装置100において、FPGA140へ再構成するケースは2ケースある。
次に、図8を参照して、本実施形態における画像処理装置100の再構成制御に係る制御手順について説明する。まず、本実施形態におけるFPGA140への書き換え(再構成)方針について説明する。本発明の画像処理装置100において、FPGA140へ再構成するケースは2ケースある。
1つ目のケースは、新規ジョブを実行する際に、ジョブに必要な機能がFPGA140へ構成されていないときに、必要な機能をコンフィギュレーション用ROM150より読み出し、FPGA140へ再構成する場合である。このケースは従来の画像処理装置において、ジョブ処理をする際に行われている一般的なケースである。
2つ目のケースは、FPGA140にデフォルト機能以外(予め定められた回路機能以外)の機能が構成されているときに、FPGA140に構成されていないデフォルト機能をコンフィギュレーション用ROM150から読み出し、FPGA140へ再構成する場合である。2つ目のケースにおいて、FPGA140に対して再構成を行うか否かは、条件があり、次のジョブとしてFPGA140に構成されているデフォルト機能以外の機能を使用するジョブが投入されている場合には、デフォルト機能への再構成は行わない。FPGA140に構成されているデフォルト機能以外の機能を使用するジョブが投入されていない場合には、デフォルト機能への再構成を行う。
以下では、1つ以上の部分再構成部においてデータ処理を実行中に、それ以外の部分再構成部においてデフォルト機能以外の機能が構成されている場合には、デフォルト機能へ再構成する制御について説明する。図8のフローチャートでは、画像処理装置がスタンバイの状態であり、FPGA140にはデフォルト機能が構成されている状態からの手順について説明している。本フローチャートを説明するために、合成ジョブ、二値画像送信ジョブ、A3画像をA4出力するジョブの3つのジョブを連続して画像処理装置において処理する場合を例に挙げて説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
また、図10には、画像処理装置100において、複数ジョブを連続して行う際の、ジョブ毎にFPGA140の部分再構成部201〜204で実施される制御と、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。さらに、図10にはジョブが投入されてから、ジョブが実行されるまでの間に、ジョブの実行順に従って格納されるジョブキューの状態を示している。図10に示すジョブキューの状態は、ジョブキューに格納されるジョブが更新されたタイミングのみを記載している。また、以下で説明する処理は、1つのジョブに対する処理が完了するごとに行われことが望ましい。
図8の説明に移る。S801で、CPU101は、RAM111内に保存されたPR管理テーブル220より部分再構成部201〜204についての機能IDとステータスを順次読み出す。続いて、S802で、CPU101は、デフォルト機能以外の機能IDで且つステータスが停止中の部分再構成部が有るか否かを判定する。デフォルト機能以外の機能IDで且つステータスが停止中の部分再構成部201〜204が有ればS802に進み、無ければS808に進む。画像処理装置100がスタンバイ状態であり、FPGA140が初期のコンフィギュレーション設定がされている場合(以下、初期設定時)には、FPGA140の部分再構成部201〜204にはデフォルト機能が構成されている。当該タイミングは、図10のタイミングT0に示す。
初期設定時のPR管理テーブル220の設定内容は、図7に示す通りである。従って、S801では、CPU101によって、タイミングT0における部分再構成部201〜204についての機能IDとして、回転処理機能、変倍処理機能、移動処理機能、及び二値化処理機能が読み出される。同様に部分再構成部201〜204についてのステータスとして、全て「停止中」が読み出される。つまり、図7に示すPR管理テーブル220の設定内容では、デフォルト機能以外の機能である合成処理、色変換処理の機能IDが設定されている部分再構成部201〜204が無いので、S802における判断分岐でNOとなりS808へ進むことになる。
S808で、CPU101は、画像処理装置100に新規のジョブが投入されているかを確認する。続いて、S809で、CPU101は、S808の確認の結果、新規ジョブが投入されているか否かを判定する。投入されていればS810へ進み、そうでない場合には、S801へ戻る。図10の例では、タイミングT1、タイミングT3、タイミングT5の時点で、それぞれジョブ1として合成ジョブ、ジョブ2として二値画像送信ジョブ、ジョブ3としてA4画像をA3出力するジョブを受け付ける例を示している。つまり、S809の判断分岐において、新規ジョブが投入されるタイミングT1、タイミングT3、タイミングT5では、YESとなりS810へ進む。上記以外のタイミングでは、S809の判断分岐においてNOとなり、S801へ戻る。
S810で、CPU101は、投入された新規ジョブをジョブキューに格納する。ジョブキューはRAM111上に作成され、ジョブを実行する順番に投入されたジョブを格納する。投入された新規ジョブは、ジョブキューに格納されたジョブの中で、最後の順番に実行されるジョブとして格納される。続いて、S811で、CPU101は、投入されたジョブのジョブ処理を開始する。ジョブ処理の詳細については後述する。
図11は、図10のタイミングT2の時点でのPR管理テーブル220の一例を示す。タイミングT2は、ジョブ1の合成ジョブが終了したタイミングである。図10の例では、合成ジョブを実行するために、部分再構成部201に対して合成処理機能405を構成し、データ処理を行う。従って、図11に示すようにPR1には機能IDとして機能E(合成処理)、PR2には機能IDとして機能B(変倍処理)、PR3には機能IDとして機能C(移動処理)、PR4には機能IDとして機能D(二値化処理)が設定される。そしてPR1〜4の各ステータスに「停止中」が設定される。
このタイミングT2の時点で、S801のステップを行うと、PR1にはデフォルト機能以外の機能IDである機能E(合成処理)が設定され、且つステータスに「停止中」が設定されているため、S802の判断分岐でYESとなり、S803へ進む。S803で、CPU101は、現在受け付けているジョブ、即ち、ジョブキューに格納されているジョブの内容を取得する。続いて、S804で、CPU101は、S803で取得した内容に従って、デフォルト機能以外の機能を使用するジョブが有るか否かを判定する。デフォルト機能以外の機能を使用するジョブが有る場合にはS808へ進み、無ければS805に進む。S808へ進む場合は、FPGA140への書き換え(再構成)方針で説明した2つ目のケースにおいて、書き換えを行わない場合に相当する。一方、S805へ進む場合は、FPGA140への書き換え(再構成)方針で説明した2つ目のケースにおいて、書き換えを行う場合に相当する。
以下では、デフォルト機能への再構成を行う場合、即ち、ジョブキューにデフォルト機能以外の機能を使用するジョブが無い場合の処理について説明する。図10のタイミングT2の時点では、ジョブキューにはジョブ2のみがジョブキューに格納されている。
ジョブ2の二値画像送信のジョブで使用する機能は、図4のジョブ種別回路機能テーブル400に示す二値化処理機能404である。つまり、PR1に構成されているデフォルト機能以外の機能である合成処理機能405を使用するジョブは存在しないので、S805へ進む。
S805で、CPU101は、RAM111内に保存されたPR管理テーブル220より部分再構成部201〜204についての機能IDとステータスを順次読み出し、デフォルト機能以外の機能IDで、且つステータスが停止中の部分再構成部を特定する。例えば、図10のタイミングT2において、ジョブ1の合成ジョブが終了する時点を例に挙げて説明する。図11に示すタイミングT2の時点でのPR管理テーブル220の例の場合には、CPU101は、部分再構成部201(PR1)がデフォルト機能以外である機能E(合成処理)の機能IDで、ステータスが「停止中」の設定がされていると特定する。以降、S806とS807のステップは、特定した部分再構成部が複数存在する場合には、部分再構成部201〜204に対してそれぞれ繰り返す。
S806で、CPU101は、特定した部分再構成部201〜204に対して、現在構成されていないデフォルト機能を構成する。予め定めたデフォルト機能の中で、FPGA140に実装されていないデフォルト機能を構成するよう制御する。図11に示すタイミングT2の時点でのPR管理テーブル220の例の場合には、デフォルト機能である機能A(回転処理)が存在していない。従って、CPU101は、コンフィギュレーション用ROM150のPR1用コンフィギュレーションデータ300より機能AのPR1用コンフィギュレーションデータ301を読み出し、部分再構成部201のコンフィギュレーションメモリへ書き込む。S807で、CPU101は、PR管理テーブル220のデフォルト機能への構成を行った部分再構成部201〜204について、デフォルト機能の機能IDを設定し、ステータスとして「停止中」を設定する。図10においてデフォルト機能への構成が終了したタイミングT4時点における、PR管理テーブル220の一例を図7に示す。
なお、上記S806及びS807において、再構成する必要があると決定された対象(回路機能)が複数有る場合は、再構成する回路機能の回路構成情報が大きい順に行うことが望ましい。これにより、当該ジョブが開始される前に、コンフィギュレーション時間が長いと予想されるものから
続いて、デフォルト機能への再構成を行わない場合、即ち、ジョブキューにデフォルト機能以外の機能を使用するジョブが有る場合の処理について説明する。図14にジョブ実行中に、次のジョブが投入された際の、ジョブ毎にFPGA140の部分再構成部201〜204で実施される制御と、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。図14において、タイミングT0〜T5の時点は、図10と同じタイミングを示している。
続いて、デフォルト機能への再構成を行わない場合、即ち、ジョブキューにデフォルト機能以外の機能を使用するジョブが有る場合の処理について説明する。図14にジョブ実行中に、次のジョブが投入された際の、ジョブ毎にFPGA140の部分再構成部201〜204で実施される制御と、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。図14において、タイミングT0〜T5の時点は、図10と同じタイミングを示している。
図14では、図10とは異なり、タイミングT2の時点では既にジョブキューに、次のジョブのジョブ3が格納されている。ジョブ3の合成のジョブで使用する機能は、図4のジョブ種別回路機能テーブルより、合成処理機能405である。つまり、PR1に構成されているデフォルト機能以外の機能である合成処理機能405を使用するジョブは存在するので、S804の判定の結果、S808へ進む。S808以降の処理は、上述したため説明を省略する。上述したS801乃至S811のステップを繰り返すことにより、PR管理テーブル220の内容によって、ジョブ処理と、デフォルト機能への再構成処理が繰り返される。
<ジョブ実行処理>
次に、図9を参照して、本実施形態に係る画像処理装置100のジョブ実行処理の手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
次に、図9を参照して、本実施形態に係る画像処理装置100のジョブ実行処理の手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
S901で、CPU101は、受信したジョブを実行するにあたり、FPGA140に構成する必要がある機能を図4に示すジョブ種別回路機能テーブル400を参照し特定する。例えば、図10のタイミングT1において、ジョブ1の合成ジョブを実行する時点を例に挙げて説明すると、合成ジョブでは合成処理機能405が必要であると特定する。
S902で、CPU101は、RAM111内に保存されたPR管理テーブル220を順次読出し必要な回路でかつ停止中の回路が有るか判断する。その後、S903で、CPU101は、S902の判断結果から、再構成が必要か否かを判定する。例えば、機能E(合成処理機能405)が必要なときに、PR管理テーブル220が図7に示す状態(図10のタイミングT1)であった場合、機能Eはいずれの部分再構成部にも存在しないのでS903からS904へ進み、部分再構成を行う。ここで仮に機能Eがいずれかの部分再構成部に存在していたとしてもステータスが使用中で有る場合は再構成が必要になることに注意されたい。
これに対して、例えば機能C(移動処理)が必要な場合はPR管理テーブル220が図7に示すようにPR3に既に機能Cの回路が構成されているから次のS903からS907へ進み、既存の回路機能を再構成することなく処理の実行へ移行することができる。即ち、回路の再構成動作をスキップできるためジョブ実行の全体時間を減らしパフォーマンスが向上する。機能Eが必要で部分再構成を行う場合S904へ移行して再構成領域の選択処理を行う。
S904で、CPU101は、再構成する部分再構成部201〜204を選択する。部分再構成部201〜204のうち、どこへ再構成を行うかは、例えば機能毎に優先順位を設定して、FPGA140へ構成されている機能の中で、優先順位の高い機能が構成されている部分再構成部201〜204を選択する等の方法が考えられる。本実施形態では、機能毎に使用する部分再構成部201〜204について制約があり、予め決められている場合を例に挙げて説明する。図10のタイミングT1において、合成処理機能は部分再構成部201を使用するよう予め決められている場合には、部分再構成部201を選択する。
続いて、S905で、CPU101は、コンフィグコントローラ130により部分再構成部を再構成する。上の例に従えばPR1に機能Eを再構成する。さらに、S906で、CPU101は、PR管理テーブル220の機能IDとステータスを変更する。即ち、機能EをPR1に再構成する場合はPR管理テーブル220のPR1に対応する機能IDを機能Aから機能Eへ変更するとともにPR1に対応するステータスを「停止中」から「使用中」へ変更する。これらの処理によって他の並列実行中のジョブがPR1を誤って使用することを防止する。
S907で、CPU101は、S904からS906のステップで構成された部分再構成部又は、既に構成されていた部分再構成部の回路を起動しジョブ実行に必要な回路機能を実行する。本ステップは回路起動のためのレジスタ設定、終了割込み待ち動作、終了割り込み対応処理動作等も含む。回路機能の動作が終了すると、S908でPR管理テーブル220のステータスを「停止中」に変更する。例えばPR1の動作が終了した場合は、PR1に対応するステータスを「使用中」から「停止中」へ変更する。これにより他の並列実行中のジョブがPR1を使用することが可能になる。
以上説明したように、本実施形態に係る画像処理装置では、FPGA140の部分再構成部201〜204にデフォルト機能以外の機能が構成されている場合には、部分再構成部での処理が行われていない際に、デフォルト機能への構成を前もって行っておく。図12に上記の制御を行わない比較例となる画像処理装置での、ジョブ毎にFPGA140の部分再構成部201〜204で実施される制御と、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。
図12に示すように、比較例となる画像処理装置では、タイミングT5の時点でデフォルトの機能を使用するA4画像をA3出力するジョブがジョブ3として投入された場合、A4画像をA3出力するジョブで使用する回転処理機能401を構成する必要がある。従って、データ処理の開始が構成が終了したタイミングT6となり、構成にかかる時間分データ処理の開始が遅くなる。一方、本実施形態に係る画像処理装置では、図10のタイミングT4の時点で既にデフォルト機能の構成が終了しているため、ジョブ3が投入されたタイミングT5の時点でデータ処理を開始できるという効果を奏する。即ち、本発明によれば、予め定めた機能以外の機能が再構成可能回路に構成されている場合には、未使用時に予め定めた機能への再構成を行う。つまり、ジョブが指定される前に、予め定めた機能への再構成を行うよう制御するので、後に予め定めた機能を使用するジョブを処理する際の再構成の時間を省略でき、動作可能になるまでの時間を短縮できパフォーマンスが向上する。
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、S806でデフォルト機能を再構成する際に、当該デフォルト機能の回路構成情報が所定のサイズより小さい場合は、再構成を行わないように制御してもよい。これは、回路構成情報が小さく、ジョブの実行前に再構成を実行したとしても待機時間にさほど影響しない場合に有効である。これにより、再構成する頻度を低減することができ、FPGA140の耐久性を向上させることができる。
<第2の実施形態>
以下では、図15乃至図18を参照して、本発明の第2の実施形態について説明する。上記第1の実施形態では、編集用画像処理機能をFPGA140へ構成する場合を例に挙げて、編集用画像処理機能の中で、良く使われる機能をデフォルト機能としてFPGA140へ構成する形態について説明した。しかしながら、良く使われる機能の回路構成情報(コンフィギュレーションデータ)が小さい場合には、再構成の時間は小さくなるので、回路構成情報の大きさによっては、さほど問題にならない場合も考えられる。このようなケースを想定し、本実施形態では、回路構成情報が大きい機能より優先してデフォルト機能に割り当て、FPGA140の電源投入後に構成するよう制御する。もちろん、上記第1の実施形態と本実施形態とを組み合わせて、使用される頻度が高い順であって、さらに、回路構成情報が大きい順も考慮してデフォルト機能を決定してもよい。
以下では、図15乃至図18を参照して、本発明の第2の実施形態について説明する。上記第1の実施形態では、編集用画像処理機能をFPGA140へ構成する場合を例に挙げて、編集用画像処理機能の中で、良く使われる機能をデフォルト機能としてFPGA140へ構成する形態について説明した。しかしながら、良く使われる機能の回路構成情報(コンフィギュレーションデータ)が小さい場合には、再構成の時間は小さくなるので、回路構成情報の大きさによっては、さほど問題にならない場合も考えられる。このようなケースを想定し、本実施形態では、回路構成情報が大きい機能より優先してデフォルト機能に割り当て、FPGA140の電源投入後に構成するよう制御する。もちろん、上記第1の実施形態と本実施形態とを組み合わせて、使用される頻度が高い順であって、さらに、回路構成情報が大きい順も考慮してデフォルト機能を決定してもよい。
<FPGA初期コンフィギュレーション>
まず、図15を参照して、本実施形態に係る画像処理装置のFPGA140について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
まず、図15を参照して、本実施形態に係る画像処理装置のFPGA140について、電源投入後の初期設定時に実施するコンフィギュレーション制御手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。
S1501で、CPU101は、構成情報容量テーブル221より各機能の構成情報容量を順次読み出し、構成情報容量が大きい機能より順番にデフォルト機能として割り当てる。
図16は構成情報容量テーブル221の一例を示す。構成情報容量テーブル221は、各機能の構成情報容量の情報を示すテーブルであり、ROM104に予め格納されている。図16の例では、機能A〜Fの構成情報容量は、それぞれ、200、500、520、600、450、180である。CPU101は、構成情報容量テーブル221の各機能の構成情報容量を順次取得して、構成情報容量が大きい機能より順番に、FPGA140の部分再構成部201〜204へ構成するデフォルト機能として割り当てる。図16の例においては、機能D(二値化処理機能404)、機能C(移動処理機能403)、機能B(変倍処理機能402)、機能E(合成処理機能405)が、部分再構成部201〜204のデフォルト機能として割り当てられる。
次に、S1502で、CPU101は、FPGA140の部分再構成部201〜204へ割り当てられたデフォルト機能を構成する。図17は、本実施形態に係る画像処理装置の初期設定時におけるFPGA140の部分再構成部201〜204へ構成するデフォルト機能の一例を示す。部分再構成部201について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR1用コンフィギュレーションデータ300から、二値化処理機能404(機能D)のPR1用コンフィギュレーションデータ304を読み出す。読み出された機能DのPR1用コンフィギュレーションデータ304を、部分再構成部201のコンフィギュレーションメモリへ書き込むことにより、部分再構成部201には機能Dとして割り当てられている二値化処理機能404が構成される。
部分再構成部202について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR2用コンフィギュレーションデータ300から、移動処理機能403(機能C)のPR2用コンフィギュレーションデータ303を読み出す。読み出された機能CのPR2用コンフィギュレーションデータ303を、部分再構成部202のコンフィギュレーションメモリへ書き込むことにより、部分再構成部202には機能Cとして割り当てられている移動処理機能403が構成される。
部分再構成部203について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR3用コンフィギュレーションデータ300から、変倍処理機能402(機能B)のPR3用コンフィギュレーションデータ302を読み出す。読み出された機能BのPR3用コンフィギュレーションデータ302を、部分再構成部203のコンフィギュレーションメモリへ書き込むことにより、部分再構成部203には機能Bとして割り当てられている変倍処理機能402が構成される。
部分再構成部204について、コンフィグコントローラ130は、コンフィギュレーション用ROM150よりPR4用コンフィギュレーションデータ300から、合成処理機能405(機能E)のPR4用コンフィギュレーションデータ305を読み出す。読み出された機能DのPR4用コンフィギュレーションデータ305を、部分再構成部204のコンフィギュレーションメモリへ書き込むことにより、部分再構成部204には機能Eとして割り当てられている合成処理機能405が構成される。
次に、S1503で、CPU101は、PR管理テーブル220の各部分再構成部201〜204の機能IDとしてデフォルト機能の機能IDを設定し、ステータスを「停止中」へ変更する。上記のS1501乃至S1503の処理が、部分再構成部201〜204の領域分繰り返される。
図18は、本実施形態に係る画像処理装置におけるFPGA140についての初期設定時のコンフィギュレーションが終了した時点でのPR管理テーブル220の一例を示す。図18に示すように、PR1には機能IDとして機能D(二値化処理)、PR2には機能IDとして機能C(移動処理)、PR3には機能IDとして機能B(変倍処理)、PR4には機能IDとして機能E(合成処理)が設定される。そしてPR1〜4の各ステータスに「停止中」が設定される。
このように、本実施形態によれば、FPGA140についての初期設定時のコンフィギュレーションが終了すると、変倍処理機能402、移動処理機能403、二値化処理機能404、及び合成処理機能405が構成される。回転処理機能401、色変換処理機能406については、初期設定時はFPGA140へは構成されない。
以上説明したように、本実施形態では電源投入後にFPGA140に構成するデフォルト機能として、回路構成情報の大きい機能から優先して割り当てるよう制御する。したがって、本実施形態では、回路構成情報の大きな機能を事前にFPGA140に構成するよう制御するため、回路構成情報の大きな機能を使用するジョブを処理する際の、長い構成時間を低減することができる。
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、本実施形態では、デフォルト機能を回路構成情報が大きい順に決定されていることから、デフォルト機能への再構成を実施する場合に、既に構成されているデフォルト機能以外の機能の方が使用頻度が高い場合もある。このような場合には、再構成を制限するように制御してもよい。これにより、上記第1及び第2の実施形態を組み合わせた構成とすることもできる。
<第3の実施形態>
以下では、図19を用いて、本発明の第3の実施形態について説明する。上記第1の実施形態では、再構成する部分再構成部201〜204を選択する際に、機能毎に使用する部分再構成部201〜204について制約があり、予め決められている場合を例に挙げて説明した。しかしながら、上記制約が無いのであれば、例えば機能毎に優先順位を設定して、FPGA140へ構成されている機能の中で、優先順位の高い機能が構成されている部分再構成部201〜204を選択する等の方法が考えられる。そこで、本実施形態では、部分再構成部201〜204に構成されている機能の回路構成情報の容量を参照して、回路構成情報の小さい機能が構成されている部分再構成部201〜204を優先して選択するよう制御する。
以下では、図19を用いて、本発明の第3の実施形態について説明する。上記第1の実施形態では、再構成する部分再構成部201〜204を選択する際に、機能毎に使用する部分再構成部201〜204について制約があり、予め決められている場合を例に挙げて説明した。しかしながら、上記制約が無いのであれば、例えば機能毎に優先順位を設定して、FPGA140へ構成されている機能の中で、優先順位の高い機能が構成されている部分再構成部201〜204を選択する等の方法が考えられる。そこで、本実施形態では、部分再構成部201〜204に構成されている機能の回路構成情報の容量を参照して、回路構成情報の小さい機能が構成されている部分再構成部201〜204を優先して選択するよう制御する。
<処理手順>
図19を参照して、本実施形態に係る画像処理装置のジョブ実行処理制御の手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。図19に示すフローチャートにおいて、S1901〜S1903、及びS1906〜S1909の処理は、図9に示す上記第1の実施形態のフローチャートに示すS901〜S903、及びS905〜S908の処理とそれぞれ同じであるため、説明を省略する。即ち、以下では、S1904及びS1905の処理について説明する。
図19を参照して、本実施形態に係る画像処理装置のジョブ実行処理制御の手順について説明する。なお、以下で説明する各処理は、CPU101がROM104に格納された制御プログラムを実行することにより実現される。さらに、CPU101は、FPGA140に対する再構成制御については、コンフィグコントローラ130を介して行う。図19に示すフローチャートにおいて、S1901〜S1903、及びS1906〜S1909の処理は、図9に示す上記第1の実施形態のフローチャートに示すS901〜S903、及びS905〜S908の処理とそれぞれ同じであるため、説明を省略する。即ち、以下では、S1904及びS1905の処理について説明する。
S1904で、CPU101は、S1902で読み出したPR管理テーブル220の部分再構成部201〜204の機能IDについての構成情報の容量を、構成情報容量テーブル221より取得する。図10のタイミングT2の時点でのPR管理テーブル220は図11に示す通りであり、部分再構成部201〜204の機能IDは、それぞれ機能E(合成処理)、機能B(変倍処理)、機能C(移動処理)、機能D(二値化処理)である。従って、CPU101は、図16に示す構成情報容量テーブル221より、機能E(合成処理)、機能B(変倍処理)、機能C(移動処理)、機能D(二値化処理)の構成情報容量として、それぞれ450、500、520、600を取得する。
S1905で、CPU101は、最も小さい構成情報容量の機能が構成されている部分再構成部201〜204を再構成対象として選択する。FPGA140に構成されている、機能E(合成処理)、機能B(変倍処理)、機能C(移動処理)、機能D(二値化処理)の構成情報容量の中で最も小さい構成情報容量の機能は機能E(合成処理)の450である。従って、CPU101は、機能E(合成処理)が構成されている部分再構成部201を再構成対象として選択する。
以上説明したように、本実施形態では再構成対象の部分再構成部201〜204を選択する際に、回路構成情報の小さい機能が構成されている部分再構成部201〜204を優先して割り当てるよう制御する。これにより、本実施形態では、回路構成情報の大きな機能を極力再構成しないよう制御するため、回路構成情報の大きな機能を使用するジョブを処理する際の、長い構成時間の低減可能となる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
100:画像処理装置、101:CPU、102:ネットワークI/F、103:操作部、104:ROM、106:プリンタI/F、107:プリンタ部、108:スキャナI/F、109:スキャナ部、110:メモリコントローラ、111:RAM、112:ROMI/F、113:操作部I/F、114:USBI/F、115:FAXI/F、116:HDDI/F、117:HDD、118:ASIC、120:システムバス、121:画像バス、130:コンフィグコントローラ、140:FPGA、150:コンフィギュレーション用ROM
Claims (14)
- 複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置であって、
前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定手段と、
前記決定手段によって前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成手段と
を備えることを特徴とする画像処理装置。 - 前記決定手段は、
前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を確認する確認手段と、
前記確認手段によって確認された前記予め定められた回路機能以外の回路機能が、現在受け付けているジョブの何れかで使用されるか否かを判定する判定手段と、を備え、
前記判定手段によって前記予め定められた回路機能以外の回路機能が、現在受け付けているジョブの何れかで使用されないと判定されると、前記予め定められた回路機能以外の回路機能を再構成する必要があると決定することを特徴とする請求項1に記載の画像処理装置。 - 前記判定手段は、前記確認手段によって確認された前記予め定められた回路機能以外の回路機能が、現在使用されている場合についても、現在受け付けているジョブの何れかで使用されると判定することを特徴とする請求項2に記載の画像処理装置。
- 前記確認手段は、1つのジョブが完了するごとに、再構成回路の回路機能を確認することを特徴とする請求項2又は3に記載の画像処理装置。
- ジョブを実行する実行手段をさらに備え、
前記再構成手段は、さらに、
前記実行手段によって実行するジョブに必要な回路機能が前記再構成回路に構成されていない場合に、前記予め定められた回路機能以外の回路機能が構成されている前記部分再構成部から優先して、該必要な回路機能を構成することを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。 - 前記再構成手段は、前記必要な回路機能を構成する場合に、前記再構成回路に構成されている回路機能のうち、優先順位が最も高い回路機能が構成されている前記部分再構成部へ前記必要な回路機能を構成することを特徴とする請求項5に記載の画像処理装置。
- 前記優先順位は、前記再構成回路に構成されている回路機能の回路構成情報が小さい順であることを特徴とする請求項6に記載の画像処理装置。
- 前記予め定められた回路機能は、使用される頻度が高い順に決定されることを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
- 前記予め定められた回路機能は、回路構成情報が大きい順に決定されることを特徴とする請求項1乃至8の何れか1項に記載の画像処理装置。
- 前記再構成手段は、
前記決定手段によって再構成する必要があると決定された回路機能が複数有る場合、再構成する複数の回路機能のうち、回路構成情報の大きい回路機能から順に構成することを特徴とする請求項1乃至9の何れか1項に記載の画像処理装置。 - 前記決定手段は、
前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能が所定のサイズよりも小さい場合は、再構成する必要がないと決定することを特徴とする請求項1乃至10の何れか1項に記載の画像処理装置。 - 前記決定手段は、
前記予め定められた回路機能以外の回路機能の使用頻度が、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能の使用頻度よりも高い場合は、再構成する必要がないと決定することを特徴とする請求項1乃至11の何れか1項に記載の画像処理装置。 - 複数の部分再構成部を含み、かつ、回路構成を動的かつ部分的に再構成可能な、再構成回路を有する画像処理装置の制御方法であって、
決定手段が、前記再構成回路における前記複数の部分再構成部に構成されている予め定められた回路機能以外の回路機能を再構成する必要があるか否かを決定する決定工程と、
再構成手段が、前記決定工程で前記予め定められた回路機能以外の回路機能を再構成する必要があると決定されると、該予め定められた回路機能以外の回路機能が構成されている前記部分再構成部に、前記予め定められた回路機能のうち、前記再構成回路に現在構成されていない回路機能を構成する再構成工程と
を実行することを特徴とする画像処理装置の制御方法。 - 請求項13に記載の画像処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015011685A JP2016136359A (ja) | 2015-01-23 | 2015-01-23 | 画像処理装置、その制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015011685A JP2016136359A (ja) | 2015-01-23 | 2015-01-23 | 画像処理装置、その制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016136359A true JP2016136359A (ja) | 2016-07-28 |
Family
ID=56512572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015011685A Pending JP2016136359A (ja) | 2015-01-23 | 2015-01-23 | 画像処理装置、その制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016136359A (ja) |
-
2015
- 2015-01-23 JP JP2015011685A patent/JP2016136359A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6308821B2 (ja) | 画像処理装置 | |
US10122883B2 (en) | Image processing apparatus including circuit configuration and method of controlling the same | |
JP5438371B2 (ja) | 画像処理装置および画像処理方法 | |
US20160036998A1 (en) | Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method | |
US10037591B2 (en) | Information processing apparatus and method of controlling the same | |
US20170060644A1 (en) | Image processing apparatus, control task allocation method, and recording medium | |
JP6351315B2 (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2015162760A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP6370063B2 (ja) | 画像処理装置及びその制御方法、並びにプログラム | |
JP2015149025A (ja) | 画像処理装置およびその制御方法、並びにプログラム | |
JP5277615B2 (ja) | データ処理装置及びデータ処理プログラム | |
JP2016076867A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
US8724161B2 (en) | Method, apparatus, and computer program product for processing image data of plural images to combine for output to a recording medium | |
JP2016189177A (ja) | 画像処理装置、その制御方法およびプログラム | |
JP5232728B2 (ja) | 画像形成装置 | |
JP2016136359A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP5560785B2 (ja) | 情報処理装置、画像形成装置及び情報処理方法 | |
US20160050332A1 (en) | Image processing apparatus for controlling dynamic reconfigurable apparatus, information processing method for image processing apparatus, and storage medium for storing program to achieve information processing method | |
US20080285066A1 (en) | Image processor and image processing method | |
JP2010011468A (ja) | 画像処理装置及びその制御方法 | |
JP7491004B2 (ja) | 情報処理装置、決定方法、及びプログラム | |
JP2015139009A (ja) | 画像処理装置、その制御方法及びプログラム | |
EP3122028B1 (en) | Image processing apparatus and processing method | |
JP6528951B2 (ja) | 電子機器および処理実行プログラム | |
JP2017108250A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム |