図1〜図15は、本発明の画像処理装置及び画像処理モジュールの一実施例を示す図であり、図1は、本発明の画像処理装置及び画像処理モジュールの一実施例を適用した複合装置1の要部ブロック構成図である。
図1において、複合装置1は、スキャナ部2、スキャナ画像処理部3、コントローラ画像処理部4、コントローラ5、プロッタ画像処理部6、プロッタ部7及び図示しないハードディスクや操作表示部等を備えている。本実施例の複合装置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は、スキャナ特性補正部11で処理済みの画像データをコントローラ画像処理部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の出力制御部(PCIe)12との間で画像データの授受を行う。画像処理部23は、出力形態(ハードディスク蓄積、プロッタ部9での印刷出力、他の装置へのデータ転送等の出力形態)に応じた各種画像処理を行い、蓄積制御部22は、ハードディスク(HDD)への画像データの蓄積やハードディスクからの画像データの読み出しを行う。CPU I/F24は、コントローラ5とのインターフェイスであり、処理済みの画像データ等をコントローラ5に転送するとともに、後述するように、レジスタ設定等の処理を行う。コントローラ画像処理部4の各部21〜24にDMAC(DMAコントローラ)が内蔵されており、DMACによって各部21〜24の間のデータ転送を行う。
コントローラ5は、CPU(Central Processing Unit )31、メインメモリ32、PCIe Root Complex33、34等を備えており、メインメモリ(データ保管手段)32は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成されていて、ROM内には、複合装置1の基本プログラムや後述する画像処理プログラム等のプログラム及び必要なシステムデータ等を格納されている。
CPU31は、メインメモリ32のROMに格納されているプログラム及びシステムデータに基づいて、RAMをワークメモリとして利用しつつ、複合装置1の各部を制御して、複合装置1としての基本処理を実行するとともに、後述する画像処理を実行する。
すなわち、複合装置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)等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像処理方法を実行する画像処理プログラムを読み込んでメインメモリ32のROMやハードディスク等に導入することで、後述する狭幅画像処理装置(複合装置等)と広幅画像処理装置である複合装置1とでソフトウェアの変更を行うことなくハードウェア処理として共用させて処理する適切にかつ高速に画像処理する画像処理方法を実行する画像処理装置である複合装置として構築されている。この画像処理プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
メインメモリ32のRAMは、CPU31のワークメモリとして利用されるとともに、コントローラ画像処理部4で画像処理された画像データがCPU31を介して格納され、CPU31によって読み出されて、プロッタ部9での印刷処理や他の装置への転送に供される。
PCIe Root Complex33は、コントローラ画像処理部4のCPU I/F24との間でデータ転送を行い、PCIe Root Complex34は、プロッタ画像処理8との間でPCIeによるPCIeによるデータ転送を行う。
プロッタ画像処理部6は、PCIe End Point41及び複数の出力処理部42等を備えており、PCIe End Point41がコントローラ5のPCIe Root Complex34からCMYKの画像データを受け取って出力処理部42に渡す。出力処理部42は、CMYKの画像データを受け取ると、該CMYKの画像データをそれぞれの画像データのタイミングでプロッタ部7に転送する。すなわち、CPU31は、プリントモードにおいては、一旦メインメモリ32に保管したRGBの画像データをコントローラ画像処理部4でCMYKの画像データに変換した後、プロッタ画像処理部6に送る。
プロッタ部7は、例えば、電子写真式記録装置等が使用されており、プロッタ画像処理部6から送られてくるCMYKの画像データに基づいて、カラー画像を用紙に記録出力する。
上記コントローラ画像処理部4は、その画像処理部23として、図2に示すように、第1から第3の3つの画像処理ASIC(画像処理モジュール)50a〜50cを備えており、各画像処理ASIC50a〜50cは、それぞれPCIeのPCIe Root Complex61及びPCIe End Point62を備えていて、PCIeを利用してデータの送受信を行う。
第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cは、直列に接続されており、第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cには、設定端子であるモード設定端子(図示略)が設けられていて、設定状態に応じたモード設定信号を第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cに出力する。すなわち、モード設定端子は、A0サイズの広幅の複合装置1に適用されるときには、図2に示すように、第1画像処理ASIC50aに、「01b」のモード設定信号を、第2画像処理ASIC50bに、「10b」のモード設定信号を、第3画像処理ASIC50cに、「11b」のモード設定信号を、それぞれ出力する状態に設定され、A3サイズ等の比較的小さいサイズの複合装置に適用されるときには、「00b」のモード設定信号を出力する状態に設定される。すなわち、画像処理ASIC50a〜50cは、該画像処理ASIC50a〜50cが複数直列に接続されているか否かを示すとともに複数接続されているときには複数の後述する画像処理機能部63〜66の接続順位を示す状態に設定されて上記モード設定信号を出力する。
そして、画像処理ASIC50a〜50cは、図3に示すように、構成されており、第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cの全てにおいて同じ構成であるが、後述するように、そのモード設定端子に入力されるモード設定信号によってその機能動作が異なる。
図3において、画像処理ASIC50a〜50cは、上記PCIe Root Complex61とPCIe End Point62、画像処理機能部(画像処理機能手段)としてのフィルタ処理部63、色補正部64、変倍処理部65、階調処理部66及びアービタ67〜69、レジスタI/F部70、画像転送先決定部71、画像入力元選択部72、メモリセレクタ部73、複数ライン分(図3では、4ライン分のみ記載されている。)の内蔵メモリ74、画像出力先選択部75、動作イネーブル制御部76、メモリリード部77、メモリライト部78等を備えており、図3において、Mは、マスタ、Sは、スレーブを示している。
PCIe Root Complex61は、ターゲットとイニシエータを備えており、前段(画像データがスキャナ部2側からコントローラ5側に流れる方向を順方向として、以下、該順方向の処理流れの上流側であるスキャナ部2側を前段、コントローラ5側を後段という。)の画像処理ASIC50a、50bまたはスキャナ画像処理部3とアービタ67または画像入力元選択部72との間の画像データや信号の授受を行う。
PCIe End Point62は、ターゲットとイニシエータを備えており、ターゲットがコントローラ5側から入力される画像データ及びCPU信号(画像処理内容を示すパラメータ等)をアービタ68に渡して、イニシエータがアービタ69から渡される画像データや信号をコントローラ5側の画像処理ASIC50b、50cまたはコントローラ5に転送する。
アービタ68は、PCIe End Point62から送られてくる画像データを隣接ASIC入力画像データパスを介して画像転送先決定部71に渡し、PCIe End Point62から送られてくる信号をレジスタI/F部70に渡す。上記PCIe End Point62、アービタ68及び隣接ASIC入力画像データパスは、全体として逆方向データ取り込み手段として機能している。
レジスタI/F部(レジスタ制御手段)70には、アービタ68を介してCPU31からCPU信号(レジスタ設定値)が入力されるとともに、動作イネーブル制御部76から動作イネーブル信号が入力され、レジスタI/F部70は、CPU信号及び動作イネーブル信号(動作制御信号)に基づいて、CPU31がアクセスするレジスタ領域とレジスタの種別に応じてスレーブとなるレジスタI/Fの選択をレジスタアクセスバスを介して行うとともに、CPU信号を動作イネーブル制御部76及びアービタ67に渡す。すなわち、画像処理ASIC50a〜50cの各部のレジスタI/Fは、画像処理ASIC50a〜50cに内蔵の共通設定レジスタI/F(内蔵共通設定レジスタI/F)、画像処理ASIC50a〜50cに内蔵の画像処理レジスタI/F(内蔵画像処理I/F)、後段画像処理ASIC50b、50cのレジスタI/Fに大別でき、また、レジスタの種別は、共通設定、画像処理パラメータ、画像処理ステータスに大別される。共通設定は、DMACの起動制御や画像処理モジュールのイネーブル制御を行うレジスタであり、画像処理ASIC50a〜50c全体の起動制御に関わるため、共通設定へのアクセス時には3個全ての画像処理ASIC50a〜50cに対してレジスタ設定する必要がある。画像処理パラメータと画像処理ステータスは、画像処理ASIC50a〜50cが内蔵しているフィルタ処理/色補正/変倍処理/階調処理の各画像処理機能部63〜66に関するレジスタである。そして、レジスタI/F部70は、画像処理パラメータと画像処理ステータスへのアクセス時には、モード設定端子からのモード設定信号によって生成された動作イネーブル信号により決定されるそれぞれの画像処理ASIC50a〜50cが担当する画像処理機能に応じてレジスタアクセスの要否を判定し、レジスタアクセスを制御する。
フィルタ処理部63、色補正部64、変倍処理部65及び階調処理部66は、レジスタI/F部70を介してCPU31から画像処理パラメータの設定されるレジスタ(図示略)を備えており、該レジスタに設定されるパラメータに応じて画像処理を行う。すなわち、フィルタ処理部63は、画像入力元選択部72から入力されるRGBの画像データに対して、平滑化やエッジ強調等の処理を行って、文字部、絵柄部それぞれに適した画像補正を行い、処理済みの画像データを色補正部64に出力する。色補正部64は、入力されるRGBの画像データをCMYKの画像データに色補正して変倍処理部65に出力する。変倍処理部65は、入力される画像データに対して主走査方向または副走査方向の拡大処理または縮小処理を行って階調処理部66に出力し、階調処理部66は、入力されるCMYKの画像データに対して階調処理を行って画像出力先選択部75に出力する。
動作イネーブル制御部(動作切り替え制御手段)76には、レジスタI/F部70を介してCPU信号(レジスタ設定値)が入力されるとともに、モード設定端子からモード設定信号が入力され、モード設定端子は、各画像処理ASIC50a〜50cに設けられていて、その設定状態に応じて、「01b」、「10b」、「11b」、「00b」等のモード設定信号を画像処理ASIC50a〜50c内部の動作イネーブル制御部76に出力する。本実施例においては、画像処理ASICが、A3サイズ、A4サイズ等の狭幅サイズの画像処理装置である複合装置に搭載されるときには、「00b」のモード設定信号を出力する状態にモード設定端子が設定され、A0等の広幅サイズの画像処理装置である複合装置1に複数の画像処理ASICが図2に示したように直列接続で搭載されるときには、複数接続されていること及び該直列接続の接続順位が分かるモード設定信号(「「01b」、「10b」、「11b」)を出力する状態にモード設定端子が設定される。具体的には、複合装置1においては、コントローラ画像処理部4に第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cが、第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cの順序に接続される状態で搭載されており、各画像処理ASIC50a〜50cのモード設定端子は、第1画像処理ASIC50aでは、「01b」のモード設定信号を出力する状態に、第2画像処理ASIC50bでは、「10b」のモード設定信号を出力する状態に、第3画像処理ASIC50cでは、「11b」のモード設定信号を出力する状態に、それぞれ設定される。
動作イネーブル制御部76は、レジスタI/F部70からのCPU信号(レジスタ設定値)及びモード設定端子からのモード設定信号に基づいてフィルタ処理部63、色補正部64、変倍処理部65及び階調処理部66の動作の有効・無効を制御する動作イネーブル信号を生成して、フィルタ処理部63、色補正部64、変倍処理部65及び階調処理部66の各部に出力する。すなわち、動作イネーブル制御部76は、図4に示すような動作設定テーブルを内部メモリ等に格納しており、モード設定信号とCPU信号(レジスタ設定値)に基づいて動作設定テーブルを参照して、フィルタ処理部63、色補正部64、変倍処理部65及び階調処理部66の各部に出力する動作イネーブル信号を決定する。例えば、第3画像処理ASIC50cの場合、複合装置1がA0等の広幅複合装置であり、モード設定端子からモード設定信号として、「11b」が動作イネーブル制御部76に入力されるので、動作イネーブル制御部76は、図4の動作設定テーブルを参照して、フィルタ処理部63、色補正部64及び変倍処理部65には、強制的に「0」の動作イネーブル信号を出力し、階調処理部65には、CPU31からのレジスタ設定値に依存した値(「0」または「1」)の動作イネーブル信号を出力する。この場合、本実施例では、画像処理部が階調処理部66までであるが、階調処理部66以降にも画像処理部があるときには、該画像処理部にもレジスタ設定値に応じた動作イネーブル信号を出力する。そして、フィルタ処理部63、色補正部64、変倍処理部65及び階調処理部66は、「0」の動作イネーブル信号が入力されると、その動作が無効となり、「1」の動作イネーブル信号が入力されると、その動作が有効となる。
また、動作イネーブル制御部76は、モード設定信号から該動作イネーブル制御部76の搭載されている画像処理ACIC50a〜50cのコントローラ画像処理部4での接続順位を示すASIC接続順指定信号を生成して、該画像処理ACIC50a〜50cの接続順位に従った動作を行わせるために、レジスタI/F部70、画像転送先決定部71、画像入力元選択部72、画像出力先選択部75及びメモリライト部78に出力し、また、メモリ切り替え信号を生成してメモリセレクタ部73に出力する。
上記動作イネーブル制御部76、レジスタI/F部70及びメモリセレクタ部73は、全体として動作制御手段として機能している。
各画像処理ACIC50a〜50cは、本実施例の複合装置1では、内蔵メモリ(記憶手段)74として、A0サイズ等の広幅サイズよりも主走査サイズの小さい狭幅サイズ、例えば、A3サイズのラインメモリを搭載しており、メモリセレクタ部73は、動作イネーブル制御部76からのメモリ切り替え信号に基づいてフィルタ処理部63、変倍処理部65及び階調処理部66による内蔵メモリ74の使用を制御する。すなわち、フィルタ処理部63、変倍処理部65及び階調処理部66は、画像処理を行うのに、主走査サイズ分のラインバッファが必要であり、例えば、A0サイズ等の広幅の画像データを画像処理する場合には、該広幅(A0)サイズのラインバッファが必要であるが、本実施例の複合装置1は、上述のように、内蔵メモリ74として、上述のように、主走査サイズが、広幅サイズよりも主走査サイズの小さい狭幅複合装置(狭幅画像処理装置)と狭幅サイズの画像処理ASIC50a〜50cを共用しているため、内蔵メモリ74は、狭幅のラインメモリ、例えば、A3サイズのラインメモリがしか内蔵していない。そこで、複合装置1は、フィルタ処理部63〜66において、広幅の複合装置として、画像処理を適切に行うためには、内蔵メモリ74を狭幅の複合装置と同じように複数の画像処理部でそのまま共有使用したのでは、メモリ容量が不足するため、メモリセレクタ部73が、動作イネーブル制御部76からのメモリ切り替え信号によって、CPU31で制御することなく、ハードウェアの設定のみで、フィルタ処理部63、変倍処理部65及び階調処理部66のうち、画像処理ASIC50の画像処理機能としてCPU31によって割り当てられている画像処理機能の画像処理機能部63〜66にのみ内蔵メモリ74を占有させ、該割り当てられている画像処理内容の画像処理を、該画像処理内容に対応する画像処理機能部63〜66で内蔵メモリ74を使用して実行する。
例えば、第3画像処理ASIC50cの場合、モード設定端子からモード設定信号として「11b」が動作イネーブル制御部(動作制御手段、動作切り替え制御手段)76に入力され、動作イネーブル制御部76が、階調処理部66のみに内蔵メモリ74を使用させるメモリ切り替え信号をメモリセレクタ部73に出力して、階調処理部66が内蔵メモリ74を独占して使用して階調処理を実行する。
画像転送先決定部(データ流れ制御手段)71には、PCIe End Point62、アービタ68及び隣接ASIC入力画像データパスを介してコントローラ5のメインメモリ32から読み出された画像データが後段の画像処理ASIC50c、50bから入力され、また、メモリリード部77によってメインメモリ32から読み出された画像データが直接入力され、さらに、その動作を決定する信号として、レジスタI/F部70を介してCPU信号(レジスタ設定値)が入力されるとともに、動作イネーブル制御部76からASIC接続順指定信号が入力される。画像転送先決定部71は、これらのCPU信号及びASIC接続順指定信号に基づいて画像データの転送先を決定する。例えば、CPU31の指示する画像処理内容が変倍処理であった場合、画像処理ASIC50a〜50cの接続順位から第2画像処理ASIC50bがその役割を担うことが決まっているため、第3画像処理ASIC50cの画像転送先決定部71は、画像データをアービタ67及びPCIe Root Complex61を経由させて隣接する前段の第2画像処理ASIC50bに転送し、第2画像処理ASIC50bの画像転送先決定部71は、画像データを内蔵する変倍処理部65で処理させるために、該画像データを画像入力元選択部72に渡す。なお、この場合、第2画像処理ASIC50bは、変倍処理部65で画像処理した画像データを、再び、第3画像処理ASIC50cへPCIe End Point62を介して転送する。
上記PCIe Root Complex61及びアービタ67は、全体として、逆方向データ送り出し手段として機能し、PCIe Root Complex61は、順方向データ受け取り手段として機能している。
画像入力元選択部(処理対象データ選択手段)72には、PCIe End Point62(直接的には、画像転送先決定部71)とPCIe Root Complex61から画像データが入力されるとともに、レジスタI/F部70からのCPU信号と動作イネーブル制御部76からのASIC接続順指定信号が入力され、画像入力元選択部72は、CPU信号及びASIC接続順指定信号に基づいて、画像処理機能部63〜66で画像処理する画像データの入力元を選択して、PCIe End Point62からの画像データとPCIe Root Complex61からの画像データのいずれかを選択して画像処理機能部63〜66の先頭のフィルタ処理部63に出力する。すなわち、画像入力元選択部72は、スキャナ部2の読み取った画像データを処理するスキャナ画像処理動作の場合には、常に、PCIe Root Complex61から入力される画像データをフィルタ処理部63に転送する。また、画像入力元選択部72は、コントローラ5上のメインメモリ32に保存されている画像データを読み込んで、画像処理して再びメインメモリ32に書き戻す場合には、画像転送先決定部71が内蔵する画像処理機能部63〜66で画像処理すると決定すると、画像転送先決定部71から転送されてくる画像データをフィルタ処理部63に転送し、画像転送先決定部71が隣接する前段の画像処理ASIC50a、50bに転送すると決定すると、PCIe Root Complex61から入力される画像データをフィルタ処理部63に転送するようデータパスの選択を行う。
画像出力先選択部(順方向送り出しデータ制御手段)75には、最終の画像処理部である階調処理部66から画像処理済みの画像データが入力されるとともに、レジスタI/F部70からのCPU信号及び動作イネーブル制御部76からのASIC接続順指定信号が入力され、画像出力先選択部75は、CPU信号及びASIC接続順指定信号に従って画像データの転送先の選択及び転送方法を選択する。この画像データの出力先は、PCIe End Point62の先に接続されるコントローラ5または隣接する後段の画像処理ASIC50b、50cであり、画像出力先選択部75は、該画像出力先選択部75を搭載する画像処理ASIC50a〜50cの接続順位によって画像データの出力先を該コントローラ5または後段の画像処理ASIC50b、50cに決定する。すなわち、画像出力先選択部75は、PCIe End Point62の先に接続されているのがコントローラ5であると、メモリライト部78を経由してコントローラ5上のメインメモリ32に対して保存先アドレスと画像データを出力し、PCIe End Point62の先に接続されているのが後段の画像処理ASIC50b、50cであると、隣接ASIC出力画像データパスを経由してアービタ69を介して隣接する画像処理ASIC50b、50cの画像出力先選択部75に割り当てられているアドレスと画像データを出力する。
メモリリード部(保管データ読み出し手段)77は、該メモリリード部77の搭載されている画像処理ASICが、狭幅複合装置(狭幅画像処理装置)のように1つのみ搭載されている画像処理ASIC50s(図15参照)である場合、または、本実施例の複合装置1のように、複数搭載されている画像処理ASIC50a〜50cのうち、コントローラ5に直接接続される第3画像処理ASIC50cである場合に、コントローラ5のメインメモリ32からDMA(Direct Memory Access)転送によって画像データを読み込む。
メモリライト部78は、該メモリリード部77の搭載されている画像処理ASIC50が、狭幅複合装置(狭幅画像処理装置)のように1つのみ搭載されている画像処理ASIC50である場合、または、本実施例の複合装置1のように、複数搭載されている画像処理ASIC50a〜50cのうち、コントローラ5に直接接続される第3画像処理ASIC50cである場合、コントローラ5のメインメモリ32上にDMA転送により画像データをコントローラ5上のメインメモリ32に書き込む。
画像出力先選択部75、隣接ASIC出力画像データパス、アービタ69及びメモリライト部78は、全体として、順方向送り出しデータ制御手段として機能している。
次に、本実施例の作用を説明する。本実施例の複合装置1は、コントローラ画像処理部4に、狭幅用の画像処理ASIC50a〜50cを複数搭載し、該狭幅用の画像処理ASIC50a〜50cが広幅用画像処理装置である複合装置1に適用されていることを、各画像処理ASIC50a〜50cがハードウェア的に認識して、該狭幅用の複数の画像処理ASIC50a〜50cを用いて、画像データをスキャナ部2側からコントローラ5側及びコントローラ5側からスキャナ部2側の双方向に適切に転送するとともに、広幅の画像データの画像処理を適切に行う。
すなわち、複合装置1は、コントローラ画像処理部4に狭幅用の3つの画像処理ASIC50a〜50cを搭載しており、各画像処理ASIC50a〜50cは、それぞれ複数の画像処理機能(フィルタ処理機能、色補正機能、変倍処理機能、階調処理機能等)を有しているが、各画像処理機能は、その機能を実行するためには、広幅用の主走査サイズ(A0サイズ等)分のラインバッファが必要な画像処理機能(フィルタ処理機能、変倍処理機能、階調処理機能)がある。ところが、各画像処理ASIC50a〜50cには、A3サイズ等の狭幅のメモリ容量を有している内蔵メモリ74しか内蔵されていない。そこで、各画像処理ASIC50a〜50cには、モード設定端子が設けられていて、該モード設定端子の設定によって出力するモード設定信号に基づいて、それぞれの画像処理ASIC50a〜50cが内蔵している内蔵メモリ74の使い方を可変させ、内蔵メモリ74を、内蔵メモリ74を必要とするフィルタ処理機能、変倍処理機能、階調処理機能の画像処理機能部63〜66のうち、いずれか一つの画像処理機能部63〜66に占有させることで、広幅(A0)サイズの画像処理を行うとともに、スキャナ部2からコントローラ5のメインメモリ32への画像データの転送とメインメモリ32からスキャナ部2方向の画像処理ASIC50a、50bへの画像データの転送を適切に行う。
そして、画像処理を適切に行うために、各画像処理ASIC50a〜50cのレジスタI/F部70は、CPU31からライトアクセスがあると、図5に第3画像処理ASIC50cのレジスタI/F部70について示すライトアクセス時レジスタ設定処理を行い、また、CPU31からリードアクセスがあると、図6に第3画像処理ASIC50cのレジスタI/F部70について示すリードアクセス時レジスタ設定処理を行う。
まず、ライトアクセス時レジスタ設定処理について、図5に基づいて説明する。第3画像処理ASIC50cのレジスタI/F部70は、CPU31からライトアクセスがあると、該ライトアクセスの処理対象のレジスタ種別を判別し(ステップS101)、レジスタの種別が共通設定レジスタであると、内蔵の共通設定レジスタI/F(例えば、画像転送先決定部71、画像入力元選択部72、画像出力先選択部75等のレジスタI/F)にライトアクセスするとともに、前段の第2画像処理ASIC50bのレジスタI/F部70へライトアクセスする(ステップS102)。
ステップS101で、ライトアクセスの処理対象のレジスタ種別が画像処理パラメータの設定であると、レジスタI/F部70は、該画像処理パラメータが第3画像処理ASIC50cの処理担当の画像処理であるかチェックし(ステップS103)、第3画像処理ASIC50cが処理担当の画像処理であると、第3画像処理ASIC50cが内蔵する画像処理レジスタにライトアクセスして画像パラメータを設定する(ステップS104)。
ステップS103で、設定対象の画像処理パラメータが第3画像処理ASIC50cの処理担当の画像処理でないときには、レジスタI/F部70は、内蔵の画像処理機能部63〜66の画像処理レジスタ(シャドウレジスタ)にライトアクセスして、該画像処理レジスタに該画像処理パラメータを書き込むとともに、前段の第2画像処理ASIC50bのレジスタI/F部70にライトアクセスする(ステップS105)。なお、シャドウレジスタ(代理レジスタ)とは、レジスタの実体は前段の画像処理ASIC50b、50aにあるがレジスタ値のみをコピーとして保存しておくレジスタを意味する。
そして、前段の第2画像処理ASIC50bのレジスタI/F部70は、第3画像処理ASIC50cのレジスタI/F部70と同様に処理を行い、また、さらに前段の第1画像処理ASIC50aのレジスタI/F部70は、同様に処理を行うが、第1画像処理ASIC50aは、第1画像処理ASIC50aよりも前段に画像処理ASICが存在しないため、前段の画像処理ASICのレジスタI/Fへのライトアクセスを行わない。すなわち、上記処理は、CPU31からライトアクセスされてからスレーブとなるレジスタI/Fを選択する処理を示している。
次に、リードアクセス時レジスタ設定処理について、図6に基づいて説明する。第3画像処理ASIC50cのレジスタI/F部70は、図6に示すように、CPU31からリードアクセスがあると、該リードアクセスの処理対象のレジスタ種別を判別し(ステップS201)、レジスタの種別が共通設定レジスタであると、内蔵の共通設定レジスタI/Fにリードアクセスする(ステップS202)。共通設定レジスタがリード対象であるときには、全ての画像処理ASIC50a〜50cに同じ値がライトされているため、第3画像処理ASIC50cのみをリード対象とし、他の画像処理ASIC50a、50bをリード対象とする必要がない。
ステップS201で、リードアクセスの処理対象のレジスタ種別が画像処理パラメータの設定であると、レジスタI/F部70は、該画像処理パラメータが第3画像処理ASIC50cの処理担当とする画像処理であるかチェックし(ステップS203)、第3画像処理ASIC50cが処理担当の画像処理であると、第3画像処理ASIC50cが内蔵する画像処理機能部63〜66の画像処理レジスタにリードアクセスして画像処理パラメータをリードする(ステップS204)。
ステップS203で、設定対象の画像処理パラメータが第3画像処理ASIC50cの処理担当の画像処理でないことを示しているときには、レジスタI/F部70は、内蔵の画像処理機能部63〜66の画像処理レジスタ(シャドウレジスタ)にリードアクセスして、該画像処理レジスタから画像処理パラメータをリードする(ステップS205)。上述のように、画像処理パラメータは、ライト時に、第3画像処理ASIC50cの内蔵のシャドウレジスタにライトされているため、このシャドウレジスタをリードすることで、前段の第2画像処理ASIC50b及び第1画像処理ASIC50aをリードする必要がない。
ステップS201で、リードアクセスの処理対象のレジスタ種別が画像処理ステータスであると、レジスタI/F部70は、該画像処理ステータスが第3画像処理ASIC50cの処理担当とする画像処理であるかチェックし(ステップS206)、第3画像処理ASIC50cが処理担当とする画像処理であると、第3画像処理ASIC50cが内蔵する画像処理機能部63〜66の画像処理レジスタにリードアクセスして画像処理ステータスをリードする(ステップS207)。
ステップS206で、設定対象の画像処理ステータスが第3画像処理ASIC50cが処理担当の画像処理でないときには、レジスタI/F部70は、内蔵の画像処理機能部63〜66の画像処理レジスタ(シャドウレジスタ)にリードアクセスして、該画像処理レジスタから画像処理ステータスをリードする(ステップS205)。
なお、図6のステップS203からステップS205の処理は、第1画像処理ASIC50b及び第2画像処理ASIC50bでは、実行されない。
そして、複合装置1は、図7に示すように、スキャナ部2で読み取った画像データをスキャナ画像処理部3で必要なスキャナ画像処理を行った画像データを、第1画像処理ASIC50a、第2画像処理ASIC50b及び第3画像処理ASIC50cに順次送って、画像処理ASIC50a〜50cそれぞれにおいて、モード設定端子の設定によって各画像処理ASIC50a〜50cに割り当てられている画像処理に対応する画像処理機能部63〜66によって画像処理を施して順次次段の画像処理ASIC50b、50cに送り、最終的に、コントローラ5のメインメモリ32に処理済みの画像データを保管する。なお、図7では、破線の施されている各部が、処理動作を実行する部分である。
そして、複合装置1は、スキャナ部2で読み取った原稿画像データをコントローラ画像処理部4で画像処理してコントローラ5のメインメモリ32に保管する場合には、図7に示すように、スキャナ部2で原稿を主走査及び副走査して読み取られた原稿の画像データをスキャナ画像処理部3で必要な画像処理を施して、まず、コントローラ画像処理部4の第1画像処理ASIC50aに送る。第1画像処理ASIC50aは、スキャナ画像処理部3から送られてくる画像データを、該第1画像処理ASIC50aに割り当てられている画像処理を実行する。
すなわち、第1画像処理ASIC50aは、図8に示すように、スキャナ画像処理部3で必要な画像処理が施された画像データを、PCIe Root Complex61で受け取って画像入力元選択部72から画像処理機能部63〜66に順次送って画像処理するが、第1画像処理ASIC50aでの画像処理内容として、モード設定信号「01b」によってフィルタ処理及び色補正処理が割り当てられている。なお、図8において、実線で示すブロック部分が画像処理動作を行う部分である。
いま、複合装置1は、上述のように、A0等の広幅複合装置であるが、各画像処理ASIC50a〜50cには、内蔵メモリ74として狭幅サイズのラインメモリしか搭載していないため、複数の画像処理ASIC50a〜50cに処理を振り分けて画像処理を実行させる。そこで、各画像処理ASIC50a〜50cは、広幅複合装置1に搭載される際に、モード設定端子が各画像処理ASIC50a〜50cの画像処理の役割分担をその接続順序で設定するモード設定信号を出力する状態に設定される。そして、第1画像処理ASIC50aは、モード設定端子からモード設定信号として「01b」が動作イネーブル制御部76に入力されて、動作イネーブル制御部76が図4の動作設定テーブルに基づいて生成する動作イネーブル信号とASIC接続順指定信号及びメモリ切り替え信号によって各部の動作が決定される。第1画像処理ASIC50aは、動作イネーブル制御部76が、そのモード設定信号「01b」に基づいて、フィルタ処理部63と色補正処理部64に「1」の動作イネーブル信号を出力し、変倍処理部65及び階調処理部66に出力して、フィルタ処理と色補正処理のみが有効に設定されるので、画像入力元選択部72からの画像データに対して、フィルタ処理部63でフィルタ処理を、色補正部64で色補正処理を行って、処理済みの画像データを画像出力先選択部75に送る。画像出力選択部75は、「01b」の動作イネーブル信号がASIC接続順指定信号として入力され、自身が第1画像処理ASIC50aであることを認識して、隣接する後段の第2画像処理ASIC50bを示すアドレスを画像データに付加して、メモリライト部78を通さずに、アービタ69及びPCIe End Point62を介して第2画像処理ASIC50bに転送する。
そして、第2画像処理ASIC50bは、図9に示すように、第1画像処理ASIC50aで画像処理された画像データを、PCIe Root Complex61で受け取って画像入力元選択部72から画像処理機能部63〜66に順次送って画像処理するが、第2画像処理ASIC50bでの画像処理内容として、モード設定信号「10b」によって変倍処理が割り当てられている。なお、図9において、実線で示すブロック部分が画像処理動作を行う部分である。
いま、第2画像処理ASIC50bは、モード設定端子からモード設定信号として「10b」が動作イネーブル制御部76に入力されて、動作イネーブル制御部76が、そのモード設定信号「10b」に基づいて、フィルタ処理部63と色補正処理部64及び階調処理部66に「0」の動作イネーブル信号を出力し、変倍処理部65に「1」の動作イネーブル信号を出力して、変倍処理のみが有効に設定されるので、画像入力元選択部72からの画像データに対して、変倍処理部65で変倍処理を行って、処理済みの画像データを画像出力先選択部75に送る。画像出力選択部75は、「10b」の動作イネーブル信号がASIC接続順指定信号として入力され、自身が第2画像処理ASIC50bであることを認識して、隣接する後段の第3画像処理ASIC50cを示すアドレスを画像データに付加して、メモリライト部78を通さずに、アービタ69及びPCIe End Point62を介して第3画像処理ASIC50cに転送する。
そして、第3画像処理ASIC50cは、図10に示すように、第2画像処理ASIC50bで画像処理された画像データを、PCIe Root Complex61で受け取って画像入力元選択部72から画像処理機能部63〜66に順次送って画像処理するが、第3画像処理ASIC50cでの画像処理内容として、モード設定信号「11b」によって階調処理が割り当てられている。なお、図10において、実線で示すブロック部分が画像処理動作を行う部分である。
いま、第3画像処理ASIC50cは、モード設定端子からモード設定信号として「11b」が動作イネーブル制御部76に入力されて、動作イネーブル制御部76が、そのモード設定信号「11b」に基づいて、フィルタ処理部63と色補正処理部64及び変倍処理部65に「0」の動作イネーブル信号を出力し、階調処理部66に「1」の動作イネーブル信号を出力して、階調処理のみが有効に設定されるので、画像入力元選択部72からの画像データに対して、階調処理部66で階調処理を行って、処理済みの画像データを画像出力先選択部75に送る。画像出力選択部75は、「11b」の動作イネーブル信号がASIC接続順指定信号として入力され、自身がコントローラ5に直接接続されている第3画像処理ASIC50cであることを認識して、隣接ASIC出力画像データパスを通さずに、メモリライト部78に画像データを転送する。メモリライト部78は、画像データに設定されたスタートアドレスから順にコントローラ5上のメインメモリ32に対するアドレスを付加して、アービタ69に転送して、アービタ69からPCIe End Point62を介してコントローラ5のメインメモリ32に転送して格納する。
そして、複合装置1は、上述のようにして、メインメモリ32に書き込まれた画像データを、例えば、図11、図12に示すように、必要な画像処理内容に応じたコントローラ画像処理部4の画像処理ASIC50a〜50cまで戻して、必要な画像処理を該画像処理ASIC50a〜50cで施して再度コントローラ5のメインメモリ32に戻す。この場合、各画像処理ASIC50a〜50cの画像転送先決定部71がCPU31からコントローラ画像処理部4に設定されたレジスタ設定値(CPU信号)に基づいて画像処理内容を判断し、どの画像処理ASIC50a〜50cまで画像データを転送するかを判断する。
すなわち、複合装置1は、図11及び図12に実線矢印で示すように、メインメモリ32に書き込まれた画像データをコントローラ画像処理部4の必要な画像処理ASIC50a〜50cまで戻して画像処理する場合、各画像処理ASIC50a〜50cの画像転送先決定部71がレジスタ設定値(CPU信号)から画像データの転送先を判断する。例えば、第3画像処理ASIC50cは、コントローラ5のメインメモリ32から画像データを読み込むために、内蔵するメモリリード部77からリードコマンドをCPU31に発行し、コントローラ5aのメモリリード部77からリードする画像データは、PCIe End Point62からアービタ69を介してメモリリード部77に入力される。メモリリード部77は、読み込んだ画像データを画像転送先決定部71に転送して、画像転送先決定部71がCPU31からコントローラ画像処理部4に設定されたレジスタ値に基づいて画像処理内容が、例えば、変倍処理であることを読み取ると、図11に示すように、変倍処理を行う画像処理ASICが第3画像処理ASIC50cよりもスキャナ側に配置されている画像処理ASIC50a、50b(本実施例の場合、第2画像処理ASIC50b)であること、ASIC接続順指定信号から自身が第3画像処理ASICであることを認識して、隣接する前段の第2画像処理ASIC50bに画像データを転送する必要があることを判断する。画像転送先決定部71は、第2画像処理ASIC50bに画像データを転送するために、第2画像処理ASIC50bを示すアドレスを画像データに付加して、アービタ67を経由させてPCIe Root Complex61に渡し、PCIe Root Complex61は、画像転送先決定部71から送られてきた画像データを第2画像処理ASIC50bに転送する。
第2画像処理ASIC50bは、図11、図12及び図9に示すように、第3画像処理ASIC50cから送られてきた画像データをPCIe End Point62で受け取ってアービタ68から隣接ASIC入力画像データパスを介して画像転先送決定部71に取り込み、画像転送先決定部71は、CPU31によってコントローラ画像処理部4に設定されたレジスタ値によって該画像データに対する画像処理内容を取得する。画像転送先決定部71は、いま、画像処理内容が変倍処理であることを読み取り、該変倍処理を実行するのが第2画像処理ASIC50bであって、該画像データに対して他にフィルタ処理や色変換等の第2画像処理ASIC50bよりもスキャナ部2側に配置されている画像処理ASIC50aによって処理すべき画像処理が設定されていないこと及び自身が第2画像処理ASIC50bであることをASIC接続順指定信号によって認識し、該認識結果から画像データを画像入力元選択部72に画像データを転送する必要があると判断して、画像データを画像入力元選択部72に転送する。
画像入力元選択部72は、画像転送先決定部71から送られてきた画像データを画像処理機能部63〜66のフィルタ処理部63に転送するが、フィルタ処理部63と色補正部64に入力されている動作イネーブル信号が「0」であるので、フィルタ処理部63と色補正部64は、画像処理を行わずにスルー状態となって画像データをそのまま変倍処理部65へ送り、変倍処理部65は、入力されている動作イネーブル信号が「1」であるので、内蔵メモリ74を全て占有して、広幅(A0)サイズの画像処理(変倍処理)を行って、変倍処理後の画像データを階調処理部66へ送る。階調処理部66は、入力されている動作イネーブル信号が「0」であるので、階調処理を行わずに、変倍処理部65から送られてくる画像データを画像出力先選択部75へ転送し、画像出力先選択部75は、ASIC接続順指定信号が「10b」であることから自身が第2画像処理ASIC50bであると判断して隣接する第3画像処理ASIC50cを示すアドレスを付加して、メモリライト部78を通さずに、隣接ASIC出力画像データパスタを通しアービタ69及びPCIe End Point62を通して、画像データを隣接する後段の第3画像処理ASIC50cに転送する。
また、第2画像処理ASIC50bは、図12に示すように、前段の画像処理ASIC50aで実行すべき画像処理内容があるときには、第3画像処理ASIC50cから送られてきた画像データを第1画像処理ASIC50aに転送する。すなわち、画像転送先決定部71は、画像処理内容がフィルタ処理や色補正を含むことを、CPU信号から認識し、フィルタ処理や色補正を行うのが第2画像処理ASIC50bよりスキャナ側に配置されている画像処理ASIC50(本実施例の場合、第1画像処理ASIC50a)であること、自身が第2画像処理ASIC50bであることをASIC接続順指定信号から認識して、該認識結果から画像データを隣接する前段の第1画像処理ASIC50aにデータを転送しなければならないと判断する。画像転送先決定部71は、第1画像処理ASIC50aに画像データを転送するために、画像データのアドレスを第1画像処理ASIC50aのアドレスに変更し、アービタ67及びPCIe Root Complex61を経由させて第1画像処理ASIC50aに転送する。
すなわち、例えば、第2画像処理ASIC50bの画像転送先決定部71は、図13に示すように、画像処理内容が第2画像処理ASIC50bよりスキャナ側に配置されている画像処理ASIC50aで処理する画像処理内容を含んでいるか否かをCPU信号であるレジスタ設定値によって判別し(ステップS301)、画像処理内容が第2画像処理ASIC50bよりもスキャナ側の画像処理ASIC50aで処理すべき画像処理内容を含んでいないときには、画像データを該第2画像処理ASIC50bの画像入力元選択部72に転送して、第2画像処理ASIC50bの画像処理機能部63〜66での画像処理に供する(ステップS302)。ステップS301で、画像処理内容が第2画像処理ASIC50bよりもスキャナ側の画像処理ASIC50aで処理すべき画像処理内容を含んでいるときには、画像転送先決定部71は、画像データを第1画像処理ASIC50aのアドレスを付加して第1画像処理ASIC50aに転送して、前段の画像処理ASIC50(本実施例では、第1画像処理ASIC50a)での画像処理に供する(ステップS303)。
第1画像処理ASIC50aの画像転送決定部71は、CPU31によってコントローラ画像処理部4に設定されたレジスタ値から画像処理内容がフィルタ処理や色補正であることを読み取り、フィルタ処理や色補正を行うのが第1画像処理ASIC50aであること、またASIC接続順指定信号から自身が第1画像処理ASIC50aであると判断して、画像入力元選択部72に画像データを転送する。そして、第1画像処理ASIC50aは、画像転送決定部71から画像入力元選択部72に送った画像データを、画像処理機能部63〜66に送って、画像処理機能部63〜66のフィルタ処理部63でフィルタ処理を行い、色補正部64で色補正を行って、変倍処理部65及び階調処理部66をスルーさせて、画像出力先選択部75から第2画像処理ASIC50bに転送する。以降の画像データの処理及び転送は、上記の通りである。
なお、上記説明では、画像転送決定部71が、モード設定信号に基づく動作イネーブル信号とASIC接続順指定信号及びCPU信号であるレジスタ設定値に基づく画像処理内容によって、自己の搭載されている画像処理ASIC50a〜50cが最終の画像処理位置であるか否か判別して画像処理と転送処理を制御しているが、画像データの転送制御は、上記方法に限るものではなく、例えば、メモリリード部77がCPU31のコントローラ画像処理部4に設定するレジスタ値によって画像処理内容を判別して、該画像処理内容に応じた画像処理ASIC50a〜50cのアドレスを画像データに付加し、該アドレスを付加した画像データを画像転送先決定部71に送って、画像転送先決定部71が該画像データに付加されているアドレスに基づいて自己の搭載されている画像処理ASIC50a〜50cが最終の画像処理位置であるか否か判別して画像処理と転送処理を制御してもよい。
すなわち、第3画像処理ASIC50cのメモリリード部77は、コントローラ5のメインメモリ32から画像データを読み出すために、リードコマンドを発行し、メインメモリ32からリードした画像データがPCIe End Point62及びアービタ69を介して入力されると、CPU31からコントローラ画像処理部4に設定されたレジスタ値に基づいて該画像データに対して設定されている画像処理内容を読み取る。メモリリード部77は、図11の場合には、変倍処理であるので、変倍処理を行う第2画像処理ASIC50bのアドレスを画像データに付加して画像転送先決定部71に転送し、第3画像処理ASIC50cの画像転送先決定部71は、ASIC接続順指定信号から自身が第3画像処理ASIC50cであることが分かっているため、画像データに付加されたアドレスと比較して、隣接する前段の第2画像処理ASIC50bに画像データを転送することを決定する。画像転送先決定部71は、アービタ67及びPCIe Root Complex61を介して第2画像処理ASIC50bに画像データを転送する。
第2画像処理ASIC50bは、第3画像処理ASIC50cから画像データが転送されてくると、図9に示したように、PCIe End Point62、アービタ68を及び隣接ASIC入力画像データパスを介して画像転送先決定部71に該画像データを送り込み、画像転送先決定部71は、画像データに付加されているアドレスが第2画像処理ASIC50bを示していること、ASIC接続順指定信号から自身の搭載されている画像処理ASIC50a〜50cが第2画像処理ASIC50bであることから、画像データの転送先を自己の画像処理機能部63〜66であることを決定して、画像データを画像入力元選択部72に転送する。画像入力元選択部72以降の処理は、上記同様である。
また、複合装置1は、メモリリード部77が画像処理内容を判断して画像データに該画像処理内容を実行する画像処理ASIC50a〜50cのアドレスを付加する場合に、コントローラ5から読み取った画像データの画像処理内容が、フィルタ処理や色補正を含むときは、図12に示した転送経路と同様の転送経路で画像データを搬送するが、この場合、メモリリード部77は、第1画像処理ASIC50aのアドレスを付加して画像転送先決定部71に転送する。画像転送先決定部71は、ASIC接続順指定信号から自身が第3画像処理ASIC50cに搭載されていることが分かっているため、画像データに付加されているアドレスから、隣接する前段の第2画像処理ASIC50bに画像データを転送することを決定して、アービタ67及びPCIe Root Complex61を経由させて、第2画像処理ASIC50bに画像データを転送する。
第2画像処理ASIC50bは、画像データが第3画像処理ASIC50cから転送されてくると、PCIe End Point62、アービタ68及び隣接ASIC入力画像データパスを介して画像転送先決定部71に該画像データを送り、画像転送先決定部71は、該画像データに付加されているアドレスとASIC接続順指定信号から、隣接する前段の第1画像処理ASIC50aに画像データを第1画像処理ASIC50aに転送することを決定して、アービタ67及びPCIe Root Complex61を介して該画像データを第1画像処理ASIC50aに転送する。
第1画像処理ASIC50aは、画像データが第2画像処理ASIC50bから転送されてくると、PCIe End Point62、アービタ68及び隣接ASIC入力画像データパスを介して画像転送先決定部71に該画像データを送り、画像転送先決定部71は、該画像データに付加されているアドレスとASIC接続順指定信号から、自己の画像処理機能部63〜66の画像処理対象の画像データであることを認識して、画像入力元選択部72に該画像データを転送する。以降の画像データの画像処理及び転送処理は、上記同様であり、最終的に、コントローラ5のメインメモリ32に書き戻す。
そして、上記処理において、第2画像処理ASIC50bの画像転送先決定部71は、図14に示すように、画像データに付加されたアドレスによって、自己の搭載されている第2画像処理ASIC50bが最終の画像処理位置であるか否か判別して画像転送制御処理を行う。
すなわち、上述のように、画像データには、第3画像処理ASIC50cのメモリリード部77によって、画像処理ASIC50a〜50cのいずれで画像処理を行う画像データであるかを示すアドレスが付加されており、第2画像処理ASIC50bの場合、図14に示すように、画像転送先決定部71は、入力された画像データに付加されたアドレスが、自己(図14の場合、第2画像処理ASIC50b)のアドレスであるかチェックし(ステップS401)、該アドレスが自己のアドレスでないときには、画像データをそのまま第1画像処理ASIC50aに転送する(ステップS402)。ステップS401で、画像データのアドレスが自己のアドレスであるときには、画像データを該第2画像処理ASIC50bの画像入力元選択部72に転送して、第2画像処理ASIC50bの画像処理機能部63〜66での画像処理に供する(ステップS403)。
さらに、複合装置1において、コントローラ画像処理部4は、コントローラ5のメインメモリ32から読み取った画像データを画像処理する場合、該画像データに対する画像処理内容に関わらず、一旦、先頭の画像処理ASIC50である第1画像処理ASIC50aまで画像データを転送し、第1画像処理ASIC50aから順次画像処理の要否を判断して、必要な画像処理を行って、次段の画像処理ASIC50b、50cに転送して、最終的にコントローラ5のメインメモリ32に格納するようにしてもよい。
画像処理ASIC50によるコントローラ5のメインメモリ32から画像データを読み取って画像処理する場合の画像転送制御処理を、図10に示した第3画像処理ASIC50cを用いて説明すると、メモリリード部77は、コントローラ5のメインメモリ32から画像データをリードすると、画像処理内容を確認することなく、該画像データを画像転送先決定部71に送り、画像転送先決定部71が、画像処理内容に関わらず、前段の第2画像処理ASIC50bに転送することを決定して、アービタ67及びPCIe Root Complex61を経由させて第2画像処理ASIC50bに転送する。第2画像処理ASIC50bは、第3画像処理ASIC50cから転送されてきた画像データを、PCIe End Point62、アービタ68及び隣接ASIC入力画像データパスを介して画像転送先決定部71に送り、画像転送先決定部71が、その画像処理内容について確認することなく、画像データを第1画像処理ASIC50aに転送することを決定して、アービタ67及びPCIe Root Complex61を経由させて第1画像処理ASIC50aに転送する。
第1画像処理ASIC50aは、第2画像処理ASIC50bから転送されてきた画像データをPCIe End Point62、アービタ68及び隣接ASIC入力画像データパスを介して画像転送先決定部71に送り、画像転送先決定部71が、上記同様に、その画像処理内容に応じて必要な画像処理を行って、第2画像処理ASIC50bに転送する。以降の画像転送制御処理は、上記同様であり、最終的に、コントローラ5のメインメモリ32に画像処理した画像データを書き戻す。
なお、画像処理ASIC50は、上記複合装置1のように、広幅画像処理装置に搭載されるときには、モード設定端子が、その搭載数と接続順位を示す「01b」、「10b」、「11b」等のモード設定信号を出力する状態に設定されるが、狭幅複合装置等のように狭幅画像処理装置に単独で搭載されるときには、狭幅画像処理装置に単独で搭載されていることを示すモード設定信号を出力する状態に、モード設定端子が設定されて搭載される。例えば、図15に画像処理ASIC50sとして示すように、モード設定端子からモード設定信号「00b」が入力される。画像処理ASIC50sは、上記複合装置1に搭載される画像処理ASIC50a〜50cと同様であるが、動作イネーブル制御部76が動作イネーブル信号として、全ての画像処理機能部63〜66の動作を可能とする「1」を出力し、ASIC接続順指定信号として単独搭載されていることを示す信号を出力する。そして、画像転送先決定部71は、自己の画像処理ASIC50sで画像処理することを決定し、コントローラ5のメインメモリ32からの全ての画像データを、自己の画像処理機能部63〜66で画像処理させるために、画像入力選択部72に転送する。以降の画像転送制御処理は、上記同様である。
このように、本実施例の複合装置1は、所定容量の内蔵メモリ74と複数の画像処理機能部63〜66を搭載して該画像処理機能部63〜66がそのレジスタに設定されるレジスタ値に応じて内部メモリ74を利用して入力画像データに対してそれぞれ異なる画像処理を実行する画像処理モジュール50a〜50cと、該各画像処理機能部63〜66のレジスタに対してレジスタ値の設定を行って該画像処理モジュール50a〜50cによる画像処理を制御するCPU31と、該画像処理モジュール50a〜50cの処理した画像データを保管するメインメモリ32と、を備え、画像処理モジュール50a〜50cが、複数直列に接続されているか否か及び複数接続されているときの接続順位に応じた状態に設定されるモード設定端子と、該モード設定端子の設定状態に基づいて画像処理モジュール50a〜50cの複数接続の有無と画像処理モジュール50a〜50cの接続順位及び複数の画像処理機能部63〜66の実行する複数の画像処理のうちいずれの画像処理をいずれの画像処理モジュール50a〜50cに実行させるのかの処理分担を判定して該判定結果とCPU31からのレジスタ値情報に基づいて画像処理機能部63〜66のレジスタへのレジスタ値の設定制御と内蔵メモリ74の利用制御及び画像データの転送制御を行う動作制御信号を出力する動作制御手段(動作イネーブル制御部76、レジスタI/F部70)と、メインメモリ32の画像データを読み出して入力画像データとして取り込むメモリリード部77(保管データ読み出し手段)と、該動作制御信号に基づいて入力画像データを画像処理機能部63〜66を通過させた後にメインメモリ32方向に送る順方向と該順方向と逆方向のいずれの方向に送るかを制御する画像転送先決定部(データ流れ制御手段)71と、該順方向側に接続されている順方向側画像処理モジュール50b、50cから逆方向に送られてくる画像データを画像転送先決定部71に渡すPCIe End Point62、アービタ68及び隣接ASIC入力画像データパス(逆方向データ取り込み手段)と、画像転送先決定部71から受け取った画像データを逆方向側に接続されている逆方向側画像処理モジュール50a、50bに転送するアービタ67及びPCIe Root Complex逆方向データ送り出し手段)と、逆方向側画像処理モジュール50a、50bから画像データを受け取るPCIe Root Complex(順方向データ受け取り手段)と、画像転送先決定部71とPCIe Root Complex61のいずれかを選択して画像データを受け取って画像処理機能部63〜66に送り出す画像入力元選択部(処理対象データ選択手段)72と、画像処理機能部63〜66を通過した画像データを順方向側画像処理モジュール50b、50cとメインメモリ32のいずれに送り出すかを動作制御信号に基づいて選択制御する画像データ出力先選択部(順方向送り出しデータ制御手段)75と、を備えている。
したがって、複合装置等の画像処理装置が、狭幅サイズの画像データを処理対象とする狭幅画像処理装置であって画像処理ASICが1個のみ搭載されているのか、広幅サイズの画像データを処理対象とする広幅画像処理装置であって画像処理ASICが複数個搭載されているのか、複数個搭載されているときには、その画像処理ASICの接続順位がモード設定端子の設定状態でハードウェアとしての画像処理ASIC自体が把握して、複数の画像処理ASICを搭載している場合にも、CPUとしては、単独の画像処理ASICを搭載している場合と同じ制御を行うことで、必要なレジスタ設定を適切に行うことができ、順方向の画像データに対して適切かつ高速に画像処理することができるとともに、メインメモリ32に保管した画像データを読み出して画像処理ASICで画像処理する場合にも、必要な画像処理ASICに画像データを適切に送って画像処理を行うことができる。
また、本実施例の複合装置1は、メモリリード部77が、メインメモリ32から画像データを読み出すと、CPU31から設定される該画像データに対する画像処理内容と動作制御信号に基づいて該画像データの送り先の画像処理モジュール50a〜50cを決定して、該画像処理モジュール50a〜50cのアドレスを付加して画像転送先決定部71に渡し、画像転送先決定部71が該アドレスに基づいて該画像データの送り先を制御している。
したがって、処理対象の画像データを該画像データに対して実行する画像処理内容にとって必要な画像処理ASIC50a〜50cに適切に転送することができ、無駄な画像データの転送を省いて処理速度を向上させつつ、適切な画像処理を行うことができる。
さらに、本実施例の複合装置1は、動作イネーブル制御部76が、モード設定端子の設定状態が画像処理モジュール50a〜50cの複数接続状態を示していると、動作制御信号として、該画像処理モジュール50a〜50cの画像処理機能部63〜66毎にその動作の有効・無効を指示する動作イネーブル信号(動作切り替え信号)を含む信号を出力している。
したがって、複数の画像処理ASIC50a〜50cを搭載している場合に、該画像処理ASIC50a〜50cに割り当てられている画像処理に使用する画像処理機能部63〜66以外の画像処理機能部63〜66を無効にし、必要な画像処理機能部63〜66のみを有効にして画像処理ASIC50a〜50cをより一層適切かつ効率的に動作させることができる。
また、本実施例の複合装置1は、動作イネーブル制御部76が、モード設定端子の設定状態に基づいて内蔵メモリ74を複数の画像処理機能部63〜66に共有利用させるかいずれか1つの画像処理機能部63〜66に占有利用させるかの利用制御を行うメモリセレクタ部73と、モード設定端子の設定状態に基づいて画像処理モジュール50a〜50cの画像処理機能部63〜66毎にその動作の有効・無効を指示する動作イネーブル信号を動作制御信号の1つとして出力する動作イネーブル制御部76と、動作イネーブル信号とCPU31からのレジスタ値情報に基づいてレジスタ値のレジスタへの設定を行うレジスタI/F部70と、を備えている。
したがって、複数の画像処理ASICを搭載している場合にも、CPU31としては、単独の画像処理ASICを搭載している場合と同じ制御を行うことで、必要なレジスタ設定を適切に行い、画像データに対して適切かつ高速に画像処理することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。