以下に添付図面を参照して、この発明にかかる画像処理装置、画像処理方法、画像処理プログラムおよび画像処理システムの一実施の形態を詳細に説明する。なお、本実施の形態では、画像処理装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する画像処理装置に適用した場合について説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像処理装置であればいずれにも適用することができる。
(第1の実施の形態)
図1は、第1の本実施の形態にかかる画像処理装置の概略構成を示すブロック図である。図1に示すように、画像処理装置100は、スキャナ400、IPU(ASIC)470、HDD419、操作表示部20、DMAコントローラ22、メインメモリ437、メイン制御部101、画像処理全体制御部102、画像分類処理部300、画像処理順序決定部310、パラメータ生成順序決定部320、設定管理部330、最適化部340、データイメージ差分管理部350、画像処理パラメータ生成部360、画像処理実行部370、給紙部492、搬送路493、およびプリンタ415などを備えている。
給紙部492は原稿を給紙し、搬送路493は、給紙部492から給紙された原稿をスキャナ400へ搬送する。スキャナ400は、搬送路493によって搬送された原稿の画像を読み取る装置である。スキャナ400は、ここでは第一読取手段としてのスキャナCCD400aと、第二読取手段としてのスキャナCIS400bとを備えている。スキャナCCD400aは、CCD(Charge Coupled Device)を介して画像の読み取りを行うものである。スキャナCIS400bは、CIS(Contact Image Sensor)を介して画像の読み取りを行うものである。
図2は、第1の実施の形態にかかるスキャナの構成断面図である。図2に示すように、スキャナ400は、複数枚重ねた両面原稿257が積載可能な給紙部としての原稿トレイ256を備えており、その原稿トレイ256上の両面原稿257を上から一枚ずつ分離しながら搬送路250へ順次搬送する。搬送路250の途中に設けられた原稿搬送ローラ251は、両面原稿257を半回転させ、第一読取部の読取位置252の上に原稿を通過させる。読取位置252では、通過する両面原稿257の第一面側を露光ランプ250で照射し、その反射光を反射ミラー254a、254b、254cで反射して、レンズ255を通ってスキャナCCD400aの受光面で集光されることにより、両面原稿257の第一面側の画像を読み取ることができる。
第一面側の画像が読み取られた両面原稿257は、さらに右方向の搬送路に沿って搬送され、その両面原稿257の第二面側の搬送路250に第二読取部としてのスキャナCIS400bが配置されている。
図3は、図2に示すスキャナCISの一構成例を示す図である。図3に示すように、搬送路250に沿って搬送される両面原稿257は、図の上面の第二面側をスキャナCIS400bによって読み取られる。両面原稿257の第二面は、左右のLED光源260からの光がカバー261を通過して両面原稿257を照射し、その反射光をSLA(Self−focusing Lenz Array)263によって等倍センサ264に集光されることで、画像を読み取ることができる。CISドライバ265は、スキャナCIS400bを駆動するものである。
再び、図1に戻って、IPU(ASIC)470は、スキャナ400から読み取られた画像に対して画像処理を行う画像処理ユニットである。IPU470は、IPU(1)450とIPU(2)460とを備えている。IPU(1)450およびIPU(2)460の詳細については後述する。
HDD419は、スキャナ400から読み取られた画像データ等を記憶する記憶媒体である。操作表示部20は、スキャナ400から読み取られる画像データに対して画像処理に関するユーザからの入力操作を受け付けると共に(入力情報受付手段)、ユーザに向けた情報の表示を行うことかできる。
メインメモリ437は、画像処理装置100におけるプログラムやデータを一時的に蓄えておくための記憶媒体であり、画像処理前画像データ439と、レジスタ・イメージ443と、ソースイメージパターン444と、ディスクリプタ情報440と、画像処理後画像データ445との各領域に記憶されている。
画像処理前画像データ439は、画像処理が行われる前の画像データを記憶すると共に、画像データに応じて、読取デバイス情報と、操作部入力情報と、分類情報と、画像処理優先度と、画像処理パラメータ生成優先度と、色空間情報と、パラメータ生成予測時間とを記憶している。
レジスタ・イメージ443は、画像処理を実行する際にIPU(ASIC)470に設定する画像処理パラメータを記憶している。ソースイメージパターン444は、レジスタ・イメージ443に画像処理パラメータを記憶させる際に、予め確保されるパターンを記憶している。画像処理後画像データ445は、画像処理前画像データ439に記憶されている画像データに対して画像処理を実行した後の画像データを記憶している。
ディスクリプタ情報440は、画像データに応じてメインメモリ437に記憶されている画像処理前画像データ439のアドレスと、画像処理後画像データ445のアドレスと、レジスタ・イメージ443のアドレスと、次に画像処理を実行するための画像データに応じたディスクリプタ情報のアドレスとを記憶している。
メイン制御部101は、画像処理装置100の画像データの読み込みや画像処理の要求などを行うものである。画像処理全体制御部102は、メイン制御部101からの画像処理の要求を受けて、画像データに対して画像処理の動作制御を行うものである。
画像分類処理部300は、画像処理全体制御部102によって画像処理の動作制御が開始された場合に、画像データを分類するところである。画像処理順序決定部310は、画像分類処理部300によって分類された画像データに対して、画像処理を実行する順序を決定するところである。パラメータ生成順序決定部320は、画像処理順序決定部310によって画像処理を実行する順序が決定された画像データに対して、画像処理パラメータの生成順序を決定するところである。
設定管理部330は、画像データに対してパラメータ生成順序決定部320で決定された順序で画像処理パラメータを生成するまでの処理を行うところである。最適化部340は、設定管理部330によって画像処理パラメータの生成処理が開始された場合に、画像処理パラメータの生成処理の最適化を行うところである。
データイメージ差分管理部350は、最適化部340により画像処理パラメータの生成処理を最適化する際に、前回生成された画像処理パラメータと今回生成される画像処理パラメータとの差分情報を管理するところである。
画像処理パラメータ生成部360は、データイメージ差分管理部350により管理されている差分情報によって、画像データに対する画像処理パラメータを生成するところである。画像処理実行部370は、画像処理パラメータ生成部360によって生成された画像処理パラメータをIPU(ASIC)470に設定することにより、画像データに対して画像処理を実行するところである。プリンタ415は、画像処理実行部370によって画像処理が実行された画像データを画像出力するところである。
図4は、図1の画像処理装置において画像処理を行う画像処理部の構成を示すブロック図である。画像処理部480は、スキャナ400から読み込まれた画像データに対して画像処理を行い、プリンタ415に画像処理が実行された画像データを画像出力する。ユーザによって両面同時読み取りを複写原稿に対して指定された場合、原稿の一方の側を表面として、スキャナCCD400aによりR、G、Bに色分解されて、例えば10ビット信号で読み取り、原稿の表面と反対の他方の側を裏面として、スキャナCIS400bにより読み取ることで、一回の原稿搬送により原稿の両面を同時に読み取ることができる。
画像処理部480は、IPU(1)450、IPU(2)、マルチレイヤバス(Multilayer BUS)412、パターン生成回路413、γ変換(3)回路414、圧縮・伸張処理回路416、HDD I/F418、HDD(Hard Disk)419、回転処理回路420、I/F421、CPU438、ROM490、メモリコントローラ(2)回路436、およびメインメモリ437などを備えている。
IPU(1)450は、シェーディング補正回路401a、401b、FL補正処理回路446、チップ間画素補間回路447、メモリコントローラ(1)回路448、画像メモリ449、スキャナγ変換回路402、像域分離・ACS判定回路403、MTFフィルタ(1)回路404、自動濃度調整レベル(ADS)検出・除去回路405、色相判定処理(1)回路406、色補正・UCR処理(1)回路407、変倍処理(1)回路408、γ変換(1)回路409、二値階調処理回路410、および編集(1)処理回路411などを備えている。
シェーディング補正回路401aは、スキャナCCD400a用のシェーディング補正回路であり、スキャナCCD400aから読み取られた画像信号に対して主走査方向のムラを補正し、8ビット信号で出力する。シェーディング補正回路401bは、スキャナCIS400b用のシェーディング補正回路であり、スキャナCIS400bから読み取られた画像信号に対して主走査方向のムラを補正し、8ビット信号で出力する。
FL補正処理回路446は、スキャナCCD400a用のFL補正処理回路であり、主走査方向に並べた2組のCCDの感度差(階調性の差)を補正する。チップ間画素補間回路447は、スキャナCIS400b用のチップ間画素補間回路であり、主走査方向に並べられたCISデバイスのチップ間の間隙の画像データを両隣の画素から補間する。
メモリコントローラ(1)回路448は、スキャナCCD400aに読み取られた画像信号に対して、シェーディング補正回路401aとFL補正回路430とにより処理を行った後の画像データ、あるいは、スキャナCIS400bに読み取られた画像信号に対して、シェーディング補正回路401bとチップ間画素補間回路447とにより処理を行った後の画像データを一時的にDDRメモリなどを使用した画像メモリ449に記憶させておくためのDDRメモリコントローラである。
像域分離・ACS判定回路403は、上記の画像データについて、文字領域、写真領域などの像域分離判定結果(信号X)を求めたり、カラー原稿であるか白黒原稿であるかのカラー判定結果を求めたりする。
スキャナγ変換回路402は、スキャナ400からの読み取り信号が反射率データから明度データに変換する。画像メモリ449は、スキャナγ変換後の画像信号を記憶する。
MTFフィルタ(1)回路404は、シャープな画像やソフトな画像などユーザの好みに応じてエッジ強調や平滑化等、画像信号の周波数特性を変更する処理に加えて、画像信号のエッジ度に応じたエッジ強調処理(適応エッジ強調処理)を行う。例えば、文字エッジにはエッジ強調を行い、網点画像にはエッジ強調を行わないという所謂適応エッジ強調をR、G、B信号それぞれに対して行う。
色相判定処理(1)回路406は、読み取った画像データがどの色相に判別するかを判定する。判定した結果に基づいて、色相毎の色補正係数が選択される。
色補正・UCR処理(1)回路407は、スキャナ400により読み取られた画像データをFAX送信、あるいは、スキャナ送信用に使用する場合は、s−RGBもしくはK(Gray)信号に変換した後、メモリコントローラ(2)回路436を通じてメインメモリ437に保管する。
変倍処理(1)回路408では、主走査、副走査変倍が行われる。γ変換(1)回路409では、像域分離信号に応じて文字用・写真用のプリンタγ変換が行われ、二値階調処理回路410により二値化処理を行う前にプリンタγ変換が行われる。
二値階調処理回路410では、FAX送信やスキャナ配信を行う際に、単純二値化処理、二値ディザ処理、二値誤差拡散処理、二値変動閾値誤差拡散処理などの二値化処理を、文字モード、写真モード、文字・写真モードなど、操作部もしくは、I/F421に接続したLANを経由してPC(Personal Computer)などからの指示によって行う。
編集(1)処理回路411では、端部マスク処理、論理反転などの編集処理を行う。画像データ保管時には、マルチレイヤバス412を経由して、圧縮・伸張処理回路416で、圧縮処理がなされ、HDD I/F418を介して、HDD(Hard Disk Drive)419内に圧縮された画像データが保管される。保管される画像データは、使用目的に応じて、RGB信号、K(Gray)信号、CMYK信号、RGBX信号(X信号は像域分離結果)として保管される。RGB信号は配信用、K(Gray)信号は配信やFAX送信用、CMYK信号は紙への印刷用、RGBX信号は、CMYKデータ生成、もしくは、sRGB信号に色空間変換を行い配信するなどの再処理用として保管する。
IPU(2)460は、グレー/RGB変換回路425、RGB合成回路426、パターン生成(1)回路427、MTFフィルタ(2)回路428、ADS除去回路429、色相判定処理(2)回路430、色補正・UCR処理(2)回路431、パターン生成(2)回路432、変倍処理(2)回路433、総量規制回路434、特徴量抽出回路422、γ変換(2)回路423、階調処理回路424、および編集(2)処理回路435などを備えている。
グレー/RGB変換回路425は、転写紙に印刷出力する場合には、マルチレイヤバス412を経由して、RGB画像データから必要に応じてGray信号を生成する。その際、Green信号をR=G=BとしてGray化する処理を必要に応じて行う。
RGB合成回路426は、必要に応じてRGB画像データを上書き合成や透かし合成を行う。パターン生成(1)回路427は、必要に応じてACC(自動階調補正)パターンや登録色パターンなどを発生する。MTFフィルタ(2)回路428は、必要に応じてエッジ強調や平滑化処理などの空間フィルタ処理を行う。
ADS除去回路429は、必要に応じて原稿追従型の地肌除去処理を行う。色相判定処理(2)回路430の機能は、色相判定処理(1)回路406と同様であって、読み取った画像データがどの色相に判別するかを判定する。判定した結果に基づいて、色相毎の色補正係数が選択される。
色補正・UCR処理(2)回路431の機能は、色補正・UCR処理(1)回路407と同様であって、スキャナ400により読み取られた画像データをFAX送信、あるいはスキャナ送信用に使用される場合には、s−RGBもしくはK(Gray)信号に変換した後、メモリコントローラ(2)回路436を通じてメインメモリ437に保管される。変倍処理(2)回路433の機能は、変倍処理(1)回路408と同様であって、主走査や副走査変倍を行う。
総量規制回路434は、色補正・UCR処理(2)回路431でCMYK信号に変換された際に、転写紙上のYMCKトナーの総量を規制する。色補正・UCR処理(2)回路431でCMYKデータに変換され、特徴量抽出回路422にて、画像のエッジ、非エッジ、エッジと非エッジの中間の弱エッジなどの判定処理がなされ、γ変換(2)回路423で、エッジ、非エッジ、弱エッジなどの判定結果に応じてγ変換処理を行い、階調処理回路424で、二値あるいは多値のディザ処理、二値あるいは多値の誤差拡散処理、二値あるいは多値の変動閾値誤差拡散処理などの階調処理を行う。
編集(2)処理回路435は、画像追加/削除、枠消去、センターマスクなどのマスク処理、白黒(論理)反転などを必要に応じて行う。また、メインメモリ437は、画像処理前画像データ439、ディスクリプタ情報440、およびレジスタ・イメージ443などを備えている。画像処理前画像データ439は、画像処理前画像データ(1)〜(3)などからなる。また、ディスクリプタ情報440は、ディスクリプタ情報(1)〜(3)などからなる。
図5は、画像処理に利用されるディスクリプタ情報の一例を示す説明図である。図5に示すディスクリプタ情報440としては、画像処理前画像データ439のメモリ中におけるアドレス、画像処理後画像データを格納すべきアドレス、画像データの画像処理に使用する画像処理パラメータの格納アドレス、次に処理すべきディスクリプタ情報が格納されているメインメモリ中のアドレスを情報として備えている。なお、画像データのアドレスは、仮想メモリとしてHDD419中のアドレスを指定することも可能である。
このようなディスクリプタ情報を使用することによって、画像処理パラメータの画像処理モジュールのレジスタへの設定、画像データのメモリからの読み出し、画像処理の実行、画像処理後の画像データのメモリへの書き込み、次のディスクリプタ情報のアドレス情報が記載されている場合に次のディスクリプタ情報の読み込み処理を実行するまでの一連の動作を、一つの情報を参照して実行することができるため、効率的に連続して画像処理を行うことが可能となる。
また、図4のレジスタ・イメージ443は、レジスタ・イメージ[1]441と、レジスタ・イメージ[2]442とを備えている。レジスタ・イメージ[1]441は、レジスタ・イメージ[1](1)〜(3)などからなる。レジスタ・イメージ[2]442は、レジスタ・イメージ[2](1)〜(3)などからなる。
画像処理前画像データ439、ディスクリプタ情報440、レジスタ・イメージ(画像処理パラメータ)441は、電源投入時やメモリの初期化時などではメインメモリ437の中には必ずしも存在せず、画像処理の必要に応じてメインメモリ437中から必要とするメモリ量が確保される。画像処理前画像データ439は、ある場合にはスキャナCCD400a、スキャナCIS400bのいずれかから読み込まれて画像データが保持され、ある場合にはHDD419に保持されている画像データがHDD I/F418、マルチレイヤバス412、メモリコントローラ(2)回路436を介して転送されてきた画像データであって、また、ある場合にはI/F421を介して外部のコンピュータ(PC)からLAN回線を通じて送信されてきたプリンタデータであり、また、ある場合には図示しない電話回線を通じて送られてきたFAXデータである。レジスタ・イメージ(画像処理パラメータ)441は、グレー/RGB変換回路425から編集(2)処理回路435までの各画像処理モジュールに設定するための画像処理パラメータを保持している。
図6は、画像処理パラメータの設定方法の一例を示す説明図である。画像処理パラメータを図4のレジスタ・イメージ[1]441と、レジスタ・イメージ[2]442に次のように設定する。まず、図6に示すように、レジスタ・イメージ(画像処理パラメータ)(1)441の各パラメータの領域が必要に応じてメインメモリ437から確保される。また、総量規制用レジスタ・イメージとして、ソースイメージパターン3をメインメモリ437から確保する。
また、色補正・UCR処理用レジスタ・イメージとして、ソースイメージパターン1−1とソースイメージパターン1−2を必要に応じてメインメモリ437から確保する。ここで、ソースイメージパターン1−1には、CCDデバイス用の画像処理パラメータが設定されており、ソースイメージパターン1−2には、CISデバイス用の画像処理パラメータが設定されている。
また、階調処理用レジスタ・イメージとして、ソースイメージパターン2−1、2−2、2−3が必要に応じてメインメモリ437から確保される。ここで、ソースイメージパターン2−1には、文字・写真モード用で0度回転した(回転しない)階調処理用レジスタ・イメージと特徴量抽出閾値(特徴量量子化閾値)とが設定されている。また、ソースイメージパターン2−2には、文字・写真モード用90度回転用の階調処理用レジスタ・イメージと特徴量抽出閾値(特徴量量子化閾値)とが設定されている。また、ソースイメージパターン2−3には、写真モード用0度回転処理用階調処理用レジスタ・イメージと特徴量抽出閾値(特徴量量子化閾値)とが設定されている。
その他、図示していないが、二値化処理用パラメータ、ACC(自動階調補正用)階調処理用レジスタ・イメージなどを有するパターンがメインメモリ437から確保され、それぞれのユーザが指定するユースケースに応じて、画像処理パラメータの階調処理用レジスタ・イメージが設定される。階調処理用レジスタ・イメージ用の領域として何組のレジスタ・イメージが確保されるかについては、それぞれのユースケースの使用頻度に応じて、使用頻度が多いものについて優先的にレジスタ・イメージ領域が確保される。
また、フィルタ用のレジスタ・イメージ領域、γ変換(2)用のレジスタ・イメージ領域はメインメモリ437から確保されずに、CPU438で計算したパラメータが直接レジスタ・イメージ(画像処理パラメータ領域)441に設定される。
スキャナCCD400aで読み込まれた画像データ(1)を処理する場合は、ソースイメージパターン1−1のレジスタ・イメージを、レジスタ・イメージ(画像処理パラメータ)(1)441に設定する。スキャナCIS400bで読み込まれた画像データ(2)を処理する場合は、ソースイメージパターン1−2から読み込んだレジスタ・イメージを、レジスタ・イメージ(画像処理パラメータ)(1)441に設定する。
本第1の実施の形態にかかる画像処理装置100は、読み取りデバイスとして、スキャナCCD400aとスキャナCIS400bとが接続されている例を示しているが、スキャナCCD400aもしくはスキャナCIS400bのみが接続されている場合は、ソースイメージパターン1−1のみメインメモリ437から確保され、ソースイメージパターン1−2が確保されない動作を行うようにすることも可能である。これにより、メインメモリ437からのパラメータ使用量を低減することができる。これは、どのようなスキャナが画像処理装置に接続されているかが認識された時点で、何組のパターン1をメインメモリ437から確保されるかを判断する。
図6に示すように、ソースイメージパターン1−1あるいは、ソースイメージパターン1−2から、レジスタ・イメージ(画像処理パラメータ)441の色補正・UCR処理用レジスタ・イメージの領域にパラメータを複写するため、色補正パラメータ複写時間A1がかかる場合について説明する。
色補正・UCR処理用レジスタ・イメージのソースイメージパターン1−1のメモリが確保され、そのメモリ領域へのレジスタ・イメージのすべてにパラメータを設定する最大の時間B1に対して、例えば、3D−LUT色空間変換テーブルの再設定を行うことにより、C1の時間が節約することができる際に、以下の(1)式を満たす場合、ソースイメージパターン1−1およびソースイメージパターン1−2のレジスタ・イメージ領域を使用することが、パラメータ設定に必要な最大時間を低減する上で有効である。
A1≦C1・・・(1)
同様に、階調処理パラメータに対し、ソースイメージパターン2−1〜ソースイメージパターン2−3から、レジスタ・イメージ(画像処理パラメータ)441の階調処理用レジスタ・イメージ領域にパラメータを複写するために階調処理パラメータ複写時間A2がかかる場合について説明する。
ソースイメージパターン2−1〜ソースイメージパターン2−3のいずれか一つにおいて、そのレジスタ・イメージのすべてにパラメータを設定する最大の時間B2に対して、ソースイメージパターン2−1〜ソースイメージパターン2−3をメインメモリ437から確保し、パラメータの再設定を行わないで良い最大の時間をC2とした場合に、以下の(2)式を満たす場合、ソースイメージパターン2−1〜ソースイメージパターン2−3のメインメモリ437を確保することがパラメータ設定に必要な最大時間を低減する上で有効となる。
A2≦C2・・・(2)
一方、その他のパラメータ、MTFフィルタ(2)パラメータ、γ変換(2)パラメータに対しては、仮に、メインメモリ437からレジスタ・イメージ(領域)443として、パターン0を確保した場合のレジスタ・イメージ(画像処理パラメータ)(1)441への複写時間A3に対し、レジスタ・イメージ443へ直接設定する時間B3に対して、常にパラメータの設定を行う場合には、パラメータの再設定を行わないで良い最大の時間C3は0となるので以下の(3)式が得られる。そのため、この場合は、設定管理部330がレジスタ・イメージ(画像処理パラメータ)(1)441に対して直接パラメータの設定を行う。
A3>C3=0・・・(3)
図7は、画像処理装置の初期化処理を説明するシーケンス図である。まず、ユーザによって画像処理装置の電源投入がなされるか、もしくは初期化処理が実行されると、メイン制御部に対して初期化が実行される(ステップS120)。続いて、画像処理全体制御部に対して初期化が実行され(ステップS121)、画像分類処理部に対して初期化が実行される(ステップS122)。そして、画像処理順序決定部に対して初期化が実行され(ステップS123)、パラメータ生成順序決定部に対して初期化が実行される(ステップS124)。さらに、設定管理部に対して初期化が実行され(ステップS125)、設定管理部が初期化処理を実行する(ステップS126)。
次に、設定管理部330は、接続されているデバイスがスキャナCCD400aを使用しているか、スキャナCIS400bを使用しているか、あるいは両方のデバイスを使用しているかに応じて、図6に示す3D−LUT色変換テーブル・マスキング係数のソースイメージパターン1用にメインメモリ437から確保するパターン数を決定して、ソースイメージパターンを生成する(ステップS127)。ここでは、スキャナが使用しているデバイス数に基づいて、メインメモリ437から確保するパターン数を決定したが、これは一例であって、これ以外にもコピー用、配信用など、使用する色空間情報(sRGB、YMCK、adobe−RGBなど)に応じてパターン数を作成するようにしてもよい。
さらに、設定管理部は、ソースイメージパターンの生成数、生成内容に基づいて、最適化部を初期化する(ステップS128)。ソースイメージパターンの生成内容は、どのような画像処理モジュールに対してソースイメージパターンを何組生成したかに応じて、指定された操作部入力情報に対してどのパターンを使用すれば設定が効率的になるかを判断する。続いて、最適化部は、図6のメインメモリ437中に種々のデータイメージ差分データを確保するためデータイメージ差分管理部を初期化する(ステップS129)。
図8は、画像処理装置の画像処理部において画像処理パラメータを生成する処理手順を示すシーケンス図である。まず、ユーザによって画像処理実行が要求されると(ステップS130)、操作表示部20から操作部入力情報が取得していない場合は、メイン制御部101によって操作表示部20から操作部入力情報を取得する(ステップS131)。
そして、画像処理前画像データが存在しない場合、メイン制御部101は、画像データとして画像処理前画像データをHDD419、LAN、スキャナ400などから取得する(ステップS132)。ただし、HDD419から画像処理前画像データを取得する場合、メインメモリ437から入力画像データ用メモリ領域の確保は必ずしも必要でなく、HDD419から画像処理前画像データを直接読み込んで後述する処理のための画像処理前画像データとすることも可能である。そして、メイン制御部101は、画像処理前画像データのアドレスを取得する(ステップS133)。ステップS131からステップS133までの処理は、連続して処理するデータが存在する場合に、繰り返し行われる。
続いて、画像分類処理部300は、メイン制御部101からの画像データのグループ化の実行要求を受けて(ステップS134)、画像データのグループ化を実行する。そして、画像処理順序決定部310は、メイン制御部101からの画像処理の順序を決定する処理要求を受けて(ステップS135)、画像処理の順序を決定する。次に、パラメータ生成順序決定部320は、メイン制御部101からの画像処理パラメータの生成順序を決定する処理要求を受けて(ステップS136)、画像処理パラメータの生成順序を決定する。
そして、メイン制御部101が画像処理全体制御部102に対して画像処理の準備の処理を要求すると(ステップS137)、画像処理全体制御部102は、レジスタ・イメージが存在しない場合に、メインメモリ437から画像処理パラメータの格納領域を確保する(ステップS138)。このとき、後で使用するため、確保されたレジスタ・イメージのアドレスを記憶する。
そして、画像処理全体制御部102は、画像処理後画像データの格納領域をメインメモリ437、もしくはHDD419内の仮想メモリなどから確保する(ステップS139)。続いて、画像処理全体制御部102から画像処理パラメータ計算の処理要求を受けると(ステップS140)、設定管理部330は、指定された操作部入力情報を使用して画像処理パラメータの計算処理を行う(ステップS141)。
そして、画像処理全体制御部102によってパラメータ設定要求を受けることにより(ステップS142)、設定管理部330は、最適化部340に画像処理パラメータ設定の処理を要求する(ステップS143)。そして、最適化部340は、データイメージ差分管理部350に差分の発生の有無を問い合わせる(ステップS144)。データイメージ差分管理部350は、差分の発生の有無と、使用すべき最適なイメージ・パターンについての情報を最適化部340に返す(ステップS145)。
最適化部340は、データイメージ差分管理部350からの情報からどのソースイメージパターンに画像処理パラメータを設定すべきかを判定し(ステップS146)、画像処理パラメータを再設定する必要がある場合には、画像処理パラメータの設定をソースイメージパターンに対して行う(ステップS147)。そして、設定管理部330は、ソースイメージパターンに設定されている設定内容をソースイメージパターンから読み出し(ステップS148)、レジスタ・イメージに設定(複写)する(ステップS149)。
ディスクリプタ情報がメインメモリ437から確保されていない場合は、メインメモリ437から確保し(ステップS150)、入力画像データのアドレス、出力画像データのアドレス、レジスタ・イメージのアドレス、および存在する場合には次のディスクリプタ情報が格納されているアドレスを設定する(ステップS151)。
そして、画像処理全体制御部102から、メイン制御部101に対して出力画像データのアドレスを返す(ステップS152)。
図9は、画像処理部の画像処理における画像データの流れを示す説明図である。複数枚(複数ページ)のシート原稿257をスキャナ400により読み取って画像データを生成する。原稿257をスキャンする際に、読み取りデバイスとして、原稿の一方の面の読み取り用にスキャナCCD400aを使用し、原稿のもう一方の面の読み取りにスキャナCIS400bを使用する。ドキュメントフィーダ内を一度の通過によりスキャナCCD400aとスキャナCIS400bの2つのデバイスを用いることにより原稿の両面を読み取ることができる。
一例として、スキャナCCD400aで読み取って生成した画像データを「表面(CCD)読み取り画像データ」とし、スキャナCIS400bで読み取って生成した画像データを「裏面(CIS)読み取り画像データ」として図示している。「表面(CCD)読み取り画像データ1」と「裏面(CIS)読み取り画像データ2」は、同じ原稿の表面と裏面の画像データの関係にあり、同様に、「表面(CCD)読み取り画像データ3」と「裏面(CIS)読み取り画像データ4」、以下順に、「表面(CCD)読み取り画像データ11」と「裏面(CIS)読み取り画像データ12」までが一枚の原稿の表面と裏面の関係にある。
「表面(CCD)読み取り画像データ7」と「裏面(CIS)読み取り画像データ8」は、一枚の原稿の通過の際にスキャナCCD400aおよびスキャナCIS400bにより生成された画像データであるが、「裏面(CIS)読み取りデータ8」は、一旦、画像メモリ中に保持され、「表面(CCD)画像データ7」が、「裏面(CIS)読み取り画像データ6」の後に、HDD(ハードディスク)に保管された後に、画像メモリ中から読み出され、HDD419に保管される。画像メモリ中の「裏面(CIS)読み取り画像データ8」は、HDD419中に保管された後に、消滅(削除)され、次の画像データである、「裏面(CIS)読み取り画像データ9」の保持に備えられる。
上述した画像データ1〜12に対しては、それぞれ「表面(CCD)で読み取られた」画像データであるか、「裏面(CIS)で読み取られた」画像データであるかを、読取デバイス情報として画像データに対応づけて記憶される。
図9に示す画像データの分類手段は、上記の読取デバイス情報に基づいて、画像データ1〜12を、それぞれ、「スキャナCCDで読み取られた画像グループ1」と、「スキャナCISで読み取られた画像グループ2」との2つのグループに分類する。
画像データの読み取りで使用した読み取りデバイスに応じて画像データを分類し、グループ化し、同一グループ内の画像データの画像処理する際に使用する画像処理パラメータを連続的に処理することによって、画像処理パラメータの計算に際し、前回の計算結果を使用すくことができるため、効率的に計算結果を得ることが可能となる。
図9に示す画像処理優先度設定手段は、画像処理後の画像データを必要とされる順番に基づいて画像データの処理順序を決定する。一例としては、両面印刷を行う場合であって、印刷用紙の表面に「表面(CCD)読み取り画像データ」を印刷し、印刷用紙の裏面に「裏面(CIS)読み取り画像データ」を印刷する場合について考える。
図10は、ディスクリプタ情報が保持する次のディスクリプタ情報へのアドレス情報の設定の並び順の一例を示す説明図であり、図11は、ディスクリプタ情報が保持する次のディスクリプタ情報へのアドレス情報の設定の並び順の一例を示す説明図であり、図12は、ディスクリプタ情報が保持する次のディスクリプタ情報へのアドレス情報の設定の並び順の一例を示す説明図であり、図13は、ディスクリプタ情報が保持する次のディスクリプタ情報へのアドレス情報の設定の並び順の一例を示す説明図である。
まず、プリンタ415によって印刷用紙の表面を印刷し、その後裏面を印刷する場合、あるいは、同時に表面と裏面の印刷を行うことが可能なプリンタの場合、
「表面(CCD)読み取り画像データ1」→「裏面(CIS)読み取り画像データ2」→「表面(CCD)読み取り画像データ3」→・・・→「裏面(CIS)読み取り画像データ10」の順番で画像データの生成が行われる。
続いて、この生成結果に基づいて、ディスクリプタ情報生成モジュールが「表面(CCD)読み取り画像データ1」に対応した「ディスクリプタ情報1」→「裏面(CIS)読み取り画像データ2」に対応した「ディスクリプタ情報2」→・・・→「表面(CCD)読み取り画像データ9」に対応した「ディスクリプタ情報9」→「裏面(CIS)読み取り画像データ10」に対応した「ディスクリプタ情報10」の順番に画像データを処理するように、各「ディスクリプタ情報」が保持する次の「ディスクリプタ情報」へのアドレス情報を設定する。この並びを図10に示すType1−1とする。図9のディスクリプタ情報440の破線矢印に示すように、「ディスクリプタ情報1」、「ディスクリプタ情報3」、「ディスクリプタ情報5」がそれぞれ、次の「ディスクリプタ情報2」、「ディスクリプタ情報4」、「ディスクリプタ情報6」を指し示していることがわかる。図10は、Type1−1の並び順であり、ディスクリプタ情報が保持する次のディスクリプタ情報へのアドレス情報の設定の並び順を示している。
図10とは逆の順序で印刷する場合は、図11に示すように、図10の矢印とは逆の方向で「ディスクリプタ情報」を指し示すようにアドレス情報を設定する。すなわち、
「裏面(CIS)読み取り画像データ10」に対応した「ディスクリプタ情報10」→「表面(CCD)読み取り画像データ9」に対応した「ディスクリプタ情報9」→・・・→「裏面(CIS)読み取り画像データ2」に対応した「ディスクリプタ情報2」→「表面(CCD)読み取り画像データ1」に対応した「ディスクリプタ情報1」の順番とする。この並び順が図11に示すType1−2である。
次に、プリンタ415が印刷用紙の片面のみを印刷部で印刷した後、片面印刷済みの印刷用紙を複数枚保持する印刷物保持部を備えていて、全ての印刷用紙の表面の印刷が終了した後に、上記印刷物保持部から印刷用紙を印刷部に搬送し、もう一方の面(裏面)を印刷することができるプリンタ415を使用する場合、
「表面(CCD)読み取り画像データ1」→「表面(CCD)読み取り画像データ3」→・・・→「表面(CCD)読み取り画像データ9」→「裏面(CIS)読み取り画像データ2」→「裏面(CIS)読み取り画像データ4」→・・・→「裏面(CIS)読み取り画像データ10」の順番で画像処理を行う。
この場合、両面印刷が可能なコピー機、あるいは印刷機において、両面印刷が行われた小冊子を生成する際に、先に表表紙(あるいは裏表紙)から、裏表紙(あるいは表表紙)までの一方の面(表面あるいは裏面)だけを印刷し、片面を印刷した印刷紙を画像形成装置の片面印刷済の印刷紙をトレイに保持する。そして、印刷する全ての片面(表面あるいは裏面)の印刷終了後に、印刷されていない方の片面(裏面または表面)を印刷する。そのため、片面を先に印刷し、片面印刷済み印刷紙を保持しておき、その後、印刷されていない片面を印刷可能なコピー機(または、プリンタ)において、本願発明による画像データの分類による画像処理を効率的に適用することが可能である。
この場合は、図12に示すように、
「表面(CCD)読み取り画像データ1」に対応した「ディスクリプタ情報1」→「表面(CCD)読み取り画像データ3」に対応した「ディスクリプタ情報3」→・・・→「表面(CCD)読み取り画像データ7」に対応した「ディスクリプタ情報7」→「表面(CCD)読み取り画像データ9」に対応した「ディスクリプタ情報9」→「裏面(CIS)読み取り画像データ2」に対応した「ディスクリプタ情報2」→「裏面(CIS)読み取り画像データ4」に対応した「ディスクリプタ情報4」→・・・→「裏面(CIS)読み取り画像データ8」に対応した「ディスクリプタ情報8」→・・・→「裏面(CIS)読み取り画像データ10」に対応した「ディスクリプタ情報10」の順番で画像データを処理するよう、各「ディスクリプタ情報」が保持する次の「ディスクリプタ情報」へのアドレス情報を生成する。
図12中に示した実線の矢印のように、「ディスクリプタ情報1」→「ディスクリプタ情報3」→「ディスクリプタ情報5」→「ディスクリプタ情報7」→「ディスクリプタ情報9」→「ディスクリプタ情報2」→「ディスクリプタ情報4」→・・・→「ディスクリプタ情報10」を指し示している。この並び順をType2−1とする。
また、図12とは逆の順序で印刷する場合は、図13に示すように、
「表面(CCD)読み取り画像データ9」に対応した「ディスクリプタ情報9」→「表面(CCD)読み取り画像データ7」に対応した「ディスクリプタ情報7」→・・・→「表面(CCD)読み取り画像データ3」に対応した「ディスクリプタ情報3」→「表面(CCD)読み取り画像データ1」に対応した「ディスクリプタ情報1」→「裏面(CIS)読み取り画像データ10」に対応した「ディスクリプタ情報10」→「裏面(CIS)読み取り画像データ8」に対応した「ディスクリプタ情報8」→・・・→「裏面(CIS)読み取り画像データ4」に対応した「ディスクリプタ情報4」→「裏面(CIS)読み取り画像データ2」に対応した「ディスクリプタ情報2」の順番となる。この並び順をType2−2とする。
このように、上記の場合には、スキャナCCDで読み取られた画像データを1つのグループとし、スキャナCISで読み取られた画像データをもう1つのグループとして、それぞれのグループ毎に画像処理パラメータを生成し、生成した順に、スキャナCCDで読み取られた画像データを先に画像処理して、次に、スキャナCISで読み取られた画像データを画像処理することにより、複数の画像データを、一括して効率的に画像処理パラメータの生成と画像処理の実行とを行うことが可能となる。
画像処理パラメータ生成順序決定手段としてのパラメータ生成順序決定部320は、画像処理優先度設定手段としての画像処理順序決定部310に応じて、画像処理パラメータ生成順番を決定する。前述した図10のType1−1と、図12のType2−1の場合は、「表面(CCD)読み取り画像データグループ1」に使用する画像処理パラメータを生成し、その後「裏面(CIS)読み取り画像データグループ2」を生成する。そして、同一の画像データグループ内で画像処理パラメータを生成する順番は、上記した画像処理優先度設定手段としての画像処理順序決定部310による画像処理データの生成順に従う。
「表面(CCD)読み取り画像データ1用画像処理パラメータ1」→「表面(CCD)読み取り画像データ3用画像処理パラメータ3」→・・・→「表面(CCD)読み取り画像データ7用画像処理パラメータ7」→「表面(CCD)読み取り画像データ9用画像処理パラメータ9」→「裏面(CIS)読み取り画像データ2用画像処理パラメータ2」→「裏面(CIS)読み取り画像データ4用画像処理パラメータ4」→・・・→「裏面(CIS)読み取り画像データ8用画像処理パラメータ8」→「裏面(CIS)読み取り画像データ10用画像処理パラメータ10」の順番となる。
また、前述した図11のType1−2と、図13のType2−2の場合は、「表面(CCD)読み取り画像データグループ1」に使用する画像処理パラメータを生成し、その後「裏面(CIS)読み取り画像データグループ2」を生成する順番は変わらないが、グループ内の画像データに対する画像データの生成順を、画像処理が必要とする順番で生成する。すなわち、
「表面(CCD)読み取り画像データ9用画像処理パラメータ9」→「表面(CCD)読み取り画像データ7用画像処理パラメータ7」→・・・→「表面(CCD)読み取り画像データ3用画像処理パラメータ3」→「表面(CCD)読み取り画像データ1用画像処理パラメータ1」→「裏面(CIS)読み取り画像データ10用画像処理パラメータ10」→「裏面(CIS)読み取り画像データ8用画像処理パラメータ8」→・・・→「裏面(CIS)読み取り画像データ4用画像処理パラメータ4」→「裏面(CIS)読み取り画像データ2用画像処理パラメータ2」の順番となる。
ただし、画像処理パラメータを保持するメモリ量容量の制約によって、上記の画像処理パラメータ1〜10のすべてを記憶できない場合は、記憶できる容量に応じて画像処理パラメータを生成する。
このように、スキャナCCD400aで読み取られた画像データを1つのグループとし、スキャナCIS400bで読み取られた画像データをもう一つのグループとして、それぞれのグループ毎に画像処理パラメータを生成する。そして、画像データに対する画像処理を実行するに際しては、画像処理パラメータの生成順序およびグループに関わらず、画像データの画像処理を行うことが可能となる。
上記した第1の実施の形態では、1台の画像処理装置における画像読み取りデバイスを例としたが、他の読取デバイス情報、あるいは、操作部入力情報によって分類することも可能である。スキャナで読み取った画像間で、解像度や分光感度が異なる種類のスキャナで読み取られた画像データに対しては、それらを画像データの読取デバイス情報として画像データに付随して保持させ、それぞれ、異なる画像データのグループとして分類する。そして、分類されたそれぞれの画像データグループ内の画像処理パラメータの計算を優先させる。これにより、画像処理パラメータ生成を効率的に行うことが可能となる。
このため、原稿を読み込んで生成された画像データが、異なるスキャナで読み込まれて生成された画像データの場合、sRGB、sYCC、adobe−RGBなどの読取デバイス情報として、異なる色空間に基づいた画像データであることが判別できる。例えば、複写機のスキャナで読み取って生成された画像データの色空間(メーカー独自の色空間設定の場合など)と、他の機械のスキャナで読み取られた画像データ、スキャナによらないデジタルカメラなどの画像、あるいはコンピューターグラフィックのようにスキャナによらずに人工的に生成された画像データなどを印刷する場合、上述したsRGB、sYCC、adobe−RGBのように異なる色空間を有する画像データであっても、グループに分類し、各グループ内の画像処理パラメータの計算を優先させて画像処理することにより、適切に印刷することができる。
このように、画像処理する画像データの色空間を変更する毎に、画像処理パラメータを再計算する量が多くなるため、画像処理しようとしている画像データの色空間に応じて画像データを分類・グループ化しておき、グループ内の画像データを画像処理するための画像処理パラメータをまとめて計算することで、効率的かつ短時間に画像処理パラメータを生成し、取得することが可能になる。
また、1種類のスキャナで読み取った画像データを操作部入力情報として印刷用および電子配信用途に使用する場合は、それぞれ画像データをグループ化する。そして、印刷用であっても、カラー印刷、モノクロ印刷、あるいは、原稿の赤を赤色に、赤色以外を黒で印刷する赤黒モード、原稿の黒以外を黒以外の第1の単一色(赤、青、緑、黄、その他)に変換し、原稿の黒部を、黒、または、第1の単一色床となる第2の単一色で印刷する場合などを分類し、画像データをグループ化する。また、濃度調整値を濃くする画像データ、濃度調整値を薄くする画像データを分類し、グループ化して、画像処理パラメータを生成することにより、効率的に画像処理パラメータを生成する。
このように、画像処理後の画像データの色空間に対応するために、画像処理パラメータの計算量が多くなる場合は、画像処理する画像データの色空間に応じて画像データを分類・グループ化しておき、グループ内の画像データを画像処理するための画像処理パラメータをまとめて計算することで、効率的かつ短時間に画像処理パラメータを生成し、取得することが可能になる。
また、読取デバイス情報が異なる画像データを処理する場合、操作部入力情報が異なる画像データに対して連続した画像処理を行うためにそれぞれの異なる画像処理パラメータの生成を行う場合、読取デバイス情報や操作部入力情報によっては、画像処理パラメータの生成に時間がかかる要因(パラメータ)、計算量が多い要因(パラメータ)、変更量が多い要因(パラメータ)がそれぞれ存在する。このため、読取デバイス情報や操作部入力情報における上記の要因に対応して、画像処理パラメータの計算量や、切り替え量が多い要因から、あらかじめ、それぞれの要因の優先度を決定しておくようにする。例えば、要因A>要因B>要因C>・・・>要因Zなどのように決める。
ここで、例えば、計算量の多い要因(パラメータ)は、画像処理パラメータを設定するレジスタ数のことである。また、例えば、要因Aが濃度調整のパラメータを設定するときのレジスタ数、要因Bが文字・写真モードのパラメータを設定するときのレジスタ数、要因Cが文字モードのパラメータを設定するときのレジスタ数、要因Dが写真モードのパラメータを設定するときのレジスタ数とし、各要因に対して画像処理パラメータの切替時間を参照することによって、画像データをグループ化する。
このうち、要因Aに対する画像処理パラメータを切り換えるためのパラメータ生成時間をあらかじめ調査しておき、グループ化の基準値T0に対して、要因Aによる画像処理パラメータの切り換え時間Ta>要因Bによる画像処理パラメータの切り換え時間Tb>基準値T0>要因Bによる画像処理パラメータの切り換え時間Tc>要因Bによる画像処理パラメータの切り換え時間Td>・・・>要因Bによる画像処理パラメータの切り換え時間Tzである場合については、要因A、要因Bに対して画像データのグループ化を行うようにする。
上記のように、要因Cと要因Dに対する画像処理パラメータの切り換え時間が画像データの分類とする基準値T0に対して小さい場合であっても、要因C+要因Dとを組み合わせた場合の画像処理パラメータの切り替えの時間が、T0より大きくなる場合については、要因Cと要因Dとの組み合わせに対しても、画像データの分類・グループ化を行うようにする。画像データの分類・グループ化は、一つのジョブで処理を行おうとする画像データに対して行うと、画像処理パラメータの生成に対して効率的になる。
このように、画像データの書誌情報と、画像処理指定内容に基づいて画像処理パラメータを生成する。画像データの書誌情報、あるいは、画像処理指定内容の中には、画像処理パラメータの生成に際し、計算に時間がかかる要因となるもの、計算量が多いもの、あるいは、画像処理パラメータの切り換え量が多いものが存在する。
そのため、画像処理パラメータの生成に際して、パラメータの生成(計算)に時間がかからない要因、計算量が少ない要因、あるいは、画像処理パラメータの切り換え量が少ない要因の画像データを1つのグループとしてまとめて、同一のグループ内の分類された画像処理パラメータの生成(計算)を行うことにより、画像処理パラメータから画像処理終了までの処理全体を効率化させることができる。
その分類の際には、画像データの書誌情報、画像処理指定内容から、画像処理パラメータの生成にかかわる時間を予測し、画像処理パラメータの生成にかかる時間が小さいものから優先的に画像処理パラメータを生成するようにグループ化する。
一つ前の画像処理パラメータの生成から、一つのグループに属さない画像データについては、別のグループとして分類する。
すべてのこれから画像処理を行うすべての画像データに対して、上記のように分類を行った後、同一のグループ内の画像データに対する画像処理パラメータを生成し、同一のグループ内の画像データのための画像処理パラメータの生成終了後に、次のグループの画像データを画像処理するための画像処理パラメータを生成する。
上記のようにすることで、画像処理パラメータから画像処理終了までの処理全体を効率化することができる。
また、画像処理パラメータの生成を複数の情報処理ユニットを有するマルチコア・プロセッサーを使用する場合には、分類手段による画像データの分類結果(グループ)をそれぞれ別のコアに割り当てて処理を行うように制御する。これにより、それぞれのグループの画像処理パラメータを並列生成することが可能となるため、画像処理パラメータの生成時間を短縮することができる。
図14は、画像処理部のDMA転送による画像処理動作を説明するシーケンス図である。メイン制御部101による画像処理の実行要求を受けることによって(ステップS160)、画像処理全体制御部102は画像処理実行の要求を送出して、DMAコントローラ22にディスクリプタ情報を設定する(ステップS161)。
DMAコントローラ22は、ディスクリプタ情報を取得することで(ステップS162)、ディスクリプタ情報の画像処理パラメータのアドレス情報を読み出し(ステップS163)、取得した画像処理パラメータをDMA転送によりIPU(ASIC)470に設定する(ステップS164)。
そして、DMAコントローラ22は、画像処理前画像データをバンド(所定のライン数)毎に読み出す(ステップS165)。また、DMAコントローラ22は、IPU(ASIC)470にパラメータ設定の要求を送出することで(ステップS166)、IPU(ASIC)470は画像処理を実行する(ステップS167)。そして、画像処理の実行により生成された画像処理後画像データを画像処理後画像データが格納されるメモリ(もしくは仮想メモリ)に書き出す(ステップS168)。次のディスクリプタ情報が存在する場合は、ステップS162からステップS168の処理が繰り返される。また、次のディスクリプタ情報のアドレスが存在しない場合は、DMAコントローラ22が画像処理終了の割り込み発行を行い、処理を終了する(ステップS169)。
DMAコントローラ22による画像処理の終了割り込みを受け取った後に、メイン制御部101は必要に応じて画像処理の終了処理を画像処理全体制御部102に送出する(ステップS170)。そして、画像処理全体制御部102は、ディスクリプタ情報のメモリ解放を行い(ステップS171)、確保したレジスタ・イメージの領域解放を行う(ステップS172)。
また、入力画像データが不要な場合、メイン制御部101はメモリ解放を行う(ステップ173)。また、メイン制御部101は、画像処理後出力画像データを読み出し(ステップS174)、必要に応じて、印刷、配信、保管などの処理を行う。印刷は、プリンタに出力画像データを転送し、配信は、LAN回線を使用した送信、あるいは電話回線を通じてのFAX送信などを行う。保管は、HDDに保存する。また、出力画像データが不要になった場合は、メイン制御部101は、画像処理後画像データのメモリ解放を行う(ステップS175)。
図15は、画像処理装置にかかる画像パラメータの生成処理手順を示すフローチャートである。まず、メイン制御部101は、操作部入力情報を取得済みか否か判別する(ステップS1001)。操作部入力情報が取得されていなければ(ステップS1001:No)、メイン制御部101は、操作部入力情報が取得されるまで待機状態となる。
操作部入力情報が取得済みである場合は(ステップS1001:Yes)、メイン制御部101は、画像処理を行うデータが選択されているか否かを判断する(ステップS1002)。画像処理を行うデータが選択されていない場合は(ステップS1002:No)、画像処理を行うデータが選択されるまで待機状態となる。
画像処理を行うデータが選択されている場合は(ステップS1002:Yes)、メイン制御部101は、選択された画像データが格納されているか否かを判断する(ステップS1003)。選択された画像が格納されている場合(ステップS1003:Yes)、ステップS1006の処理に移る。つまり、HDDなどのメディアに保管された画像データが、ユーザにより指定された場合は、指定された画像データを使用する。
ステップS1003において選択された画像が格納されていない場合(ステップS1003:No)、メイン制御部101は、例えば、ADF(自動原稿送り装置)に載置された原稿をスキャナにより読み取りを行う(ステップS1004)。そして、メイン制御部101は、画像データと読み取りデバイス情報とをHDDに保管する(ステップS1005)。そして、メイン制御部101は、画像データの読み取りデバイス情報を取得する(ステップS1006)。
次に、メイン制御部101は、画像データのグループ化を行う(ステップS1007)。そして、メイン制御部101は、グループ化が行われた画像データに対して、画像処理の順序を決定し(ステップS1008)、画像処理パラメータの生成順序を決定する(ステップS1009)。続いて、画像処理全体制御部102は、画像処理パラメータの格納領域を確保する(ステップS1010)。
次に、設定管理部330は、画像処理パラメータを生成する(ステップS1011)。画像処理パラメータの生成順番は、例えば、画像分類処理部330による分類されたグループ内の中から、画像処理優先度が高い画像データが属する画像データを含む画像データグループの画像処理パラメータの生成を優先する。画像データグループ内においては、画像処理優先度にしたがって画像処理パラメータを生成する。
このように、画像分類処理部330により、画像データのグループ化を行い、グループ内の画像データに使用する画像処理パラメータを優先して生成することにより、画像処理パラメータの切り替わり量を抑制することができる。
小冊子の印刷において、画像処理優先度が高い画像データとしては、例えば、表表紙から裏表紙の順でページ番号を増える方向に印刷を行う場合(正順印刷)と、裏表紙から表表紙にページ番号を減らしていく方向に印刷する場合(逆順印刷)が典型的な画像処理の優先順序である。正順印刷における表表紙となる画像データ、または、逆順印刷における裏表紙となる画像データが、画像処理の優先度が高い画像データであると判断し、表表紙(または裏表紙)となる画像データを含むグループに対する画像処理パラメータを優先して生成する。グループ内における正順印刷では、ページ番号が小さい方となる画像データを優先し、逆順印刷においては、ページ番号が大きいものの画像データを優先する。上記したように、画像処理パラメータの生成順序を決定することにより、画像データをグループ化した場合の画像処理パラメータの生成を優先させるグループと、画像データとを決定することができる。
また、画像処理全体制御部102は、ディスクリプタ情報を生成する(ステップS1012)。なお、ステップS1011と、ステップS1012の処理は、平行して実行することができる。
そして、メイン制御部101は、全ての画像データに対して画像処理パラメータを生成し、ディスクリプタ情報を生成したか否かを判断する(ステップS1013)。全ての画像データに対して画像処理パラメータが生成されておらず、ディスクリプタ情報が生成されていない場合は(ステップS1014)、ステップS1010の処理に戻る。
全ての画像データに対して画像処理パラメータを生成しディスクリプタ情報を生成した場合、メイン制御部101は、DMAコントローラ22を起動して画像処理を実行する(ステップS1015)。
このように、画像処理パラメータの生成順序を決定することによって、画像処理パラメータの計算時間を短縮させることができるため、CPUに対する負荷を減少させることができる。
図16は、画像処理装置における画像処理の手順を示すフローチャートである。まず、DMAコントローラ22は、ディスクリプタ情報のアドレス情報を取得する(ステップS1101)。そして、DMAコントローラ22は、取得されたディスクリプタ情報の画像処理パラメータのアドレス情報を読み出す(ステップS1102)。次に、DMAコントローラ22は、IPU(ASIC)470に対してDMA転送により画像処理パラメータを設定する(ステップS1103)。そして、DMAコントローラ22は、DMA転送により画像処理前の画像データの読み出しを行う(ステップS1104)。そして、DMAコントローラ22は、IPU(ASIC)470に対して画像処理の実行要求を送出することにより、画像処理が実行される(ステップS1105)。
次に、DMAコントローラ22は、DMA転送による画像処理後の画像データの書き出しを行い(ステップS1106)、画像処理後の画像データを保管する。そして、DMAコントローラ22は、DMA転送によって画像処理後の画像データの書き出し処理が終了したか否かを判断する(ステップS1107)。画像処理後の画像データの書き出し処理が終了していない場合は(ステップS1107:No)、ステップS1104の処理に戻る。画像処理後の画像データの書き出し処理が終了するまで、数10ライン程度のバンド毎に、ステップS1104からステップS1107までの処理が繰り返される。
画像処理後の画像データの書き出し処理が終了した場合(ステップS1107:Yes)、DMAコントローラ22は、次のディスクリプタ情報が存在するか否かを判断する(ステップS1108)。次のディスクリプタ情報が存在する場合は(ステップS1108:Yes)、ステップS1101の処理に戻る。
次のディスクリプタ情報が存在しない場合(ステップS1108:No)、DMAコントローラ22は、画像処理終了割り込みを発行し(ステップS1109)、画像処理を終了する。
図17は、ディスクリプタ情報を使用して連続して画像データを画像処理する場合のタイミングチャートの概念図である。図17を用いて、スキャナCCD400aで読み取って得られた画像データ1、画像データ3、・・・と、スキャナCIS400bで読み取って得られた画像データ2、画像データ4、・・・と、ディスクリプタ情報とを使用して、連続して画像データを画像処理する場合の手順を説明する。
ソースイメージパターン1−1に設定されているスキャナCCD用のパターン1−1に設定されているパラメータ(レジスタ・イメージ)を画像処理パラメータ(1)、(3)、・・、にコピーし、ソースイメージパターン1−2に設定されているスキャナCIS用パラメータを画像処理パラメータ(2)、(4)、・・、にコピーする。
IPU(ASIC)470のグレー/RGB変換回路425〜編集(2)処理回路435に、画像処理パラメータ(1)をDMA転送し、画像データ(1)の画像処理を行い、画像データ(1)の処理後、画像処理パラメータ(2)をDMA転送し、画像データ(2)の画像処理を行う。図17では、画像データ(4)の画像処理までのタイミングチャートを示している。
画像処理パラメータ(1)、画像処理パラメータ(3)、・・・の設定時間は、CPU内の設定管理部330がソースイメージパターン1−1にパラメータを設定する時間である。画像処理パラメータ(3)をパターン1−1に設定する時間が、画像処理パラメータ(1)をソースイメージパターン1−1に設定する時間に比べて短くなっている理由は、パラメータの再設定を行わないことにより、パラメータ(レジスタ・イメージ)の設定時間がパラメータの差分管理により短縮されたことを図示している。画像処理パラメータ(2)、画像処理パラメータ(4)、・・、の設定時間の関係も、同様にパラメータの差分管理により設定時間が短縮されたことを示している。
図18は、ディスクリプタ情報を使用して連続処理する場合のタイミングチャートの概念図である。図18を用いて、画像処理パラメータの複写元として一組のレジスタ・イメージ領域を使用し、画像データ(1)、画像データ(2)、画像データ(3)、画像データ(4)、・・を、ディスクリプタ情報を使用して連続処理する場合について説明する。
ソースイメージパターンにパラメータ(レジスタ・イメージ)を、画像処理パラメータ(1)、画像処理パラメータ(2)、画像処理パラメータ(3)、・・、と順次、設定管理部330による設定とコピーが繰り返される。
IPU(ASIC)470のグレー/RGB変換回路425〜編集(2)処理回路435に画像処理パラメータ(1)をDMA転送し、画像データ(1)の画像処理を行い、画像データ(1)の処理後、画像処理パラメータ(2)をDMA転送して、画像データ(2)の画像処理が行われる。
画像処理パラメータ(1)の設定時間は、CPU内の設定管理部330が、一組のパターン(レジスタ・イメージ)にパラメータを設定する時間であり、画像処理パラメータ(2)のパラメータ設定時間は、画像処理パラメータ(1)のパラメータ設定時間より短い時間で終了している。これは、パラメータの再設定を行わない時間、設定に要する時間が短くなったことを表している。
図19−1は、比較例における画像処理パラメータの計算量とCPUへの負荷を示す概念図であり、図19−2は、本発明における画像処理パラメータの計算量とCPUへの負荷を示す概念図である。図19−1に示すように、比較例においては、「表面(CCD)読み取り画像用画像処理パラメータ3」→「裏面(CIS)読み取り画像用画像処理パラメータ4」→「表面(CCD)読み取り画像用画像処理パラメータ5」→「裏面(CIS)読み取り画像用画像処理パラメータ6」・・の順番で切り替わるため、画像処理パラメータの計算時間および計算量(CPUへの負荷)には変化が無く、常に一定である。これに対して図19−2に示すように、本発明の実施の形態においては、「表面(CCD)読み取り画像用画像処理パラメータ1」→「表面(CCD)読み取り画像用画像処理パラメータ3」→「表面(CCD)読み取り画像用画像処理パラメータ5」→「裏面(CIS)読み取り画像用画像処理パラメータ2」→「裏面(CIS)読み取り画像用画像処理パラメータ4」→「裏面(CIS)読み取り画像用画像処理パラメータ6」・・のように、表面用パラメータあるいは裏面用パラメータを連続して計算するため、計算時間および計算量(CPUへの負荷)が比較例と比べると低減できていることがわかる。
このように、本第1の実施の形態にかかる画像処理装置100によれば、表面用画像処理パラメータ→表面画像処理パラメータを計算する際、あるいは裏面用画像処理パラメータ→裏面用画像処理パラメータを計算する際に、画像処理パラメータの計算で差分管理を行うことができる。このため、両面同時読み取り可能なスキャナを有し、コントローラで画像処理を行う画像形成装置の場合であっても、表面(CCD)画像用画像処理パラメータ→表面(CCD)画像用画像処理パラメータ→・・・→裏面(CIS)画像用画像処理パラメータ→裏面(CIS)画像用画像処理パラメータの順番として、画像処理パラメータ計算の差分の発生が少ない並びで計算を行い、パラメータ計算の際に差分管理を行うことにより、画像処理パラメータの計算時間を短縮させて、CPUに対する負荷を減少させることができる。
(第2の実施の形態)
上記第1の実施の形態にかかる画像処理装置100は、画像処理装置を単体で利用して画像データの画像処理や画像出力を行うものであるが、本第2の実施の形態では、複数の画像処理装置をネットワーク接続して画像処理システムを構成することにより、ある画像処理装置で生成された画像データの画像処理や画像出力を他の画像処理装置を用いて分散処理できるようにした点に特徴がある。
図20は、第2の実施の形態にかかる画像処理装置の構成を示すブロック図であり、図21は、第2の実施の形態にかかる画像処理システムのネットワーク構成図である。図20に示すように、画像処理装置500は、LAN I/F220を介してサーバ491と接続されている。これを図21で見ると、複数の画像処理装置(1)500〜画像処理装置(3)500がLAN740などを介して接続され、さらにLAN740にはサーバ700がHUB600を介して接続されていて、画像処理システムを構成している。この画像処理システムは、例えば画像処理装置(1)500によって生成された画像データをネットワーク経由で別の画像処理装置(2)500、あるいは画像処理装置(3)500に送信して、そこで画像データの画像処理や画像出力を実行させることができる。
図20に示すように、画像処理装置500は、スキャナ400、IPU(ASIC)470、HDD419、操作表示部20、DMAコントローラ22、メインメモリ437、メイン制御部101、画像処理全体制御部102、画像分類処理部300、画像処理順序決定部310、パラメータ生成順序決定部320、設定管理部330、最適化部340、データイメージ差分管理部350、画像処理パラメータ生成部360、画像処理実行部370、給紙部492、搬送路493、プリンタ415、データ送受信部210、キャリブレーション実行部200、およびLAN I/F220などを備えている。そして、この画像処理装置500とサーバ491とは、LANなどのネットワークを介して接続され、画像処理システムを構成している。
なお、上記図20におけるスキャナ400、IPU(ASIC)470、HDD419、操作表示部20、DMAコントローラ22、メインメモリ437、画像処理全体制御部102、画像分類処理部300、画像処理順序決定部310、パラメータ生成順序決定部320、設定管理部330、最適化部340、データイメージ差分管理部350、画像処理パラメータ生成部360、画像処理実行部370、給紙部492、搬送路493、およびプリンタ415についての機能と構成説明は、上記第1の実施の形態における図1と同様であるため、重複説明を省略する。
LAN I/F220は、外部の画像処理装置とデータ送受信をするためのインターフェースである。データ送受信部210は、LAN I/F220を介して、外部の画像処理装置やサーバとの間でデータの送受信処理を行う。
キャリブレーション実行部200は、キャリブレーションデータを用いてキャリブレーション処理を行うものである。ここで、キャリブレーションデータとは、キャリブレーション実行時にスキャニングに利用されるテストチャートを出力するためにROMなどに格納されているデータのことである。具体的には、キャリブレーション実行部200は、キャリブレーションデータに対して、機差補正処理や地肌補正処理を行うことによって、機差補正処理および地肌補正処理の補正値を得ることができる。この補正値は、画像処理装置における読取特性である。また、キャリブレーション実行部200は、キャリブレーションデータに対して、高濃度部補正処理を行うことにより、高濃度部補正処理の補正値を得ることができる。この補正値は、画像処理装置の印刷特性である。
操作表示部20は、ユーザからの画像処理装置の各部の処理条件を受け付ける入力情報受付手段としてのユニットである。例えば、キャリブレーション処理の開始指示、キャリブレーションパターンの読み取り開始指示、連結印刷の開始指示、原稿の読み取り開始指示、あるいは印刷部数などの入力情報を受け付ける。
また、メイン制御部101は、第1の実施の形態と同様の機能を有する他、操作表示部20によって受け付けられた処理条件などに基づいて、画像処理装置500の各部を制御するユニットである。メイン制御部101は、例えば、キャリブレーションパターンを印刷出力するように各部を制御したり、読み取り特性に対応する画像処理パラメータを演算するように各部を制御したりする。
また、本第2の実施の形態にかかる画像処理装置と接続されるサーバ491は、画像処理装置500で読み取った画像データをネットワーク経由で受信し、記憶部に記憶しておくものである。この記憶部は、主にハードディスクやCD−ROMなどの記憶媒体で構成されている。
次に、図21に示す画像処理システムは、画像処理装置(1)500と、画像処理装置(2)500と、画像処理装置(3)500と、HUB600を経由したサーバ700とがLAN740を介して接続されて構成されている。
まず、画像処理装置(1)500によって生成された画像データの画像処理およびデータ出力は、画像処理装置(2)500を用いて実行することができる。具体的には、画像処理装置(1)500および画像処理装置(2)500でキャリブレーションを実行する。そして、画像処理装置(1)500により読み取られた画像データを、HUB600を経由してサーバ700の記憶部710に格納する。
続いて、画像処理装置(1)500でキャリブレーションを実行したときの機差補正処理および地肌補正処理の補正値と、キャリブレーションデータとを画像処理装置(2)500に送出する。また、画像処理装置(1)500は、サーバ700に格納されている画像データを画像処理装置(2)500への送出するように要求する。
これにより、画像処理装置(2)500は、サーバ700から受信した画像データと、画像処理装置(1)500から受信したキャリブレーションデータと補正値とに基づいて、親機の読取特性に関係する画像処理パラメータを算出することができる。また、画像処理装置(2)500は、事前に実行したキャリブレーションによって印刷特性に関係する画像処理パラメータを算出することができる。このため、画像処理装置(1)500で行うデータ出力と、画像処理装置(2)500で行うデータ出力とを同一にすることができる。
このように、第2の実施の形態によれば、本発明の画像処理装置をネットワーク経由で複数個接続して画像処理システムを構成することにより、ある画像処理装置によって生成された画像データをネットワーク経由でサーバに一旦蓄積したり、他の画像処理装置に直接送信したりして、画像データの画像処理や画像出力を分散して実行することを可能にしたため、画像処理パラメータの計算時間をより短縮することが可能となり、CPUに対する負荷を一層減少させることができる。
(第3の実施の形態)
図22は、第1の実施の形態にかかる画像処理装置のモジュール構成を説明する機能ブロック図である。図1の画像処理装置100のモジュール構成を機能ブロックで表すと、図22のようになり、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interface)バスで接続した構成となる。コントローラ10は、画像処理装置100全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部を含んでいる。
コントローラ10は、CPU438と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)439とを備えており、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となっている。また、システムメモリであるMEM−P12は、ROM(Read Only Memory)490と、メインメモリであるRAM(Random Access Memory)470とをさらに備えている。
CPU438は、画像処理装置100の全体の制御を行うものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM490とメインメモリ(RAM)437とからなる。ROM490は、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、メインメモリ437は、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD439およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Facsimile Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。操作表示部20はASIC16に直接接続されている。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)439は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本第3の実施の形態の画像処理装置100で実行される画像処理プログラムは、ROM490等に予め組み込まれて提供される。この画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本第3の実施の形態の画像処理装置100で実行される画像処理プログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本第3の実施の形態の画像処理装置100で実行される画像処理プログラムは、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
本第3の実施の形態の画像処理装置100で実行される画像処理プログラムは、上述した各部(画像分類処理部、画像処理順序決定部、パラメータ生成順序決定部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)438が上記ROM490から画像処理プログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、画像分類処理部、画像処理順序決定部、パラメータ生成順序決定部等が主記憶装置上に生成されるようになっている。