以下に添付図面を参照して、本発明にかかる画像形成装置の最良な実施の形態を詳細に説明する。本発明の画像形成装置をMFP(Multi Function Peripheral)に適用した例を示す。但し、MFPに限られず、プリンタ、ファクシミリ、スキャナ機能やコピー、ファックス、プリンタなどの画像処理を行うものであれば、本発明を適用することができる。
(第1実施の形態)
図1は、本実施の形態にかかるMFPのハードウェア構成の概略を示すブロック図である。本実施の形態にかかるMFP100は、スキャナCCD(Charge Coupled Device)101、コンタクトイメージセンサCIS(Contact Image Sensor)102、プリンタ103、IPU(Imaging Processing Unit)104、および操作表示部105を備えて構成される。
スキャナCCD101は、原稿の表面の画像データを読み取るためのものである。コンタクトイメージセンサCIS102は、スキャナCCD101による原稿の表面の画像データの読み取りと同時に、原稿の裏面の画像データを読み取るためのものである。プリンタ103は、IPU104によって画像処理が施された画像データを用紙に印刷するためのものである。
IPU104は、スキャナCCD101またはコンタクトイメージセンサCIS102によって読み取られた画像データ、およびプリンタ103により用紙に印刷する画像データに対して画像処理を施すものである。本実施の形態では、IPU104は、一次記憶装置107、一次記憶装置制御装置106、ハードウェア108、およびミドルウェア109を備えた構成される。
一次記憶装置107は、コンタクトイメージセンサCIS102によって読み取られた画像データを一時的に記憶する。
一次記憶装置制御装置106は、コンタクトイメージセンサCIS102によって読み取られた画像データの一次記憶装置107への記憶および一次記憶装置107からの画像データの読み出しを制御する。
また、一次記憶装置制御装置106は、スキャナCCD101によって読み取られた画像データまたは一次記憶装置107から読み出された画像データをハードウェア108に転送する。
ハードウェア108は、スキャナCCD101またはコンタクトイメージセンサCIS102によって読み取られた画像データに対して画像処理を施すものである。本実施の形態では、ハードウェア108は、ASIC(Application Specific Integrated Circuit)にダウンロードされたデータにより画像処理パラメータを設定して、スキャナCCD101またはコンタクトイメージセンサCIS102によって読み取られた画像データに画像処理を施すものである。
図2は、ハードウェアに含まれる画像処理モジュールの一例を示すブロック図である。本実施の形態では、ハードウェア108は、フィルタ処理201および色変換処理202を含むものである。フィルタ処理201は、画像データにかかる画像のエッジを強調する処理、ノイズを除去する平滑化処理、画像のMTF特性をスキャナCCD101やコンタクトイメージセンサCIS102から入力された画像データに近づける処理を行うものである。色変換処理202は、RGBの画像データをCMYKの画像データに変換する処理を行うものである。
ミドルウェア109は、プリンタ103により用紙に印刷する画像データに対して画像処理を施すものである。本実施の形態では、ミドルウェア109は、DSP(Digital Signal Processor)にダウンロードされたプログラムおよびデータにより画像処理パラメータを設定して、プリンタ103により用紙に印刷する画像データに画像処理を施すものである。
図3は、ミドルウェアに含まれる画像処理モジュールの一例を示すブロック図である。本実施の形態では、ミドルウェア109は、画像データに対してガンマ補正処理を施す適応γ処理301、および画像データの階調数を変換する処理を施す階調処理302を含むものである。
操作表示部105は、MFP100の利用者が処理を要求し、その処理条件の設定入力を行うためのものである。本実施の形態では、操作表示部105は、二次記憶装置110を備える。二次記憶装置110は、IPU104が備えるハードウェア108によって画像処理が施された画像データ等を記憶する。
ここで、MFP100内での画像データの流れについて図4および図5を参照して説明する。図4は、本実施の形態にかかるMFP内での画像データの流れを示す説明図である。図5は、本実施の形態にかかるMFPが有する各アプリケーションが実行された際の画像データの流れの組み合わせを示すテーブルである。なお、本実施の形態では、図5に示すように、MFP100が実行可能なアプリケーションとして、コピー、FAX(受信/送信)、ドキュメントBOX(蓄積/印刷)、およびプリントがあるものとする。
本実施の形態にかかるMFP100が有する各アプリケーションが実行された際の画像データの流れは、パス(1)〜(4)の4つのパスの組み合わせで実現される。
コピー(片面)が実行された際の画像データの流れは、図5に示すように、パス(1)およびパス(2)の組み合わせにより実現される。
具体的には、コピー(片面)が実行された場合、MFP100は、まず、図4に示すパス(1)に従い、スキャナCCD101により読み取られた画像データを、一次記憶装置制御装置106を経由してハードウェア108に入力し、ハードウェア108により画像処理を施した後、二次記憶装置110に記憶する。次いで、MFP100は、図4に示すパス(4)に従い、二次記憶装置110から画像データを読み出してミドルウェア109に入力し、ミドルウェア109により画像処理を施した後、プリンタ103に入力して用紙への画像データの印刷処理を実行する。
コピー(両面)が実行された際の画像データの流れは、図5に示すように、パス(1)〜(4)の組み合わせにより実現される。なお、図4に示すパス(1)およびパス(4)に従って実行される処理は、コピー(片面)が実行された場合と同様であるため、説明を省略する。
具体的には、コピー(両面)が実行された場合、MFP100は、図4に示すパス(2)に従い、コンタクトイメージセンサCIS102により読み取られた画像データを、一次記憶装置制御装置106を用いて一次記憶装置107に記憶する。本実施の形態では、読み取られた画像データに画像処理を施すハードウェア108が1つしかないため、スキャナCCD101により読み取られた画像データとコンタクトイメージセンサCIS102により読み取られた画像データとを同時に処理することができない。そのため、本実施の形態では、一次記憶装置制御装置106は、ハードウェア108によるスキャナCCD101により読み取られた画像データに対する画像処理が完了するまで、コンタクトイメージセンサCIS102により読み取られた画像データを一次記憶装置107に記憶しておくものとする。
そして、スキャナCCD101により読み取られた画像データに対する画像処理が完了すると、MFP100は、図4に示すパス(3)に従い、一次記憶装置制御装置106を用いて一次記憶装置107から画像データを読み出してハードウェア108に入力し、ハードウェア108により画像処理を施した後、二次記憶装置110に記憶する。その後、MFP100は、コピー(片面)が実行された場合と同様にして、図4に示すパス(4)に従い、二次記憶装置110に記憶された画像データの印刷処理を実行する。
スキャナ(片面)が実行された際の画像データの流れは、図5に示すように、パス(1)により実現される。図4に示すパス(1)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。
スキャナ(両面)が実行された際の画像データの流れは、図5に示すように、パス(1)〜(3)により実現される。なお、図4に示すパス(1)〜(3)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。
FAX送信(片面)が実行された際の画像データの流れは、図5に示すように、パス(1)により実現される。図4に示すパス(1)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。なお、MFP100は、図4に示すパス(1)に従って実行される処理後、スキャナCCD101で読み取られ、二次記憶装置110に記憶された画像データを、ローカルエリアネットワークLANなどのネットワークで接続されたPCやプリンタ等に送信する。
FAX送信(両面)が実行された際の画像データの流れは、図5に示すように、パス(1)〜(3)により実現される。図4に示すパス(1)〜(3)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。なお、MFP100は、スキャナCCD101およびコンタクトイメージセンサCIS102で読み取られ、二次記憶装置110に記憶された画像データを、ネットワークで接続されたPCやプリンタ等に送信する。
FAX受信(片面)またはFAX受信(両面)が実行された際の画像データの流れは、図5に示すように、パス(4)により実現される。図4に示すパス(4)に従って実行される処理は、コピーが実行された場合とほぼ同様であるため、説明を省略する。なお、FAX受信(片面)またはFAX受信(両面)が実行された場合には、MFP100は、二次記憶装置110に記憶された画像データの代わりに、ネットワークで接続されたPCなどから受信した画像データに対して、図4に示すパス(1)に従った処理を実行するものとする。
ドキュメントBOX蓄積(片面)が実行された際の画像データの流れは、図5に示すように、パス(1)により実現される。図4に示すパス(4)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。
ドキュメントBOX蓄積(両面)が実行された際の画像データの流れは、図5に示すように、パス(1)〜(3)により実現される。図4に示すパス(1)〜(3)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。
ドキュメントBOX印刷(片面)またはドキュメントBOX印刷(両面)が実行された際の画像データの流れは、図5に示すように、パス(4)により実現される。図4に示すパス(4)に従って実行される処理は、コピーが実行された場合と同様であるため、説明を省略する。
プリント(片面)またはプリント(両面)が実行された際の画像データの流れは、図5に示すように、パス(4)により実現される。図4に示すパス(4)に従って実行される処理は、コピーが実行された場合とほぼ同様であるため、説明を省略する。なお、プリント(片面)またはプリント(両面)が実行された場合には、MFP100は、二次記憶装置110に記憶された画像データの代わりに、ネットワークで接続されたPCなどから受信した画像データに対して、図4に示すパス(4)に従った処理を実行するものとする。
なお、コピーまたはプリントが実行された場合、MFP100は、複数の画像データを1枚の用紙に集約して印刷処理を実行することが可能である。その場合、MFP100は、二次記憶装置110に記憶された複数の画像データまたはネットワークで接続されたPCなどから受信した複数の画像データが1枚の用紙に収まるように、当該複数の画像データに対して変倍処理を施し、変倍処理を施した画像データを集約した画像データをミドルウェア109に入力するものとする。
次に、本実施の形態にかかるMFP100のハードウェア構成の詳細について説明する。図6は、本実施の形態にかかるMFPのハードウェア構成の詳細を示すブロック図である。本図に示すように、このMFP100は、コントローラ600とエンジン部(Engine)640とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ600は、MFP100全体の制御と描画、通信、操作表示部105からの入力を制御するコントローラである。本実施の形態では、コントローラ600は、IPU104を実現する。エンジン部640は、PCIバスに接続可能なプリンタ103などであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナCCD101、コンタクトイメージセンサCIS102などである。
コントローラ600は、CPU601と、ノースブリッジ(NB)603と、システムメモリ(MEM−P)602と、サウスブリッジ(SB)604と、MEM−C(一次記憶装置)107と、ASIC(Application Specific Integrated Circuit)/DSP108、109と、ハードディスクドライブ(HDD)606とを有し、ノースブリッジ(NB)603とASIC/DSP108、109との間をAGP(Accelerated Graphics Port)バス605で接続した構成となる。また、MEM−P602は、ROM(Read Only Memory)602aと、RAM(Random Access Memory)602bと、をさらに有する。
CPU601は、MFP100の全体制御をおこなうものであり、NB603、MEM−P602およびSB604からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB603は、CPU601とMEM−P602、SB604、AGP605とを接続するためのブリッジであり、MEM−P602に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P602は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM602aとRAM602bとからなる。ROM602aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM602bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB604は、NB603とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB604は、PCIバスを介してNB603と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC/DSP108、109は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP605、PCIバス、HDD606およびMEM−C107をそれぞれ接続するブリッジの役割を有する。このASIC/DSP108、109は、PCIターゲットおよびAGPマスタと、ASIC/DSP108、109の中核をなすアービタ(ARB)と、MEM−C107を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部640との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC/DSP108、109には、PCIバスを介してFCU(Fax Control Unit)610、USB(Universal Serial Bus)620、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース630が接続される。
MEM−C107は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)606は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP605は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P602に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本実施の形態のMFP100で実行される画像処理プログラムは、ROM等に予め組み込まれて提供される。
本実施の形態のMFP100で実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施の形態のMFP100で実行される画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態のMFP100で実行される画像処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
操作表示部105は、図示しないが、上述したCPU601とは別のCPUにより制御される。そして、この別のCPUが使用するメモリとして、上述したMEM−P602、MEM−C107とは別のメモリを備えている。この別のCPUは、当該別のメモリ上に確保された作業領域を用いて、図示しない液晶タッチパネルに表示する画像データの展開処理などを行う。また、他の変形例としては、MEM−P602、MEM−C107を用いても良いが、液晶タッチパネル用の作業領域と、CPU601の作業領域とが別の領域に確保されているなどが考えられる。さらに、操作表示部105は、別のCPUが使用するメモリとして、上述したHDD606と別のストレージとして、上述したHDD606とは別のストレージ(二次記憶装置110)を備えている。この別のCPUは、当該別のストレージを用いて、ASIC108により画像処理が施された画像データを記憶する。また、他の変形例としては、HDD606を用いても良い。
次に、図7を用いて、CPU601および操作表示部105のCPUが、ROM602aに格納された画像処理プログラムおよび操作表示部105のメモリに格納されたプログラムを実行することにより実現される画像処理制御システムの機能構成について説明する。図7は、本実施の形態にかかるMFPにおける画像処理制御システムの機能構成を概略的に示すブロック図である。
画像処理制御システム700は、操作表示制御部701、上位制御部702、および画像処理制御部703を備えて構成される。なお、本実施の形態では、CPU601は、ROM602aに格納された画像処理プログラムを実行することにより、2つの制御部を実現する。1つの制御部(上位制御部)は、一次記憶装置制御装置106による一次記憶装置107への画像データの記憶、ハードウェア108およびミドルウェア109への画像データの入出力等を制御する。もう1つの制御部(画像処理制御部)は、ハードウェア108およびミドルウェア109が制御対象であり、ハードウェア108およびミドルウェア109に画像データを入力し、画像処理が開始される前に、最適な画像処理がハードウェア108およびミドルウェア109内で行えるように、画像処理パラメータの設定を制御する。
操作表示制御部701は、操作表示部105のCPUがメモリに格納された制御ソフトウェアを実行することにより実現されるものであり、操作表示部105の全体を制御する。本実施の形態では、操作表示制御部701は、操作表示部105の操作画面からユーザが設定する情報(以下、入力情報とする)を受け付ける。ここで、入力情報は、例えば、カラーモード、アプリケーションの種類、原稿モード、変倍率、解像度、階調数、ノッチ(原稿の濃度)、主走査サイズX、副走査サイズY等々の様々な情報である。
また、操作表示制御部701は、ハードウェア108において画像処理が施された画像データを、その付帯情報とともに二次記憶装置110に記憶する。
ここで、付帯情報は、スキャナCCD101またはコンタクトイメージセンサCIS102を示す読取装置情報および入力情報を含むものであり。読取装置情報は、画像データを読み取った際の情報であり、読取装置の読取デバイス情報、読取装置により読み取った原稿の原稿面情報、および読取装置の読取方法情報の少なくとも1つを含むものである。なお、本実施の形態では、付帯情報は、読取装置情報に加え、操作表示制御部701において受け付けた入力情報も含むものとする。
具体的には、読取デバイス情報は、スキャナCCD101、コンタクトイメージセンサCIS102等のデバイス情報である。原稿面情報は、原稿の表面か裏面かを示す情報である。読取方法情報は、圧板とコンタクトガラスの間に固定された原稿を読み取る原稿固定方法(以下、圧板とする)、読み取り位置に搬送された原稿を読み取る原稿移動方法(以下、DFとする)等の読取方法を示す情報である。
また、操作表示制御部701は、上述した図4に示すパス(4)に従って画像データをプリンタ103に入力して用紙への画像データの印刷処理を実行する場合、二次記憶装置110から画像データおよびその付帯情報を取り出し、上位制御部702に送るものとする。図8は、二次記憶装置から取り出された画像データおよび付帯情報の構成を示すブロック図である。操作表示制御部701は、図8に示すように、画像データ801と、入力情報806および読取装置情報807を含む付帯情報802と、を二次記憶装置110から取り出すものとする。本実施の形態では、操作表示制御部701は、付帯情報802に含まれる入力情報806が示すカラーモードがカラーの場合、RGB各色の画像情報803〜805を一次元配列した画像データ801を取り出すものとする。また、操作表示制御部701は、入力情報806が示す主走査サイズXおよび副走査サイズYの各色の画像情報803〜805を取り出すものとする。
また、操作表示制御部701は、コピーまたはプリントの実行により複数の画像データを1枚の用紙に集約して印刷する場合、複数の画像データおよびその付帯情報を二次記憶装置110から取り出すものとする。その際、操作表示制御部701は、画像データに含まれる各色の画像情報を集約するページ数に合わせて複数の画像データを変倍して画像データのデータ量を圧縮する。そして、操作表示制御部701は、変倍した複数の画像データを1枚にレイアウトした画像データを生成し、上位制御部702に送るものとする。
さらに、操作表示制御部701は、複数の画像データを1枚の用紙に集約して印刷する場合、当該複数の画像データとともに取り出した付帯情報に基づいて、上述の処理により生成した画像データの付帯情報(読取装置情報)を新たに生成し、上位制御部702に送るものとする。図9は、1枚の用紙にレイアウトされた2つの画像データを1枚の用紙にレイアウトした画像データを生成した場合の読取装置情報の生成処理を示す説明図である。
例えば、図9(a)に示すように、1枚目の画像データの読取方法情報(DF)と2枚目の画像データの読取方法情報(圧板)のみが異なる場合、読取デバイス情報(スキャナCCD)、原稿面情報(表面)、および読取方法情報(圧板とDF混在)を含む読取装置情報901を生成する。
また、図9(b)に示すように、1枚目の画像データの読取装置情報と2枚目の画像データの読取装置情報が一致している場合、当該1枚目および2枚目の画像データの読取装置情報と同一の読取装置情報902を生成する。
また、図9(c)に示すように、1枚目の画像データの読取デバイス情報(スキャナCCD)および原稿面情報(表面)と、2枚目の画像データの読取デバイス情報(コンタクトイメージセンサCIS)および原稿面情報(裏面)と、がそれぞれ異なる場合、読取デバイス(スキャナCCDとコンタクトイメージセンサCIS混在)、原稿面情報(表裏混在)、および読取方法情報(DF)を含む読取装置情報903を生成する。
上位制御部702は、画像処理制御部703が処理を実行するタイミングを制御する。本実施の形態では、上位制御部702は、操作表示制御部701により受け付けた入力情報や入力情報を受け付けた時間を考慮してタスクに分割し、プロセスとして画像処理制御部703に伝える。具体的には、上位制御部702は、スキャナCCD101およびコンタクトイメージセンサCIS102で読み取られた画像データに画像処理を施すスキャンプロセス、およびプリンタ103により用紙に印刷する画像データに画像処理を施すプロッタプロセスを画像処理制御部703に伝えるものとする。また、上位制御部702は、スキャナCCD101およびコンタクトイメージセンサCIS102により読み取られた画像データを、画像処理制御部703を介してハードウェア108に送り画像処理を実行させる。また、上位制御部702は、操作表示制御部701により取り出された画像データを、画像処理制御部703を介してミドルウェア109に送り画像処理を実行させる。さらに、上位制御部702は、操作表示制御部701により画像データとともに取り出された付帯情報を画像処理制御部703に送る。
なお、上位制御部702は、複数の画像データを1枚の用紙に集約して印刷する場合、操作表示制御部701により生成された画像データを、画像処理制御部703を介してミドルウェア109に送り画像処理を実行させ、さらに、操作表示制御部701により生成された付帯情報を画像処理制御部703に送るものとする。
図10は、上位制御部が画像処理制御部に伝えるプロセスのタイミングチャートである。本実施の形態にかかる上位制御部702は、図10(a)〜(c)に示すように、画像処理パラメータの計算および保持を要求する計算要求、ハードウェア108またはミドルウェア109への画像処理パラメータの設定を要求する設定要求、および保持する画像処理パラメータの後処理(例えば、保持する画像処理パラメータの開放等、メモリリークを防止するための処理)の実施を要求する終了設定要求を含むプロセスを一単位として画像処理制御部703に伝えるものとする。
例えば、スキャナCCD101により原稿の表面の画像データを読み取るスキャンプロセスを画像処理制御部703に伝える場合(図10(a)に示す)、上位制御部702は、まず、ハードウェア108による画像処理が開始される前までに計算要求および設定要求を画像処理制御部703に送ってハードウェア108が画像処理を実行可能な状態にする。次に、上位制御部702は、スキャナCCD101で読み取った画像データを、画像処理制御部703を介してハードウェア108に送り画像処理を実行させる。そして、上位制御部702は、画像処理が完了すると、終了設定要求を画像処理制御部703に送ってスキャンプロセスを完了させる。
なお、本実施の形態にかかるMFP100は、スキャナCCD101で読み取られた画像データとコンタクトイメージセンサCIS102で読み取られた画像データとを同じ画像処理デバイス(ハードウェア108)で処理する。そのため、コンタクトイメージセンサCIS102で原稿の裏面の画像データを読み取るスキャンプロセスを画像処理制御部703に伝える場合(図10(b)に示す)、上位制御部702は、原稿の表面を読み取った画像データに画像処理を施すスキャンプロセスが完了した後、原稿の表面の画像データのスキャンプロセスと同様にして、原稿の裏面を読み取った画像データに画像処理を施すスキャンプロセスを実行するものとする。なお、上位制御部702は、ハードウェア108によるスキャナCCD101で読み取られた画像データに対する画像処理が完了するまで、コンタクトイメージセンサCIS102により読み取られた画像データを一次記憶装置107に記憶しておき、スキャナCCD101により読み取られた画像データに対する画像処理の完了後、一次記憶装置107から画像データを読み出し、ハードウェア108に入力して画像処理を施すものとする。そのため、原稿の両面を読み取るアプリケーション(例えば、コピー(両面)など)が実行された場合、図10(a)に示すスキャンプロセスのコールタイミングと、図10(b)に示すスキャンプロセスのコールタイミングと、がずれている。
また、二次記憶装置110に記憶した画像データをプリンタ103により用紙に印刷するプロッタプロセスを画像処理制御部703に伝える場合(図10(c)に示す)、上位制御部702は、まず、ミドルウェア109による画像処理が開始される前までに計算要求および設定要求を画像処理制御部703に送ってミドルウェア109が画像処理を実行可能な状態にする。なお、上位制御部702は、計算要求を画像処理制御部703に送る際、当該計算要求とともに、操作表示制御部701により画像データとともに取り出された付帯情報を画像処理制御部703に送るものとする。次に、上位制御部702は、操作表示制御部701により取り出された画像データを、画像処理制御部703を介してミドルウェア109に送り画像処理を実行させる。そして、上位制御部702は、画像処理が完了すると、終了設定要求を画像処理制御部703に送ってプロッタプロセスを完了させる。なお、本実施の形態にかかるMFP100は、スキャンプロセスにかかる画像処理とプロッタプロセスにかかる画像処理とを別の画像処理デバイス(ハードウェア108とミドルウェア109)により実行する。そのため、図10(a)および図10(c)に示すように、スキャンプロセスが画像処理制御部703に伝えられるコールタイミングと、プロッタプロセスが画像処理制御部703に伝えられるコールタイミングと、が重なることがある。
画像処理制御部703は、スキャンプロセスに含まれる計算要求を上位制御部702から受け取ると、画像データを読み取ったスキャナCCD101またはコンタクトイメージセンサCIS102の読取特性に応じて、スキャナCCD101およびコンタクトイメージセンサCIS102により読み取った画像データ間の画質の差を低減する画像処理パラメータを計算し、計算した画像処理パラメータをRAM602bに保持する。次に、画像処理制御部703は、上位制御部702からスキャンプロセスに含まれる設定要求を受け取ると、RAM602bに保持する画像処理パラメータの設定をハードウェア108に要求する。本実施の形態では、画像処理制御部703は、ハードウェア108にデータをダウンロードすることにより、計算された画像処理パラメータの設定を制御する。そして、画像処理制御部703は、上位制御部702からスキャンプロセスに含まれる終了設定要求を受け取ると、RAM602bに保持する画像処理パラメータの後処理を実行する。なお、読取装置の読取特性に応じて、複数の読取装置により読み取った画像データ間の画質の差を低減する画像処理パラメータを計算する方法は、公知技術であるため、ここでは説明を省略する。
また、画像処理制御部703は、プロッタプロセスに含まれる計算要求を上位制御部702から受け取ると、当該計算要求とともに受け取った付帯情報(読取装置情報)が示す読取装置の読取特性およびプリンタ103の書込み特性に応じて、スキャナCCD101およびコンタクトイメージセンサCIS102により読み取った画像データ間の画質の差を低減する画像処理パラメータを計算し、計算した画像処理パラメータをRAM602bに保持する。次に、画像処理制御部703は、上位制御部702からプロッタプロセスに含まれる設定要求を受け取ると、RAM602bに保持する画像処理パラメータの設定をミドルウェア109に要求する。本実施の形態では、画像処理制御部703は、ミドルウェア109にプログラムおよびデータをダウンロードすることにより、計算された画像処理パラメータの設定を制御する。そして、画像処理制御部703は、上位制御部702からプロッタプロセスに含まれる終了設定要求を受け取ると、RAM602bに保持する画像処理パラメータの後処理を実行する。
ここで、画像処理制御部703がミドルウェア109に設定する画像処理パラメータを計算する処理の一例について説明する。本実施の形態では、ミドルウェア109は、画像データに適応γ処理301および階調処理302を施すため、適応γ処理301および階調処理302に用いる画像処理パラメータを計算する処理について説明する。
画像処理制御部703は、適応γ処理に係る画像処理パラメータを計算する。図11は、ミドルウェアにおける適応γ処理に用いるγカーブ(画像処理パラメータ)の計算方法および計算結果を示す説明図である。
図11に示す左上のデータは、所定の画像を読み取った際に得られる読取装置の読取特性を示す読み取り値である。本実施の形態では、スキャナCCD101およびコンタクトイメージセンサCIS102の読み取り値がROM602aに予め格納されているものとする。画像処理制御部703は、上位制御部702から計算要求とともに受け取った付帯情報(読取装置情報)が示す読取装置の読み取り値をROM602aから取得する。なお、本実施の形態では、取得した読み取り値および後述するプリンタ103の書込み特性を示す期待値には、サンプリングしたデジタルデータを用いている。そのため、画像処理制御部703は、スプライン補間処理によりサンプリングしたデータ間を補間して、図10の左上および右上に示す読み取り値および期待値を計算する。
また、図11に示す右上のデータは、プリンタ103の書込み特性を示す期待値である。本実施の形態では、プリンタ103の書込み特性を示す期待値がROM602aに予め格納されており、画像処理制御部703は、ROM602aからプリンタ103の書込み特性を示す期待値を取得する。なお、本実施の形態では、プリンタ103のみの書込み特性がROM602aに格納されているが、これに限定するものではない。例えば、出力先のプリンタから直接、各プリンタの書込み特性を取得してもよい。また、図11に示す左下のデータは、予め設定されたリニアデータである。
本実施の形態では、画像処理制御部703は、図11の左上に示す読取装置の読取特性を示す読み取り値、図11の右上に示すプリンタ103の書込み特性を示す期待値、およびリニアデータから一意に決まるγカーブを、ミドルウェア109に設定する画像処理パラメータとして計算する。
なお、画像処理制御部703は、スキャナCCD101およびコンタクトイメージセンサCIS103により読み取られた複数の画像データを集約した画像データをプリンタ103により用紙に印刷する場合、スキャナCCD101の読取特性を示す読み取り値とコンタクトイメージセンサCIS102の読取特性を示す読み取り値との中間値と、プリンタ103の書込み特性を示す期待値と、から画像処理パラメータを計算する。本実施の形態では、画像処理制御部703は、上位制御部702から計算要求とともに受け取った付帯情報(読取装置情報)が読取デバイス情報(スキャナCCDとコンタクトイメージセンサCIS混在)、原稿面情報(表裏混在)、および読取方法情報(圧板とDF混在)の少なくとも1つを含む場合、スキャナCCD101の読取特性を示す読み取り値とコンタクトイメージセンサCIS102の読取特性を示す読み取り値との中間値と、プリンタ103の書込み特性を示す期待値と、リニアデータと、から一意に決まるγカーブを、ミドルウェア109に設定する画像処理パラメータとして計算する。これにより、複数の読取装置の読取特性およびプリンタ103の書込み特性の両方を反映した画像処理パラメータを計算することができるので、集約した画像データを同じ画質で出力することができる。
また、画像処理制御部703は、階調処理に係る画像処理パラメータを計算する。図12は、ミドルウェアにおける階調処理の誤差拡散処理に用いる重み付けテーブル(画像処理パラメータ)を示す説明図である。なお、誤差拡散処理は、公知技術を用いるものとし、ここでは説明を省略する。
図12(a)は、スキャナCCD101で読み取った画像データの画像処理に用いるスキャナCCD用の重み付けテーブルである。図12(b)は、コンタクトイメージセンサCIS102で読み取った画像データの画像処理に用いるコンタクトイメージセンサCIS用の重み付けテーブルである。図12(c)は、スキャナCCD101で読み取った画像およびコンタクトイメージセンサCIS102で読み取った画像を含む画像データの画像処理に用いるスキャナCCD・コンタクトイメージセンサCIS混在用の重み付けテーブルである。画像処理制御部703は、上位制御部702から計算要求とともに受け取った付帯情報(読取装置情報)が示す読取装置に基づいて、階調処理を施す画像データを読み取った読取装置用の重み付けテーブル(画像処理パラメータ)を計算する。
次に、画像処理制御部703による画像処理パラメータの計算処理の手順について図13を参照して説明する。図13は、画像処理パラメータの計算処理の手順を示すフローチャートである。
まず、画像処理制御部703は、上位制御部702から計算要求を受け取ると、受け取った計算要求がスキャンプロセスのものかプロッタプロセスのものかを判断する(ステップS1301)。受け取った計算要求がスキャンプロセスのものである場合(ステップS1301:スキャンプロセス)、画像処理制御部703は、画像データを読み取った読取装置がスキャナCCD101かコンタクトイメージセンサCIS102かを判断する(ステップS1302)。
読取装置がスキャナCCD101であった場合(ステップS1302:スキャナCCD指定)、画像処理制御部703は、スキャナCCD101の読取特性に応じて、フィルタ処理用の画像処理パラメータおよび色変換処理用の画像処理パラメータを計算する(ステップS1303、ステップS1304)。
一方、読取装置がコンタクトイメージセンサCIS102であった場合(ステップS1302:コンタクトイメージセンサCIS指定)、画像処理制御部703は、コンタクトイメージセンサCIS102の読取特性に応じて、フィルタ処理用の画像処理パラメータおよび色変換処理用の画像処理パラメータを計算する(ステップS1305、ステップS1306)。
受け取った計算要求がプロッタプロセスのものである場合(ステップS1301:プロッタプロセス)、画像処理制御部703は、上位制御部702から計算要求とともに受け取った付帯情報に含まれる読取装置情報(例えば、原稿面情報)により指定される読取装置がスキャナCCD101か、コンタクトイメージセンサCIS102か、若しくは集約指定かを判断する(ステップS1307)。なお、本実施の形態では、画像処理制御部703は、原稿面情報が表裏面である場合に、集約印刷と判断する。
原稿面情報により指定される読取装置がスキャナCCD101であった場合(ステップS1307:スキャナCCD指定)、画像処理制御部703は、スキャナCCD101の読取特性を示す読み取り値およびプリンタ103の書込み特性を示す期待値を用いて、適応γ処理用の画像処理パラメータおよび階調処理用の画像処理パラメータを計算する(ステップS1308、ステップS1309)。
一方、原稿面情報により集約印刷が指定された場合(ステップS1307:スキャナCCD・コンタクトイメージセンサCIS混在指定)、画像処理制御部703は、スキャナCCD101の読取特性を示す読み取り値とコンタクトイメージセンサCIS102の読取特性を示す読み取り値との中間値およびプリンタ103の書込み特性を示す期待値を用いて、適応γ処理用の画像処理パラメータおよび階調処理用の画像処理パラメータを計算する(ステップS1310、ステップS1311)。
また、原稿面情報により指定される読取装置がコンタクトイメージセンサCIS102であった場合(ステップS1307:コンタクトイメージセンサCIS指定)、画像処理制御部703は、コンタクトイメージセンサCIS102の読取特性を示す読み取り値、およびプリンタ103の書込み特性を示す期待値を用いて、適応γ処理用の画像処理パラメータおよび階調処理用の画像処理パラメータを計算する(ステップS1312、ステップS1313)。
このように、本実施の形態にかかるMFP100によれば、画像データを用紙に印刷するプリンタ103の書込み特性に合わせた画像処理を行うミドルウェア109においても複数の読取装置間の読取特性の相違を補正するための処理を行うことができるので、読取特性が異なる読取装置により読み取られた画像データの印刷画像の画質差を低減することができる。また、本実施の形態にかかるMFP100によれば、画像データとともに読取装置情報が二次記憶装置110に記憶されているので、二次記憶装置110に記憶される画像データを、時間をおいて再印刷する場合であっても、読取特性が異なる読取装置により読み取られた画像データの印刷画像の画質差を低減することができる。
(第2実施の形態)
本実施の形態にかかるMFPは、原稿の表面を読み取った画像データの画像処理が実行された際に画像処理デバイスに設定された画像処理パラメータを利用して、原稿の裏面を読み取った画像データの画像処理を実行する際の画像処理パラメータの設定処理を行うことにより、画像処理パラメータの設定に要する処理時間の短縮および画像処理パラメータの設定処理によるソフトウェアの処理を軽減するものである。なお、MFPの構成、操作表示制御部、上位制御部、および画像処理制御部によって実現される機能構成については、第1実施の形態とほぼ同様であるため、第1実施の形態と異なる部分の処理のみを説明する。また、以下の説明では、原稿の裏面を読み取った画像データのプロッタプロセスにおける画像処理パラメータの設定処理について説明するが、原稿の裏面を読み取った画像データのスキャンプロセスにおける画像処理パラメータの設定処理も同様である。
なお、第1実施の形態でも述べたように、本実施の形態にかかるMFP100は、スキャナCCD101で読み取られた画像データとコンタクトイメージセンサCIS102で読み取られた画像データとを同じ画像処理デバイス(ハードウェア108)で処理する。そのため、コンタクトイメージセンサCIS102で原稿の裏面を読み取った画像データに画像処理を施すスキャンプロセスを画像処理制御部703に伝える場合、上位制御部702は、原稿の表面を読み取った画像データに画像処理を施すスキャンプロセスが完了した後、原稿の表面の画像データのスキャンプロセスと同様にして、原稿の裏面を読み取った画像データに画像処理を施すスキャンプロセスを実行する。
画像処理制御部703は、例えば、コピー(両面)等が実行され、コンタクトイメージセンサCIS102で読み取った画像データのスキャンプロセス(またはプロッタプロセス)に含まれる計算要求を上位制御部702から受け取った場合、スキャナCCD101で読み取った画像データのスキャンプロセス(またはプロッタプロセス)において用いた画像処理パラメータと異なる画像処理パラメータのみ計算する。そして、画像処理制御部703は、コンタクトイメージセンサCIS102で読み取った画像データのスキャンプロセス(またはプロッタプロセス)に含まれる設定要求を上位制御部702から受け取った場合、計算した画像処理パラメータの再設定のみをハードウェア108(またはミドルウェア109)に要求する。
本実施の形態では、画像処理制御部703は、画像処理デバイス(例えば、ミドルウェア109)に含まれる画像処理モジュールに制御単位を区切って画像処理デバイスにおける画像処理を制御する。具体的には、適応γ処理301に限らず他の画像処理モジュールについても同様であるが、画像処理制御部703は、上位制御部702から計算要求を受け取ると、適応γ処理301に設定する画像処理パラメータを切替え可能な制御要因によって区分される画像処理パラメータのインデックス番号を用いて、適応γ処理301に設定する画像処理パラメータの計算・保持を実行する。そして、画像処理制御部703は、上位制御部702から設定要求を受け取ると、インデックス番号により区分される画像処理パラメータごとに、当該画像処理パラメータと対応付けてROM602aに記憶されるプログラムおよびデータをミドルウェア109にダウンロードする。つまり、インデックス番号は、画像処理モジュールに設定する画像処理パラメータの設定単位および設定された画像処理パラメータを用いて画像処理を行う画像処理モジュール内の処理単位となる。
図14は、制御要因によって区分された画像処理パラメータの計算結果の一例を示す図である。本実施の形態では、画像処理制御部703は、インデックス番号1〜4の画像処理パラメータを計算する。例えば、インデックス番号1の画像処理パラメータは、入力情報に含まれるアプリケーションの種類によって切り替わるパラメータである。また、インデックス番号2の画像処理パラメータは、入力情報に含まれる画質モードによって切り替わるパラメータである。インデックス番号3の画像処理パラメータは、入力情報に含まれるアプリケーションの種類および読取装置情報に含まれる読み取りデバイス情報によって切り替わるパラメータである。インデックス番号4の画像処理パラメータは、入力情報に含まれるカラーモードおよび読取装置情報に含まれる読み取りデバイス情報によって切り替わるパラメータである。
次に、画像処理制御部703がミドルウェア109の適応γ処理301に設定する画像処理パラメータを計算する処理の手順について図15を参照して説明する。図15は、画像処理パラメータを計算する処理の手順を示すフローチャートである。なお、本実施の形態にかかる画像処理制御部703は、少なくとも前回の計算要求による各インデックス番号の画像処理パラメータの計算結果および各インデックス番号の画像処理パラメータを切り替えた制御要因をRAM602bに保存しているものとする。また、本実施の形態では、ミドルウェア109の適応γ処理301に設定する画像処理パラメータを計算する例について説明するが、ハードウェア108またはミドルウェア109の他の画像処理モジュールの画像処理パラメータも同様にして計算されるものとする。
まず、画像処理制御部703は、上位制御部702からプロッタプロセスに含まれる計算要求を受け取ると、当該計算要求とともに受け取った付帯情報に含まれる読取装置情報(例えば、読取デバイス情報)により指定される読取装置がスキャナCCD101またはそれ以外の読取装置かを判断する(ステップS1501)。そして、読取装置情報により指定される読取装置がスキャナCCD101である場合(ステップS1501:スキャナCCD)、画像処理制御部703は、前回の計算要求によりインデックス番号1の画像処理パラメータを切り替えたアプリケーションの種類と、入力情報に含まれるアプリケーションの種類と、を比較し、アプリケーションの種類に変更があったか否かを判断する(ステップS1502)。
アプリケーションの種類に変更があった場合(ステップS1502:Yes)、画像処理制御部703は、インデックス番号1の画像処理パラメータを計算し、計算した画像処理パラメータを保持する(ステップS1503、ステップS1504)。さらに、RAM602bに保存されているインデックス番号1の画像処理パラメータを計算した画像処理パラメータで更新する。一方、アプリケーションの種類に変更がなかった場合(ステップS1502:No)、画像処理制御部703は、RAM602bに保存されているインデックス番号1の画像処理パラメータをコピーする(ステップS1505)。具体的には、RAM602bに保存されているインデックス番号1の画像処理パラメータを計算した画像処理パラメータとして保持する。
インデックス番号1の画像処理パラメータが保持された場合(ステップS1504、ステップS1505)、画像処理制御部703は、前回の計算要求によりインデックス番号2の画像処理パラメータを切り替えた画質モードと、入力情報に含まれる画質モードと、を比較し、画質モードに変更があったか否かを判断する(ステップS1506)。
画質モードに変更があった場合(ステップS1506:Yes)、画像処理制御部703は、インデックス番号2の画像処理パラメータを計算し、計算した画像処理パラメータを保持する(ステップS1507、ステップS1508)。さらに、RAM602bに保存されているインデックス番号2の画像処理パラメータを計算した画像処理パラメータで更新する。一方、画質モードに変更がなかった場合(ステップS1506:No)、画像処理制御部703は、RAM602bに保存されているインデックス番号2の画像処理パラメータをコピーする(ステップS1509)。具体的には、RAM602bに保存されているインデックス番号2の画像処理パラメータを計算した画像処理パラメータとして保持する。
インデックス番号2の画像処理パラメータが保持された場合(ステップS1508、ステップS1509)または読取装置情報により指定される読取装置がスキャナCCD101以外である場合(ステップS1501:それ以外指定)、画像処理制御部703は、前回の計算要求によりインデックス番号3の画像処理パラメータを切り替えたアプリケーションの種類および読取デバイス情報と、入力情報に含まれるアプリケーションの種類および読取装置情報に含まれる読取デバイス情報と、を比較し、アプリケーションの種類および読取デバイス情報に変更があったか否かを判断する(ステップS1510)。
アプリケーションの種類および読取デバイス情報に変更があった場合(ステップS1510:Yes)、画像処理制御部703は、インデックス番号3の画像処理パラメータを計算し、計算した画像処理パラメータを保持する(ステップS1511、ステップS1512)。さらに、RAM602bに保存されているインデックス番号3の画像処理パラメータを計算した画像処理パラメータで更新する。一方、アプリケーションの種類および読取デバイス情報に変更がなかった場合(ステップS1510:No)、画像処理制御部703は、RAM602bに保存されているインデックス番号3の画像処理パラメータをコピーする(ステップS1513)。具体的には、RAM602bに保存されているインデックス番号3の画像処理パラメータを計算した画像処理パラメータとして保持する。
インデックス番号3の画像処理パラメータが保持された場合(ステップS1512、ステップS1513)、画像処理制御部703は、前回の計算要求によりインデックス番号4の画像処理パラメータを切り替えたカラーモードおよび読取デバイス情報と、入力情報に含まれるカラーモードおよび読取装置情報に含まれる読取デバイス情報と、を比較し、カラーモードおよび読取デバイス情報に変更があったか否かを判断する(ステップS1514)。
カラーモードおよび読取デバイス情報に変更があった場合(ステップS1514:Yes)、画像処理制御部703は、インデックス番号4の画像処理パラメータを計算し、計算した画像処理パラメータを保持する(ステップS1515、ステップS1516)。さらに、RAM602bに保存されているインデックス番号4の画像処理パラメータを計算した画像処理パラメータで更新する。一方、カラーモードおよび読取デバイス情報に変更がなかった場合(ステップS1514:No)、画像処理制御部703は、RAM602bに保存されているインデックス番号4の画像処理パラメータをコピーする(ステップS1517)。具体的には、RAM602bに保存されているインデックス番号4の画像処理パラメータを計算した画像処理パラメータとして保持する。
次に、画像処理制御部703が適応γ処理301の画像処理パラメータをミドルウェア109に設定する処理の手順について図16を参照して説明する。図16は、画像処理パラメータを設定する処理の手順を示すフローチャートである。なお、本実施の形態にかかる画像処理制御部703は、少なくとも前回の設定要求による各インデックス番号の画像処理パラメータの設定結果をRAM602bに保存しているものとする。また、本実施の形態では、ミドルウェア109の適応γ処理301の画像処理パラメータを設定する例について説明するが、ハードウェア108またはミドルウェア109の他の画像処理モジュールの画像処理パラメータも同様にして設定されるものとする。
まず、画像処理制御部703は、上位制御部702から設定要求を受け取ると、付帯情報に含まれる読取装置情報(例えば、読取デバイス情報)により指定される読取装置がスキャナCCD101またはそれ以外の読取装置かを判断する(ステップS1601)。そして、読取装置情報により指定される読取装置がスキャナCCD101である場合(ステップS1601:スキャナCCD指定)、画像処理制御部703は、保持するインデックス番号1の画像処理パラメータが前回の設定要求により設定されたインデックス番号1の画像処理パラメータと異なるか否かを判断する(ステップS1602)。
そして、保持するインデックス番号1の画像処理パラメータが前回の設定要求により設定されたインデックス番号1の画像処理パラメータと異なる場合(ステップS1602:Yes)、画像処理制御部703は、保持するインデックス番号1の画像処理パラメータに対応付けられたプログラムおよびデータをミドルウェア109にダウンロードすることにより、当該インデックス番号1の画像処理パラメータをミドルウェア109に設定する(ステップS1603)。さらに、画像処理制御部703は、ミドルウェア109に設定したインデックス番号1の画像処理パラメータをRAM602bに保存する(ステップS1604)。保持するインデックス番号1の画像処理パラメータが前回の設定要求により設定されたインデックス番号1の画像処理パラメータと同一の場合(ステップS1602:No)は、インデックス番号1の画像処理パラメータの設定処理は行われない。
次に、インデックス番号1の画像処理パラメータがRAM602bに保存された場合(ステップS1604)または保持するインデックス番号1の画像処理パラメータが前回の設定要求により設定されたインデックス番号の画像処理パラメータと同一の場合(ステップS1602:No)、画像処理制御部703は、保持するインデックス番号2の画像処理パラメータが前回の設定要求により設定されたインデックス番号2の画像処理パラメータと異なるか否かを判断する(ステップS1605)。
そして、保持するインデックス番号2の画像処理パラメータが前回の設定要求により設定されたインデックス番号2の画像処理パラメータと異なる場合(ステップS1605:Yes)、画像処理制御部703は、保持するインデックス番号2の画像処理パラメータに対応付けられたプログラムおよびデータをミドルウェア109にダウンロードすることにより、当該インデックス番号2の画像処理パラメータをミドルウェア109に設定する(ステップS1606)。さらに、画像処理制御部703は、ミドルウェア109に設定したインデックス番号2の画像処理パラメータをRAM602bに保存する(ステップS1607)。保持するインデックス番号2の画像処理パラメータが前回の設定要求により設定されたインデックス番号2の画像処理パラメータと同一の場合(ステップS1605:No)は、インデックス番号2の画像処理パラメータの設定処理は行われない。
次に、インデックス番号2の画像処理パラメータがRAM602bに保存された場合(ステップS1607)、保持するインデックス番号2の画像処理パラメータが前回の設定要求により設定されたインデックス番号の画像処理パラメータと同一の場合(ステップS1605:No)、または読取装置情報により指定される読取装置がスキャナCCD101以外である場合(ステップS1601:それ以外指定)、画像処理制御部703は、保持するインデックス番号3の画像処理パラメータが前回の設定要求により設定されたインデックス番号3の画像処理パラメータと異なるか否かを判断する(ステップS1608)。
そして、保持するインデックス番号3の画像処理パラメータが前回の設定要求により設定されたインデックス番号3の画像処理パラメータと異なる場合(ステップS1608:Yes)、画像処理制御部703は、保持するインデックス番号3の画像処理パラメータに対応付けられたプログラムおよびデータをミドルウェア109にダウンロードすることにより、当該インデックス番号3の画像処理パラメータをミドルウェア109に設定する(ステップS1609)。さらに、画像処理制御部703は、ミドルウェア109に設定したインデックス番号3の画像処理パラメータをRAM602bに保存する(ステップS1610)。保持するインデックス番号3の画像処理パラメータが前回の設定要求により設定されたインデックス番号3の画像処理パラメータと同一の場合(ステップS1608:No)は、インデックス番号3の画像処理パラメータの設定処理は行われない。
次に、インデックス番号3の画像処理パラメータがRAM602bに保存された場合(ステップS1610)、または保持するインデックス番号3の画像処理パラメータが前回の設定要求により設定されたインデックス番号の画像処理パラメータと同一の場合(ステップS1608:No)、画像処理制御部703は、保持するインデックス番号4の画像処理パラメータが前回の設定要求により設定されたインデックス番号4の画像処理パラメータと異なるか否かを判断する(ステップS1611)。
そして、保持するインデックス番号4の画像処理パラメータが前回の設定要求により設定されたインデックス番号4の画像処理パラメータと異なる場合(ステップS1611:Yes)、画像処理制御部703は、保持するインデックス番号4の画像処理パラメータに対応付けられたプログラムおよびデータをミドルウェア109にダウンロードすることにより、当該インデックス番号4の画像処理パラメータをミドルウェア109に設定する(ステップS1612)。さらに、画像処理制御部703は、ミドルウェア109に設定したインデックス番号4の画像処理パラメータをRAM602bに保存する(ステップS1613)。保持するインデックス番号4の画像処理パラメータが前回の設定要求により設定されたインデックス番号4の画像処理パラメータと同一の場合(ステップS1611:No)は、インデックス番号4の画像処理パラメータの設定処理は行われない。
このように、本実施の形態にかかるMFP100によれば、原稿の表面を読み取った画像データの画像処理が実行された際に画像処理デバイスに設定された画像処理パラメータを利用して、原稿の裏面を読み取った画像データの画像処理を実行する際の画像処理パラメータの設定処理を行うことにより、原稿の裏面を読み取った画像データの画像処理を行う際、原稿の表面を読み取った画像データの画像処理の際に設定された画像処理パラメータと異なる画像処理パラメータだけを設定すればよいので、画像処理パラメータの設定に要する処理時間の短縮および画像処理パラメータの設定処理によるソフトウェアの処理を軽減してMFP100の高生産性を実現するものである。
図17は、本実施の形態で用いた画像処理パラメータを示すテーブル(データ)の一例を示す説明図である。図17に示すテーブルは、ミドルウェア109に設定する画像処理パラメータのインデックス番号であるP(プログラム番号)およびD(データ番号)を、要求レベル1〜3および変倍率から決定した例である。ここで、要求レベルとは、ユーザが操作表示部105を介して指定したアプリケーションの種類や画質モードや読取装置情報など、図14に示した制御要因である。
図18は、ミドルウェアに設定する画像処理パラメータを示すテーブルの一例を示す図である。なお、本実施の形態では、ミドルウェア109の適応γ処理301に設定する画像処理パラメータのテーブルについて説明するが、ハードウェア108に設定する画像処理パラメータのテーブルも基本的には同じである。具体的には、ハードウェア108に設定する画像処理パラメータのテーブルには、プログラムを示す情報が含まれない点で異なる。一方、ミドルウェア109に設定する画像処理パラメータのテーブルには、プログラム(例えば、プログラムA)を示す情報と、データ(例えば、データA(γデータ))を示す情報とがある。プログラムは、実際にミドルウェア109にダウンロードされ、ミドルウェア109がそのプログラムを元に画像処理を実行するものである。本実施の形態では、当該プログラムは、配列で管理され16進数の数字により表される。データは、ミドルウェア109にダウンロードされたプログラムが処理の際に参照して画像処理をする値であり、例えばしきい値処理やγデータ等にあたる。プログラムおよびデータは、ミドルウェア109にダウンロードされることにより、図17に示すテーブルの要素や配列要素(const領域)を示す数字になる。なお、ミドルウェア109へのプログラムおよびデータの書き込みの単位は、8ビットまたは16ビット単位である。
図19は、ハードウェアに設定する画像処理パラメータを示すテーブルの一例を示す図である。本実施の形態では、ハードウェア108に予め存在するレジスタ群(レジスタA〜Z)に対し、ビット単位でアサインされた内容に従い、図19に示すテーブルと同じデータ量のテーブル(const領域)を用いて、図19に示すテーブルの要素(画像処理パラメータ)を設定する。本実施の形態では、実際に設定している画像パラメータの簡略例を示しましたが、ハードウェア108に設定する画像処理パラメータは、データと呼んでいるテーブルで管理され、その要素にあたる8ビットまたは16ビット単位の数字である。
なお、図18および図19中に示すバリエーションは、図17に示すP(プログラム番号)またはD(データ番号)のインデックス番号に対応しており、画像処理制御部703が計算した画像処理パラメータのインデックス番号に従って、ROM602aに記憶されたP番号およびD番号が示す画像処理パラメータをミドルウェア109に設定する。なお、プログラムは、16進数の配列データである。また、画像処理パラメータの設定対象がハードウェア108の場合、ROM602aに記憶されたD番号が示す画像処理パラメータをハードウェア108に設定する。