以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
<画像処理システムの構成>
まず、図1を参照して、本発明の一実施形態に係る画像処理装置を含む画像処理システムの構成例について説明する。本実施形態に係る画像処理システムには、MFP100、ファイルサーバ101、メールサーバ102、及びクライアントPC103がネットワーク141を介して接続されている。
MFP(Multi Function Perripheral)100は、電子写真方式を採用するフルカラーの画像処理装置であり、コピー、FAX、プリンタ機能を備える。MFP100にはスキャナで読み取った画像ファイルをコンピュータ機器に送信するSEND機能、スキャナで読み取った画像を同種の機器間で通信を行い、受信した画像を印刷するIFAX機能も備える。
ファイルサーバ101は、FTP、SMB、WebDAV等の通信プロトコルによりMFP100より送信された画像ファイルを蓄積することが可能である。メールサーバ102は、SMTP、POP3プロトコルによりMFP100、クライアントPC103等と通信を行い、画像ファイルが添付されたメールデータを配信することができる。クライアントPC103は、画像ビューアのソフトがインストールされ、MFP100でスキャンした画像を表示することが可能であり、この画像をプリンタ機能においてMFP100で印刷することもできる。クライアントPC103には、電子メールクライアントソフトもインストールされ、メールサーバ102、電子メールの送受信をすることが可能である。
<画像処理装置のハードウェア構成>
次に、図2を参照して、MFP100のハードウェア構成の一例について説明する。MFP100は、CPU130、ROM131、RAM132、操作部133、スキャナ134、プリンタ135、画像処理回路136、ハードディスク137、ネットワークI/F138、シリアルI/F143、フォーマッタ部139及びファックス部140を備える。
図2において、CPU130は、ROM131に格納されているプログラムとRAM132のメモリを利用してシステム全体の制御を実施する制御回路である。操作部133は、LCD表示パネルとスタートキー、テンキー等のハードキーから構成され、LCD上にソフト的にボタンを表示し、ユーザが指でボタンをタッチすることを検出してユーザオペレーションを円滑に実行する回路である。
スキャナ134は、原稿上の画像を読み取って、読み取った画像データをページ毎に順に出力する。プリンタ135は、画像データに基づく画像を記録媒体上に印刷する。画像処理回路136は、大容量の画像メモリ、画像回転回路、解像度変倍回路、MH、MR、MMR、JBIG、JPEG等の符号/復号化回路等で構成され、シェーディング、トリミング、マスキング等の各種画像処理も実行することができる。
ハードディスク137は、SCSI、IDE等のI/Fで接続されている大容量記録媒体である。ネットワークI/F138は、10BASE−T、100BASE−Tを代表とするイーサネット(登録商標)或いはトークンリング等のネットワーク回線と接続するための回路である。フォーマッタ部139は、プリンタ135で印刷するための画像を作成するレンダリング回路である。ネットワークI/F138を介してPCからPDL(Page Description Language)データを受信した場合に、受信したPDLデータから画像データが作成される。そして、作成した画像データに対して画像処理回路136で画像処理を行いプリンタ135で印刷する。
スキャナ134、プリンタ135、画像処理回路136、及びフォーマッタ部139は、CPU130からのCPUバスとは別の高速ビデオバスで接続され、画像データを高速に転送できるように構成されている。MFP100は、スキャナ134で読み取った画像データを画像処理回路136で画像処理し、プリンタ135で読み取った画像を印刷するように動作することでコピー機能を実現する。
ファックス部140は、電話回線142上の外部装置との間のファクシミリ通信を制御する。つまり、スキャナ134で読み取った画像データを画像処理回路136で画像処理し、電話回線142経由で外部装置に送信、或いは外部装置からのデータを受信して画像処理回路136で画像処理を行ってプリンタ135で印刷することができる。また、スキャナ134で読み取った画像データから画像処理回路136でJPEG、PDF、TIFF等の画像を作成する。MFP100は、作成したPDF画像等をネットワークI/F138からSMTP、FTP、SMB等の通信プロトコルで送信するSEND機能を実現する。以下では、JPEG、PDF、TIFF等の画像ファイルをSMTPプロトコルにおいて送信する機能を電子メール送信機能と称し、FTP、SMBで送信する機能をファイル送信機能と称する。SEND機能の1つとしてRFC2305で規定されているインターネットファクシミリ機能が存在し、同種の機器間で画像ファイルを電子メールに添付して送受信することでファクシミリ機能を実現している。
インターネットファクシミリ(IFAX)機能は、スキャナ134で読み取った画像データから、画像処理回路136でRFC3949において規定されているTIFFファイルを作成し、SMTPプロトコルで送信する。当該電子メールをSMTP又はPOP3機能を用いてTIFFファイルを受信し、画像処理回路136で内部画像フォーマット画像に変更後プリンタ135において印刷を行う。
シリアルI/F143はRS232C等のシリアルI/Fであり、外部のシリアル機器をMFP100に接続するためのI/Fである。シリアルI/F143にはカードリーダ144が接続され、カード105に記録されている情報を読み取ることができ、この情報よりカード所有者のユーザ認証を行うこともできる。
<比較例におけるコマンドシーケンス>
次に、比較例となる画像処理装置におけるソフトウェアモジュール間のコマンドシーケンスについて説明する。ここでは、4枚の原稿を読み取って、所定の送信宛先へ読み取った画像データを所定のフォーマットで送信する処理について図8を用いて説明する。
送信コンポーネント800は電子メール送信、ファイル送信、ファクス送信等の画像を送信するソフトウェアモジュールである。SENDモジュール801はスキャナに対して読取開始を指示して読み取った画像を送信コンポーネント800に渡たす送信動作全般を制御するソフトウェアモジュールである。画像処理受付モジュール802は送信コンポーネント800等のモジュールから画像変換要求のコマンドを受付けるモジュールである。画像変換モジュール803は実際に画像の変換を実行するモジュールであり、複数の命令を同時に処理することはできない。このため画像処理受付モジュール802は、受け付けた複数の画像変換コマンドをキューイングして画像変換モジュール803には同時に複数の命令を流さないように制御する。スキャナ制御モジュール804は原稿を原稿台に引き込み画像を光電変換により読み取るスキャナに対して、画像を読み取るように命令を発するソフトウェアモジュールである。
ユーザが原稿をフィーダにセットし、送信宛先と送信ファイルフォーマットを設定し、スタートキーを押すとSENDモジュール801から画像変換モジュール803を経由してスキャナ制御モジュール804へ、スキャン開始コマンド910、911が流れる。このコマンド910、911を受け取ったスキャナ制御モジュール804はスキャナに対して画像読取を指示し、ページ毎に読み取りが終わるとページ毎のスキャン終了コマンド912、914、916、918を返し画像変換モジュール803にコマンドを返す。また、コマンド918には最終ページの原稿を読み取り、スキャンが正常に終了したことを示す情報が入っている。
画像変換モジュール803はスキャナ制御モジュール204からページ単位のスキャン終了コマンドのタイミングでスキャナから非圧縮のカラー画像データを受け取る。画像変換モジュール803は、当該画像データを32画素のパケット単位でJPEG圧縮を行いパケットJPEG(P−JPEG)の画像を生成してファイルに保存する。
画像変換モジュール803は、P−JPEGの画像を生成し終わるとSENDモジュール801に対してコマンド913、915、917、919を返す。また、コマンド919はスキャン終了のコマンドとなる。
スキャン終了のコマンド919を受け取ったSENDモジュール801は、送信コンポーネント800にユーザが指定したファイルフォーマット情報が含まれる送信開始コマンド920を送る。送信開始コマンド920を受け取った送信コンポーネント800は、スキャナで読み取ったページ単位のP−JPEG画像をユーザが望むファイルフォーマットに変換するために画像変換コマンド921、925、929、933を画像処理受付モジュール802に送る。
画像処理受付モジュール802はこのコマンドを受け取ると画像変換モジュール803に画像変換コマンド922、926、930、934を送る。画像変換モジュール803は上記コマンドを受け取るとスキャナで読み取ったP−JPEG画像を要求された画像のフォーマットに変換しファイルに格納し、変換終了を示すリザルトコマンド923、927、931、935を返す。画像処理受付モジュール802はこのコマンドを受け取ると画像変換終了コマンド924、928、932、936として送信コンポーネント800に返す。これら画像変換終了コマンドを受け取った送信コンポーネント800は送信宛先となる宛先に変換した画像を送信し、送信が終了すると次のページの画像変換コマンドを発行する。つまり、変換済みページの画像の送信と、次ページの画像の変換とが並行して実行される。全てのページの変換済みデータを送信し終わると送信終了コマンド937をSENDモジュール201に返す。
画像変換時間はスキャンで読み取った画像、ユーザが指定した送信ファイル形式により変化する。このように比較例となるMFPはスキャナで読み取った画像を高速で処理ができる内部フォーマットで読み取り、送信時にユーザが希望するフォーマットに画像変換しながら送信するように動作する。なお、FAXとの同報送信が実施できない機種や、OCR等の変換時間が長い処理を行わない機種においては、スキャン時に送信ファイル形式の画像を生成して、送信時には画像変換を行わずに高速に送信するMFPも存在する。
<本実施形態におけるコマンドシーケンス>
次に、図3を参照して、本実施形態におけるMFP100に実装されているソフトウェアモジュール間のコマンドシーケンスについて説明する。図8を用いて説明した比較例と同様に、ここでは、ここでは、4枚の原稿を読み取って、所定の送信宛先へ読み取った画像データを所定のフォーマットで送信する処理について説明する。
送信コンポーネント200は電子メール送信、ファイル送信、ファクス送信等の画像を送信するソフトウェアモジュールである。ファイル送信にはSMB、FTP、WebDAVの通信プロトコル毎にモジュールが存在する。SENDモジュール201はスキャナ134に対して読取開始を指示して読み取った画像を送信コンポーネント200に渡たす送信動作全般を制御するソフトウェアモジュールである。画像処理受付モジュール202は送信コンポーネント200等のモジュールから画像変換要求のコマンドを受付けるモジュールである。画像処理モジュール203は画像処理回路136のハードウェアを用いて、実際に画像の変換を実行するモジュールである。画像処理モジュール203は画像変換用メモリ容量制限のために複数の画像変換命令を同時に処理することはできないが、スキャン制御用の画像メモリは専用に所有しているために、スキャン動作は他の画像変換動作と並行して動作が可能になっている。画像変換命令を複数同時に処理することはできないため、画像処理受付モジュール202が複数の画像変換命令をキューイングすることにより、画像処理モジュール203には同時に複数の命令を流さないように動作を行う。スキャナ制御モジュール204はスキャナ134を制御するソフトウェアモジュールであり、原稿を原稿台に引き込み、光電変換により画像データに変換する。
ユーザが原稿をフィーダにセットし、送信宛先と送信ファイルフォーマットを設定し、スタートキーを押すとSENDモジュールから画像変換モジュールを経由してスキャナ制御モジュール204へ、スキャン開始コマンド210、211が流れる。このコマンド210、211を受け取ったスキャナ制御モジュール204はスキャナ134に対して画像読取を指示し、ページ毎に読取が終わるとページ毎のスキャン終了コマンド212、214、216を返し画像処理モジュール203にコマンドを返す。また、コマンド218は最終ページの原稿を読み取り、スキャンが正常に終了したことを示すコマンドである。
画像処理モジュール203はスキャナ制御モジュール204からページ単位のスキャン終了コマンドのタイミングでスキャナ134から非圧縮のカラー画像データを受け取る。画像処理モジュール203は、当該画像データを32×32画素の単位で分割し、分割した画像に対しJPEG圧縮を行い、複数のJPEG画像から構成されるパケットJPEG(P−JPEG)の画像を生成してファイルに保存する。P−JPEGの画像は画像を小さなパケットで扱うためにMFP100内部では高速に処理が可能であるが、一般的な画像フォーマットではないためにMFP100の外部では扱うことができない。画像処理モジュール203はP−JPEGの画像を生成し終わるとSENDモジュール201に対してコマンド213、215、217を返し、全てのページのスキャンが終了するとスキャン終了コマンド219を返す。
1ページ目のスキャン終了コマンド212をSENDモジュールが受け取ると、画像処理受付モジュール202に1ページ目の画像変換コマンド221を命令する。当該コマンドを受け取った画像処理受付モジュール202は画像処理モジュール203が画像変換中ではないことを確認して1ページ目の画像変換コマンド222を命令する。
画像処理モジュール203は指定された画像変換を実施し、終了すると画像変換リザルト223を画像処理受付モジュール202に返す。画像変換処理はMFP100の内部フォーマット画像であるP−JPEGから1ページ全体を1つの画像とするJPEGファイルへの変換もしくは、カラー画像を白黒画像に変換してMMRの画像に変換する。さらに、画像を文字領域と画像領域とに分離し圧縮率を変更することでカラー画像を小さな画像に変換する、高圧縮ファイルへの変換、画像の文字領域にOCRをかけて文字を抽出するOCR処理も実施する。また、画像変換のみならず変換画像をTIFF、PDF、XPS、OOXML等のファイル形式への対応も実行し、ユーザが操作部133から指定したファイル形式へ変換する。
1ページ目の画像変換が終わるとSENDモジュール201はスキャナ134によるスキャン処理が終了しているか調べ、全ページのスキャンは終了していないことを確認して2ページ目の画像変換コマンド224を命令する。この命令は画像変換コマンド225として画像処理モジュール203に伝えられ、画像変換処理を実行し、終了すると画像変換リザルト226、227を返す。
SENDモジュール201は画像変換リザルト227を受け取ったタイミングでスキャナ134によるスキャン終了コマンド219を受け取っているため、3ページ目の画像変換は命令しない。言い換えれば、スキャナ134による原稿の読み取りが終了した時点で行われているページの変換処理が終了すると、それ以降のページの変換処理は行わない(送信開始後に行う)。なお、画像変換時間は変換する画像の大きさ、解像度、変換するファイルフォーマットによって変化するためにスキャナ134の読み取りとは非同期に処理が行われ、SENDモジュール201で画像変換される枚数が変化する。
スキャナ134による読み取りが終了してから、スキャナ読取中に投入した画像変換処理が終了するとSENDモジュール201は送信コンポーネント200に対し、送信開始コマンド230を命令する。送信コンポーネント200はこの命令を受け取ると送信宛先のサーバに接続し、スキャナ134で読み取られた1ページ目のP−JPEG画像をユーザが操作部133から指定したファイル形式へと変換する画像変換コマンド231を命令する。
この命令を受け取った画像処理受付モジュール202は、1ページ目の画像に対応する変換済み画像が存在するか否かを判定する。ここで、1ページ目の画像に対応する変換済みの画像が存在すれは、画像処理受付モジュール202は、画像処理モジュール203には変換コマンドを出さず、変換済み画像を画像変換リザルト232として返す。この画像処理受付モジュール202の詳細な動作については図4を用いて後述する。
画像変換リザルト232を受け取った送信コンポーネント200は、変換済みの画像をユーザが指定した送信宛先にデータを送信しながら、2ページ目のP−JPEG画像を指定して画像変換コマンド233を命令する。命令を受け取った画像処理受付モジュール202は、2ページ目の画像に対応する変換済み画像が存在するか否かを判定する。ここで、変換済み画像が存在する場合、画像処理受付モジュール202は、画像処理モジュール203には変換コマンドを出さず、送信コンポーネント200に対して画像変換リザルト234において変換済み画像を返す。
画像変換リザルト232を受け取った送信コンポーネント200は、変換済みの画像をユーザが指定した送信宛先にデータを送信しながら、3ページ目のP−JPEG画像を指定して画像変換コマンド235を命令する。命令を受け取った画像処理受付モジュール202は、3ページ目の画像に対応する変換済み画像が存在するか否かを判定する。ここで、変換済み画像が存在しないため、画像処理受付モジュール202は、画像処理モジュール203に画像変換コマンド236を命令する。
コマンドを受け取った画像処理モジュール203は指定された画像変換を実施し、終了すると画像変換リザルト237を返す。さらに、画像処理受付モジュール202は、画像変換リザルト238として変換済み画像を送信コンポーネント200に返す。
画像変換リザルト238を受け取った送信コンポーネント200は、変換済みの画像をユーザが指定した送信宛先にデータを送信しながら、4ページ目のP−JPEG画像を指定して画像変換コマンド239を命令する。このコマンドを受け取った画像処理受付モジュール202は、4ページ目の画像も変換済みの画像が存在していないため、画像処理モジュール203に画像変換コマンド240を命令する。画像処理モジュール203は、4ページ目のP−JPEG画像を指定された画像に変換し、終了すると画像変換リザルト241において変換済み画像を返す。さらに、画像処理受付モジュール202は、画像変換リザルト242として送信コンポーネント200に返す。画像変換リザルト242を受け取った送信コンポーネント200は、変換済み画像をユーザが指定した送信宛先にデータを送信し、送信が終了すると接続を閉じて、送信終了コマンド243をSENDモジュール201に返して送信処理を終了する。
<文書管理>
次に、図4を参照して、MFP100内部の文書管理について説明する。310は1つの文書を示し、1〜N(Nは自然数とする。)ページで構成される。全体では、この文書をM(Mは自然数とする。)文書管理することができる。
MFP100では管理することができる全体のページ数が決まっていて、1つの文書でページが多くなるとNの値は増え、ページ数が多い文書を管理すると文書数を示すMの値が小さくなる。各ページはメインページとサブページから構成され、両者は関連付けて管理される。最初にスキャナ134でスキャンを行うと、スキャンした画像はメインページに登録される。
スキャンした1ページ目の画像はP−JPEGに変換されてメインページ300に登録され、サブページ301には画像は登録されない。スキャンした2ページ目の画像はP−JPEGに変換されてメインページ302に登録され、サブページ303には画像は登録されない。同様に、Nページ目のスキャンした画像はP−JPEGに変換されてメインページ306に登録され、サブページ307には画像は登録されない。
図3の画像変換コマンド221、222において1ページ目の画像変換が指示されると変換した画像はSENDモジュール201に返される。SENDモジュール201は変換済み画像を1ページ目のサブページ301に登録する。また、画像変換コマンド224、225において2ページ目の画像変換が指示されると変換した画像はSENDモジュール201に返される。SENDモジュール201は変換済み画像を2ページ目のサブページ303に登録する。
画像処理受付モジュール202は、画像変換コマンド231を受けると1ページ目のサブページ301に変換済み画像が存在するため、画像処理モジュール203による実変換は行わず、サブページ301の画像を画像変換リザルト232として返す。画像変換コマンド233も同様に2ページ目のサブページ303に変換済み画像が存在するために画像処理モジュール203による実変換は行わず、303の画像を画像変換リザルト234として返す。
一方、画像処理受付モジュール202は、画像変換コマンド235を受けると3ページ目のサブページ305に変換済み画像が存在しないために画像処理モジュール203による実変換を行い、画像変換を行った画像を画像変換リザルト238として返す。画像変換コマンド239も同様に処理され、画像処理モジュール203による実変換を行い、画像変換を行った画像を画像変換リザルト242として返す。
このように、本実施形態に係るMFP100では、メインページにスキャナ134で読み取った画像データが登録され、サブページに送信フォーマットに変換した画像データが登録される。さらに、MFP100では、スキャナ134で読み取りつつ、読み取った画像データを随時送信フォーマットに変換する。これにより、全ての原稿を読み取った後に画像データの変換を開始する場合と比べて画像変換処理を効率に行うことができる。
<SENDモジュールの処理>
次に、図5を参照して、MFP100のSENDモジュール201における処理について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。また、本フローチャートは、操作部133にユーザが送信ファイル形式、スキャン設定、送信宛先設定を行い、スタートキーを押すと開始される。
S401において、SENDモジュール201は、スキャナ134を起動させてフィーダにセットされている原稿を引き込み、原稿読取を開始させる。続いて、S402において、SENDモジュール201は、変数iと変数jに初期値として1をセットする。S403において、SENDモジュール201は、変数iが変数jより大きいか調べ、大きい場合はS404でjページ目の画像を画像処理受付モジュール202を経由して画像処理モジュール203で画像変換を行わせ、S405に進む。一方、S403で変数iが変数j以下であると判定するとS405に進む。
S405において、SENDモジュール201は、iページ目のスキャンが終了したか否かを判定する。スキャンが終了するとS406に進み、SENDモジュール201は変数iに1を加え、S407に進む。一方、S405でスキャンが終了していないと判定した場合はそのままS407に進む。S407において、SENDモジュール201は、S404で実行したjページ目の画像変換が終わったか否かを判定する。終わっていない場合は、S410に進む。一方、画像変換リザルトを受け、画像変換が終わった場合はS408に進み、SENDモジュール201は、変換済み画像を図4に示すようにjページ目のサブページへ移動させ(登録し)、S409で変数jに1を加えてS410に進む。
S410において、SENDモジュール201は、スキャン終了コマンド219を受けたかを調べることにより、最終ページのスキャンが終了したか否かを判定する。スキャン終了コマンドを受けていない場合はS403に戻り、スキャン終了コマンドを受けた場合はS411に進み、SENDモジュール201は、jページ、即ち、現在画像変換しているページの画像変換が終了するまで待機する。jページの画像変換が終了すると、S412において、SENDモジュール201は、変換画像をサブページに移動して、処理を終了する。このように、本実施形態によれば、全ページのスキャン処理が終了するまでは、並行してスキャンして読み取った画像データを送信フォーマットへ変換する処理を実行する。
<送信コンポーネント200の処理>
次に、図6を参照して、送信コンポーネント200における処理について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。また、本フローチャートは、SENDモジュール201から送信開始コマンド230を受けると開始される。
S501において、送信コンポーネント200は、変数iを0で初期化し、S502で操作部133に送信中表示のメッセージを表示させる。続いて、S503において、送信コンポーネント200は、送信宛先のサーバに接続し、S504で接続エラーが発生したか否かを判定する。接続エラーが発生した場合はS512に進み、送信コンポーネント200は、メッセージを操作部133に表示して、S513で終了する。
正常にサーバへの接続が完了すると、S505に進み、送信コンポーネント200は、変数iに1を加える。ここで、送信コンポーネント200は、画像処理受付モジュール202へ画像変換コマンドを投入し、S506で当該画像変換コマンドに対する画像変換リザルトコマンドを受けたか否かを管理することによって画像変換中であるか否かを判定する。
S506で画像変換リザルトコマンドを受けていると判定すると画像変換が終了したと判断し、S507に進み、送信コンポーネント200は、iページの画像変換コマンドを発行し、画像変換を開始させる。一方、S506で画像変換リザルトコマンドを受けていないと判定すると画像変換中であると判断し、S508において、送信コンポーネント200は、画像変換が終了したか否かを判定する。終了した場合はS509に進み、送信コンポーネント200は、変換されたiページの画像データを送信する。一方、画像変換が終了しない場合はS510に進み、送信コンポーネント200は、エラーか否か判定し、エラーが発生している場合はS512でエラーメッセージを操作部133に表示して、処理を終了する。
一方、エラーが発生していない場合は、S511に進み、送信コンポーネント200は、最終ページの送信が終了したか調べ、終了していない場合はS505に戻る。最終ページの画像送信が終了した場合はS512に進み、送信コンポーネント200は、送信が終了したことを示すメッセージを操作部133に表示して、処理を終了する。
なお、送信コンポーネントの処理は図8を用いて説明した一般的な例として説明した比較例との動作と変わらない。このため送信コンポーネント200のソフトウェアは変更することなく高速に処理できるメリットが存在する。送信コンポーネントはJava(登録商標)のような取り外し、交換が可能なプログラムで記述することも可能であり、従来動いていたプログラムをまったく変更せずに利用できる。
<画像処理受付モジュール202の処理>
次に、図7を参照して、画像処理受付モジュール202における処理について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。また、本フローチャートは、SENDモジュール201、送信コンポーネント200から画像変換コマンドを受けることにより開始される。
S601において、画像処理受付モジュール202は、画像変換を指示された画像のサブページに画像が存在するか調べ、サブページが存在する場合はS602に進み、サブページの画像を変換画像として返却して処理を終了する。一方、サブページに画像が存在しない場合はS603に進み、画像処理受付モジュール202は、受けた画像変換コマンドをキューイングする。
画像処理モジュール203は、メモリ容量の兼ね合いより、同時に複数の画像処理を処理することができない。このためSENDモジュール201、送信コンポーネント200から複数の命令(画像データ要求)を同時に受けた場合にはキューイングすることにより対応する。
次に、S604において、画像処理受付モジュール202は、画像処理モジュール203が画像変換処理中であるか監視し、画像変換が終了するまで待ち、画像変換が終了すると、S605に進み、キューイングしている命令を読み出す。続いて、S606において、画像処理受付モジュール202は、画像処理モジュール203へ画像変換コマンドを発行する。S607において、画像処理受付モジュール202は、画像変換が終了するまで待ち、変換が終了した場合はS608に進み、変換画像をコマンド発行先に戻し、処理を終了する。
以上の通り、本実施形態のMFP100は、原稿の読取と並行して読取済みのページの画像データの変換を行い、原稿の読取終了後は、変換済みのページの画像データの送信と並行して未変換のページの画像データの変換を行う。これにより、読取済みの原稿を持って早く立ち去りたいユーザの要望と、送信完了を早く見届けたいユーザの要望の両方にこたえることができる。
<送信動作>
次に、図9を参照して、送信動作の処理手順について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。また、本フローチャートは、ユーザが操作部133に表示されている送信タブを選択すると開始される。以下では、スキャナによって原稿の全てのページから画像を読み取った後に画像データを所定の送信フォーマットに変換して送信する第1モードでジョブを実行するか、又は、スキャナによって原稿の全てのページから画像を読み取る前に、読み終えたページから順に画像データを所定の送信フォーマットに変換して送信する第2モードでジョブを実行するかを判定する処理について説明する。
S1001において、CPU130は、送信宛先を設定する。送信宛先には、FAX、読み取った原稿をメールに添付してFAXのように送受信を行うIFAX、SMB/FTP/WebDAV等の通信プロトコルを用いてPCのフォルダに送信を行うファイル送信宛先、電子メールに添付して送信する電子メール宛先がある。さらに、MFP100のハードディスクに保存するBOX宛先を指定することができる。例えば、CPU130は、選択肢を操作部133に表示し、ユーザ入力に従って送信宛先を設定する。
S1002において、CPU130は、スキャナ134で読み取る画像の解像度を設定する。例えば、操作部133に表示した200×200dpi、300×300dpi、400×400dpi、600×600dpiの中からユーザ入力に従って設定する。白黒画像を読み取る場合は、200×100dpi、200×400dpiが選択肢に追加され、カラー画像を読み取るときは100×100dpiの解像度が選択肢に追加される。
S1003において、CPU130は、フィーダ又はスキャナ134のガラス面である圧板にセットされた原稿の用紙サイズを設定する。用紙サイズは、操作部133に表示される、自動、A3、A4、A5、B4、B5、11×17、LGL、LTR、STMT、長尺、フリーサイズから選択することができる。長尺はロールペーパのように長い紙であり、最大640mmまでの用紙を読み取ることができるが、メモリを大量に必要とすることから両面読取等の機能は使えない。フリーサイズは圧板に載せることができる不定形な用紙サイズであり、画像の終端を検知する方法は長尺と同じあるため、読取動作的には長尺と同じになる。しかしながら、横方向の最大サイズは17inchに制限されているため、長尺のようにメモリ制限で両面読取ができないという制限は存在せず、フリーサイズは両面読取が可能である。
S1004において、CPU130は、読取設定として、原稿を読み取る色に関して自動で検知するか、又は、カラー/グレー/白黒2値で読み取るかを設定する。また、片面/両面等の原稿読取方法の指定、読み取る原稿の束が異なる用紙サイズが混載しているか否か、読み取り時の倍率指定等の機能を設定することができる。原稿混載はOFFに指定されていると先頭ページのみ原稿サイズ検知を行い、2ページ目以降は先頭ページのサイズで読み取るために高速にスキャンすることができる。
さらにフィーダには100ページぐらいの原稿しか搭載することができないため、100ページを超える原稿を1つのファイルとして扱うために、複数の原稿束を連続して読み取り、1つのファイルにして送信する連続読取機能が存在する。連続読取機能を指定すると1つの原稿束の読取が終了すると、終了するか否か尋ねられ、継続を選択すると次の原稿束を読み込み、前に読みとった束と結合して送信を行うように動作する。S1004の読取設定には読み取った画像を送信前に操作部133に表示して、不要なページを削除してから送信できるようにするプレビュー機能を指定するスイッチも存在する。
S1005において、CPU130は、送信するファイル形式を設定する。例えば、読み取った原稿を画像変換してTIFF、JPEG、PDF、XPS、OOXML等のファイル形式にして送信するように設定することができる。さらに、PDF等の場合はOCR等機能、文字部と画像部を領域分離し画像毎に圧縮方式を変更することでデータサイズを小さくする高圧縮PDFや電子署名付きPDF等指定をすることができる。
S1006において、CPU130は、STRATキーが押下されたか否かを判定し、STARTキーが押下された場合はS1007に遷移し、押下されない場合はS1006の判定を定期的に繰り返す。S1007において、CPU130は、送信宛先がFAX宛先であるか否かを判定し、S1008では送信宛先がIFAX宛先か否かを判定し、FAX、IFAXの場合はS1015の通常スキャンへと進む。S1015において、CPU130は、通常スキャン、即ち、図8を用いて説明したスキャン動作のみを行うスキャンを実行させ、S1019においてスキャン終了後に送信コンポによって画像変換しながら画像データを送信させる。
このスキャンは、結果的にスキャンと画像変換/送信動作が連続して実行されるために送信速度が低下する。しかしながら、FAX送信はスキャン終了後に送信宛先と通信を行い、お互いの画像通信能力をネゴシエーションしてから送信画像フォーマットが決定する。従って、図3を用いて説明したスキャン中に1部の画像変換を実施してしまってもネゴシエーションの結果と異なるフォーマットに変換してしまっても再変換が必要になってしまい、高速に送信することはできない。逆に度重なる画像変換の結果、画像が劣化する可能性も存在する。IFAX宛先の場合も同様に送信宛先毎に送信できる画像が異なっているために、複数宛先に同報送信が指示された場合に再変換を実施しなければ送信することはできない。従って、S1007、S1008において、送信宛先がFAX、IFAX宛先であると判定した場合は送信速度が遅い通常スキャンが選択される。
送信宛先がFAX及びIFAXでない場合はS1009に進み、CPU130は、送信宛先にBOX宛先が含まれるか否かを判定する。BOX宛先の場合、スキャンした画像がハードディスク137に長期間蓄積することになる。蓄積される画像は図4を用いて説明したようにスキャンして作成されたメインページのデータの他にサブページのデータが存在する。従って、ハードディスク137には長期間サブページのデータが残ってしまいハードディスク137の容量を圧迫することに繋がるために、S1009で送信宛先にBOX宛先が含まれる場合はS1015の通常スキャンへと処理を進める。
BOX宛先でない場合はS1010に進み、CPU130は、スキャン解像度が所定の値以上であるか否か、例えば600dpiであるか否かを判定する。図3を用いて説明したスキャン中に1部の画像変換を実施するスキャン時画像変換はスキャン中に画像の読み書きが頻繁に実施される。このため、スキャナ134の読み取り速度が低下してしまう。とりわけスキャナ134が両面同時読みで、スキャン速度が1分あたり100ページを超えるような高速スキャン機では顕著になる。多くのユーザはスキャナ134で読み取りが終わると、スキャンを終了した原稿を持って戻ってしまい、送信終了までMFP100の前で待つユーザは多くなく、読み取り速度が低下してしまうと、わざわざ高価で高速なMFPを購入した意味が無くなってしまう。従って、S1002の解像度設定が最も解像度が高い600dpiの場合はS1010においてS1015の通常スキャンへと処理を進め、スキャン速度が低下しないようにする。
解像度が600dpiでない場合はS1011に進み、CPU130は、S1004の読取設定が長尺又はフリーサイズ設定である場合、S1015の通常スキャンへと処理を進める。長尺、フリーサイズ読み取り時も他の読み取り制御、画像変換処理と同様に画像処理回路136内に存在するハードウェアを用いて画像変換を実施する。基本的に読取制御と画像変換処理は、並列に同時動作が可能なようにハードウェアが構成されているが、長尺、フリーサイズ読み取りはあまり使われないことからコストダウンのために1部の制御を画像変換処理用のハードウェアを使うにように構成される場合もある。このため、画像変換中に長尺読み取りが行われると、同時には動作せずに読み取り動作が止まってしまうという問題が存在する。この問題を回避するために、S1004の読取設定が長尺又はフリーサイズである場合、S1015の通常スキャンへと処理を進める。
読取サイズが長尺及びフリーサイズでない場合はS1012に進み、CPU130は、S1004でプレビュー機能が設定されているか否かを判定する。S1004でプレビュー機能が設定されている場合は、S1015の通常スキャンへと処理を進める。一方、プレビュー指定されていない場合はS1013に進み、CPU130は、読み取り原稿がスキャナ134のガラス面にセットされた圧板読取であるか否かを判定する。圧板読取である場合は、S1015の通常スキャンへと処理を進める。
圧板読取でない場合はS1014に進み、CPU130は、CPU130は、連続読取指定がされているか否かを判定する。連続読取指定がされていればS1015の通常スキャンへと処理を進める。一方、連続読取指定がされていない場合は、S1018に進み、CPU130は、図3を用いて説明したスキャン時に画像変換を行うモードでスキャンを実施し、S1019に進み、送信コンポーネント200によって送信動作を実施し、スキャンデータを送信し、処理を終了する。
<プレビュー指定の場合の送信動作>
次に、図10を参照して、2ページの原稿をプレビュー指定をして送信指示された場合に、図3を用いて説明した送信動作を行う場合について説明する。205のUIは操作部133を制御するモジュールを示す。
UI205からのプレビュー指定がされている送信開始コマンド1000は、SENDモジュール201へと伝わり、SENDモジュール201からスキャン開始コマンド1101が1102でスキャナ制御モジュールに発行される。スキャナ制御モジュール204は、スキャナ134を動かし、フィーダにセットされている原稿を原稿台に搬送し、原稿のデータを読み取り排紙する。
1ページ目の原稿を読み取り終わるとスキャナ制御モジュール204から画像処理モジュールに対して1103のページ毎のスキャン終了コマンドを返し、2ページ目の原稿が読み取り終わると1104のスキャン終了コマンドを返す。画像処理モジュール203では、1103のコマンドを受け取ると、1105のコマンドで1ページ目のスキャンが終了したことをSENDモジュール201に伝える。SENDモジュール201は、1ページ目のデータを画像変換するために、画像変換コマンド1106を画像処理モジュール203に発行する。1107において、画像処理モジュール203に伝えられ、1ページ目の画像変換処理が開始される。
最終ページである2ページ目のスキャンが終了するとスキャン終了コマンド1109を送り、この信号がUI205に1110のコマンドとして伝達される。UI205は、送信開始コマンド1100を受けると、「スキャン中」の表示を行い、1110の命令を受け取ると表示を消す。
スキャナ134で読み取った画像サイズは大きく、特殊な画像フォーマットであるために、プレビューが指定されていても、UI205でそのまま表示することはできない。このため、画像変換コマンド1111を画像処理受付モジュールに送信し、画像を縮小して、UI205にそのまま表示することができる画像フォーマットに変換する。画像処理受付モジュール202は、1107の画像変換がまだ終わっていないために、この画像変換が終了するまで、画像処理モジュール203へのコマンド発行を待つ。
1ページ目の画像変換が終了すると1112において画像処理受付モジュール202に伝えられ、1113のコマンドでSENDモジュールに伝えられる。画像処理受付モジュール202は、1107の画像変換が終わったことを受けて、1115のコマンドで画像処理モジュール203に対して、プレビュー画像の画像変換コマンドを発行する。画像処理モジュール203及び画像処理受付モジュール202は、プレビュー画像の変換が終わると、それぞれ1117、1118のコマンドでUI205に伝え、UI205によって画像が表示される。
UI205ではプレビュー表示を行い、「送信」ボタンを押下すると、1120において送信開始コマンドがSENDモジュール201に送られ、送信コンポーネント200に送信開始コマンド1121が発行される。送信コンポーネント200は、画像変換コマンド1122を画像処理受付モジュール202に発行する。1ページ目の画像は1107で既に画像変換が実施されているために、画像の実変換は実施せず、図4を用いて説明したサブページに存在する画像を変換済画像として1123において送信コンポーネント200に返す。
送信コンポーネントで200は、変換済みの画像を送信宛先に送信しながら、2ページ目の画像を変換するための、画像変換コマンド1124を画像処理受付モジュール202に発行する。2ページ目の画像は画像変換を行っていないので、文書管理のサブページにはデータが存在しない。このため、実画像変換を行うために、1125の画像変換コマンドを画像処理モジュール203に発行する。画像処理モジュール203では、2ページ目の画像変換を実施し、1126の時間が経過すると変換が終わり、1127、1128で変換終了コマンドが送信コンポーネント200に伝えられ、2ページ目のデータの送信が行われる。送信が終了すると1129で送信結果がUI205に通知され、送信中の表示を消して、送信が終了したことを一定時間表示する。
以上説明した動作例では、図8に示したように通常スキャンを実行していれば、スキャン終了後、1116のプレビュー画像の変換時間経過後にプレビュー画像を表示することができたにも関わらず、1114の時間と1116の時間とが経過した後にプレビュー画像を表示することになる。1114の時間は、1117の画像変換処理によって変わってしまうが、高解像度、大きな用紙サイズ、OCR処理、OOXML等の複雑なファイルフォーマットに変換する場合は5秒以上の時間を有する。このように、スキャナ134の読み取りが終わって5秒経過してからプレビュー画像が表示されることは問題になるため、図9のS1012においてプレビューが指定された場合はS1015の通常スキャンへと処理を進める。
206の画像処理データは、複数ページのファイルを1つのファイルとして処理する場合に使われる画像処理データである。PDF等の複数ページの画像データには画像の他にヘッダ、フッタ等の様々な情報が必要になり、1ページ目のフッタデータが2ページ目のヘッダデータに影響を与える。画像変換は1ページ単位で実施するため、上記のような場合、画像処理データ206に1ページ目のフッタ情報を格納しておき、2ページ目の画像変換時に上記データを参照してヘッダ情報を作成するように動作する。
<圧板読取指定の場合の送信動作>
次に、図11を参照して、読み取り原稿がスキャナ134のガラス面にセットされた圧板読み取りの指定をして送信指示された場合に、図3を用いて説明した送信動作を行う場合について説明する。
スキャナ134の原稿台の圧板に置かれた原稿の画像を読み取る命令であるスキャン開始コマンド1200がUI205からSENDモジュール201へと伝わる。このコマンド1200によりSENDモジュール201からスキャン開始コマンド1201、1202としてスキャナ制御モジュール204にコマンドが発行される。スキャナ制御モジュール204は、スキャナ134を動かし、原稿台にセットされている、原稿を読み取る。
1ページ目の読み取りが終わると1203、1204においてSENDモジュール201に1ページ目のスキャンが終了したことを知らせる。1ページ目のスキャンが終了すると、画像変換コマンド1205、1206において1ページ目の画像変換を行い、変換が終了すると1208、1209において画像変換が終了したことを伝える。SENDモジュール201では、1ページの読み取りが終了したことを1210においてUI205に知らせる。その後、送信開始コマンド1211を発行して、1212〜1214を通じて、送信コンポーネント200において1ページ目の画像データが送信される。
UI205では圧板に載置した原稿を変えて次ページのスキャンをするか、送信を開始するかの選択画面を表示する。スキャン時に画像変換を行わない通常スキャンが選択された場合、UI205にスキャン終了を知らせるタイミングは1215のタイミングになる。従って、圧板読取指定がされている場合に図3の送信動作を行うと、スキャンが終了してから次の画面が表示されるまで1216の時間だけ長くなってしまうという問題が存在する。この時間は画像変換処理内容によって変わるが、高解像度、大きな用紙サイズ、OCR処理、OOXML等の複雑なファイルフォーマットに変換する場合は5秒以上の時間を有する。上記問題を解決するためにS1013では圧板読取が指定された場合はS1015の通常スキャンへと処理を進める。
<連続読取指定の場合の送信動作>
次に、図12を参照して、複数の原稿束を原稿束毎にスキャンし複数回繰り返すことで、1つのファイルとして送信を行う連続読取指定で送信指示された場合に、図3を用いて説明した送信動作を行う場合について説明する。
連続読み取りが指定された送信開始コマンド1300は、UI205からSENDモジュール201へと伝わり、SENDモジュール201からスキャン開始コマンド1301、1302としてスキャナ制御モジュールに発行される。スキャナ制御モジュール204はスキャナ134を動かし、原稿台にセットされている、原稿を読み取る。
各ページの読み取りが終わると、1303、1304においてSENDモジュール201にページの読み取りが終了したことを知らせる。1ページ目の読み取りが終了し、1305においてSENDモジュール201に伝えられると、1306、1307の1ページ目の画像変換コマンドが発行される。1308の時間が経過後に1ページ目の画像変換が終了すると、1309において画像処理モジュール203から画像処理受付モジュール202へ画像変換が終了したことを通知する。
このような動作が継続して行われ、1束目の最終ページであるXページ目のスキャンが終了すると1313、1314においてXページ目の最終ページがスキャン終了したことをSENDモジュール201に通知する。この間にも画像変換はスキャン動作と並行して実施されていて、1310でYページ目の画像変換が投入されると、1312、1316で変換が終了したことが通知される。
SENDモジュール201はこのタイミングで1317において1束目のスキャンが終了したことをUI205に知らせる。その後、次の原稿束をフィーダにセットし、スタートキーを押すとセットした原稿束をスキャンする1318の継続スキャンコマンドが発行され、1319、1320のコマンドが送られ、2束目の1ページ目のスキャンが動作する。スキャン動作が終了すると、1321、1322のコマンドが送られ、SENDモジュール201に伝えられる。
スキャン時に画像変換を行わない通常のスキャンが実施された場合は1314のタイミングでUI205に通知することができるので、1315の時間だけ通知が遅れ、スキャン終了しても表示が変わらない時間が発生する。この問題を回避するためにS1014で連続読み取りが指定されている場合はS1015の通常スキャンへと処理を行う。
<その他の実施形態>
<複数の機能が競合状態となった場合の処理>
以下では、図13乃至図17を参照して、本発明のその他の実施形態について説明する。まず、図13を参照して、PDLとSEND機能が競合状態になった場合のSENDモジュールの動作について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。COPY機能とSEND機能は操作部133を使って操作を行うために、基本的に競合動作は発生しない。しかしながら、MFP100とは離れた場所のPCで作成されたデータをアプリケーションから印刷を行うPDL機能と、原稿を読み取って送信を行う送信を行うSEND機能とは競合動作が発生する。PDL機能が動作するとRAM132の使用量が増えてしまい、この結果PDL機能とSEND機能とが競合するとスキャン速度に影響を与え、スキャン速度が一定で無くなりガタガタと動く状態になってしまう。PDL機能の利用者は、MFP100の前に立って操作をしている人のことは意識せずにJOBの投入を行うため、たまたまSEND機能を使っている人がいると、スキャン速度が一定で無くなってしまう。操作部133にユーザが送信ファイル形式、スキャン設定、送信宛先設定を行い、スタートキーを押すと、以下の処理が開始する。なお、以下では、図4のフローチャートと同様の処理については同一のステップ番号を付す。
S401において、CPU130は、スキャナ134を起動させてフィーダにセットされている原稿を引き込み、原稿読取を開始させる。続いて、S402において、CPU130は、変数iと変数jに初期値として1をセットする。続いて、S1401において、CPU130は、PDL機能がSENDスキャン中に動作したことを示すPDLフラグをOFFに初期化する。S1402において、CPU130は、PCのプリンタドライバで作成されたPDLデータを受信、画像をラスタライズ、ラスタライズした画像を印刷するPDL機能が動作しているか否かを判定する。PDL機能が動作している場合はS1403に進み、CPU130は、PDLフラグをONにし、動作していない場合はPDLフラグに変更を与えず、S403に進む。
S403において、CPU130は、変数iが変数jより大きいか否かを判定し、大きい場合はS1404に進みPDLフラグがONであるか否かを判定する。PDLフラグがONでない場合はS404に進み、CPU130は、jページ目の画像を画像処理受付モジュール202に渡し、画像処理モジュール203で画像の変換を開始させる。つまり、PDL機能が動作中である場合は、競合動作が発生してしまうと判断し、画像データの変換処理を先延ばしにする。
S405において、CPU130は、iページ目のスキャンが終了したか否かを判定する。スキャンが終了した場合はS406に進み、CPU130は、変数iに1を加える。続いて、S407において、CPU130は、S404で実行したjページ目の画像変換が終わったか否かを判定する。画像変換リザルトを受け、画像変換が終わった場合はS408に進み、CPU130は、変換済み画像を図4で説明した文書管理のjページ目のサブページへ移動させ、S409において変数jに1を加える。
S410において、CPU130は、219のスキャン終了コマンドを受けたか否かを判定する。スキャン終了コマンドを受けていない場合はS1401に戻り、スキャン終了コマンドを受けた場合はS411に進み、CPU130は、jページの画像変換が終了したか否かを判定する。画像変換が終了した場合はS412に進み、CPU130は、変換画像をサブページに移動する処理を行い、処理を終了する。
<再送信処理>
次に、図14を参照して、送信途中に電源が切れてしまい、ネットワーク回線に異常が発生したためエラーとなった文書を再送信する処理について説明する。図10を用いて説明したように1度スキャン動作が実施されると、文書のサブページにはスキャンした文書の変換済み画像が記録され、画像変換によって画像処理データ206が更新される。
例えばスキャン中に3ページの画像変換が終わり、4ページの画像を変換中にエラーが発生した場合、画像処理データ206には3ページ目が終了したときの情報が格納されている。再送信が実施されると1ページ目、2ページ目はサブページが存在するために画像の変換は行わない。2ページ目のヘッダ情報を作成するときは2ページ目の画像と画像処理データ206のデータを用いて2ページ目のヘッダデータを作成する。このとき、画像処理データ206のデータは3ページ目が終了したときの情報が格納されているために、ミスマッチが発生してしまう。このデータをPCに送ると画像は表示することができず、データが壊れていると認識される。この問題を解決するために、再送信処理が起動すると、図14に示すフローチャートが実行される。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。
まず、S1501において、CPU130は、文書管理のサブページデータを全ページ削除する。続いて、S1502において、CPU130は、画像変換を実施し、サブページには画像が存在しないために画像処理モジュール203による実画像の変換処理が動作する。実画像処理により送信速度は遅くなってしまうが、画像処理データ206のデータは1ページ目のデータに書き換えられ、正常な値となり、S1503で送信処理が行われる。その後、S1514において、CPU130は、変換、送信したページが最終ページであるか否かを判定し、最終ページではない場合はS1505で次ページに処理を移し、処理をS1502に戻す。一方、全てのページが処理されると、処理を終了する。
<長いスキャン時間への対応>
次に、図15及び図16を参照して、2ページの原稿をスキャンしたときに1ページ目の画像変換時間が長い場合に、スキャン時間が長く感じる問題を抑制する対応について説明する。まず、図15を参照して問題点について説明する。
UI205からスキャン開始コマンド1600が発行されると、SENDモジュール201から1601、画像処理モジュール203から1602のコマンドがスキャナ制御204に伝えられる。スキャナ制御204は、フィーダの原稿を引きこみ、1ページ目のスキャンが終了すると1603、2ページ目のスキャンが終了すると1604のスキャン終了コマンドを発行する。
画像処理モジュール203は、1ページ目のスキャンが終了すると1605のコマンドを発行する。1ページ目のスキャンが終了したことを知ったSENDモジュール201は、1606において1ぺージ目の画像変換を実施し、1607において画像処理モジュール203が画像の変換を行う。画像処理モジュール203は、2ページ目のスキャンが終了すると1608のコマンドをSENDモジュール201に返す。
ここで、SENDモジュール201は、UI205へ1609のタイミングでスキャン終了を示すコマンドを返したいが、1ページ目の画像変換が終了していないために返すことができない。UI205は、1609のスキャン終了コマンドを受け取ると、次のJOBの投入を許可し、スタートキーが赤から青表示に変わり、画面を操作できないようにしていた網掛け表示が消えて操作が可能となる。ユーザが素早い操作を行うと1ページ目の画像変換が終了しないうちに次のJOBを実施しなければならず、2つのJOBを同時に実行し管理しなければならず、複雑な処理が要求される。また、1609のタイミングでUI205にスキャン終了コマンドを返すためには、その前に送信コンポーネント200に送信開始コマンドを発行しなくてはならない。
1ページ目の画像変換終了前に送信コンポーネント200に送信コマンドを発行すると、送信コンポーネント200がまだ変換が終わっていない画像変換中の1ページ目に対して画像変換要求を実施することになり、複雑な処理となる。このため1ページ目の画像変換終了コマンド1610、1611を受けてから1612の送信開始コマンドを発行し、次に1613のスキャン終了コマンドをUI205に発行する。
その結果スキャナ134の読み取りが終了してから、1614の時間だけ操作部133の網掛けが消えず、操作者は、結果的にスキャナの読み取り時間が延びたように感じてしまう。その後、送信コンポーネント200が画像処理受付モジュール202に1614の1ページ目の画像変換命令を発行すると、既に変換済みの画像が文書管理のサブページに存在するので、この画像を1615のコマンドで返却する。送信コンポーネント200は受け取った変換済み画像を送信しながら、1616で2ページ目の画像変換命令を発行する。2ページ目の変換は実施されていないため、サブページに画像が存在しないことを確認して、1617の画像変換コマンドを画像処理モジュール203に発行する。2ページ目の画像変換が終了すると、1618、1619のコマンドで送信コンポーネント200に戻され、2ページ目の画像を送信した後に1620のコマンドでUI205に送信終了を知らせる。
続いて、図16を参照して、図15を参照して説明した上記問題の対応方法について説明する。1601から1608については図15と同様であるため説明を省略する。
1609のタイミングにおいて、SENDモジュール201はUI205へスキャン終了を示すコマンド返す。UI205は、1609のスキャン終了コマンドを受け取ると、次のJOBの投入を許可し、スタートキーを赤から青表示に変更し、画面を操作できないようにしていた網掛け表示を消して操作を可能とする。送信原稿をフィーダにセットし、送信宛先等のデータを素早くセットして1ページ目の画像変換が終了しないタイミングで次のJOB1700をSENDモジュール201に発行する。SENDモジュール201ではまだ前のJOBの1ページ目の画像変換が終了していないためにこのJOBを実行予約状態とする。1ページ目の画像変換が終了すると1610、1611のコマンドにおいてSENDモジュール201に知らされる。その後、1612において、送信コンポーネント200へ送信開始コマンドを発行し、図15で説明した1614から1620の送信処理が実行される(不図示)。
図15で発行した1613のスキャン終了コマンドは1609において既に発行しているため発行しない。1ページ目の画像変換が終了し、最初に投入されたJOBが終了する1710のタイミングが経過後、1701において次JOBのスキャン開始コマンドを発行する。このコマンドは1702のコマンドでスキャナ制御204に伝えられる。スキャナ制御204ではフィーダの原稿を引きこみ、1ページ目のスキャンが終了すると1703のコマンドを発行し、2ページ目のスキャンが終了すると1704のスキャン終了コマンドを発行する。
画像処理モジュール203は1ページ目のスキャンが終了すると1705のコマンドを発行する。1ページ目のスキャンが終了したことを知ったSENDモジュール201は1706において1ぺージ目の画像変換を指示し、1707において画像処理モジュール203が画像の変換を行う。画像処理モジュール203は2ページ目のスキャンが終了すると1708のコマンドをSENDモジュール201に返す。SENDモジュール201はUI205へ1709のタイミングでスキャン終了を示すコマンド返す。UI205は1709のスキャン終了コマンドを受け取ると、次のJOBを投入できる状態になりスタートキーが赤から青表示に変わり、画面を操作できないようにしていた網掛け表示が消えて操作が可能となる。
以上説明したように、結果的には1710の時間だけ2回目のスキャンJOBが実行予約状態となる。JOBが実行予約状態のときには、UI205「スキャン予約中」の表示を行い、ハードキーであるリセットキーが押下された場合は実行予約のJOBを破棄する。画像変換中に送信原稿をフィーダにセットし、送信宛先等のデータを素早くセットして1ページ目の画像変換が終了しないうちに次のスキャンJOBを実行するユーザは多くない。しかし、スキャナの読み取り動作が終わったタイミングでスタートキーを青にして網掛け表示をとることでスキャナの読み取りが遅くなったと感じることを低減することができる。仮に、早いタイミングでスタートキーを押した場合でもJOB実行予約され、自動的に読取が開始されるため操作的な不具合を最低限に抑えることができる。
<JOB実行予約処理>
次に、図17を参照して、図15、16を用いて説明したSENDモジュール201内で動作するJOB実行予約機能について説明する。以下で説明する処理は、CPU130がROM131に格納された制御プログラムをRAM132に読み出して実行することにより実現される。UI205からスキャン開始コマンド1600が通知されると以下のスキャン開始のフローチャートが開始する。
S1801において、CPU130は、SENDモジュール201の状態遷移がJOB実行予約中であるか否かを判定し、JOB実行予約中でない場合はS1806に進み、スキャン処理を動作させる。この処理はSENDモジュール201で実行する1601から1609までの処理である。S1806のスキャン処理が終了すると、UI205はスタートキーを赤から青表示に変えて、画面を操作できないようにしていた網掛け表示を消し、操作を可能とする。ユーザが送信原稿をフィーダにセットし、送信宛先等のデータを素早くセットしてスタートキーを押すと再び当該フローチャートの処理が開始される。
一方、S1801でJOB実行予約中になっている場合には、S1802進む。S1802において、CPU130は、画像変換中であるか否かを判定し、画像変換中である場合はS1803でJOB実行予約状態に状態遷移を変更し、S1804においてJOB予約中の表示を行い、S1802に戻る。S1802において、CPU130は、画像変換中状態が終わるとS1805でJOB投入処理を行い、S1806のスキャン処理を実行する。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。