JP2015191335A - 画像処理装置、その制御方法及びプログラム - Google Patents

画像処理装置、その制御方法及びプログラム Download PDF

Info

Publication number
JP2015191335A
JP2015191335A JP2014066807A JP2014066807A JP2015191335A JP 2015191335 A JP2015191335 A JP 2015191335A JP 2014066807 A JP2014066807 A JP 2014066807A JP 2014066807 A JP2014066807 A JP 2014066807A JP 2015191335 A JP2015191335 A JP 2015191335A
Authority
JP
Japan
Prior art keywords
configuration data
image processing
job
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
Application number
JP2014066807A
Other languages
English (en)
Inventor
靖二郎 森田
Yasujiro Morita
靖二郎 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014066807A priority Critical patent/JP2015191335A/ja
Publication of JP2015191335A publication Critical patent/JP2015191335A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】FPGAの回路構成に依存することなく開発された上位層のソフトウェアを用いて、動的再構成を行う際に所定の機能ブロック単位での再構成ではなく、必要となる処理に従って複数の機能ブロックのうち必要な部分を再構成する仕組みを提供する。
【解決手段】本画像処理装置は、受け付けたジョブを解析し、解析したジョブの種別に従って必要な機能ブロックを決定し、決定した機能ブロックにおいてジョブを実行した際のメモリアクセス情報から必要な構成データを決定し、決定した構成データに従って再構成回路を再構成する。
【選択図】 図9

Description

