図1〜図11は、本発明の画像処理装置及び画像処理モジュールの一実施例を示す図であり、図1は、本発明の画像処理装置及び画像処理モジュールの一実施例を適用した複合装置1の要部ブロック構成図である。
図1において、複合装置1は、スキャナ部2、スキャナ画像処理部3、コントローラ画像処理部4、HDD(ハードディスク)5、CPU(Central Processing Unit )6、メインメモリ7、プロッタ画像処理部8及びプロッタ部9等を備えている。本実施例の複合装置1は、主走査方向のサイズがA0サイズ等の比較的広幅サイズの画像データを処理する広幅複合装置であり、後述する画像処理ASICとして、A3サイズ等の比較的狭幅サイズの狭幅複合装置等である狭幅画像処理装置に搭載される画像処理ASICが複数用いられている。
スキャナ部2は、例えば、CCD(Charge Coupled Device )を利用したカラーイメージスキャナ等が利用されており、原稿を主走査及び副走査して、原稿の画像を所定の解像度で読み取ってRGBのカラー画像信号をスキャナ画像処理部3に出力する。
スキャナ画像処理部3は、スキャナ特性補正部11及び出力制御部12等を備えており、スキャナ特性補正部11は、スキャナ部2のCCD特性の差異によるスキャナ画像データの特性の補正を行う。例えば、スキャナ特性補正部11は、シェーディング補正処理、γ変換処理、フィルタ処理、色変換処理等の補正処理を行い、シェーディング補正処理では、スキャナ部2の光源光量の主走査方向における分布バラツキやCCDの特性に起因する主走査方向の画像信号のバラツキを補正する。スキャナ特性補正部11は、γ変換処理では、スキャナ部2の露光光源の光量に対する画像ばらつき等の補正を行い、フィルタ処理では、γ変換処理されたRGB信号に、画像のシャープネス、モアレ除去等を行う。そして、スキャナ特性補正部11は、色変換処理で、スキャナ部2の露光光源の経時的な劣化等による色味の変化の補正を行い、この場合の色変換は、RGBからCMYKの変換ではなく、RGBからRGBへの変換である。
スキャナ画像処理部3の出力制御部12は、処理済みの画像データをコントローラ画像処理部3に出力し、PCI(Peripheral Component Interconnect) Express(以下、PCIeという。)という要求と応答が分離されていて応答を待たずに次の要求を発行できる高速スプリットトランザクションのバスのエンドポイント(以下、PCIe End Pointという。)が用いられている。
なお、スキャナ画像処理部3は、図示しないが、内部での画像データの転送を行うDMA(Direct Memory Access)コントローラを備えている。
コントローラ画像処理部4は、入力制御部21、蓄積制御部22、画像処理部23及びCPU I/F24等を備えており、入力制御部21は、PCIe Root Complex等が用いられていて、スキャナ画像処理部3からの画像データを受け取る。画像処理部23は、出力形態(ハードディスク蓄積、プロッタ部9での印刷出力、他の装置へのデータ転送等の出力形態)に応じた各種画像処理を行い、蓄積制御部22は、ハードディスク(HDD)5への画像データの蓄積やハードディスク5からの画像データの読み出しを行う。CPU I/F(動作制御手段、レジスタ制御手段)24は、CPU6とのインターフェイスであり、処理済みの画像データ等をCPU6に転送するとともに、後述するように、レジスタ設定等の処理を行う。コントローラ画像処理部4の各部21〜24にDMAC(DMAコントローラ)が内蔵されており、DMACによって各部21〜24の間のデータ転送を行う。
メインメモリ7は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、ROM内には、複合装置1の基本プログラムや後述する画像処理プログラム等のプログラム及び必要なシステムデータ等を格納されている。
CPU6は、メインメモリ7のROMに格納されているプログラム及びシステムデータに基づいて、RAMをワークメモリとして利用しつつ、複合装置1の各部を制御して、複合装置1としての基本処理を実行するとともに、後述する画像処理を実行する。特に、CPU6は、コントローラ画像処理部4とのデータ転送用のPCIe Root Complex31及びプロッタ画像処理8とのデータ転送用のPCIe Root Complex32を備えている。
すなわち、複合装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像処理方法を実行する画像処理プログラムを読み込んでメインメモリ7のROMやハードディスク5等に導入することで、後述する狭幅画像処理装置(複合装置等)と広幅画像処理装置である複合装置1とでソフトウェアの変更を行うことなくハードウェア処理として共用させて処理する適切にかつ高速に画像処理する画像処理方法を実行する画像処理装置である複合装置として構築されている。この画像処理プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
メインメモリ7のRAMは、CPU6のワークメモリとして利用されるとともに、コントローラ画像処理部4で画像処理された画像データがCPU6を介して格納され、CPU6によって読み出されて、プロッタ部9での印刷処理や他の装置への転送に供される。
プロッタ画像処理部8は、PCIe End Point41及び複数の出力処理部42等を備えており、PCIe End Point41がCPU6のPCIe Root Complex32から画像データを受け取って出力処理部42に渡す。出力処理部42は、画像データを受け取ると、該画像データをCMYKの画像データに変換してそれぞれの画像データの出力タイミングでプロッタ部9に転送する。
プロッタ部9は、例えば、電子写真式記録装置等が使用されており、プロッタ画像処理部8から送られてくるCMYKの画像データに基づいて、カラー画像を用紙に記録出力する。
上記コントローラ画像処理部4は、その画像処理部23として、図2に示すように、第1から第3の3つの画像処理ASIC(画像処理モジュール)50a〜50cを備えており、各画像処理ASIC50a〜50cは、それぞれPCIeのPCIe Root Complex61a〜61c及びPCIe End Point62a〜62cを備えていて、PCIeを利用してデータの送受信を行う。
第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cは、直列に接続されており、第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cには、設定端子であるモード設定端子(図示略)が設けられていて、設定状態に応じたモード設定信号(構成動作制御信号)を第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cに出力する。すなわち、モード設定端子は、A0サイズの広幅の複合装置に適用されるときには、図2に示すように、第1画像処理ASIC50aに、「01b」のモード設定信号を、第2画像処理ASIC50bに、「10b」のモード設定信号を、第3画像処理ASIC50cに、「11b」のモード設定信号を、それぞれ出力する状態に設定され、A3サイズ等の比較的小さいサイズの複合装置に適用されるときには、「00b」のモード設定信号を出力する状態に設定される。すなわち、画像処理ASIC50a〜50cは、該画像処理ASIC50a〜50cが複数直列に接続されているか否かを示すとともに複数接続されているときには複数の後述する画像処理機能部63a、63b、63c〜66a、66b、66cの実行する画像処理を複数の画像処理ASIC50a〜50cに分担させかついずれの画像処理を複数の該画像処理ASIC50a〜50cのうち、いずれの画像処理ASIC50a〜50cに実行させるのかの処理分担情報を示す構成動作制御信号であるモード設定端子が設けられている。
そして、画像処理ASIC50a〜50cは、第3画像処理ASIC50cについて図3に示すように、構成されている。なお、以下の図3の説明では、第1画像処理ASIC50cに割り当てた「c」の符号のみを付した番号を用いて説明するが、他の画像処理ASIC50a、50bについても同様である。
図3において、画像処理ASIC50cは、PCIe Root Complex61c、フィルタ処理機能部(図3では、フィルタ処理部と記載。)63c、色補正機能部(図3では、色補正部と記載。)64c、変倍処理機能部(図3では、変倍処理部と記載。)65c、階調処理機能部(図3では、階調処理部と記載。)66c、メモリセレクタ部67c、内蔵メモリ68c、動作イネーブル制御部69c、起動制御部70c、レジスタI/F部71c、画像処理データ用DMAC72c、アービタ73c、蓄積データ用DMAC(Direct Memory Access Controller)74c、蓄積制御部75c及びPCIe End Point62c等を備えており、図3において、Mは、マスタ、Sは、スレーブを示している。
PCIe Root Complex61cは、ターゲットとイニシエータを備えており、前段のASICとフィルタ処理部63c及びレジスタI/F71cとの間の画像データ及び信号の授受を行う。
フィルタ処理機能部63cから階調処理部66cの各画像処理機能部(画像処理機能手段)のうち、メモリ68cを使用する画像処理機能部、すなわち、フィルタ処理機能部63c、変倍処理機能部65c及び階調処理機能部66cは、メモリI/F、データ処理部及びレジスタ部等を備えており、レジスタ部には、レジスタI/F部71cの画像処理レジスタI/Fを介してCPU6から画像処理パラメータが設定される。フィルタ処理機能部63c、変倍処理機能部65c及び階調処理機能部66cは、そのデータ処理部が、メモリI/Fを介してメモリセレクタ部67cにアクセスして内蔵メモリ68cのうち使用する内蔵メモリ68cを選択して、レジスタ部に設定される画像処理パラメータに応じた画像処理を、該内蔵メモリ68cを利用して行う。これらのフィルタ処理機能部63c、変倍処理機能部65c及び階調処理機能部66cは、画像処理を行うのに、主走査サイズ分のラインバッファが必要である。すなわち、A0サイズ等の広幅の画像データを画像処理する場合には、該広幅(A0)サイズのラインバッファが必要であるが、本実施例の複合装置1は、内蔵メモリ68として、該広幅サイズよりも主走査サイズの小さい主走査サイズ、例えば、A3サイズのラインメモリしか内蔵していない。
そして、フィルタ処理部63cは、入力された画像に、平滑化やエッジ強調等の処理を行って、文字部、絵柄部それぞれに適した画像補正を行い、処理済みの画像データを色補正機能部64cに出力する。
色補正機能部64cは、データ処理部とレジスタ部のみを備えており、入力されるRGBの画像データをCMYKの画像データに色補正して変倍処理機能部65cに出力する。
変倍処理機能部65cは、入力される画像データに対して主走査方向または副走査方向の拡大処理または縮小処理を行って階調処理機能部66cに出力し、階調処理機能部66cは、入力されるCMYKの画像データに対して階調処理を行って画像処理データ用DMAC72cに出力する。
そして、複合装置1は、上述のように、主走査サイズが、広幅サイズよりも主走査サイズの小さい狭幅サイズの画像処理ASIC50a〜50cを広幅の複合装置と狭幅の複合装置とに共用しているため、内蔵メモリ68a〜68cは、狭幅のラインメモリ、例えば、A3サイズのラインメモリがしか内蔵していない。
そこで、複合装置1は、広幅の複合装置として、画像処理を適切に行うためには、内蔵メモリ68cを狭幅の複合装置と同じように複数の画像処理機能部でそのまま共有使用したのでは、メモリ容量が不足するため、メモリセレクタ部67cが、動作イネーブル制御部69cからのメモリ切り替え信号によって、CPU6で制御することなく、ハードウェアの設定のみで、フィルタ処理機能部63c、変倍処理機能部65c及び階調処理機能部66cのうち、画像処理ASIC50cの画像処理機能としてCPU6によって割り当てられている画像処理機能の画像処理機能部63c〜66cにのみ内蔵メモリ68cを占有させ、該割り当てられている画像処理内容の画像処理を、該画像処理内容に対応する画像処理機能部63c〜66cで内蔵メモリ68cを使用して実行する。
例えば、第3画像処理ASIC50cの場合、モード設定端子からモード設定信号として「11b」が動作イネーブル制御部(動作制御手段、動作切り替え制御手段)69cに入力され、動作イネーブル制御部69cが、階調処理機能部66cのみに内蔵メモリ68cを使用させるメモリ切り替え信号をメモリセレクタ部67cに出力して、階調処理機能部66cが内蔵メモリ68cを独占して使用して階調処理を実行する。
すなわち、第3画像処理ASIC50cは、動作イネーブル制御部69cに、上記モード設定端子から「11b」のモード設定信号が入力されるとともに、レジスタI/F部71を介してCPU6からのレジスタライトが入力され、動作イネーブル制御部69cは、CPU6からのレジスタライトとモード設定信号に基づいて動作イネーブル信号を生成して各機能部63c〜66cに出力するとともに、メモリ制御部67cにメモリ切り替え信号を出力する。すなわち、動作イネーブル制御部69cは、図4に示すような動作設定テーブルを内部メモリ等に格納しており、モード設定信号とレジスタ値に基づいて動作設定テーブルを参照して、各機能部63c〜66cに出力する動作イネーブル信号を決定する。例えば、第3画像処理ASIC50cの場合、複合装置1がA0等の広幅複合装置であって、モード設定端子からモード設定信号として、「11b」が動作イネーブル制御部69cに入力されるので、動作イネーブル制御部69cは、図4の動作設定テーブルを参照して、フィルタ処理機能部63c、色補正機能部64c及び変倍処理機能部65cには、強制的に「0」の動作イネーブル信号を出力し、階調処理機能部65cには、CPU6からのレジスタ設置値に依存した値(「0」または「1」)の動作イネーブル信号を出力する。この場合、本実施例では、画像処理機能部が階調処理機能部66cまでであるが、階調処理機能部66c以降にも画像処理機能部があるときには、該画像処理機能部にもレジスタ設定値に応じた動作イネーブル信号を出力する。また、メモリセレクタ部67cは、メモリ切り替え信号に応じて内蔵メモリ68cと複数の画像処理機能部63c〜66cとの接続の切り替えを行って、内蔵メモリ68cをいずれか一つの画像処理機能部63c〜66cに占有させる。
なお、他の画像処理ASIC50a、50bも同様に、モード設定端子から入力されるモード設定信号によって、その動作イネーブル制御部69a、69bが、図4に示す動作設定テーブルを参照して該モード設定信号によって設定される画像処理機能部63a、63b〜66a、66bに内蔵メモリ68a、68bを占有させて、CPU6からのレジスタ設置値に応じた画像処理を行わせる。
再び、図3において、起動制御部70cは、画像処理機能部63c〜66c、特に、階調処理機能部66cとメインメモリ7との間の画像データ転送、または、蓄積制御部75cとメインメモリ7との間のデータ転送を司るDMAC(Direct Memory Access Controller)の起動制御を行い、蓄積制御部75cは、ハードディスク(HDD)5への画像データの蓄積やハードディスク5からの画像データの読み出し制御を行う。
レジスタ(Register)I/F部(動作制御手段、レジスタ制御手段)71cは、CPU6がアクセスするレジスタ領域とレジスタの種別(レジスタ値情報)に応じてスレーブとなるレジスタI/Fを選択し、PCIe End Point62からのレジスタアクセスはこのレジスタI/F部71cに入って、レジスタI/F部71cがマスタ、各処理機能部63c〜66cのレジスタ部がスレーブとなってレジスタアクセスする。第3画像処理ASIC50cの各モジュールのレジスタI/Fは、第3画像処理ASIC50cに内蔵の共通設定レジスタI/F(内蔵共通設定レジスタI/F)、第3画像処理ASIC50cに内蔵の画像処理レジスタI/F(内蔵画像処理I/F)、後段ASICレジスタI/Fに大別できる。また、レジスタの種別は、共通設定、画像処理パラメータ、画像処理ステータスに大別される。共通設定とは、DMACの起動制御や、画像処理モジュールのイネーブル制御を行うレジスタである。共通設定は、ASIC全体の起動制御に関わるため、共通設定へのアクセス時には3個全ての画像処理ASIC50a〜50cに対してレジスタ設定する必要がある。画像処理パラメータと画像処理ステータスは、画像処理ASIC50a〜50cが内蔵しているフィルタ処理/色補正/変倍処理/階調処理の各画像処理機能部63c〜66cに関するレジスタである。レジスタI/F部71cは、画像処理パラメータと画像処理ステータスへのアクセス時には、上述のように、モード入力端子により決定されるそれぞれの画像処理ASIC50a〜50cが担当する画像処理に応じてレジスタアクセスの有無を判定し、レジスタアクセスを制御する。
上記動作イネーブル制御部69a〜69c、起動制御部70a〜70c、レジスタI/F部71a〜71c及びメモリセレクタ部67a〜67cは、全体として、モード設定信号(構成動作制御信号)に基づいて画像処理ASIC50a〜50cが複数接続されているか否かの判定と処理分担情報の取得を行うとともに該判定結果と該処理分担情報及びCPU6からのレジスタ値情報に基づいて画像処理機能部63a、63b、63c〜66a、66b、66cのレジスタ部へのレジスタ値の設定制御及び内蔵メモリ68a〜68cの利用制御を行う動作制御手段として機能している。ここで、情報分担情報とは、複数の画像処理機能部63a、63b、63c〜66a、66b、66cの実行する画像処理を複数の画像処理ASIC50a〜50cに分担させかついずれの画像処理を複数の画像処理ASIC50a〜50cのうち、いずれの画像処理ASIC50a〜50cに実行させるのかの情報である。
次に、本実施例の作用を説明する。本実施例の複合装置1は、コントローラ画像処理部4に、狭幅用の画像処理ASIC50a〜50cを複数搭載し、該狭幅用の画像処理ASIC50a〜50cが広幅用画像処理装置である複合装置1に適用されていることを、各画像処理ASIC50a〜50cがハードウェア的に認識して、該狭幅用の複数の画像処理ASIC50a〜50cを用いて広幅の画像データの画像処理を適切に行う。すなわち、複合装置1は、コントローラ画像処理部4に狭幅用の3つの画像処理ASIC50a〜50cを搭載しており、各画像処理ASIC50a〜50cは、それぞれ複数の画像処理機能(フィルタ処理機能、色補正機能、変倍処理機能、階調処理機能等)を有しているが、各画像処理機能は、その機能を実行するためには、広幅用の主走査サイズ(A0サイズ等)分のラインバッファが必要な処理機能(フィルタ処理機能、変倍処理機能、階調処理機能)がある。ところが、各画像処理ASIC50a〜50cには、狭幅であるA3サイズのメモリ容量の内蔵メモリ68a〜68cしか内蔵されていない。そこで、各画像処理ASIC50a〜50cには、モード設定端子が設けられていて、該モード設定端子の設定によって出力するモード設定信号に基づいて、それぞれの画像処理ASIC50a〜50cが内蔵している内蔵メモリ68a〜68cの使い方を可変させ、内蔵メモリ68a〜68cを、内蔵メモリ68a〜68cを必要とするフィルタ処理機能、変倍処理機能、階調処理機能のうち、いずれか一つの処理機能に占有させることで、広幅(A0)サイズの画像処理を行う。
そして、複合装置1は、コントローラ画像処理部4での処理としては、図5に示す画像処理パラメータの設定処理と、図6に示す該パラメータに応じた画像処理とに分かれる。なお、図5及び図6では、コントローラ画像処理部4の各画像処理ASIC50a〜50cを概念化して示しており、詳細な構成は、図3に示したような構成となっている。なお、図5において、各種画像処理部51a〜51cは、各画像処理ASIC50a〜50cのフィルタ処理機能部63a〜63cから階調処理機能部66a〜66cまでの処理機能部を総称したものであり、画像処理レジスタ52a〜52cは、各画像処理ASIC50a〜50cのフィルタ処理機能部63a〜63cから階調処理機能部66a〜66cの備えているレジスタ部を総称したものである。また、起動レジスタ53a〜53cは、画像処理時に、起動対象の画像処理部51a〜51cであるときに、CPU6によってライトアクセスされるレジスタである。
まず、コントローラ画像処理部4における画像処理パラメータの設定処理について、図5に基づいて説明する。複合装置1は、図5に示すように、CPU6がコントローラ画像処理部4に対して、画像パラメータをライトアクセスし、第3画像処理ASIC50cのレジスタI/F部71cにライトアクセスが入る(図5のパスP1)。複合装置1は、さらに、第3画像処理ASIC50cのレジスタI/F部71cから、画像処理レジスタ52cにライトアクセスし、または、第2画像処理ASIC50bにライトアクセスして(図5のパスP2)、第2画像処理ASIC50bのレジスタI/F部71bにライトアクセスが入る(図5のパスP3)。第2画像処理ASIC50bのレジスタI/F部71bは、第2画像処理部50bの画像処理レジスタ52bにライトアクセスし、または、第1画像処理ASIC50aにライトアクセスして(図5のパスP4)、第1画像処理ASIC50aのレジスタI/F部71aにライトアクセスが入る(図5のパスP5)。第1画像処理ASIC50aのレジスタI/F部71aは、第1画像処理ASIC50a内の画像処理レジスタ52aにライトアクセスし(図5のパスP6)、それぞれの画像処理ASIC50a〜50cの画像処理レジスタ52a〜52cに画像パラメータが設定される。
次に、コントローラ画像処理部4における画像データに対する画像処理について、図6に基づいて説明する。上述のようにしてレジスタ設定が完了すると、複合装置1は、図6に示すように、CPU6がコントローラ画像処理部4に対して、起動レジスタをライトアクセスし、まず、第3画像処理ASIC50c内のレジスタI/F部71cにライトアクセスする(図6のパスD1)。第3画像処理ASIC50cのレジスタI/F部71cは、起動レジスタ52c及び第2画像処理ASIC50bのレジスタI/F部71bにライトアクセスして(図6のパスD2)、第2画像処理ASIC50bのレジスタI/F部71bにライトアクセスが入る(図6のパスD3)。第2画像処理ASIC50bのレジスタI/F部71bは、第2画像処理ASIC50bの起動レジスタ53b及び第1画像処理ASIC50aにライトアクセスして(図6のパスD4)、第1画像処理ASIC50aのレジスタI/F部71aにライトアクセスが入力される(図6のパスD5)。第1画像処理ASIC50aのレジスタI/F部71aは、起動レジスタ53aにライトアクセスする(図6のパスD6)。この時点で、スキャナ画像処理部3からの入力を転送元とし、CPU6を転送先としたDMA転送の準備が完了する。
次に、スキャナ画像処理部3から第1画像処理ASIC50aへ画像データが入力され(図6のパスD7)、第1画像処理ASIC50aは、画像処理部51aで第1画像処理ASIC50aに割り当てられている画像処理であるフィルタ処理と色補正を行って、第2画像処理ASIC50bに出力する(図6のパスD8)。第2画像処理ASIC50bは、第1画像処理ASIC50aから送られてきた画像データに対して変倍処理を行って、第3画像処理ASIC50cに送り(図6のパスD9)、第3画像処理ASIC50cは、第2画像処理ASIC50bから送られてきた画像データに対して階調処理を施してCPU6に転送する(図6のパス10)。
すなわち、複合装置1は、コントローラ画像処理部4が、狭幅用の3つの画像処理ASIC50a〜50cを搭載しており、各画像処理ASIC50a〜50cは、そのモード設定端子から入力されるモード設定信号によって設定される1つの画像処理機能部63a、63b、63c〜66a、66b、66cの画像処理のみをその搭載する内蔵メモリ68a〜68cを占有させて実行する。
そして、上記処理を適切に行うために、レジスタI/F部71a〜71cは、CPU6からライトアクセスがあると、図7にレジスタI/F部71cについて示すライトアクセス時レジスタ設定処理を行い、また、CPU6からリードアクセスがあると、図8にレジスタI/F部71cについて示すリードアクセス時レジスタ設定処理を行う。
まず、ライトアクセス時レジスタ設定処理について、図7に基づいて説明する。第3画像処理ASIC50cのレジスタI/F部71cは、CPU6からライトアクセスがあると、該ライトアクセスの処理対象のレジスタ種別を判別し(ステップS101)、レジスタの種別が共通設定レジスタであると、内蔵の共通設定レジスタI/F(例えば、起動制御部70c、動作イネーブル制御部69cのレジスタI/F)にライトアクセスするとともに、前段(レジスタの設定方向では後段であるが、画像データの処理方向においては前段であるので、以下、画像データの処理方向を処理流れ方向として、前段、後段の表現を行う。)の第2画像処理ASIC50bのレジスタI/F部71bへライトアクセスする(ステップS102)。
ステップS101で、ライトアクセスの処理対象のレジスタの種別が画像処理パラメータの設定であると、レジスタI/F部71cは、該画像処理パラメータが第3画像処理ASIC50cが処理担当の画像処理であるかチェックし(ステップS103)、第3画像処理ASIC50cが処理担当の画像処理であると、第3画像処理ASIC50cが内蔵する画像処理レジスタ52bにライトアクセスして画像パラメータを設定する(ステップS104)。
ステップS103で、設定対象の画像処理パラメータが第3画像処理ASIC50cが処理担当の画像処理でないときには、レジスタI/F部71cは、内蔵の画像処理レジスタ(シャドウレジスタ)52cのレジスタI/Fにライトアクセスして、該画像処理レジスタ52cに該画像処理パラメータを書き込むとともに、前段の第2画像処理ASIC50bのレジスタI/F部71bにライトアクセスする(ステップS105)。なお、シャドウレジスタ(代理レジスタ)とは、レジスタの実体は前段の画像処理ASIC50b、50aにあるがレジスタ値のみをコピーとして保存しておくレジスタを意味する。
そして、前段の第2画像処理ASIC50bのレジスタI/F部71bは、第3画像処理ASIC50cのレジスタI/F部71bと同様に処理を行い、また、さらに前段の第1画像処理ASIC50aのレジスタI/F部71aは、同様に処理を行うが、第1画像処理ASIC50aは、第1画像処理ASIC50aよりも前段に画像処理ASICが存在しないため、前段の画像処理ASICのレジスタI/Fへのライトアクセスを行わない。すなわち、上記処理は、CPU6からライトアクセスされてからスレーブとなるレジスタI/Fを選択する処理を示している。
次に、リードアクセス時レジスタ設定処理について、図8に基づいて説明する。第3画像処理ASIC50cのレジスタI/F部71cは、図8に示すように、CPU6からリードアクセスがあると、該リードアクセスの処理対象のレジスタ種別を判別し(ステップS201)、レジスタの種別が共通設定レジスタであると、内蔵の共通設定レジスタI/F(例えば、起動制御部70c、動作イネーブル制御部69cのレジスタI/F)にリードアクセスする(ステップS202)。共通設定レジスタがリード対象であるときには、全ての画像処理ASIC50a〜50cに同じ値がライトされているため、第3画像処理ASIC50cのみをリード対象とし、他の画像処理ASIC50a、50bをリード対象とする必要がない。
ステップS201で、リードアクセスの処理対象となっているレジスタの種別が画像処理パラメータの設定であると、レジスタI/F部71cは、該画像処理パラメータが第3画像処理ASIC50cの処理担当とする画像処理であるかチェックし(ステップS203)、第3画像処理ASIC50cが処理担当の画像処理であると、第3画像処理ASIC50cが内蔵する画像処理レジスタ52bにリードアクセスして画像処理パラメータをリードする(ステップS204)。
ステップS203で、設定対象の画像処理パラメータが第3画像処理ASIC50cが処理担当の画像処理でないときには、レジスタI/F部71cは、内蔵の画像処理レジスタ(シャドウレジスタ)52cのレジスタI/Fにリードアクセスして、該画像処理レジスタ52cから画像処理パラメータをリードする(ステップS205)。上述のように、画像処理パラメータは、ライト時に、第3画像処理ASIC50cの内蔵のシャドウレジスタにライトされているため、このシャドウレジスタをリードすることで、前段の第2画像処理ASIC50b及び第1画像処理ASIC50aをリードする必要がない。
ステップS201で、リードアクセスの処理対象のレジスタ種別が画像処理ステータスであると、レジスタI/F部71cは、該画像処理ステータスが第3画像処理ASIC50cの処理担当とする画像処理であるかチェックし(ステップS206)、第3画像処理ASIC50cが処理担当とする画像処理であると、第3画像処理ASIC50cが内蔵する画像処理レジスタ52bにリードアクセスして画像処理ステータスをリードする(ステップS207)。
ステップS206で、設定対象の画像処理ステータスが第3画像処理ASIC50cが処理担当の画像処理でないときには、レジスタI/F部71cは、内蔵の画像処理レジスタ(シャドウレジスタ)52cのレジスタI/Fにリードアクセスして、該画像処理レジスタ52cから画像処理ステータスをリードする(ステップS205)。
なお、図8のステップS203からステップS205の処理は、第1画像処理ASIC50b及び第2画像処理ASIC50bでは、実行されない。
そして、各画像処理ASIC50a〜50cでの画像処理は、図9から図11に示すように実行される。第3画像処理ASIC50cは、図9にレジスタデータの流れを太い矢印付き破線で示すように処理し、画像データを太い矢印付き実線で示すように処理する。すなわち、第3画像処理ASIC50cは、CPU6からレジスタアクセスが、PCIe End Point62cを経由してレジスタI/F部71cに入ると、レジスタI/F部71cが、レジスタアクセスする領域を判定する(図9のパスR1c)。第3画像処理ASIC50cは、アクセス領域がASIC内蔵レジスタの場合には、起動制御部70c(図9のパスR2c)または動作イネーブル制御部69c(図9のパスR3c)、あるいは、フィルタ処理/色補正/変倍処理/階調処理の画像処理機能部63c〜66cのレジスタ部(図9のパスR4c)へレジスタアクセスする。第3画像処理ASIC50cは、アクセス領域が第1画像処理ASIC50aや第2画像処理ASIC50bである場合には、PCIe Root Complex61c経由で前段の第2画像処理ASIC50bへレジスタアクセスするとともに(図9のパスR5c)、第3画像処理ASIC50cのレジスタ部の画像処理レジスタI/F(シャドウレジスタ)へライトアクセスを行う(図9のパスR4c)。
そして、第3画像処理ASIC50cは、第2画像処理ASIC50bから画像データが送られてくると、太い矢印付き実線で示すように、画像データの処理を行う。すなわち、第3画像処理ASIC50cは、第2画像処理ASIC50bから画像データが送られてくると、画像データをPCIe Root Complex61cを経由させて画像処理機能部63c〜66cに送り込む(図9のパスD1c)。第3画像処理ASIC50cでは、画像処理機能部63c〜66cのうち、「0」の動作イネーブル信号が入力されるフィルタ処理機能部63c、色補正機能部64c及び変倍処理機能部65cは、画像処理を行わずにスルー状態で画像データを流し(図9のパスD2c)、「1」の動作イネーブル信号が階調処理機能部66cは、内蔵メモリ68cを占有して、広幅サイズ(例えば、A0サイズ)の画像処理を行う(図9のパスD3c)。第3画像処理ASIC50cは、階調処理後の画像データを、画像処理データ用DMAC72c及びアービタ73cを介してDMACによりPCIe End Point62c経由でCPU6を介してメインメモリ7に転送する(図9のパスD4c)。
第2画像処理ASIC50bは、図10にレジスタデータの流れを太い矢印付き破線で示すように処理し、画像データを太い矢印付き実線で示すように処理する。すなわち、第2画像処理ASIC50bは、第3画像処理ASIC50cからレジスタアクセスが、PCIe End Point62bを経由してレジスタI/F部71bに入ると、レジスタI/F部71bが、レジスタアクセスする領域を判定する(図10のパスR1b)。第2画像処理ASIC50bは、アクセス領域がASIC内蔵レジスタの場合には、起動制御部70b(図10のパスR2b)または動作イネーブル制御部69b(図10のパスR3b)、あるいは、変倍処理機能部65bのレジスタ部(図10のパスR4b)へレジスタアクセスする。第2画像処理ASIC50bは、アクセス領域が第1画像処理ASIC50aである場合には、PCIe Root Complex61b経由で前段の第1画像処理ASIC50aへレジスタアクセスする(図10のパスR5b)。
そして、第2画像処理ASIC50bは、第1画像処理ASIC50aから画像データが送られてくると、太い矢印付き実線で示すように、画像データの処理を行う。すなわち、第2画像処理ASIC50bは、第1画像処理ASIC50aから画像データが送られてくると、画像データをPCIe Root Complex61bを経由させて画像処理機能部63b〜66bに送り込む(図10のパスD1b)。第2画像処理ASIC50bでは、フィルタ処理機能部63b及び色補正機能部64bには「0」の動作イネーブル信号が入力されるので、フィルタ処理機能部63b及び色補正機能部64bでは画像処理を行わずにスルー状態で画像データを流し(図10のパスD2b)、「1」の動作イネーブル信号が入力されている変倍処理機能部65bで、内蔵メモリ68cを占有して、広幅サイズ(例えば、A0サイズ)の画像処理を行う(図10のパスD3b)。第2画像処理ASIC50bは、変倍処理後の画像データを、次の階調処理機能部66bに送るが、第2画像処理ASIC50bでは、階調処理機能部66bには、「0」の動作イネーブル信号を動作イネーブル制御部69bから入力しているので、画像データを階調処理機能部66bをスルーさせて(図10のパスD4b)、画像処理データ用DMAC72c及びアービタ73cを介してDMACによりPCIe End Point62b経由で後段の第3画像処理ASIC50cに転送する(図10のパスD5b)。
そして、第1画像処理ASIC50aは、図11にレジスタデータの流れを太い矢印付き破線で示すようにレジスタ処理を行い、画像データを太い矢印付き実線で示すように画像処理を行う。すなわち、第1画像処理ASIC50aは、第2画像処理ASIC50bからレジスタアクセスが、PCIe End Point62aを経由してレジスタI/F部71aに入ると、レジスタI/F部71aが、レジスタアクセスする領域を判定する(図11のパスR1a)。第1画像処理ASIC50aは、アクセス領域がASIC内蔵レジスタの場合には、起動制御部70a(図11のパスR2a)または動作イネーブル制御部69a(図11のパスR3a)、あるいは、フィルタ処理機能部63a及び色補正機能部64bのレジスタ部(図11のパスR4a)へレジスタアクセスする。なお、第1画像処理ASIC50aよりも前の処理段には、画像処理ASICが存在しないため、第1画像処理ASIC50aよりも前の段へのレジスタアクセスは存在しない。
そして、第1画像処理ASIC50aは、スキャナ画像処理部3から画像データが送られてくると、太い矢印付き実線で示すように、画像データの処理を行う。すなわち、第1画像処理ASIC50aは、スキャナ画像処理部3から画像データが送られてくると、画像データをPCIe Root Complex61aを経由させて画像処理機能部63b〜66bに送り込む(図11のパスD1a)。第1画像処理ASIC50aでは、フィルタ処理機能部63aに「1」の動作イネーブル信号が入力されているので、フィルタ処理機能部63aが内蔵メモリ68aを占有して、広幅サイズの画像データのフィルタ処理を行って色補正処理部64aに渡し(図11のパスD2a)、色補正機能部64aには「1」の動作イネーブル信号が入力されているので、色補正機能部64aは、フィルタ処理後の画像データに対して色補正処理を施して変倍処理機能部65aに送る(図11のパスD3a)。第1画像処理ASIC50aでは、変倍処理機能部65a及び階調処理機能部66aには、「0」の動作イネーブル信号が入力されているので、変倍処理機能部65a及び階調処理機能部66aは、画像処理を行わずにスルー状態で画像データを流画像処理データ用DMAC72aに送り、画像処理データ用DMAC72a及びアービタ73aを介してDMACによりPCIe End Point62a経由で後段の第2画像処理ASIC50bに転送する(図11のパスD5a)。
複合装置1は、広幅の画像データを処理可能な装置であって、3つの画像処理ASIC50a〜50cが搭載されており、各画像処理ASIC50a〜50cは、広幅の複合装置1に搭載されると、各画像処理ASIC50a〜50cの上記モード設定端子から「01b」、「10b」、「11b」等のモード設定信号が入力されることで、内蔵メモリ68a〜68cを1つの画像処理機能部に占有させて該画像処理機能部に広幅の画像データに対して、CPU6によって割り当てられる画像処理を実行させている。
そして、画像処理ASICが狭幅の画像データを処理可能な狭幅の複合装置等の画像処理装置に搭載されると、上述のように、該画像処理ASICには、「00b」等の狭幅の装置に搭載されていることを示すモード設定信号が入力されることで、該画像処理ASICは、備えている複数の画像処理機能部によって内蔵メモリを共有利用して、それぞれの画像処理機能部にそれぞれの画像処理を実行させる。
このように、本実施例の複合装置1は、所定容量の内蔵メモリ68a〜68cと複数の画像処理機能部63a、63b、63c〜66a、66b、66cを搭載して該画像処理機能部63a、63b、63c〜66a、66b、66cがそのレジスタ部に設定されるレジスタ値に応じて該内蔵メモリ68a〜68cを利用して入力画像データに対してそれぞれ異なる画像処理を実行する画像処理ASIC(画像処理モジュール)50a〜50cが、複数直列に接続されているか否かと複数接続時に複数の画像処理機能部63a、63b、63c〜66a、66b、66cの実行する画像処理を複数の該画像処理ASIC50a〜50cに分担させかついずれの画像処理を複数の該画像処理ASIC50a〜50cのいずれの画像処理ASIC50a〜50cに実行させるのかの処理分担情報を示すモード設定信号(構成動作制御信号)の入力されるモード設定端子と、モード設定信号に基づいて画像処理ASIC50a〜50cが複数接続されているか否かの判定と該処理分担情報の取得を行うとともに該判定結果と該処理分担情報及びCPU6からのレジスタ値情報に基づいて画像処理機能部63a、63b、63c〜66a、66b、66cのレジスタ部へのレジスタ値の設定制御及び内部メモリ68a〜68cの利用制御を行う動作制御手段として、動作イネーブル制御部69a〜69c、起動制御部70a〜70c、レジスタI/F部71a〜71c及びメモリセレクタ部67a〜67cと、を備えている。
したがって、複合装置等の画像処理装置が、狭幅サイズの画像データを処理対象とする狭幅画像処理装置であって画像処理ASICが1個のみ搭載されているのか、広幅サイズの画像データを処理対象とする広幅画像処理装置であって画像処理ASICが複数個搭載されているのか、複数個搭載されているときには、その画像処理ASICの分担する画像処理内容をモード設定端子で設定されるモード設定信号によってハードウェアとしての画像処理ASIC自体が把握して、複数の画像処理ASICを搭載している場合にも、CPUとしては、単独の画像処理ASICを搭載している場合と同じ制御を行うことで、必要なレジスタ設定を適切に行うことができ、画像データに対して適切かつ高速に画像処理することができる。
また、本実施例の複写装置1は、動作制御手段としての動作イネーブル制御部69a〜69c、起動制御部70a〜70c、レジスタI/F部71a〜71c及びメモリセレクタ部67a〜67cが、モード設定信号が画像処理ASICの複数接続を示しており、該画像処理ASICがCPU6から直接レジスタ値情報を受け取る直接制御画像処理ASIC、すなわち、第3画像処理ASIC50cであってCPU6から受け取ったレジスタ値情報がパラメータの設定情報であると、該パラメータのうち、該レジスタ値情報の指定する第3画像処理ASIC50cが搭載する画像処理機能部63c〜66cのレジスタ部への設定が要求されているパラメータの該レジスタ部への設定と第3画像処理ASIC50c以外の他の画像処理ASIC50a、50bが搭載する画像処理機能部63a、63b〜66a、66bのレジスタに設定すべきパラメータを該他の画像処理ASIC50a、50bの画像処理機能部63a、63b〜66a、66bに対応する第3画像処理ASIC50cの搭載する画像処理機能部63c〜66cのレジスタ部をシャドウレジスタ(代理レジスタ)として該シャドウレジスタに該パラメータを設定し、CPU6からのレジスタ値情報がパラメータの読み取り(リードアクセス)であると、第3画像処理ASIC50cの全ての画像処理機能部63c〜66cが備えているレジスタ部の読み取りを行うとともに、他の画像処理ASIC50a、50bへの読み取り動作を不許可としている。
したがって、複数の画像処理ASIC50a〜50cを搭載することによるCPU6のレジスタリードの応答速度が遅くなることを防止することができ、画像処理の処理速度を高速化することができる。
さらに、本実施例の複合装置1は、モード設定信号が画像処理ASICの複数接続を示していると、動作イネーブル制御部69a〜69cが、画像処理ASIC50a〜50cの画像処理機能部63a、63b、63c〜66a、66b、66c毎にその動作の有効・無効を指示する動作イネーブル信号(動作切り替え信号)を出力している。
したがって、複数の画像処理ASIC50a〜50cを搭載している場合に、該画像処理ASIC50a〜50cに割り当てられている画像処理に使用する画像処理機能部63a、63b、63c〜66a、66b、66c以外の画像処理機能部63a、63b、63c〜66a、66b、66cを無効にし、必要な画像処理機能部63a、63b、63c〜66a、66b、66cのみを有効にして画像処理ASIC50a〜50cをより一層適切かつ効率的に動作させることができる。
また、本実施例の複合装置1は、動作制御手段として、モード設定信号に基づいて内蔵メモリ68a〜68cを複数の画像処理機能部63a、63b、63c〜66a、66b、66cに共有利用させるかいずれか1つの画像処理機能部に占有利用させるかのメモリ利用制御(記憶手段利用制御)を行う動作モード制御部69a〜69とメモリセレクタ部67a〜67c、モード設定信号に基づいて画像処理ASIC50a〜50cの画像処理機能部63a、63b、63c〜66a、66b、66c毎にその動作の有効・無効を指示する動作イネーブル信号(動作切り替え信号)を出力する動作イネーブル制御部(動作切り替え制御手段)69a〜69c及び動作イネーブル信号とCPU6からのレジスタ値情報に基づいてレジスタ値のレジスタ部への設定を行うレジスタI/F部(レジスタ制御手段)71a〜71cを備えている。
したがって、複数の画像処理ASICを搭載している場合にも、CPU6としては、単独の画像処理ASICを搭載している場合と同じ制御を行うことで、必要なレジスタ設定を適切に行い、画像データに対して適切かつ高速に画像処理することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。