以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本発明の実施の形態の1つにおける画像形成装置の外観を示す斜視図である。図1を参照して、画像形成装置としてのMFP100は、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置(ADF)120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザインターフェースとしての操作パネル160とを含む。
図2は、ADFおよび画像読取部の内部構成の概略を示す断面図である。図2を参照して、ADF120は、給紙トレイ11と、給紙ローラ13と、分離ローラ15,17と、読取前ローラ19と、中間ローラ21と、読取後ローラ23と、排出ローラ25と、排紙トレイ27と、第2読取部29と、ADF120の全体を制御するためのADF制御部61と、含む。
画像読取部130は、透明な部材から構成されたプラテンガラス31と、光を照射するための光源33と、光源からの光を反射させる反射部材35と、3つのラインセンサが副走査方向に配列された第1読取部41と、原稿からの反射光を反射して第1読取部41に導くための反射ミラー37A,37B,37Cと、反射ミラー37Cで反射した光を第1読取部41上に結像させるためのレンズ39と、第1読取部41が出力する画像データをメイン回路110(図3参照)に出力するための第1画像インターフェース(I/F)43と、第2読取部29が出力する画像データをメイン回路110に出力するための第2画像I/F45と、画像読取部130の全体を制御するスキャナ制御部51と、を含む。
ADF制御部61は、給紙トレイ11、給紙ローラ13、分離ローラ15,17、読取前ローラ19、中間ローラ21、読取後ローラ23および排出ローラ25を回転させる動力源となるモータの駆動を制御する。
給紙ローラ13は、給紙トレイ11に積載された複数の原稿の最上段から1枚の原稿をさばき、分離ローラ15に原稿を搬送し、分離ローラ15,17は、原稿を読取前ローラ19に搬送する。読取前ローラ19は、原稿を画像読取部130の第1読取位置L1に搬送する。読取前ローラ19により搬送され、第1読取位置L1を通過した原稿は、中間ローラ21に到達すると、読取前ローラ19および中間ローラ21により搬送される。中間ローラ21を通過した原稿は、第2読取部29の第2読取位置L2を通り、読取後ローラ23に導かれる。読取後ローラ23は、原稿を排出ローラ25に導く。排出ローラ25を通過した原稿は、排紙トレイ27に排出され、積載される。
第1読取部41は、主走査方向に複数が配列されたCCD(Charge Coupled Device)等の光電変換素子を含む。第1読取部41は、ADF120により搬送される原稿が第1読取位置L1を通過する際に、原稿に形成されている画像を光学的に読み取り、光電変換した画像データを第1画像I/F43に出力する。
第2読取部29は、例えばCIS(Contact Image Sensor)であり、原稿の搬送方向と実質的に垂直な主走査方向に配列された複数の光電変換素子を含む。第2読取部29は、原稿の搬送経路に設けられた開口部28に望んでおり、第2読取位置L2を通過する原稿に形成されている画像を光学的に読み取り、光電変換した画像データを、第2画像I/F45に出力する。
したがって、ADF120が原稿を一度搬送する間に、第1読取部41と第2読取部29とが原稿の両面をそれぞれ読み取ることが可能である。
また、ADF120の給紙トレイ11は、原稿の給紙時における原稿の傾きを防止するためのガイド部材を有する。このガイド部材は、原稿の位置を検出するための位置検出センサを有する。さらに、ADF120は、給紙トレイ11の搬送方向に並んだ複数の原稿検出センサを有する。ADF制御部61は、位置検出センサの出力と、複数の原稿検出センサの出力との組み合わせから、給紙トレイ11に載せられた原稿のサイズを判別する。
図3は、MFPのハードウェア構成の概要を示す図である。図3を参照して、MFP100は、メイン回路110を備える。メイン回路110は、MFP100の全体を制御するためのCPU111と、CPU111が実行するプログラム等を記憶するためのROM(Read Only Memory)113と、CPU111の作業領域として用いられるRAM(Random Access Memory)114と、画像データの入出力を制御するためのバス調停器121と、第1および第2圧縮器131,141と、第1および第2伸張器133,143と、第1および第2回転器135,145と、メモリコントローラ151と、ネットワークコントローラ112と、を含む。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる読取データ(画像データ)を一時的に記憶する。
バス調停器121は、画像読取部130の第1画像I/F43と接続される第1入力メモリ123と、画像読取部130の第2画像I/F45と接続される第2入力メモリ125と、画像データの入出力を制御するための転送制御部129と、画像形成部140に出力するための画像データを一時記憶するための出力メモリ127と、を含む。
第1入力メモリ123は、第1画像I/F43から原稿の表面を読み取って得られる第1画像データが順次入力され、画像データを一時的に記憶するバッファメモリである。第2入力メモリ125は、第2画像I/F45から原稿の裏面を読み取って得られる第2画像データが順次入力され、画像データを一時的に記憶するバッファメモリである。
転送制御部129は、メモリコントローラ151により制御され、画像データの入出力を制御する。転送制御部129が制御する画像データの流れは、画像データの入力の流れと、出力の流れとの2つに大別され、それらはジョブの種類によって異なる。本実施の形態におけるMFP100が実行可能なジョブは、原稿を複写するコピージョブ、原稿を読み取るスキャンジョブ、プリントデータをプリントするプリントジョブがある。
まず、コピージョブまたはスキャンジョブの場合、画像データの入力時において、画像読取部130で原稿が読み取られると、第1画像I/F43から原稿の表面を読み取った第1画像データが第1入力メモリ123に記憶され、第2画像I/F45から原稿の裏面を読み取った第1画像データが第1入力メモリ123に記憶される。転送制御部129は、第1入力メモリ123からバンド単位で画像データを読み出し、圧縮器131に出力するとともに、第2入力メモリ125からバンド単位で画像データを読み出し、第2圧縮器141に出力する。転送制御部129は、第1入力メモリ123または第2入力メモリ125に1ページ分の画像データが記憶される前に、1ページ分の画像データを複数に分割したバンド単位の画像データが入力されると、バンド単位で画像データを読み出し、第1圧縮器131または第2圧縮器141に出力する。
第1圧縮器131および第2圧縮器141それぞれは、バンド単位で入力される画像データを圧縮し、圧縮した画像データをRAM114に格納する。第1および第2圧縮器131,141による圧縮の処理速度は、読み込んだ画像データに依存する。文字の多い原稿では圧縮の処理速度は速く、写真のようなイメージの多い画像では圧縮の処理速度は遅くなる。
画像データの出力時において、CPU111は、第1圧縮器131および第2圧縮器141それぞれによるバンド単位の画像データの圧縮が終了したか否かを判断する。CPU111は、第1圧縮器131による圧縮が終了したならば、第1伸張器133にRAM114に記憶されたデータを読み出させ、伸張させる。これにより、第1伸張器133がバンド単位の画像データを伸張する処理を実行している間に、第1圧縮器131が次のバンドの画像データを圧縮する処理を実行する。すなわち、第1圧縮器131による圧縮処理と、第1伸張器133による伸張処理とが同期する。画像を回転させる必要のある場合は、第1回転器135により画像の回転処理が行われ、回転処理と伸長処理とが同時に行なわれる。第1回転器135は、伸張処理された画像データ、または必要な場合に回転処理された画像データを転送制御部129に出力する。転送制御部129は、第1回転器135から入力される画像データを出力メモリ127に出力する。
CPU111は、また、第2圧縮器141による圧縮が終了したならば、第2伸張器143にRAM114に記憶されたデータを読み出させ、伸張させる。これにより、第2伸張器143がバンド単位の画像データを伸張する処理を実行している間に、第2圧縮器141が次のバンドの画像データを圧縮する処理を実行する。すなわち、第2圧縮器141による圧縮処理と、第2伸張器143による伸張処理とが同期する。画像を回転させる必要のある場合は、第2回転器145により画像の回転処理が行われ、回転処理と伸長処理とが同時に行行われる。第2回転器145は、伸張処理された画像データ、または必要な場合に回転処理された画像データを転送制御部129に出力する。転送制御部129は、第2回転器145から入力される画像データを出力メモリ127に出力する。
CPU111は、プリントジョブの場合、画像形成部140に出力メモリ127に記憶された画像データを読み出させ、出力させる。CPU111は、出力メモリ127に1ページ分の画像データが記憶される前に、画像形成部140に画像データを読み出させる。これにより、画像形成部140で画像を早期に形成させることができる。また、CPU111は、スキャンジョブの場合、出力メモリ127に記憶された画像データをHDD116に記憶する、または、ネットワークコントローラ112を介して外部のコンピュータに画像データを送信する。
プリントジョブの場合、画像データの入力時において、ネットワークコンロローラ112により外部のコンピュータからプリントデータが受信される。CPU111は、ネットワークコントローラ112がプリントデータを受信すると、プリントデータを第1入力メモリ123に格納する。転送制御部129は、第1入力メモリ123からバンド単位で画像データを読み出し、第1圧縮器131に出力する。第1圧縮器131は、バンド単位で入力される画像データを圧縮し、圧縮した画像データをRAM114に格納する。
画像データの出力時において、CPU111は、第1圧縮器131によるバンド単位の画像データの圧縮が終了したか否かを判断する。CPU111は、第1圧縮器131による圧縮が終了したならば、第1伸張器133にRAM114に記憶されたデータを読み出させ、伸張させる。これにより、第1圧縮器131による圧縮処理と、第1伸張器133による伸張処理とが同期される。画像を回転させる必要のある場合は、第1回転器135により画像の回転処理が行われ、回転処理と伸長処理とが同時に行行われる。第1回転器135は、伸張処理された画像データ、または必要な場合に回転処理された画像データを転送制御部129に出力する。転送制御部129は、第1回転器135から入力される画像データを出力メモリ127に出力する。
CPU111は、画像形成部140に出力メモリ127に記憶された画像データを読み出させ、出力させる。CPU111は、出力メモリ127に1ページ分の画像データが記憶される前に、画像形成部140に画像データを読み出させる。これにより、画像形成部140で画像を早期に形成させることができる。
また、CPU111は、操作パネル160と、EEPROM115と、HDD116と、ファクシミリ部117と、カードI/F118と、接続される。操作パネル160は、MFP100の上面に設けられ、表示部160Aと操作部160Bとを含む。表示部160Aは、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等の表示装置であり、ユーザに対する指示メニューや取得した画像データに関する情報等を表示する。操作部160Bは、複数のキーを備え、キーに対応するユーザの操作による各種の指示、文字、数字などのデータの入力を受付ける。操作部160Bは、表示部160A上に設けられたタッチパネルをさらに含む。
ネットワークコントローラ112は、MFP100をローカルエリアネットワーク(LAN)などのネットワークに接続するためのインターフェースであり、例えば、NIC(Network Interface Card)である。CPU111は、ネットワークコントローラ112を介して接続された他のコンピュータとの間で通信し、データを送受信する。また、ネットワークコントローラ112は、ネットワークを介してインターネットに接続されたコンピュータと通信が可能である。
ファクシミリ部117は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部117は、受信したファクシミリデータを、HDD116に記憶する、または画像形成部140に出力する。画像形成部140は、ファクシミリ部117により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部117は、HDD116に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
カードI/F118は、フラッシュメモリ118Aが装着される。CPU111は、カードI/F118を介してフラッシュメモリ118Aにアクセス可能である。CPU111は、カードI/F118に装着されたフラッシュメモリ118Aに記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムは、フラッシュメモリ118Aに記録されたプログラムに限られず、HDD116に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、ネットワークコントローラ112を介してネットワークに接続された他のコンピュータが、MFP100のHDD116に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピュータからプログラムをダウンロードして、そのプログラムをHDD116に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
CPU111は、RAM114が記憶する符号管理テーブルによって、RAM114に記憶されるバンド単位の画像データの入出を管理する。図4は、符号管理テーブルの一例を示す図である。画像データの入力時、入力メモリ123に格納された画像データをバンド単位に圧縮するため、RAM114には、図の右側に示すように、1ページ分の画像データがバンド単位に分割されて記憶される。そこで、符号管理テーブルは、分割されたバンド単位の情報を記憶するバンド管理情報テーブルT2と、原稿中のページ単位の情報を記憶するページ単位情報テーブルTlとからなる。ページ単位情報テーブルTlは、圧縮する前の1ページ単位での圧縮中か否かの状態や、何バンド圧縮したか否か、画像サイズや、圧縮サイズ、バンド単位情報はどこに記憶しているかといった情報を記憶する。また、バンド管理情報テーブルT2は、分割された画像データがどこにあるか、またバンド単位の圧縮サイズ等を記憶する。ここでは、1つの符号管理テーブルを示すが、第1画像データおよび第2画像データそれぞれに対応する2つの符号管理テーブルがRAM114に記憶される。
図5および図6は、メイン処理の流れの一例を示すフローチャートである。メイン処理は、MFP100に主電源が投入された段階で、CPU111がプログラムを実行することにより、CPU111により実行される処理である。図5および図6を参照して、CPU111は、MFP100に主電源が投入されると、初期化処理を実行する(ステップS01)。初期化処理において、CPU111は、パネル入出力制御、ジョブ制御、画像入出力制御に関わる変数を初期化する。次のステップS02において、操作部160Bが備えるスタートキーが押されたか否かを判断する。スタートキーが押されるまで待機状態となり、スタートキーが押さると、原稿読み取りシーケンスの起動と判断し、処理をステップS03に進める。
ステップS03においては、入力の対象となる画像データのページ番号を表す変数P_IN、出力される画像データのページ番号を表す変数P_OUT、伸張処理の要求個数を示す変数REQ_EXPを初期化する。伸張処理の要求個数の単位は、バンドである。具体的には、変数P_INおよび変数P_OUTに「1」を設定し、変数REQ_EXPに「0」を設定する。
ステップS04においては、原稿がADF120に存在するか否かを判断し、原稿が存在するならば、ADF120を用いた画像読み取りと判断し、読み取りおよび圧縮の制御を開始するために処理をステップS05に進めるが、そうでなければ処理をステップS30に進める。ステップS30においては、原稿の全ページの出力が完了したか否かを判断する。全ページの原稿を出力したならば、読み取った原稿は全て出力したと判断して処理をステップS02に戻し、再度次のジョブが起動されるのを待つ。原稿の全ページの出力が完了していなければ、残りのページの原稿を読み取った画像データを処理するために処理をステップS09に進める。
ステップS05においては、圧縮処理を実行中か否かを判断する。圧縮処理については後述する。圧縮処理を実行中であれば処理をステップS09に進めるが、圧縮処理を実行中でなければ処理をステップS06に進める。
ステップS06においては、ADF120および画像読取部130を起動し、処理をステップS07に進める。ステップS07においては、圧縮要求フラグをセットし、処理をステップS08に進める。ステップS08においては、変数REQ_EXPを「1」加算する。画像読取部130を起動し、画像の読み取りを開始したので、第1入力メモリ123および第2入力メモリ125に画像データが順次記憶される。このため、第1圧縮器131および第2圧縮器141による圧縮処理が可能となるため、第1圧縮器131および第2圧縮器141により圧縮されたバンド単位の画像データを、第1伸張器133および第2伸張器143に伸張処理させるためである。これにより、圧縮処理と伸張処理とが同期する。
ステップS09においては、両面原稿読み取りモードに設定されているか否か判断する。両面原稿読み取りモードの設定は、ユーザが操作部160Bにモードの切り換え指示を入力することにより設定される。両面読み取りモードならば、処理をステップS10に進め、そうでなければ処理をステップS12に進める。
ステップS10においては、原稿の表面を読み取って得られる1ページ分の第1画像データの圧縮処理が完了し、かつ、原稿の裏面を読み取って得られる1ページ分の第2画像データの圧縮処理が完了しているか否かを判断する。第1画像データおよび第2画像データの圧縮処理がともに完了しているならば処理をステップS11に進め、そうでなければステップS11をスキップして処理をステップS20に進める。ステップS11においては、入力の対象となる画像データのページ番号を示す変数P_INを「2」加算する。両面原稿読み取りモードの場合には、原稿の両面をそれぞれ読み取った2ページ分の画像データが並行して圧縮処理および伸張処理されるからである。
ステップS09において、両面原稿読み取りモードでないと判断された場合、原稿の表面のみが読み取られるので、原稿の表面を読み取って得られる1ページ分の第1画像データの圧縮処理が完了したか否かを判断する。第1画像データの圧縮処理が完了していれば処理をステップS13に進め、そうでなければステップS13をスキップして処理をステップS20に進める。ステップS13においては、入力の対象となる画像データのページ番号を示す変数P_INを「1」加算する。
ステップS20においては、圧縮処理を実行する。圧縮処理については後述する。ステップS21においては、伸張処理を実行する。伸張処理については後述する。そして、ステップS22においては、画像データを出力中か否かを判断する。出力中でなければ処理をステップS23に進め、出力中ならば処理をステップS25に進める。ステップS23においては、画像データの出力が可能か否かを判断する。具体的には、ステップS21において実行される伸張処理によりセットされる出力可能か否かを示すフラグをチェックし、フラグが出力可能を示すならば、出力処理を起動する(ステップS24)。フラグは画像データの1ページごとに設定される。出力処理は、フラグが出力可能を示すページの画像データを出力する。出力処理は、画像形成部140による画像データに基づく画像形成処理、画像データをHDD116に記憶する処理、または、ネットワークコントローラ112を介して外部のコンピュータに送信する処理を含む。
ステップS25においては、画像データの出力が完了したか否かを判断する。両面原稿読み取りモードに設定されていれば2ページ分の画像データの出力が完了したか否かを判断し、両面原稿読み取りモードに設定されていなければ1ページ分の画像データの出力が完了したか否かを判断する。画像データの出力が完了したならば処理をステップS26に進め、完了していなければ処理をステップS20に戻す。
ステップS26においては、両面原稿読み取りモードか否かを判断する。両面原稿読み取りモードであれば、ステップS27において出力される画像データのページ番号を表す変数P_OUTに「2」を加算し処理をステップS04に戻す。一方、両面原稿同時出力モードでなければ、ステップS28において変数P_OUTに「1」を加算し、処理をステップS04に戻す。出力される画像データのページ番号を表す変数P_OUTを更新した後は引き続きステップS04に戻り、ステップS04以降の処理を繰り返す。
両面原稿読み取りモードか否かの判断は、操作部160Bにおいて、ユーザにより設定されるコピーモードに応じて決定される。例えば、両面原稿を2in1でプリントする場合は、1枚の出力用紙に2ページの画像を伸張して出力する必要があるので、両面原稿読み取りモードとなる。
図7および図8は、図6のステップS20において起動される圧縮処理の流れの一例を示すフローチャートである。図7および図8を参照して、ステップS101において、圧縮要求がセットされているか否かを判断する。圧縮要求は、図5のステップS07においてセットされる。ステップS102においては、変数P_COMPに変数P_INの値を設定する。変数P_COMPは、圧縮処理の対象となっている画像データのページを特定するための値である。
ステップS103においては、第1入力メモリ123に1バンド分の画像データの入力が完了したか否かを判断する。具体的には、第1入力メモリ123に1バンド分の画像データが入力され、記憶されているか否かを判断する。1バンド分の画像データが入力されていれば処理をステップS104に進め、そうでなければステップS104をスキップして、処理をステップS105に進める。ステップS104においては、変数P_COMPで特定されるページの画像データに含まれる1バンド分の画像データを圧縮する圧縮処理を起動し、処理をステップS105に進める。圧縮処理は、第1圧縮器131によりCPU111による処理と独立して実行される。
ステップS105においては、変数P_COMPで特定されるページの画像データに含まれる全バンドに対する圧縮処理が完了したか否かを判断する。全バンドの圧縮処理を完了したならば処理をステップS106に進め、完了していなければ処理をステップS111に進める。ステップS106においては、両面原稿読み取りモードに設定されているか否かを判断する。両面原稿読み取りモードに設定されていなければ、処理をステップS107に進め、設定されていなければ処理をステップS111に進める。そして、ページ単位情報テーブルTlの変数P_COMP番目のページの画像データに対して圧縮完了をセットし(ステップS107)、圧縮要求をクリヤし(ステップS108)、処理をステップS111に進める。
ステップS111においては、両面原稿読み取りモードに設定されているか否かを判断する。両面原稿読み取りモードに設定されていれば処理をステップS112に進め、設定されていなければ処理を終了する。ステップS112以降においては、原稿の裏面を読み取った第2画像データに対して、原稿の表面を読み取った第1画像データにしたのと同様の処理を行う。
ステップS112においては、変数P_COMPに変数P_INに「1」加算した値を設定する。原稿の裏面を読み取った第2画像データを処理対象とするためである。変数P_COMPは、圧縮処理の対象となっている画像データのページを特定するための値である。ここでは、原稿の裏面を読み取って得られる第2画像データが圧縮処理の対象となる。
ステップS113においては、第2入力メモリ125に1バンド分の画像データの入力が完了したか否かを判断する。具体的には、第2入力メモリ125に1バンド分の画像データが入力され、記憶されているか否かを判断する。1バンド分の画像データが入力されていれば処理をステップS114に進め、そうでなければステップS114をスキップして、処理をステップS115に進める。ステップS114においては、変数P_COMPで特定されるページの画像データに含まれる1バンド分の画像データを圧縮する圧縮処理を起動し、処理をステップS115に進める。圧縮処理は、第2圧縮器141によりCPU111による処理と独立して実行される。
ステップS115においては、変数P_COMPで特定されるページの画像データに含まれる全バンドに対する圧縮処理が完了したか否かを判断する。全バンドの圧縮処理を完了したならば処理をステップS116に進め、完了していなければ処理をメイン処理に戻す。ステップS116においては、ページ単位情報テーブルTlの変数P_COMP番目のページの画像データと、(変数P_COMP+1)番目のページの画像データとに対して圧縮完了をセットし(ステップS116)、それらのページに対して設定されている圧縮要求をクリヤし(ステップS117)、処理を終了する。
図9および図10は、図5のステップS21で起動される伸張処理の流れの一例を示すフローチャートである。図9および図10を参照して、ステップS201において、伸張処理の要求個数を示す変数REQ_EXPが1以上か否か、すなわち伸張処理すべき画像データが存在するか判断する。変数REQ_EXPが1以上ならば処理をステップS202に進め、そうでなければ処理を終了する。変数REQ_EXPが0ならば、伸張処理すべき画像データが存在しないからである。
ステップS202においては、変数P_EXPに変数P_OUTの値を設定する。変数P_EXPは、伸張処理の対象となっている画像データのページを特定するための値である。
次のステップS203では、図4に示したページ単位情報テーブルTlを参照して、変数P_EXP番目のページの画像データに含まれる1バンド分の圧縮処理が完了しているか否かを判断する。具体的には、RAM114に変数P_EXP番目のページの画像データに含まれる1バンド分の圧縮された画像データが記憶されているか否かを判断する。1バンド分の圧縮された画像データが記憶されていれば処理をステップS204に進め、そうでなければ処理をステップS205に進める。ステップS204においては、圧縮された1バンド分の画像データを伸張する伸張処理を起動し、処理をステップS205に進める。伸張処理は、第1伸張器133によりCPU111で実行する処理とは独立して実行される。
ステップS205においては、画像データを出力可能か否かを判断する。出力可能であれば処理をステップS206に進め、そうでなければ処理をステップS211に進める。出力可能か否かは、伸張処理の速度と画像データを出力する処理の速度との関係により、残りのバンドを伸張処理するのに要する時間と、1ページ分の画像を出力するのに要する時間とを比較することにより判断される。具体的には、画像を出力する処理が処理対象とする画像データが、伸張する処理が処理対象とする画像データを追い越さないと判断されたならば、出力可能と判断する。
ステップS206においては、両面原稿読み取りモードか否か判断する。両面読み取りモードでなければ、処理をステップS207に進め、両面原稿読み取りモードならば処理をステップS211に進める。ステップS207においては、出力可能にフラグをセットする。さらに、ステップS208においては、P_EXP番目のページの全バンドの画像データに対する伸張処理が完了したか否かを判断する。全バンドに対する伸張処理が完了していれば処理をステップS209に進めるが、そうでなければ処理をステップS211に進める。ステップS209においては、伸張処理が完了しているので、伸張処理の要求個数を示す変数REQ_EXPを「1」減算し、処理をステップS211に進める。
ステップS211においては、両面原稿読み取りモードに設定されているか否かを判断する。両面原稿読み取りモードに設定されていれば処理をステップS212に進め、設定されていなければ処理を終了する。ステップS212以降においては、原稿の裏面を読み取った第2画像データに対して、原稿の表面を読み取った第1画像データにしたのと同様の処理を行う。
ステップS212においては、変数P_EXPに変数P_OUTに「1」を加算した値を設定する。変数P_EXPは、伸張処理の対象となっている画像データのページを特定するための値である。ここでは、原稿の裏面を読み取って得られる第2画像データが伸張処理の対象となる。
次のステップS213では、図4に示したページ単位情報テーブルTlを参照して、
変数P_EXP番目のページの画像データに含まれる1バンド分の圧縮処理が完了しているか否かを判断する。具体的には、RAM114に変数P_EXP番目のページの画像データに含まれる1バンド分の圧縮された画像データが記憶されているか否かを判断する。1バンド分の圧縮された画像データが記憶されていれば処理をステップS214に進め、そうでなければ処理をステップS215に進める。ステップS214においては、圧縮された1バンド分の画像データを伸張する伸張処理を起動し、処理をステップS215に進める。伸張処理は、第2伸張器143によりCPU111で実行する処理とは独立して実行される。
ステップS215においては、画像データを出力可能か否かを判断する。出力可能であれば処理をステップS216に進め、そうでなければ処理を終了する。ステップS216においては、出力可能にフラグをセットする。さらに、ステップS217においては、P_EXP番目のページの全バンドの画像データに対する伸張処理が完了したか否かを判断する。全バンドに対する伸張処理が完了していれば処理をステップS218に進めるが、そうでなければ処理をメイン処理に戻す。ステップS218においては、REQ_EXP番目のページの第1画像データと(REQ_EXP+1)番目のページの第2画像データの伸張処理が完了しているので、伸張処理の要求個数を示す変数REQ_EXPを「1」減算し、処理をメイン処理に戻す。
なお、以上までの説明では、原稿搬送装置上に原稿がおかれた場合のコピーの両面読み取りモードの説明を行ったが、原稿ガラス上に原稿が置かれた場合でも画像入力と画像出力は表面に対してのみ圧縮と伸張を同期する制御は容易に実現できる。また、コピーのアプリケーションでなくても、両面原稿をスキャンして画像データを送信する場合も両面原痕の表面を読み取って、前述の例で示しているように、コピー2inlモードの両面読み取りモードと同じ制御を行うことにより、生産性を向上することが可能となる。この場合は出力メモリ127に出力された画像はRAM114に再度転送された後、さらにTIFF(Tagged Image File Format)、PDF(Portable Document Format)等のフォーマットに画像データを変換する処理がされ、ネットワークコントローラ112を介して外部のパーソナルコンピュータに送信される。
次に、両面原稿読み取りモードでコピージョブを実行する場合における原稿の表面および裏面を読み取った画像データの入力処理および出力処理のシーケンスについて説明する。図11は、入力処理および出力処理のシーケンスを示す図である。図11(A)は、本実施の形態におけるMFP100におけるシーケンスを示し、図11(B)は、従来の画像形成装置におけるシーケンスを示す。図11(B)を参照して、従来の画像形成装置におけるシーケンスは、原稿の表面を読み取った第1画像データに対する圧縮処理と伸張処理とは同期しているが、原稿の裏面を読み取った第2画像データに対する伸張処理は、第1画像データに対する伸張処理が終了した後に実行され、第2画像データに対する圧縮処理と伸張処理とが同期していない。このため第2画像データに対する伸張処理が完了するまでに時間がかかっていた。
これに対して、本実施の形態におけるMFP100は、図11(A)に示すように、原稿の裏面を読み取った第2画像データに対する伸張処理は、第1画像データに対する伸張処理と同期して、換言すれば、第1画像データに含まれるバンドの圧縮処理が終了すると直ちにそのバンドの画像データを伸張する伸張処理を実行する。このため、第2画像データに対する圧縮処理と伸張処理とが同期することによって画像データの出力を開始するまでの時間を短縮することができる。
なお、上述した実施の形態においては、MFP100について説明したが、図5〜図10に示した処理を実行するための画像処理方法、または画像処理方法をコンピュータに実行させるための画像処理プログラムとして発明を特定することができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
28 開口部、29 第2読取部、31 プラテンガラス、33 光源、35 反射部材、37A,37B,37C 反射ミラー、39 レンズ、41 第1読取部、43 第1画像I/F、45 第2画像I/F、51 スキャナ制御部、61 ADF制御部、100 MFP、110 メイン回路、111 CPU、112 ネットワークコントローラ、113 ROM、114 RAM、115 EEPROM、116 HDD、117 ファクシミリ部、118 カードI/F、118A フラッシュメモリ、121 バス調停器、123 第1入力メモリ、125 第2入力メモリ、127 出力メモリ、129 転送制御部、130 画像読取部、130 原稿読取部、131 第1圧縮器、133 第1伸張器、135 第1回転器、140 画像形成部、141 第2圧縮器、143 第2伸張器、145 第2回転器、150 給紙部、151 メモリコントローラ、160 操作パネル、160A 表示部、160B 操作部、118 カードI/F。