本発明は、画像処理装置、その制御方法及びプログラムに関する。
論理回路の構成を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)などの再構成可能回路が良く知られている。一般的に、PLDやFPGAの論理回路の変更は、起動時に、ROM等の不揮発性メモリに格納された回路構成情報を、PLDやFPGA内部の揮発性メモリであるコンフィグレーションメモリへ書き込むことで実現される。また、コンフィグレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ROMに記憶している回路構成情報をコンフィグレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけPLDやFPGAの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるFPGA等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
また、FPGAには、FPGAのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィグレーションメモリ全体を書き換えるのではなく、コンフィグレーションメモリの一部の領域のみを書き換えることで、FPGAの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばFPGAのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。
ただし、動作中に回路構成を変更できるといっても、回路構成の変更(書き換え)に要する時間は長く、その時間はコンフィグレーションメモリに書き込む論理回路構成情報のサイズに比例する。そのため、排他的に動作する機能は、必ず機能する回路のみを再構成するとは限らず、書き換え可能な容量に余裕があるFPGAを用いる場合などは、LSI等と同様に、動作しない回路とともに再構成する。これにより、前述したような書き換え時間に要する時間を使わないようにすることが可能である。例えば、書き換え可能な回路規模(以下、書き換え容量と称する。)が異なる2つのFPGAに対して、書き換え容量が少ないFPGAを用いた装置では、一度に書き込みが可能な機能が少ないため、動作する機能毎に回路の再構成を行う。一方で、書き換え容量が多いFPGAを用いる場合、動作させる機能とともに動作させない機能の回路の再構成を行う。
具体例として、カラーコピージョブが入力されたときに必要となるプリント画像処理機能は、RGBフィルタや下地除去、色空間変換を含むRGB用処理と、スキャン画像との干渉を抑える誤差拡散処理を含むコピー用ハーフトーン画像処理を採用する。一方で、CMYK色空間のPDLプリントジョブが入力されたときに必要なるプリント画像処理は、CMYKフィルタや、出力ダイレクトマッピングを含むCMYK用処理と、ディザ法によるPDL用ハーフトーン画像処理を採用する。このとき、少ない書き換え容量のFPGAを採用している場合、カラーコピージョブで採用される機能と、PDLプリントジョブで採用される機能を一度に構成できないため、排他的に回路の再構成を行う。一方で、書き換え容量が多いFPGAを用いる場合、プリント処理が必要な時は、RGB用処理、CMYK用処理、コピー用ハーフトーン処理、PDL用ハーフトーン処理の機能を全て含んだ回路の再構成を行う。
ところで、MFP(MULTI FUNCTION PRINTER)等の情報処理装置は、装置の有するハードウェアリソース制御、ネットワーク応答、UI表示及び操作応答、など複数の機能の制御を行う大きなシステムとなっている。特許文献1では、機能毎に流用や改善を行えるように、つまりソフトウェアの保守性や再利用性を高めるために、階層化アーキテクチャと呼ばれるソフトウェアの構造や、オブジェクト指向などを用いてソフトウェアをモジュール化している。これにより、機能同士の依存度を減らして、ソフトウェアを実装することができる。ハードウェアの各機能に対して依存度の高いソフトウェア階層を、他のソフトウェアと分離した実装して、ハードウェア依存度が高いソフトモジュールはハードウェアに最適化し、それ以外のソフトウェアモジュールは、ハードウェアに依存しない形で使用できる。
特開2007−329743号公報
しかしながら、上記従来技術には以下に記載する問題がある。動的再構成技術を用いたFPGAを用いる場合、必要最小限の回路構成のみが構成されているため、回路構成に存在しない回路へのアクセスが発生する可能性がある。したがって。このような不要なアクセスが発生しないように、そのときコンフィギュレーションされている回路構成に応じた動作を行う必要がある。そのためには、ユーザーからの処理要求が行われたときに、まずその処理と処理に付随する設定情報に応じて必要な回路構成及び対応するコンフィグデータを適確に選択し、コンフィグレーションを行う必要がある。しかしながら、各種の設定によって必要となる回路は異なり、さらに用いるFPGAの書き換え可能な回路の容量により回路の構成が異なるため、採用するFPGA容量に合わせて、想定する回路構成にそれぞれに合わせたソフトウェアの実装を行わなければならない。これでは、動的再構成技術を用いたFPGAを用いる実益が著しく減少してしまう。
本発明は、上述の問題に鑑みて成されたものであり、FPGAの回路構成に依存することなく開発された上位層のソフトウェアを用いて、動的再構成を行う際に所定の機能ブロック単位での再構成ではなく、必要となる処理に従って複数の機能ブロックのうち必要な部分を再構成する仕組みを提供することを目的とする。
本発明は、回路構成を再構成可能な再構成回路を有する画像処理装置であって、前記再構成回路に構成するための複数の機能ブロックごとの構成データを予め記憶する記憶手段と、ジョブを受け付ける受付手段と、前記受付手段によって受け付けたジョブを解析する解析手段と、前記解析手段によって解析されたジョブの種別に従って必要な前記機能ブロックを決定する機能決定手段と、前記決定手段によって決定された機能ブロックにおいて、前記ジョブを実行した際のメモリアクセス情報を含むコマンドを生成する生成手段と、前記生成手段によって生成されたコマンドに従って必要な構成データを決定する構成データ決定手段と、前記構成データ決定手段によって決定された構成データを、前記記憶手段から読み出して前記再構成回路を再構成する再構成手段とを備えることを特徴とする。
本発明によれば、FPGAの回路構成に依存することなく開発された上位層のソフトウェアを用いて、動的再構成を行う際に所定の機能ブロック単位での再構成ではなく、必要となる処理に従って複数の機能ブロックのうち必要な部分を再構成することができる。
第1の実施形態に係る画像処理装置の構成の一例を示すブロック図。 第1の実施形態に係る画像処理装置の機能と、動的再構成部に構成される画像処理機能を説明する図。 第1の実施形態に係る画像処理装置の制御構成を示す図。 第1の実施形態に係るJOB制御部の動作を表すフローチャート。 第1の実施形態に係るプリントモジュール制御部の動作を表すフローチャート。 第1の実施形態に係るデバイスドライバの動作構成動作を表すフローチャート。 第1の実施形態に係るメモリ空間を説明する図。 第1の実施形態に係るコマンドを説明する図。 第1の実施形態に係るコンフィグリストを説明する図。 第1の実施形態に係るコマンド解析動作を表すフローチャートを説明する図。 第2の実施形態に係るコンフィグリストを説明する図。 第2の実施形態に係るコマンド解析動作を表すフローチャートを説明する図。 第1の実施形態に係るシーケンスを説明する図。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1の実施形態>
<画像処理装置の構成>
以下では、図1乃至図5を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本発明の実施形態に関わる画像処理装置の装置構成を説明するブロック図である。本実施形態において、画像処理装置100は、スキャナ部やプリンタ部を有する複合機(多機能処理装置)の場合で説明する。
画像処理装置100は、画像処理装置100を使用するユーザーが各種の操作を行うための操作部103と、原稿の画像情報を読み取るスキャナ部109と、画像データに基づいて用紙に画像を印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPU(不図示)や原稿の読取を行うための照明ランプや走査ミラー(いずれも不図示)などを有する。プリンタ部107は、当該プリンタ部107の制御を行うCPU(不図示)や、画像の形成(印刷)や定着を行うための感光体ドラムや定着器(いずれも不図示)等を有する。操作部103は、節電キー(不図示)を持ち、節電キーの押下により、省電力状態への移行、復帰を行う。
また、画像処理装置100は、画像処理装置100の制御を行うコントローラとして、動的再構成部を備えるFPGA140を有する。この例では、FPGA140が、画像処理装置100の動作を統括的に制御するCPU101を備える。このCPU101が、FPGA140や再構成を制御するコンフィグコントローラ130等を制御するためのプログラムを実行する。なお、FPGA140がCPU101を備えていることはあくまで一例にすぎず、FPGA140の外部にCPUを設けてもよい。
また、画像処理装置100は、CPU101が実行するブートプログラム、及び、FPGA140をコンフィグレーションする為の論理回路構成情報が格納されているROM(第1記憶手段)104を有する。また、画像処理装置100は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるRAM(第2記憶手段)111を有する。また、RAM111は、ROM104に格納された論理回路構成情報を複製し格納して高速に読み出すためのメモリでもある。
FPGA140は、CPU101、ネットワークI/F102、プリンタI/F106、スキャナI/F108、メモリコントローラ110、ROMI/F112、操作部I/F113、USBI/F114、FAXI/F115、コンフィグコントローラ130、及び動的な再構成部(再構成回路)131を備える。再構成部131は、動的に再構成可能(書き換え可能)であり、かつ、一部を書き換え可能なものである。すなわち、再構成部131の一部に再構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。再構成部131は、各種画像処理を行うための論理回路を部分的に再構成できる。コンフィグコントローラ130は、再構成部131の回路構成(コンフィグレーション)を制御する。
スキャナI/F108は、スキャナ部109から画像データが入力される。プリンタI/F106は、プリンタへ画像データを出力する。再構成部131、及びスキャナI/F108、プリンタI/F106は、処理される画像データを転送するための画像バス121に接続される。
CPU101は、画像処理装置100の動作を統括的に制御し、ネットワークI/F(ネットワークインタフェース)102を介し、ネットワーク上の汎用コンピュータ(不図示)と通信(送受信)を行う。また、CPU101は、USBI/F(USBインタフェース)114を介し、画像処理装置100と接続された汎用コンピュータ(不図示)と通信(送受信)を行う。また、CPU101は、FAXI/F(ファクシミリインタフェース)115を介し、公衆回線網と接続し、他の画像処理装置(不図示)やファクシミリ装置と通信(送受信)を行う。FAXI/F115には、公衆回線網からの呼出信号(CI信号:Call Indicator)を検知するCI検知回路(不図示)がある。ROMI/F112は、CPU101が実行するブートプログラム、及び、再構成部131をコンフィグレーションするための論理回路構成情報(コンフィグレーションデータ)が格納されているROM104への書き込み、読み出し動作を制御する。
また、FPGA140は、CPU101、ネットワークI/F102、操作部103、ROMI/F112、コンフィグコントローラ130、再構成部131を相互に接続するシステムバス120を有する。CPU101は、再構成部131内にコンフィグレーションされた各画像処理部と、スキャナI/F108、プリンタI/F106のパラメータ設定を、システムバス120を介して行う。RAM111は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあり、かつROM104に格納された論理回路構成情報を複製し格納して高速に読み出すためのメモリでもある。メモリコントローラ110は、RAM111への書き込み、読み出し動作を制御する。メモリコントローラ110は、システムバス120及び画像バス121に接続され、画像バス121に接続されたバスマスタのRAM111へのアクセスと、システムバス120に接続されたバスマスタのRAM111アクセスとを、排他的に切り替える。
<コンフィグデータ>
次に、図2を参照して、本実施形態に係る画像処理装置100の、再構成部131に構成される画像処理機能(機能ブロック)の例とコンフィグデータ(構成データ)との関係について説明する。画像処理装置100は、スキャナ部109で読み取られた原稿を複写する機能(コピージョブ)、外部のプリンタドライバから送付された印刷データを印刷する機能(PDLプリントジョブ)を有する。また、スキャナ部109で読み取られた原稿を画像データとしてネットワークI/F102を介して外部の汎用コンピュータ(不図示)へ送信するSENDジョブを有する。動的再構成技術を適用した画像処理システムの場合、ユーザーにより選択された機能及び変更された設定項目に応じて必要な画像処理機能を再構成部131に構成して実際の処理を行う。
201は、カラーコピージョブが実行されるときに再構成部131に構成される画像処理機能を示す。201を用いてコピージョブ用の画像処理構成について説明する。コピージョブ用画像処理構成201は、画像バス121を介してRAM111から画像を読み出すリードDMAC(DMA Controller)250と、RAM111に画像を書き込むためのライトDMAC251を含む。
コピージョブ用画像処理構成201はさらに、像域判定処理、RGBダイレクトマッピング処理を行うRGB用スキャン画像処理部260、下地除去処理、RGBフィルタ処理、色空間変換処理を行うRGB用プリント画像処理部261、ガンマ補正、誤差拡散処理を行うコピー用ハーフトーン処理部262、が含まれる。コピージョブ実行時には、スキャナ部109から入力された画像データはリードDMAC250へ入力され、各画像処理機能260、261、262を介し、ライトDMAC251によってRAM111に書き込まれる。
RGB用スキャン画像処理部260、RGB用プリント画像処理部261、コピー用ハーフトーン処理部262に含まれる各機能について説明する。像域判定処理は、入力画像から文字部を検出することにより、その後の画像処理に利用する像域信号を生成する。RGBダイレクトマッピング処理は、スキャナデバイスに依存する入力特性を、デバイスに依存しない色特性に変換する処理を行う。フィルタ処理は、例えばエッジ強調などの目的に従ったデジタル空間フィルタで演算処理を行う。下地除去処理は、背景に薄い色がある原稿を読み取った画像データが送られてきた場合に背景色を除去する処理を行う。色空間変換処理は、RGBデータを画像処理装置の出力特性に合わせてCMYK変換を行う。ガンマ補正処理は、画像データの濃度変換を行う。誤差拡散処理は、入力画像データを所定の閾値と比較することにより、N値化を行い、その際の入力画像データと閾値との差分を以降にN値化処理する周囲画素に対して拡散することで、ハーフトーン処理を行う。
以上の画像処理が終了した画像データは、画像バス121を介して、プリンタI/F106に転送され、プリンタ部107から出力される。もちろん、上述したフローは一例であり、他の画像処理機能を再構成部131に構成して処理を実施することも可能である。
202は、PDLプリントジョブが実行されるときに再構成部131に構成されるPDLプリントジョブ用画像処理構成を示す。PDLプリントジョブ用画像処理構成202は、コピージョブ用画像処理構成201と同様に、画像バス121を介して画像の転送を行うリードDMAC250とライトDMAC251を含む。さらに、CMYKフィルタ処理や、出力ダイレクトマッピング処理を行うCMYK用プリント画像処理部270、ガンマ補正処理、ディザ法によるハーフトーン処理を行うPDL用ハーフトーン処理部271が含まれる。
PDLプリントジョブ実行時には、ネットワークI/F102を介して入力された印刷データは、例えば、PDL(ページ記述言語)データで構成される。CPU101は、入力された印刷データの解析(例えば、PDL解析処理)を行う。そして、その解析結果から中間言語を生成し、更に画像処理可能なビットマップデータを生成する。具体的には、印刷データの解析とその解析による中間言語情報の作成を行うとともに、その中間言語情報の作成と並行してラスタライズ処理を行う。このラスタライズ処理では、印刷データに含まれる表示色RGB(加法混色)から印刷部106が処理可能なYMCK(減法混色)への変換が含まれる。またこの処理には、印刷データに含まれる文字コードから予め格納されているビットパターン、アウトラインフォント等のフォントデータへの変換等の処理が含まれる。その後、ラスタライズ処理では、ページ単位或はバンド単位でビットマップデータを作成し、画像処理可能なビットマップデータを生成する。こうして作成されたビットマップデータはRAM111に格納される。
次に、RAM111から読み出された画像データは、リードDMAC250へ入力され、各画像処理機能270、271、262を介し、ライトDMAC251によってRAM111に書き込まれる。CMYK用プリント画像処理部270、PDL用ハーフトーン処理部271に含まれる各機能について説明する。CMYKフィルタ処理は、例えばエッジ強調などの目的に従ったデジタル空間フィルタで演算処理を行う。出力ダイレクトマッピング処理は、出力するデバイス特性に合わせて色を調整する処理を行う。ガンマ補正処理は、画像データの濃度変換を行う。ディザ法によるハーフトーン処理は、マトリクス状の所定の閾値と比較することにより、N値化を行うことでハーフトーン処理を行う。
以上の画像処理が終了した画像データは、画像バス121を介して、プリンタI/F106に転送され、プリンタ部107から出力される。もちろん、上述したフローは一例であり、他の画像処理機能を再構成部131に構成して処理を実施することも可能である。本実施形態においては、図2を用いて説明した画像処理機能を再構成部131に適宜構成することにより画像処理を実施することとなる。なお、画像処理装置100が処理することのできるジョブは、図2に示すものに限定されるわけではない。また、画像処理の単位に関しても、図2に示すものに限定されるわけではなく、各画像処理に含まれている処理を、さらに細かい粒度(コンポーネント)に分割することも可能である。
ここで、コンフィグデータは、201、202に記載した各処理単位で構成することが可能である。例えば、コピー用画像処理に必要なリードDMAC250、各種画像処理部(260、261、262)、ライトDMAC251をすべて含んで1つのコンフィグデータとして用意することもできる。また、機能毎にコンフィグデータを別々に用意した場合に、コピージョブを実行するには、各コンフィグデータを再構成部131に部分再構成することにより、コピージョブ実行に必要な回路を構成することができる。
<制御構成>
次に、図3を参照して、本実施形態に係る制御構成について説明する。図3に示す制御ブロックは、CPU101によってROM104等に格納されているプログラムがRAM111に展開されて実行されることにより実現される。FPGA140は、画像処理を制御する制御構成として、階層化した構成を有し、ハードウェアと通信するサービス階層、FPGAに再構成される各機能を制御するモジュール制御階層、ジョブを受け付け、データのハンドリングを行うシーケンス制御階層を含む。サービス階層には、デバイスドライバ331を備える。デバイスドライバ331は、上位階層からアクセスコマンドを受け取り、システムバス120を介して各ハードウェアリソースにアクセスする機能、ハードウェアからの割り込みを検知する機能などを有する。モジュール制御階層には、スキャンモジュール制御部321、プリントモジュール制御部322、及び画像データ転送制御部323が含まれる。シーケンス制御階層には、ジョブ制御部311が含まれる。以下の説明では、ジョブフローにおいて、FPGA140で実行する処理を例に記載する。なお、ジョブ制御部311は、アプリケーション層のコンポーネントであり、上位層制御手段に相当する。また、スキャンモジュール制御部321、プリントモジュール制御部322、画像データ転送制御部323、及びデバイスドライバ331は、ドライバ層のコンポーネントであり、下位層制御手段に相当する。
<再構成制御シーケンス>
以下では、図4乃至図9を参照して、本実施形態に係る再構成部131の再構成手順の一例について説明する。なお、以下で説明する図4乃至図6のフローチャートは、プリントジョブ時のものである。以下で説明する処理は、CPU101がRM104から制御プログラムをRAM111に読み出して実行することにより実現される。まず、図4を用いて、プリントジョブにおける、シーケンス制御階層であるジョブ制御部311が行うフローについて説明する。
S401で、ジョブ制御部311は、受付手段として機能し、操作部103や、ネットワークI/F102を介したジョブの入力を受け付け、ジョブ要求を受信する。受信した場合はS402に進む。S402で、ジョブ制御部311は、受信したジョブの内容を解析し、ジョブ種別、各種パラメータを認識し、さらにジョブの処理実行に必要な処理フローを決定する。
S403で、ジョブ制御部311は、機能決定手段として機能し、S402で認識したジョブ種別により、どのモジュール(機能ブロック)ヘの制御を実行すればよいかを判断する。ジョブ種別がPRINTであればプリントモジュールが必要であるのでS404へ進み、SENDであればスキャンモジュールが必要であるのでS405へ進む。COPYであれば、スキャンモジュールとプリントモジュールが必要であるためS406及びS407を実行する。ここではPRINTが指定されたジョブを受信した場合について説明する。
S404で、ジョブ制御部311は、S402で認識した情報を元に、必要な情報を生成し、プリントモジュール制御部322に生成した情報を渡すと共に、プリントモジュールヘのパラメータ設定を依頼する。ここで、プリントモジュール制御部322へ渡す情報には、例えば、PRINT(PDLプリント)なのかCOPYなのか、それともPDL/COPYの混在なのかを示す詳細なジョブ種別情報が含まれる。さらに、当該情報には、RGB/CMYK/モノクロを示す色情報や、処理したいフィルタの種類や強度を示す画像処理パラメータなどが含まれる。
S404の処理が完了すると、S408へ進み、ジョブ制御部311は、画像処理を行う準備が整っている各種モジュールに対して画像データを転送するように、画像データ転送制御部323に指示する。指示を受けた画像データ転送制御部323は、転送対象がハードウェアであれば、DMAC250、251などを起動する指示をデバイスドライバ331を介して行う。
また、S403でジョブ種別がSENDであると判断すると、ジョブ制御部311は、スキャンモジュール制御部321に対して画像処理装置100に載置された原稿の読み取りを指示する。その後、S408へ進み、ジョブ制御部311は、原稿から読み取った画像データを転送するように、画像データ転送制御部323に指示する。指示を受けた画像データ転送制御部323は、転送対象が外部装置であれば、ネットワークI/F102を介して行う。
また、S403でジョブ種別がCOPYであると判断すると、ジョブ制御部311は、S406に進みS405と同様の処理を実行し、原稿から画像データを取得する。その後、S407に進み、原稿から取得した画像データを用いて上記S404と同様の処理が行われる。
<プリントモジュール>
次に、図5を参照して、プリントモジュール制御部322が行う処理の手順について説明する。ここで説明する処理は、S404の詳細な処理に相当する。なお、スキャンモジュール制御部321がパラメータ設定依頼を受けた場合においても同様のフローとなるため、図5では、モジュール制御部の行うパラメータ設定を示すフローチャートとしている。プリントモジュール制御部322は、プリントモジュール制御部322が管理する複数のハードウェアモジュール仕様に合わせて、パラメータからコマンドを生成する役割を担う。
S501で、プリントモジュール制御部322は、S404でジョブ制御部311から渡された情報を解析し、どのハードウェアモジュールを機能させるかを判断し、さらに、各ハードウェアモジュールが所望の動作を行えるための情報を生成する。S502で、プリントモジュール制御部322は、各ハードウェアモジュールのどのモジュールヘアクセスするかを示すアドレスパートと、各アドレスに関連付けられたハードウェアモジュール固有のパラメータを示すデータパートを含むコマンドを生成する。なお、データパートについては後述する第2の実施形態において説明する構成に使用される。つまり、上記コマンドには、受け付けたジョブを実行した場合に発生するメモリアクセス情報を含んで構成される。さらに、プリントモジュール制御部322は、デバイスドライバ331に生成したコマンドを受け渡す。なお、アドレスパートとは、CPU101から認識できるメモリ空間にマッピングされているものである。
ここで、図7及び図8を参照して、プリントモジュール制御部322が生成するコマンドについて詳細に説明する。図7は、CPU101から各ハードウェアモジュールヘアクセスするためにマッピングされているメモリ空間の一例を示す。PDL用ハーフトーン処理を行うハードウェアモジュールに処理パラメータを設定すべくアクセスする場合、OxC060_0000からOxC06F_FFFFまでのアドレスと、各アドレスに関連付けられたパラメータ情報を含むデータとを含むコマンドを用いる。
図8は、コマンドを受け取ったデバイスドライバ331がRAM111にコマンドデータを格納している状況を示す。デバイスドライバ331が管理するRAM111上の所定の領域にコマンドデータを順に格納していく。このように、ジョブ制御部311及びプリントモジュール制御部322では、FPGAの再構成部131及びコントローラ130については関与しない。
<デバイスドライバ>
次に、図6、図9及び図10を参照して、プリントジョブにおける、サービス階層であるデバイスドライバ331が行う処理手順について説明する。図9は、コンフィグリストの一例を示す。本実施形態では、図9に示すように、アドレスの上位11bitとROM104に格納されている各機能のコンフィグデータ(構成データ)の格納先の関連性を示すテーブルとしてコンフィグリスト901を定義している。以下で説明する処理において、デバイスドライバ331は、構成データ決定手段として機能し、生成されたコマンドを解析して、必要なコンフィグデータを決定する。
S601で、デバイスドライバ331は、S502で受け渡された、RAM111に格納したコマンド801を解析する。コマンド解析のフローについて図10を用いてさらに詳細に説明する。
S1001で、デバイスドライバ331は、コマンド801を順に読み出し、まだ解析するコマンドが有るか否かを判定する。解析するコマンドが有ればS1002に進み、解析するコマンドを取得する。無ければ解析処理を終了する。
S1003で、デバイスドライバ331は、コンフィグリスト901を確認し、再構成部131にコンフィグレーションする機能のコンフィグデータが有るか否かを判定する。本実施形態では、アドレスの上位11bitに対応する機能が有るか否かで判定する。対応する機能が無い場合とは、例えば再構成部131に構成する以外の回路に対するアクセスコマンドなどである。対応する機能が無い場合は解析に移るため、S1001に移行する。対応する機能が有る場合は、S1004に進み、対応する機能のコンフィグデータを用いることを決定する。コンフィグデータを決定した後、S1001に進む。例えば、読み出しコマンドのアドレスパートの値がOxC031_8404だった場合、上位11bitについてコンフィグリスト901を参照して確認することにより、CMYK用プリント画像処理の機能が用いられることが解析できる。
図6の説明に戻る。S602で、デバイスドライバ331は、S601の解析結果に基づき、プリントジョブで必要な画像処理機能を再構成部131に構成するため、ROM104に格納されたコンフィグデータの情報をコンフィグコントローラ130に通知して再構成を指示する。本実施形態では、ROM104に格納されているコンフィグデータから911、912、914、916を使用するようにコンフィグコントローラ130に通知する。
S610では、コンフィグコントローラ130は、デバイスドライバ331からの再構成の指示が有ったか否かを判定する。指示が有れば、S611へ進む。S611では、コンフィグコントローラ130は、デバイスドライバ331からの通知された情報に従い、ROM104に格納されているコンフィグデータ911、912、914、916を読み出し、再構成部131へ書き込みを行う。書き込みが完了すると、コンフィグコントローラ130は、デバイスドライバ331へ完了通知を行う。この時点で、再構成部131は、202で示した回路構成状態になり、CPU101からのコマンドアクセス及び画像データの処理が可能となる。
S603では、デバイスドライバ331は、コンフィグコントローラ130から再構成完了通知を受信したか否かを判定し、完了通知があるまで待機する。完了通知を受信した場合はS604に進む。S604では、デバイスドライバ331は、RAM111に格納したコマンド801を読み出して、システムバス120を介して再構成部131に構成されている各画像処理部及びDMACへの設定を行う。
このように、再構成部131のコンフィグレーションを必要に合わせて再構成する場合、ハードモジュールへのコマンド解析を行うことにより必要なコンフィグデータを決定する。その結果、ジョブの種類や画像処理に関するパラメータ情報、又はFPGAの再構成部131の回路の容量に合わせて、上位階層のソフトモジュールを設計する必要がなくなる。これにより、ソフトウェアの保守性が向上し、開発工数や改変リスクを低減することが可能となる。
<再構成処理>
次に、図13を参照して、本実施形態に係る本発明適用時及び未適用時の、ソフトウェア制御構成の各階層と、コンフィグコントローラ130及び再構成部131の処理シーケンスについて説明する。図13(a)は、本発明未適用時の処理シーケンスを示し、図13(b)は、本発明適用時の処理シーケンスを示す。
まず、比較例として、本発明未適用の場合のシーケンス(図13(a))について説明する。シーケンス制御階層は、ジョブ要求を受信したとき、ジョブ解析を行い、再構成部にどの機能を有する回路を再構成するかを決定する。例えば、PDLプリントジョブ要求を受信した場合は、ジョブ解析の結果、CMYK色空間を有する画像データであり、ハーフトーン処理モードが、「ノーマル」であった場合を想定する。この場合、CMYKの色処理機能を有する回路構成と、CMYKのハーフトーン処理のうち、「ノーマル」に対応するディザ処理を行うハーフトーン処理機能を有する回路構成を用いることを決定する。
さらに、モジュール制御階層において、それぞれの回路構成用のモジュール制御部を選択する。これにより、要求に応じた回路構成を行うとともに、誤って回路構成に存在しない回路へのアクセスを行うことがないようにする。続いて、決定した回路構成に基づき、コンフィグコントローラを介して再構成部に回路を再構成する。再構成が完了した後、前述したモジュール制御部を介して、各種パラメータを通知し、コマンドアクセスにより再構成部に構成された回路に設定を行う。
つまり、図13(a)の場合、シーケンス制御階層が、ジョブ要求に含まれるどの処理要求が、どの回路構成に含まれる機能であるかを対応付けて管理する必要がある。したがって、例えばハーフトーン処理モードの「ノーマル」への割り当てによってシーケンス制御階層が、用いる回路構成を変える必要がある。例えば、MFPの製品仕様によって、誤差拡散処理によるハーフトーン処理に割り当てられた場合や、同じディザ処理でも形状の異なるディザマトリクスを用いたディザ処理に割り当てられた場合などがある。また、別の例として、書き換え容量が大きい再構成部を採用した場合、PDLプリント要求の時、RGBやCMYK、モノクロによらず一つの回路構成で処理できる。しかし、書き換え容量が小さい再構成部を採用している場合は、色空間によって用いる回路構成情報を選択する必要があり、その回路構成毎のモジュール制御部を動作させる必要がある。さらには、モジュール制御部についても、回路構成単位でソフトモジュールを構成する必要がある。そのため、シーケンス制御階層、モジュール制御階層のソフトウェアの、再構成部に対する依存性が高く、ソフトウェアの保守性や再利用性が低くなる。
次に、本発明適用の場合(図13(b))について説明する。本発明を適用した場合、シーケンス制御階層は、ジョブ要求を受信してからモジュール制御階層へ依頼する際に、S402乃至S405で説明したように、各ジョブに必要な一連の処理において回路構成に関与しない構成をとることが可能となる。モジュール制御階層も同様である。そしてアクセスコマンドが生成されてから、S601において説明したように、サービス階層がコマンド解析することにより、再構成部131の回路構成を決定する。サービス階層は、決定した回路構成の再構成処理を、S602、S611で説明したように、コンフィグコントローラ130と連動して行うことで完了する。その後、S604において説明したように、再構成された回路に対してコマンドアクセスを実行する。
以上説明したように、本発明を適用することにより、ジョブの種類や画像処理に関するパラメータ情報、又はFPGAの再構成部131の回路の容量に合わせて、上位階層のソフトモジュールを設計する必要がなくなる。これにより、ソフトウェアの保守性が向上し、開発工数、改変リスクを低減することが可能となる。
<第2の実施形態>
以下では、図11及び図12を用いて、本発明の第2の実施形態について説明する。上記第1の実施形態では、コマンドのアドレスパートを解析することにより、再構成部131へ書き込むコンフィグデータの決定を行ったが、本実施形態では、コマンドのアドレスパートとデータパートを用いる場合について説明する。なお、本実施形態では、ジョブ解析からコマンド生成までのシーケンスに関しては、図4乃至図6の説明と同様のため説明は省略する。
まず、図11を参照して、本実施形態で用いるコンフィグリストの一例について説明する。本実施形態では、アドレスの上位11bitと、ROM104に格納されている各機能のコンフィグデータの格納先の関連性に加え、アドレスの下位21bitと、データの値との関連性を示すテーブル(コンフィグリスト1101)を定義する。上記第1の実施形態と同様に、S601では、デバイスドライバ331は、S502において受け渡され、RAM111に格納したコマンド801を解析する。
図12を参照して、コマンド解析のフローについて詳細に説明する。S1001乃至S1004の動作は、上記第1の実施形態のS1001乃至S1004と同様であるため、説明を省略する。対応する機能がある場合は、S1201に進む。
S1201で、デバイスドライバ331は、解析中のコマンドにより、対応するコンフィグデータが有効に動作するか否かを判定する。本実施形態では、コンフィグリスト1101に、アドレスパートの下位bitとデータパートとの関連性が定義されている場合、コマンドのアドレスパートの下位bitとデータパートが、一致するコマンドが存在するか否かを確認する。一致した場合、さらに関連するコンフィグデータが定義されているかを確認し、定義されている場合はS1004へ進み、S1201で確認したコンフィグデータの機能を用いることを決定する。一方で、関連するコンフィグデータが定義されていない場合、アクセスアドレスに対応するコンフィグデータの機能を用いないものとしてS1001に進む。
例えば、コマンド801から読み出したコマンドとして、{アドレスパート、データパート}={0xC034_0000、 0x0000_0001}と、{0xC034_0004、 0x0000_0001}とが含まれていた場合について説明する。この場合、一つ目のコマンド({0xC034_0000、 0x0000_0001})の解析結果は「有効に動作する」である。これは、図11の1102に示すように、コンフィグリスト1101に対応するコンフィグデータ(CMYK用プリント画像処理)が格納されているためである。一方、二つ目のコマンド({0xC034_0004、 0x0001})の解析結果は「有効に動作しない」である。これは、図11の1103に示すように、コンフィグリスト1101に対応するコンフィグデータが格納されていないためである。この場合、どちらかの結果に優先順位を付けておくことにより、必要なコンフィグデータを決定することができる。
ここで、一つ目のコマンド({0xC034_0000、 0x0000_0001})は、CMYK用プリント画像処理のリセット解除を実行するコマンドである。2つ目のコマンド({0xC034_0004、 0x0001})は、CMYK用プリント画像処理のバイパス設定を行うコマンドである。つまり、ここではパイプライン処理を行うような機能において、必要のない一部の機能をバイパスして、後段の機能にデータを転送する場合を例にしている。しかしながら、「有効に動作しない」結果を得るコマンドは、バイパス設定に限るものではなく、再構成しなくても同様の処理が行える場合にも、コンフィグリストに関連するコンフィグデータを定義しないことにしてもよい。
また、本実施形態では、コマンドのデータパートが所定の値を示す場合の動作について説明したが、アドレスパートが所定の値の時に、データパートの値によらずに、「有効に動作する」又は「有効に動作しない」を決定するようにしてもよい。コンフィグリスト1101に、データパートを定義しないようにすることもできる。
また、S1201において、コマンドは存在するが、上述したように、そのアドレス毎の設定値を解析することにより、関連するコンフィグデータが未定義と解析した場合、同じアクセス先になるコマンドを、コマンド801から削除してもよい。再構成部131に構成されない機能に対するアクセスを省略することになり、設定時間を短縮することができる。
S1001において、デバイスドライバ331は、解析するコマンドが無い場合、解析動作を終了する。S1002以降の動作は、上記第1の実施形態と同様であるため、説明を省略する。
以上説明したように、本実施形態によれば、再構成部131のコンフィグレーションを必要に合わせて再構成する場合、ハードモジュールへのコマンド解析をアクセス先(アドレス)だけではなく、そのアドレス毎の設定値を解析する。これにより、本実施形態に係る画像処理装置100は、上記第1の実施形態における効果に加え、不要な再構成処理及び不要なコマンドアクセスを省くことができ、処理を開始するまでの時間を短縮することができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
100:画像処理装置、101:CPU、103:操作部、104:ROM、107:プリンタ部、109:スキャナ部、110:メモリコントローラ、111:RAM、130:コンフィグコントローラ、131:再構成部

Claims (12)

  1. 回路構成を再構成可能な再構成回路を有する画像処理装置であって、
    前記再構成回路に構成するための複数の機能ブロックごとの構成データを予め記憶する記憶手段と、
    ジョブを受け付ける受付手段と、
    前記受付手段によって受け付けたジョブを解析する解析手段と、
    前記解析手段によって解析されたジョブの種別に従って必要な前記機能ブロックを決定する機能決定手段と、
    前記決定手段によって決定された機能ブロックにおいて、前記ジョブを実行した際のメモリアクセス情報を含むコマンドを生成する生成手段と、
    前記生成手段によって生成されたコマンドに従って必要な構成データを決定する構成データ決定手段と、
    前記構成データ決定手段によって決定された構成データを、前記記憶手段から読み出して前記再構成回路を再構成する再構成手段と
    を備えることを特徴とする画像処理装置。
  2. 前記必要な構成データは、前記機能決定手段によって決定された機能ブロックの構成データと、当該機能ブロックが前記ジョブを実行するためにアクセスする他の機能ブロックの構成データとを含むことを特徴とする請求項1に記載の画像処理装置。
  3. 前記メモリアクセス情報は、前記ジョブを実行した際にアクセスするアドレスを含むことを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記メモリアクセス情報は、前記ジョブを実行した際にアクセスするアドレスと、使用するデータとを含むことを特徴とする請求項1又は2に記載の画像処理装置。
  5. 前記再構成手段は、前記構成データ決定手段によって決定された構成データに基づき、複数の前記機能ブロックに対応する構成データから、それぞれ少なくとも一部を読み出して前記再構成回路を再構成することを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
  6. 前記構成データ決定手段は、前記コマンドを解析することにより、前記記憶手段に対応する一部の構成データが記憶されていない場合は、当該一部の構成データを含まない前記必要な構成データを決定することを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
  7. 前記構成データ決定手段は、前記必要な構成データに含めなかった前記一部の構成データに対応するデータを前記コマンドから削除することを特徴とする請求項6に記載の画像処理装置。
  8. 回路構成を再構成可能な再構成回路を有する画像処理装置であって、
    前記再構成回路に構成するための複数の機能ブロックごとの構成データを予め記憶する記憶手段と、
    ジョブを受け付け、該受け付けたジョブの種別を解析し、必要な機能ブロックを決定する上位層制御手段と、
    前記上位層制御手段によって決定された前記必要な機能ブロックにおいて、前記ジョブを実行した際のメモリアクセスに従って必要な構成データを決定する下位層制御手段と、
    前記下位層制御手段によって決定された構成データを、前記記憶手段から読み出して前記再構成回路を再構成する再構成手段と
    を備えることを特徴とする画像処理装置。
  9. 前記上位層制御手段は、アプリケーション層の制御手段であり、
    前記下位層制御手段は、デバイスドライバであることを特徴とする請求項8に記載の画像処理装置。
  10. 回路構成を再構成可能な再構成回路を有し、前記再構成回路に構成するための複数の機能ブロックごとの構成データを予め記憶する記憶手段を備える画像処理装置の制御方法であって、
    受付手段が、ジョブを受け付ける受付工程と、
    解析手段が、前記受付工程において受け付けたジョブを解析する解析工程と、
    機能決定手段が、前記解析工程において解析されたジョブの種別に従って必要な前記機能ブロックを決定する機能決定工程と、
    生成手段が、前記決定工程において決定された機能ブロックにおいて、前記ジョブを実行した際のメモリアクセス情報を含むコマンドを生成する生成工程と、
    構成データ決定手段が、前記生成工程において生成されたコマンドに従って必要な構成データを決定する構成データ決定工程と、
    再構成手段が、前記構成データ決定工程において決定された構成データを、前記記憶手段から読み出して前記再構成回路を再構成する再構成工程と
    を実行することを特徴とする画像処理装置の制御方法。
  11. 回路構成を再構成可能な再構成回路を有し、前記再構成回路に構成するための複数の機能ブロックごとの構成データを予め記憶する記憶手段を備える画像処理装置の制御方法であって、
    上位層制御手段が、ジョブを受け付け、該受け付けたジョブの種別を解析し、必要な機能ブロックを決定する上位層制御工程と、
    下位層制御手段が、前記上位層制御工程において決定された前記必要な機能ブロックにおいて、前記ジョブを実行した際のメモリアクセスに従って必要な構成データを決定する下位層制御工程と、
    再構成手段が、前記下位層制御工程において決定された構成データを、前記記憶手段から読み出して前記再構成回路を再構成する再構成工程と
    を実行することを特徴とする画像処理装置の制御方法。
  12. 請求項1乃至9の何れか1項に記載の画像処理装置としてコンピュータを機能させるための該コンピュータで読み取り可能なプログラム。
JP2014066807A 2014-03-27 2014-03-27 画像処理装置、その制御方法及びプログラム Pending JP2015191335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014066807A JP2015191335A (ja) 2014-03-27 2014-03-27 画像処理装置、その制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014066807A JP2015191335A (ja) 2014-03-27 2014-03-27 画像処理装置、その制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2015191335A true JP2015191335A (ja) 2015-11-02

Family

ID=54425796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014066807A Pending JP2015191335A (ja) 2014-03-27 2014-03-27 画像処理装置、その制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2015191335A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671429B2 (en) 2016-10-13 2020-06-02 Fujitsu Limited Circuit assignment within reconfigurable device based on predicted shortest processing completion time

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671429B2 (en) 2016-10-13 2020-06-02 Fujitsu Limited Circuit assignment within reconfigurable device based on predicted shortest processing completion time

Similar Documents

Publication Publication Date Title
US9407784B2 (en) Image processing apparatus, control method thereof, and storage medium
US8059285B2 (en) Image forming apparatus, image processing unit, image processing method, and recording medium having image processing control program with task management
US10122883B2 (en) Image processing apparatus including circuit configuration and method of controlling the same
JP5247542B2 (ja) 画像処理装置、画像処理装置の制御方法、及び、プログラム
US20160036998A1 (en) Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method
JP6351315B2 (ja) 画像処理装置、その制御方法及びプログラム
US9509878B2 (en) Image processing apparatus and method for controlling the same, and storage medium
JP2005352699A (ja) 情報処理装置、並びに、その制御方法および情報処理方法
US9560164B2 (en) Image processing apparatus, method of controlling the same, non-transitory computer readable storage medium, and data processing apparatus
US20150244898A1 (en) Image processing apparatus, method for controlling the same, and storage medium
US10037591B2 (en) Information processing apparatus and method of controlling the same
JP2015191335A (ja) 画像処理装置、その制御方法及びプログラム
JP6516489B2 (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
JP2016076867A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5560785B2 (ja) 情報処理装置、画像形成装置及び情報処理方法
JP2015198405A (ja) 画像処理装置及びその制御方法、並びにプログラム
JP5202265B2 (ja) 画像処理装置、プログラム及び画像処理装置の制御方法
JP6914027B2 (ja) 画像形成装置、画像形成方法
JP5904148B2 (ja) 再構成可能回路、画像形成装置及びプログラム
JP2015197863A (ja) 画像処理装置及びその制御方法、並びにプログラム
JP2012165159A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP2016111502A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2015106751A (ja) 画像処理装置、その制御方法およびプログラム
JP2016136359A (ja) 画像処理装置、その制御方法及びプログラム