以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る印刷システムの全体構成を示す図である。
図1において、101は印刷システムの構成要素を接続するためのネットワークであり、本実施の形態ではTCP/IPプロトコルを使用したイーサネット(登録商標)を想定している。
102は、用紙に印刷された原稿などを光学的に読み取るネットワークスキャナであり、ネットワークインターフェイスを具備する。RGB3色の読み取り画像データを出力するカラースキャナである。
108,107,106はネットワークプリンタであり、それぞれネットワークインターフェイスを具備し、ネットワークインターフェイスを介して送られる印刷データや画像データを受信し、電子写真技術などの既知の印刷技術を用いて用紙などのメディアに実際に印刷を行うものである。ここでは、ネットワークプリンタ108は白黒デジタル複合機、ネットワークプリンタ107はカラーレーザープリンタ、106は白黒レーザービームプリンタである。
104はファクシミリ装置であり、ネットワークインターフェイスを具備し、公衆回線105を介して画像データの送受信を行う。具体的には、ネットワーク101上のスキャナ102で読み取った画像データを公衆回線105へ送信したり、公衆回線105から受信した画像データをプリンタ108,107,106から出力したり、公衆回線105を介してPC(Personal Computer)103との間で、ファイル化された画像データを入出力したりする。
図2は、図1のプリンタ108の制御部のハードウェア構成を示すブロック図である。なお、プリンタ107,106の各制御部のハードウェア構成も、基本的には図2に示す構成とほぼ同一である。
図2において、コントローラユニット(情報処理装置)2000は、画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095と接続し、一方でLAN2011や公衆回線(WAN)2051に接続し、画像情報やデバイス情報の入出力を制御する。
CPU(中央演算装置)2001はシステム全体を制御するコントローラである。RAM(揮発性記憶装置)2002はCPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM(不揮発性記憶装置)2003はブートROMであり、システムのブートプログラムが格納される。HDD(不揮発性大容量記憶装置)2004はハードディスクドライブ及びIDEコントローラからなり、システムソフトウェア、画像データ及びそれらの管理情報を格納する。
操作部I/F2006は、操作部(UI)2012とのインターフェイス部であり、操作部2012に表示すべき画像データを操作部2012に対して出力したり、本システムユーザが操作部2012に対して入力した情報を、CPU2001に送ったりする。ネットワーク部2010はLAN2011に接続され、情報の入出力を行う。MODEM2050は公衆回線2051に接続され、情報の入出力を行う。
以上の各構成要素(デバイス)がシステムバス2007上に配置される。
イメージバスI/F2005は、システムバス2007と、画像データを高速で転送する画像バス2008とを接続し、データ構造を変換するバスブリッジである。画像バス2008は、PCIバスまたはIEEE1394で構成される。画像バス2008上には後述の各構成要素(デバイス)2020,2030,2040,2060,2080,2090が配置される。
ラスターイメージプロセッサ(RIP)2060は、PDLコードをビットマップイメージに展開する。デバイスI/F部2020は、画像入出力デバイスであるスキャナ2070やプリンタ2095とコントローラユニット2000とを接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部2080は、入力画像データに対して補正、加工、編集を行う。プリンタ画像処理部2090は、プリント出力画像データに対して、プリンタ2095に合わせた補正、解像度変換等を行う。画像回転部2030は画像データの回転を行う。画像圧縮部2040は、多値画像データに対してはJPEGの圧縮伸張処理を行い、2値画像データに対してはJBIG、MMR、MHの圧縮伸張処理を行う。
図3は、図2に示すスキャナ2070及びプリンタ2095の外観を示す図である。
画像入力デバイスであるスキャナ2070では、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することで得られた光信号を、ラスターイメージデータ(図2のライン2071を通過)として電気信号に変換する。原稿用紙を原稿フィーダ2072のトレイ2073にセットし、装置ユーザが操作部2012から読み取り起動指示することにより、CPU2001(図2)がスキャナ2070に指示(図2のライン2071を通過)を与え、これによって、原稿フィーダ2072が原稿用紙を1枚ずつフィードし、原稿画像の読み取り動作が行われる。
画像出力デバイスであるプリンタ2095は、ラスターイメージデータ(図2のライン2096を通過)を画像に変換し、用紙上に転写する部分であり、その転写方式としては感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式であってもよい。プリンタ2095の動作は、CPU2001からの指示(図2のライン2096を通過)によって開始される。プリンタ2095は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それらに対応した用紙カセット2101,2102,2103,2104が設けられる。また、排紙トレイ2111は、印字し終わった用紙を受けるものである。
図4は、図2に示す操作部2012の外観を示す図である。
図4においてLCD表示部2013は、LCD(Liquid Crystal Display)上にタッチパネルシートが貼られた構成となっており、システムの操作画面を表示するとともに、表示されているキーが押されると、その位置情報をCPU2001に送る。スタートキー2014は、原稿画像の読み取り動作を開始するときなどに操作されるキーである。スタートキー2014の中央部には、緑と赤の2色LED2018が配置され、その発光色によってスタートキー2014が使える状態にあるか否かを示す。ストップキー2015は、稼働中の動作を止めるときに操作されるキーである。IDキー2016は、ユーザのユーザIDを入力するときに操作されるキーである。リセットキー2017は、操作部2012で行われた設定操作を初期化するときに操作されるキーである。
図5は、図2に示すスキャナ画像処理部2080の内部構成を示すブロック図である。
図5において、画像バスI/Fコントローラ2081は、画像バス2008と接続してそのバスアクセスシーケンスを制御するとともに、スキャナ画像処理部2080内の各デバイスを制御し、かつタイミング信号を発生する。フィルタ処理部2082は、空間フィルタで構成されてコンボリューション演算を行う。編集部2083は画像加工処理を行うものであり、例えば入力画像データからマーカーペンで囲まれた閉領域を認識して、その閉領域内の画像データに対して、影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。変倍処理部2084は読み取り画像に対して拡大、縮小を行うものであり、主走査方向の変倍では、ラスターイメージの主走査方向について補間演算を行って拡大、縮小を行い、また副走査方向の変倍では、画像読み取りラインセンサ(図示せず)を走査する速度を変えることで拡大、縮小を行う。テーブル変換部2085は、読み取った輝度データである画像データをテーブルを用いて濃度データに変換する。2値化部2086は、多値のグレースケール画像データを、誤差拡散処理やスクリーン処理によって2値化する。
画像処理が終了した画像データは、再び画像バスI/Fコントローラ2081を介して、画像バス2008上に転送される。
図6は、図2に示すプリンタ画像処理部2090の内部構成を示すブロック図である。
図6において、画像バスI/Fコントローラ2091は、画像バス2008と接続してそのバスアクセスシーケンスを制御するとともに、スキャナ画像処理部2090内の各デバイスを制御し、かつタイミング信号を発生する。解像度変換部2092は、LAN2011あるいは公衆回線2051から送られた画像データを、プリンタ2095の解像度に合わせた解像度変換を行う。スムージング処理部2093は、解像度変換後の画像データのジャギー(斜め線等の白黒境界部に現れる画像のがさつき)を滑らかにする処理を行う。
図7は、図2に示す画像圧縮部2040の内部構成を示すブロック図である。
図7において、画像バスI/Fコントローラ2041は、画像バス2008と接続してそのバスアクセスシーケンスを制御するとともに、入力バッファ2042及び出力バッファ2045とのデータのやり取りを行うためのタイミング制御を行い、かつ画像圧縮処理部2043に対するモード設定などの制御を行う。
以下に画像圧縮部2040で行われる画像圧縮処理の手順を説明する。
まずCPU2001(図2)が、画像バス2008を介して画像バスI/Fコントローラ2041に、画像圧縮制御のための設定を行う。この設定により画像バスI/Fコントローラ2041は、画像圧縮処理部2043に対して画像圧縮に必要な設定(例えばMMR圧縮、JBIG伸長等の設定)を行う。必要な設定が行われた後に、CPU2001が再度、画像バスI/Fコントローラ2041に対して画像データ転送の許可を行う。この許可に従い画像バスI/Fコントローラ2041は、RAM2002(図2)または画像バス2008上の各デバイスから画像データの転送を開始する。
すなわち、画像バスI/Fコントローラ2041は、RAM2002または画像バス2008上の各デバイスから画像データを受け取り、入力バッファ2042に一時格納する。そして、画像圧縮処理部2043からの画像データ転送要求に応じて、一定のスピードで画像データを入力バッファ2042から画像圧縮処理部2043へ転送する。この際、入力バッファ2042は、画像バスI/Fコントローラ2041と画像圧縮処理部2043との間で画像データを転送できるか否かを判断し、画像バス2008からの画像データの読み込み及び画像圧縮処理部2043への画像の書き込みが不可能である場合は、画像データの転送を行わないような制御を行う(このような制御を「ハンドシェーク制御」と呼称する)。
画像圧縮処理部2043は、受け取った画像データを一旦、RAM2044に格納する。これは、画像圧縮処理の種類によって、数ライン分のデータを要することがあり、最初の1ライン分の圧縮を行うために数ライン分の画像データを用意してからでないと画像圧縮が行えないことがあるためである。
画像圧縮処理部2043が画像圧縮を行い、その結果得られた画像データは直ちに出力バッファ2045に送られる。出力バッファ2045でも、画像バスI/Fコントローラ2041と画像圧縮処理部2043との間でのハンドシェーク制御を行い、画像データを画像バスI/Fコントローラ2041に転送する。画像バスI/Fコントローラ2041は、転送された圧縮(もしくは伸長)された画像データをRAM2002または画像バス2008上の各デバイスに転送する。
こうした一連の処理は、CPU2001からの処理要求がなくなるまで(画像圧縮処理を必要とする全ページに対して処理が終了するまで)、または画像圧縮処理部2043から停止要求(圧縮または伸長時にエラーが発生した場合等に発生)が出るまで繰り返される。
図8は、図2に示す画像回転部2030の内部構成を示すブロック図である。
図8において、画像バスI/Fコントローラ2031は、画像バス2008と接続してそのバスシーケンスを制御するとともに、画像回転処理部2032にモード等を設定する制御、及び画像回転処理部2032に画像データを転送するためのタイミング制御を行う。
以下に画像回転部2030で行われる画像回転処理の手順を説明する。
まずCPU2001(図2)が、画像バス2008を介して画像バスI/Fコントローラ2031に画像回転制御のための設定を行う。この設定により画像バスI/Fコントローラ2031は画像回転処理部2032に対して画像回転に必要な設定(例えば画像サイズや回転方向、角度等の設定)を行う。必要な設定が行われた後に、CPU2001が再度、画像バスI/Fコントローラ2031に対して画像データ転送の許可を行う。この許可に従い画像バスI/Fコントローラ2031は、RAM2002(図2)または画像バス2008上の各デバイスから画像データの転送を開始する。ここでは、32ビットを転送単位サイズとし、回転を行う画像サイズを32×32(ビット)とし、また、画像バス2008上に画像データを転送させる際にも32ビットを単位とする画像転送を行うものとする(扱う画像は2値を想定する)。
上述のように、32×32(ビット)の画像を得るためには、上述の単位データ転送を32回行う必要があり、且つ不連続な転送元アドレス値を用いて画像データを転送する必要がある。図9は、32×32(ビット)の画像と不連続な転送元アドレス値との関係を示す図である。
不連続アドレッシングにより転送された画像データはRAM2033に、読み出し時に所望の角度に回転されているように書き込まれる。例えば、90度反時計方向回転であれば、最初に転送された32ビットの画像データを、図10に示すように、Y方向に書き込んでいく。そして読み出し時には、X方向に読み出すことで、画像が回転される。図10は、RAM2033に対する32ビットごとの画像データの書き込みを示す図である。
32×32(ビット)の画像回転(RAM2033への書き込み)が完了した後、画像回転処理部2032は、RAM2033からX方向に画像データを読み出し、画像バスI/Fコントローラ2031に画像データを転送する。
回転処理された画像データを受け取った画像バスI/Fコントローラ2031は、連続アドレッシングを以て、RAM2002または画像バス2008上の各デバイスに画像データを転送する。
こうした一連の画像回転処理は、CPU2001からの処理要求がなくなるまで(画像回転処理を必要とする全ページに対して処理が終了するまで)繰り返される。
図11は、図2に示すデバイスI/F部2020の内部構成を示すブロック図である。
図11において、画像バスI/Fコントローラ2021は、画像バス2008と接続してそのバスアクセスシーケンスを制御するとともに、デバイスI/F部2020内の各デバイスを制御し、かつタイミング信号を発生する。また、外部のスキャナ2070及びプリンタ2095への制御信号を発生する。スキャンバッファ2022は、スキャナ2070から送られてくる画像データを一時保存し、画像バス2008に同期させて出力する。シリアルパラレル・パラレルシリアル変換部2023は、スキャンバッファ2022に保存された画像データを順番に並べて、または分解して、画像バス2008に転送できるデータ幅をもった画像データに変換する。パラレルシリアル・シリアルパラレル変換部2024は、画像バス2008から転送された画像データを分解して、または順番に並べて、プリントバッファ2025に保存できるデータ幅をもった画像データに変換する。プリントバッファ2025は、画像バス2008から送られてくる画像データを一時保存し、プリンタ2095に同期させてプリンタ2095に出力する。
スキャナ2070による画像スキャン時におけるデバイスI/F部2020での動作手順を以下に示す。
スキャナ2070から送られてくる画像データを、スキャナ2070から送られてくるタイミング信号に同期させて、スキャンバッファ2022に保存する。そして、画像バス2008がPCIバスの場合には、スキャンバッファ2022内に画像データが32ビット以上入ったときに、画像データを先入れ先出し方式で32ビット分、スキャンバッファ2022からシリアルパラレル・パラレルシリアル変換部2023に送り、32ビットの画像データに変換し、画像バスI/Fコントローラ2021を介して画像バス2008上に転送する。また、画像バス2008がIEEE1394の場合には、スキャンバッファ2022内の画像データを先入れ先出し方式で、スキャンバッファ2022からシリアルパラレル・パラレルシリアル変換部2023に送り、シリアル画像データに変換し、画像バスI/Fコントローラ2021を介して画像バス2008上に転送する。
次に、プリンタ2095で画像プリントが行われる場合のデバイスI/F部2020での動作手順を以下に示す。
画像バス2008がPCIバスの場合には、画像バス2008から送られてくる32ビットの画像データを画像バスI/Fコントローラ2021で受け取り、パラレルシリアル・シリアルパラレル変換部2024に送り、プリンタ2095の入力データビット数に合った画像データに分解し、プリントバッファ2025に保存する。また、画像バス2008がIEEE1394の場合には、画像バス2008から送られてくるシリアル画像データを画像バスI/Fコントローラ2021で受け取り、パラレルシリアル・シリアルパラレル変換部2024に送り、プリンタ2095の入力データビット数に合った画像データに変換し、プリントバッファ2025に保存する。そして、プリンタ2095から送られてくるタイミング信号に同期させて、プリントバッファ2025から画像データを先入れ先出し方式で、プリンタ2095に送る。
図12は、図1のプリンタ108の制御部のソフトウェア構成を示すブロック図である。なお、プリンタ107,106の各制御部のハードウェア構成も、基本的には図12に示す構成とほぼ同一である。
図12において、1501はUI(User Interface)モジュールであり、ユーザがプリンタ108の各種操作、設定を行う際、プリンタ108との仲介を行うモジュールである。本モジュールは、ユーザの操作に従い、後述の各種モジュールに入力情報を転送し、処理の依頼またはデータの設定等を行う。
1502はアドレスブック、即ちデータの送付先、通信先等を管理するデータベースである。アドレスブック1502では、UIモジュール1501からの指示によりデータの追加、削除、取得が行われ、ユーザの操作により後述の各モジュールにデータの送付・通信先情報を与えるものとして使用される。
1503はWebサーバモジュールであり、図外のWebクライアントからの要求により、本プリンタ108の管理情報を該Webクライアントに通知するためのものである。管理情報は、後述のコントロールAPI1518を介してプリンタ108から読み取られ、後述のHTTPモジュール1512、TCP/IPモジュール1516、ネットワークドライバ1517を介してWebクライアントに通知される。
1504はユニバーサルセンドであり、データの配信を司るモジュールである。UIモジュール1501を介してユーザから指示されたデータを、同様に指示された通信(出力)先に配布するものである。また、ユーザにより、本プリンタ108のスキャナ機能を使用し配布データの生成が指示された場合は、後述のコントロールAPI1518を介してスキャナ2070を動作させ、データの生成を行う。
1505は、ユニバーサルセンド1504内で出力先にプリンタが指定された際に実行されるP550モジュールである。
1506は、ユニバーサルセンド1504内で通信先に電子メールアドレスが指定された際に実行されるE−mailモジュールである。
1507は、ユニバーサルセンド1504内で出力先にデータベースが指定された際に実行されるDBモジュールである。
1508は、ユニバーサルセンド1504内で出力先に本プリンタ108と同様の複合機が指定された際に実行されるDPモジュールである。
1509は、RCP(Remote-Copy-Scan)モジュールであり、本プリンタ108のスキャナ機能を使用し、ネットワーク等で接続された他の複合機を出力先とし、本プリンタ108単体で実現しているスキャナ機能と同等の処理を行うモジュールである。
1510は、RCP(Remote-Copy-Print)モジュールであり、本プリンタ108のプリンタ機能を使用し、ネットワーク等で接続された他の複合機を入力先とし、本プリンタ108単体で実現しているプリンタ機能と同等の処理を行うモジュールである。
1511は、WPP(Web-Pull-Print)モジュールであり、インターネットまたはイントラネット上の各種Webページの情報を読み出し、印刷するモジュールである。
1512は、本プリンタ108がHTTP(HyperText Transfer Protocol)により通信する際に使用されるHTTPモジュールであり、後述のTCP/IPモジュール1516とともに前述のWebサーバモジュール1503、WPPモジュール1511に通信機能を提供するものである。
1513はLPRモジュールであり、後述のTCP/IPモジュール1516とともに前述のユニバーサルセンド1504内のP550モジュール1505に通信機能を提供するものである。
1514はSMTPモジュールであり、後述のTCP/IPモジュール1516とともに前述のユニバーサルセンド1504内のE−mailモジュール1506に通信機能を提供するものである。
1515はSLM(Salutation-Manager)モジュールであり、後述のTCP/IPモジュール1516とともに、前述のユニバーサルセンド1504内のDBモジュール1507、DPモジュール1508、RCSモジュール1509、RCPモジュール1510に通信機能を提供するものである。
1516は、TCP/IPモジュールであり、前述の各種モジュールに後述のネットワークドライバ1517とともにネットワーク通信を提供するものである。
1517はネットワークドライバであり、ネットワークに物理的に接続される部分を制御するものである。
1518はコントロールAPIであり、ユニバーサルセンド1504等の上流モジュールに対し、後述のジョブマネージャ1519等の下流モジュールとのインターフェイスを提供するものであり、上流及び下流のモジュール間の依存関係を軽減し、それぞれの流用性を高めるものである。
1519はジョブマネージャであり、前述の各種モジュールよりコントロールAPI1518を介して指示される処理を解釈し、後述の各モジュールに指示を与えるものである。また、本モジュールは、本プリンタ108内で実行されるハード的な処理を一元管理するものである。
1520はCODECマネージャであり、ジョブマネージャ1519が指示する処理の中でデータの各種圧縮・伸長を管理・制御するものである。
1521はFBEエンコーダであり、ジョブマネージャ1519、スキャンマネージャ1524により実行されるスキャン処理により読み込まれたデータをFBEフォーマットにより圧縮するものである。
1522はJPEG−CODECであり、ジョブマネージャ1519、スキャンマネージャ1524により実行されるスキャン処理、及びプリントマネージャ1526により実行される印刷処理において、読み込まれたデータのJPEG圧縮及び印刷データのJPEG展開処理を行うものである。
1523はMMR−CODECであり、ジョブマネージャ1519、スキャンマネージャ1524により実行されるスキャン処理、及びプリントマネージャ1526により実行される印刷処理において、読み込まれたデータのMMR圧縮及び印刷データのMMR伸長処理を行うものである。
1524はスキャンマネージャであり、ジョブマネージャ1519が指示するスキャン処理を管理・制御するものである。
1525はSCSIドライバであり、スキャンマネージャ1524と本プリンタ108が内部的に接続しているスキャナ2070との間の通信を行うものである。
1526はプリントマネージャであり、ジョブマネージャ1519が指示する印刷処理を管理・制御するものである。
1527はエンジンI/Fドライバであり、プリントマネージャ1526とプリンタ2095とのインターフェイスを提供するものである。
1528はパラレルポートドライバ(Parallel)であり、WPPモジュール1511がパラレルポートを介して図外の出力機器にデータを出力する際のインターフェイスを提供するものである。
次に、プリンタ108に組み込まれたアプリケーションについて図13を参照して説明する。
図13は、プリンタ108に組み込まれたアプリケーションと、該アプリケーションに対応する通信相手側機器との関係を示す図である。図13の左側にプリンタ108に組み込まれたアプリケーションを示し、右側に通信相手側機器を示す。
図13において、4050はUIアプリケーションであり、アドレスブック4051を含む。
4100はリモートコピーアプリケーション(送信側)である。
4150は同報配信アプリケーション(送信側)である。
4200はWPP(Web Pull Print)アプリケーションである。
4250はWebサーバアプリケーションである。
4300はプリンタ機器であり、リモートコピーアプリケーション4100の受信側であり、印刷を行う。
4350は汎用のプリンタ機器であり、同報配信アプリケーション4150から送信されたイメージを受信し、印刷を行う。
4400はプリンタ機器であり、同報配信アプリケーション4150から送信されたイメージを受信し、印刷を行う。リモートプリントの受信側(プリント側)である。
4450はサーバ機器であり、同報配信アプリケーション4150から送信されたイメージを受信、格納するノーツサーバである。
4500はサーバ機器であり、同報配信アプリケーション4150から送信されたイメージを受信し、2値で表されたデータで格納する。
4550はメールサーバであり、同報配信アプリケーション4150から送信されたイメージを受信、格納する。
4600DBサーバであり、同報配信アプリケーション4150から送信されたイメージを受信し、多値で表されたデータで格納する。
4650はWebサーバであり、WPPアプリケーション4200から送信された情報コンテンツを受信し、格納する。
4700はWebブラウザであり、Webサーバアプリケーション4250にアクセスする。
UIアプリケーション4050は、前述したUIモジュール1501に相当し、アドレスブック4051はアドレスブック1502に相当する。
アドレスブック4051は、プリンタ108内の不揮発性の記憶装置(不揮発性メモリやハードディスクなど)に保存されており、この中には、ネットワークに接続された複数の通信相手側機器の特徴が記載されている。例えば、以下に列挙するような情報が記載されている。
機器の正式名やエイリアス名
機器のネットワークアドレス
機器が処理可能なネットワークプロトコル
機器が処理可能なドキュメントフォーマット
機器が処理可能な圧縮タイプ
機器が処理可能なイメージ解像度
機器がプリンタ機器である場合の給紙可能な紙サイズ、給紙段情報
機器がサーバ(コンピュータ)機器である場合のドキュメントを格納可能なフォルダ名
以下に説明する各アプリケーションは、上記アドレスブック4051に記載された情報により配信先(通信相手側機器)の特徴を判別する。また、このアドレスブック4051は編集可能であるとともに、記載情報は、ネットワーク内のサーバコンピュータなどに収集保存されているものをダウンロードして使用してもよいし、また、直接配信先(通信相手側機器)にアクセスして収集ようにしてもよい。
リモートコピーアプリケーション4100は、配信先に指定された機器における処理可能な解像度情報を前記アドレスブック4051より獲得し、それに従い、スキャナ2070により読みとった2値画像データを、MMR圧縮を用いて圧縮し、それをTIFF(Tagged Image File Format)化し、SLMに通して、ネットワーク上のプリンタ機器4300に送信する。SLMは、詳細には説明しないが、Salutation Manager(またはSmart Link Manager)と呼ばれる機器制御情報などを含んだネットワークプロトコルの一種である。
同報配信アプリケーション4150は、前記リモートコピーアプリケーション4100と違い、一度の画像走査で複数の配信宛先に画像データを送信するものである。また、配信先はプリンタ機器にとどまらず、いわゆるサーバコンピュータにも直接配信可能である。以下、配信先ごとに分けて順に説明する。
同報配信アプリケーション4150はアドレスブック4051を参照して、配信先の機器が、ネットワークプリンタプロトコルであるLPD(Line Printer Daemon)、プリンタ制御コマンドとしてのLIPSを処理可能であると判別した場合、同様にアドレスブック4051を参照して獲得した画像解像度に従って画像読み取りを行い、画像データを、FBE(First Binary Encoding)を用いて圧縮し、さらにLIPSコード化して、ネットワークプリンタプロトコルであるLPRで相手側プリンタ機器4350に送信する。
同報配信アプリケーション4150はアドレスブック4051を参照して、配信先の機器が、SLMで通信可能であるサーバ機器の場合、さらにサーバブック4051を参照して、サーバーアドレス、サーバ内のフォルダの指定を判別し、リモートコピーアプリケーション4100と同様に、スキャナ2070により読みとった2値画像データを、MMR圧縮を用いて圧縮し、それをTIFF化し、SLMを介して、ネットワーク上のサーバ機器4450,4500に送信し、特定のフォルダに格納する。
同報配信アプリケーション4150はアドレスブック4051を参照して、配信先の機器が、JPEG圧縮された多値画像を処理可能であると判別した場合、前記の2値画像と同様に多値読み取りした画像データを、JPEG圧縮を用いて圧縮し、それをJFIF化し、SLMを介して、ネットワーク上のサーバ機器4600に送信し、特定のフォルダに格納する。
また、同報配信アプリケーション4150はアドレスブック4051を参照して、配信先の機器がメールサーバであると判別した場合、更にアドレスブック4051を参照してメールアドレスを獲得し、スキャナ2070により読みとった2値画像データを、MMR圧縮を用いて圧縮し、それをTIFF化し、SMTP(Simple Mail Transfer Protocol)を使用して、メールサーバ4550に送信する。その後の配信は、メールサーバ4550によって実行される。
WPPアプリケーション4200及びWebサーバアプリケーション4250は、本実施の形態と直接関係しないので、説明を省略する。
ところでコントローラユニット2000(図2)内では、ジョブに対する設定値、デバイス(スキャナ2070、プリンタ2095など)の機能、ステータス、課金情報等をコントロールAPI1518に準拠したデータ形態で保持するデータベースと、そのデータベースとのインターフェイスとを、Device Information Service(以下、「DIS」と呼称する)として定義する。
図14は、DIS7102、ジョブマネージャ1519、スキャンマネージャ1524及びプリントマネージャ1526の相互間で行われる情報のやり取りを示す図である。
基本的に、ジョブの開始命令など動的な情報は、ジョブマネージャ1519からスキャンマネージャ1524及びプリントマネージャ1526に直接指示され、一方、デバイスの機能やジョブの内容など静的な情報は、DIS7102を介してジョブマネージャ1519からスキャンマネージャ1524及びプリントマネージャ1526に送られる。スキャンマネージャ1524及びプリントマネージャ1526からの静的及び動的情報、イベントは、DIS7102を介してジョブマネージャ1519に伝えられる。
スキャンマネージャ1524及びプリントマネージャ1526からDIS7102のデータベースにデータの設定、データベースからの情報取得を行う場合、DIS7102のデータベースのデータ形式がコントロールAPI1518に準拠していることから、コントロールAPI1518に準拠したデータ形式と、スキャンマネージャ1524及びプリントマネージャ1526が理解できるデータ形式との相互の変換処理を行う。例えば、スキャンマネージャ1524及びプリントマネージャ1526からそれぞれステータスデータの設定を行う場合、デバイス固有のデータを解釈し、コントロールAPI1518で定義される対応のデータに変換し、DIS7102のデータベースへ書き込みを行う。
ジョブマネージャ1519からDIS7102のデータベースにデータの設定、またデータベースからデータの取得を行う場合には、ジョブマネージャ1519とDIS7102との間でデータの変換は生じない。
また、DIS7102では、スキャンマネージャ1524及びプリントマネージャ1526から通知される各種イベント情報に基づき、イベントデータの更新が行われる。
図15は、DIS7102内部に保持される各種データベースを示す図である。図中の丸角長方形ブロックは個々のデータベース(DB)を表している。以下、それぞれのデータベースについて説明する。
7201はスーパバイザDBであり、相手側機器全体についてのステータスやユーザ情報を保持しているデータベースである。ユーザIDやパスワード等のバックアップが必要な情報は、ハードディスク装置あるいはバックアップメモリなどの不揮発性の記憶装置に保持される。
7202はスキャンコンポーネントDB、7203はプリントコンポーネントDBであり、これらコンポーネントDBは相手側機器に対応して設けられる。例えば、相手側機器がプリンタのみからなる場合は、プリントコンポーネントDB7203のみが設けられる。例えば、相手側機器がファクシミリ装置である場合は、図示を省略したが、FAXコンポーネントDBが設けられる。各コンポーネントDBには初期化時に、それぞれ対応するスキャンマネージャ1524やプリントマネージャ1526が、機器の機能やステータスを設定する。
7204はスキャンジョブサービスDB、7205はプリントジョブサービスDBであり、これらのジョブサービスDBもコンポーネントDB同様、初期化時にそれぞれ対応するスキャンマネージャ1524やプリントマネージャ1526が、機器で使用できる機能や、それらのサポート状況を設定する。
次にジョブDB、ドキュメントDBについて説明する。
7206はスキャンジョブDB、7207はプリントジョブDBであり、7208はスキャンドキュメントDB、7209はプリントキュメントDBである。
ジョブDB、ドキュメントDBは、ジョブとそれに付随するドキュメントが生成される度にジョブマネージャ1519により動的に確保、初期化が行われ、必要な項目の設定が行われる。スキャンマネージャ1524やプリントマネージャ1526は、ジョブの処理開始前にジョブDB及びドキュメントDBから処理に必要な項目を読み出し、ジョブを開始する。その後、ジョブが終了すると、これらのジョブ及びそれに付随していたドキュメントのDBを解放する。ジョブは1つ以上のドキュメントを持つので、あるジョブに対して複数のドキュメントDBが確保される場合がある。
7211は、スキャンマネージャ1524やプリントマネージャ1526から通知されるイベント情報を保持するイベントテーブルDB、7210は、装置のスキャン回数、プリント回数を記録するためのソフトカウンタDBである。
スキャンマネージャ1524から通知されるイベントには、コンポーネントの状態遷移、スキャン処理動作完了や各種のエラーがあり、また、プリントマネージャ1526から通知されるイベントには、コンポーネントの状態遷移、プリント処理動作完了、紙詰まり、給紙カセットオープンなどがあり、それぞれのイベントを識別するためのイベントIDが予め定められている。
スキャンマネージャ1524やプリントマネージャ1526からイベントが発行された場合、DIS7102はイベントテーブルDB7211に、発行されたイベントIDと、必要なら該イベントに付随する詳細データとを登録する。また、スキャンマネージャ1524やプリントマネージャ1526からイベントの解除が通知された場合、解除指定されたイベントデータをイベントテーブルDB7211から削除する。
ジョブマネージャ1519よりイベントのポーリングが行われた場合、DIS7102はイベントテーブルDB7211を参照し、現在発生しているイベントのイベントIDと、必要ならイベントに付随する詳細データとをジョブマネージャ1519へ返信し、現在イベントが発生していなければその旨を返信する。
また、スキャン処理の動作完了イベントまたはプリント処理の動作完了イベントが通知された場合は、スキャンまたはプリントを行ったユーザのカウンタ値をソフトウェアにより更新する。このソフトウェアによって更新されるカウンタ値は、不慮の電源遮断などでその値が失われないようにするために、バックアップされたメモリ装置やハードウェア装置の不揮発性記憶装置に、その値が更新される度に書き込まれる。
次に、スキャン動作について詳細に説明する。
図16は、図2に示すスキャナ2070の内部に設けられ、スキャナ2070の動作制御を行う制御部のハードウェア構成を示すブロック図である。
図中、PCIバス8105に、CPU8101とメモリ8102とSISCコントローラ8103と画像圧縮・伸長ボード(CODEC)8104とIDEコントローラ8108とが接続される。SISCコントローラ8103にはスキャナ部8107がSCSIインターフェイスケーブル8106を介して接続され、SISCコントローラ8103は、スキャナ部8107をPCIバス8105に接続するためのインターフェイスを提供する。またIDEコントローラ8108にはIDEハードディスク8110がIDEケーブル8109を介して接続される。
図17は、メモリ8102に格納されCPU8101で実行される、スキャナ2070の動作制御を行うソフトウェアの構成を示すブロック図である。
ジョブマネージャ8201は、アプリケーションレベルの要求を分類、保存する機能を持つ。DIS8202は、アプリケーションレベルからのスキャン動作に必要なパラメータを保存する。アプリケーションからの要求は、図16に示すメモリ8102に保存される。
スキャン動作管理部8203は、ジョブマネージャ8201とDIS8202とから、スキャンを行うのに必要な情報を取得する。すなわち、スキャン動作管理部8203は、ジョブマネージャ8201から、ジョブ番号及びドキュメント番号からなるテーブルデータを受け取る。そして、該テーブルデータに対応するスキャンパラメータをDIS8202から受け取る。このアプリケーションから要求されているスキャン条件であるスキャンパラメータに基づき、スキャンが行われる。図18は、スキャン動作管理部8203がジョブマネージャ8201から受け取るテーブルデータを示す図であり、テーブルデータは、ジョブ番号8303及びドキュメント番号8304からなる。図19は、DIS8202に保存されたスキャンパラメータを示す図であり、スキャンパラメータは、ジョブ番号8305、ドキュメント番号8306、画像ファイルタイプ8307、スキャン画像属性8308、スキャン画像圧縮形式8309からなる。
図17に戻って、スキャン動作管理部8203は、DIS8202から取得したスキャンパラメータをドキュメント番号順にスキャンシーケンス制御部8204に送る。スキャンパラメータを受け取ったスキャンシーケンス制御部8204は、スキャン画像属性8308の内容に従ってSCSI制御部8207をコントロールする。これにより、図16に示すSCSIコントローラ8103が動作され、SCSIインターフェイスケーブル8106を介してスキャナ部8107にSCSI制御コマンドが送られ、スキャンが実行される。
スキャンして得られた画像データは、図16のスキャナ部8107からSCSIインターフェイスケーブル6を介してSCSIコントローラ8103に送られ、さらにPCIバス8105を介してメモリ8102に格納される。
スキャンシーケンス制御部8204は、スキャンが終了し、メモリ8102に画像データが格納された時点で、スキャンパラメータのスキャン画像圧縮形式8309の内容に従って、メモリ8102に格納されているスキャン画像を圧縮するために、圧縮・伸長制御部8205に対して要求を出す。要求を受け取った圧縮・伸長制御部8205は、図16に示すCODEC8104を用いて、スキャン画像圧縮形式8309の指定に従って圧縮を行う。圧縮・伸長制御部8205は、圧縮された画像データを、PCIバス8105を介してメモリ8102に格納する。
圧縮・伸長制御部8205がスキャン画像圧縮形式8309で指定された形式でスキャン画像を圧縮し、メモリ8102に格納した時点で、スキャンシーケンス制御部8204は、スキャンパラメータの画像ファイルタイプ8307に従って、メモリ8102に格納されている圧縮されたスキャン画像データをファイル化する。すなわち、スキャンシーケンス制御部8204はファイルシステム8206に対して、スキャンパラメータの画像ファイルタイプ8307で指定されたファイル形式でファイル化することを要求する。ファイルシステム8206は、画像ファイルタイプ8307に従って、メモリ8102に格納されている圧縮された画像データをファイル化し、図16に示すPCIバス8105を介してIDEコントローラ8108に転送する。このファイル化画像データはさらに、IDEケーブル8109を介してIDEハードディスク8110に転送され、IDEハードディスク8110に格納される。ファイルシステム8206がIDEハードディスク8110にファイル化画像データを格納した時点で、スキャンシーケンス制御部8204は、スキャナ部8107上の1ページ分の原稿の処理が終了したとして、スキャン動作管理部8203にスキャン終了通知を送り返す。
この時点で、スキャナ部8107上にまだスキャンが行われていない原稿が存在し、かつジョブマネージャ8201からスキャン要求が送られている場合には、スキャン動作管理部8203は再度、DIS8202に格納されているスキャンパラメータを用いてスキャンシーケンス制御部8204にスキャン動作を要求する。
一方、スキャナ部8107上にスキャンされていない原稿が存在しない場合、またはジョブマネージャ8201からスキャン要求が送られていない場合には、スキャン動作管理部8203は、スキャン動作が終了したものとしてジョブマネージャ8201に対してスキャン終了通知を発行する。
次に、プリント動作について詳細に説明する。
図20は、図2に示すプリンタ2095の内部に設けられ、プリンタ2095の動作制御を行う制御部のハードウェア構成を示すブロック図である。
図中、PCIバス9005に、CPU9001とメモリ9002と画像圧縮・伸張ボード(CODEC)9004とエンジンI/Fボード9003とが接続される。エンジンI/Fボード9003には、エンジンインターフェイスケーブル9006を介してプリンタ部9007が接続される。
エンジンI/Fボード9003は内部にDPRAMを持ち、このDPRAMを介してプリンタ部9007へのパラメータ設定及びプリンタ部90007からの状態読み出しを行うとともに、プリントの制御コマンドのやり取りを行う。またこのエンジンI/Fボード9003はビデオコントローラを持ち、プリンタ部9007からエンジンインターフェイスケーブル9006経由で与えられる信号VCLK(Video Clock)と信号HSYNCとに合わせて、PCIバス9005上に展開されているイメージデータを、エンジンインターフェイスケーブル9006を介してプリンタ部9007に送信する。
図21は、信号VCLK及び信号HSYNCとイメージデータ(ビデオ信号)との関係を示すタイミングチャートである。
図21において、信号VCLKは常に発生され、信号HSYNCはプリンタ部9007での1ライン分のイメージデータの印刷開始に同期して与えられる。ビデオコントローラは、設定された画像幅(WIDTH)分のイメージデータをメモリ9002から読み出して、ビデオ信号としてエンジンインターフェイスケーブル9006を介してプリンタ部9007へ出力する。これを指定ライン数分(LINES)繰り返した後、後述のコマンドIMAGE_ENDが発生される。
先に説明した通り、図2に示すCPU2001上のアプリケーションプログラムから図12のコントロールAPI1518にプリントジョブの指示が出力されると、コントロールAPI1518はこれを図12のジョブマネージャ1519にジョブとして渡す。ジョブマネージャ1519はジョブの設定を図14のDIS7102に格納し、プリントマネージャ1526にジョブの開始を指示する。プリントマネージャ1526はジョブを受け付けると、DIS7102からジョブ実行に必要な情報を読み出し、図20に示すエンジンI/Fボード9003及びプリンタ部9007に印刷を実行させる。
以下に、これを具体的な例に沿って説明する。なお、この説明に際して、図22に、エンジンI/Fボード9003内に設定されるプリントパラメータを示し、図23に、プリンタ部9007とエンジンI/Fボード9003との間で送受信される制御コマンド、状態コマンドを示す。両方ともエンジンI/Fボード9003内のDPRAMに格納される。
以下、説明を簡略化するために、ここで実行されるプリントジョブを、非圧縮、レターサイズ(11インチ×8.5インチ)、2値画像、2ページ1部プリントとし、プリンタ部9007の解像度が600dpiであるものとする。
まず、このプリントジョブを受けたプリントマネージャ1526は、このプリント画像の幅方向(この場合、8.5インチの側とする)の画像バイト数WIDTHを算出する。
WIDTH=8.5×600÷8≒630(バイト)
次に、長さ方向のライン数LINESを演算する。
LINES=11×600=6600(ライン)
これらの算出した値と、与えられた1ページ目の画像が格納されているメモリ9002におけるアドレスSOURCEとを、DPRAMにおける図22に示したプリントパラメータの対応部分に格納する。この時点で、エンジンI/Fボード9003では画像出力の用意が完了しているが、プリンタ部9007から信号HSYNCが届いていないため(信号VCLKは届いている)、画像データをプリンタ部9007へ出力しない。
次に、プリントマネージャ1526は、DPRAM内のコマンドBookNo(図23)に対応する部分に、出力部数である1を書き込む。その後、1ページ目に対する出力用紙の給紙要求(コマンドFEED_REQ)を出し、プリンタ部9007から送信されるコマンドIMAGE_REQを待つ。プリンタ部9007からコマンドIMAGE_REQが届いたら、コマンドIMAGE_STARTをプリンタ部9007へ出す。これを受けたプリンタ部9007が信号HSYNCを出力すると、信号HSYNC待ちであったエンジンI/Fボード9003は画像データをプリンタ部9007へ出力し、印刷が開始される。
その後、プリンタ部9007が出力用紙の後端を検出すると、コマンドIMAGE_ENDを出力し、出力用紙が排出されるとコマンドSHEET_OUTを出力する。プリントマネージャ1526は、1ページ目におけるコマンドIMAGE_ENDを受けて、2ページ目の設定値WIDTH,LINES,SOURCEをエンジンI/Fボード9003に設定し、コマンドFEED_REQをプリンタ部9007へ出力して、コマンドIMAGE_REQを待つ。プリンタ部9007から2ページ目のコマンドIMAGE_REQを受信したプリントマネージャ1526の動作は、1ページ目と同様である。
次に、本発明に係る省電力モードからの高速復帰について説明する。
図24〜図26は、図2に示すコントローラユニット2000における主要部及び省電力モード動作のために必要な回路部分を示す図である。各図上に表記されている実線部分と破線部分とは、それぞれ第1の電源(常夜電源)系及び第2の電源(非常夜電源)系で駆動する部分の区分けを示している。この第1の電源系とは、プリンタ108が省電力モードに移行した場合でも電源が供給される(ON)電源系統を云い、第2の電源系とは、プリンタ108が省電力モードに移行した場合に、第1の電源系とは切り離され、電源が供給されない(OFF)電源系統を云う。
図24〜図26においては、FET11001が第1の電源系と第2の電源系とを切り離す役割を担っている。プリンタ108が省電力モードに移行した場合に、第2の電源系を第1の電源系と切り離し、コントローラユニット2000の主要部分(電源供給が最低限必要な部分)以外には電源を供給しないことによって、無駄な待機電力を抑えるようにしている。なお、図24〜図26には図示しないが、図2に示すROM2003は第1の電源系から電源を供給され、HDD2004は第2の電源系から電源を供給される。
本発明の特徴的な点は、コントローラユニット2000の中で一般的に消費電力のウエートの大きいCPU2001に対して第2の電源系で供給し、CPU2001は、省電力モード時に電源供給されない状態で待機を行い、かつ、外部要因により電源復帰が必要になったときにコントローラユニット2000が自力で電源復帰することができることにある。
すなわち、プリンタ108は前述したように多数の機能を備え、それらを制御するためにソフトウェアがきわめて大規模となっている。その大規模化に伴ってコントローラユニット2000のトータルコストが高くなってしまうことを避ける目的で、図2に示すROM2003にはブート時に必要な情報(ブートプログラム)のみを格納し、一方、プリンタ108に主要な動作を実行させるためのソフトウェアは、主に画像情報を蓄えるために使用するHDD2004に格納するようにする。そのため、通常のメイン電源起動時には、HDD2004に格納された大容量のメインプログラムをRAM2002(図24〜図26に示す例ではSDRAM2002)にダウンロードした後にメインプログラムを実行するが、この場合、メインプログラムが実行開始されるまでに時間がかかるため、ネットワーク通信やファクシミリ通信等からのデータ送信に基づくプリント処理では、通信がタイムアウトによって途絶えてしまう可能性もある。また、近年のデジタル複合機等では、起動所要時間がスペックのセールスポイントとなっていることが多く、この面からも起動所要時間は極力短くする工夫が必要となって来ている。本発明はこうした問題を解決するため、図24〜図26に示すような安価なロジック回路を提供する。
図24は、省電力モードへ移行するときのコントローラユニット2000での制御の流れを明示した、コントローラユニット2000における主要部及び省電力モード動作用回路部分を示す図である。
図24において、CPU2001の汎用出力ポートGPO<1>にはフリップフロップ回路(FF)11005のクロック入力端子が接続され、汎用出力ポートGPO<0>にはバッファ11007を介してフリップフロップ回路(FF)11005のPR端子が接続される。フリップフロップ回路(FF)11005のPR端子には第1の電源系の3.3V電圧が供給され、クロック入力端子にはロジックORゲート11004の出力端子が接続され、CLR端子にはリセットIC11003の出力端子が接続される。さらに、フリップフロップ回路(FF)11005のD端子は接地され、Q端子はFET11001のゲート端子に接続される。FET11001は、ゲート端子にハイレベル信号が入力されるとOFFとなって、第2の電源系を遮断する。
リセットIC11003の出力端子はフリップフロップ回路(FF)11005のCLR端子にも接続されており、リセットIC11003は第1の電源系を監視しており、第1の電源系のOFF(プリンタ108のメイン電源のOFF)からのONの起動時にリセット信号(reset)をフリップフロップ回路(FF)11002、11005の各CLR端子に送り、各フリップフロップ回路のQ端子出力をローレベルにする。
フリップフロップ回路(FF)11005のD端子には第1の電源系の3.3V電圧が供給され、Q端子は、バッファ11008を介してCPU2001の汎用入力ポートGPI<0>に接続される。
ロジックORゲート11004の入力端子には、図2の操作部2012(UI)からの電源ON信号、図2のネットワーク部2010からのプリント要求に伴う電源ON信号、及び図2のMODEM2050からのプリント要求(ファクシミリ通信)に伴う電源ON信号が接続され、ロジックORゲート11004の出力端子はフリップフロップ回路(FF)11002のクロック入力端子に接続されるとともに、バッファ11006を介してCPU2001の割り込み端子INTERRUPTに接続される。
なお、バッファ11006〜11008は、第2の電源系で駆動しており、省電力モード移行時には第1の電源系からの電流の流れ込みを阻止する役割を果たす。
以下、省電力モードへ移行するときのコントローラユニット2000での制御の流れについて説明する。
(1)まず、ユーザが図2の操作部2012に対して省電力モードへの移行を指示した場合、または一定時間に亘ってプリンタ108が未使用である場合に、CPU2001が、省電力モードに移行する条件が満たされたと判断し、SDRAM2002にセルフリフレッシュコマンドを発行し、SDRAM2002にメインプログラムの保持を行う。
(2)次にCPU2001は、省電力モードに移行した(未だ実際には移行していないが)ことを記憶するべく、汎用出力ポートGPO<1>をローレベル(L)からハイレベル(H)に変化させる。これによって、フリップフロップ回路(FF)11005のQ端子出力は「1」(ハイレベル)になって、フラグセットがなされる。フリップフロップ回路(FF)11005は第1の電源系で駆動されているため、省電力モードに移行時にもこのフラグ値は保持される。
(3)次にCPU2001は、汎用出力ポートGPO<0>の出力を変化させて、フリップフロップ回路(FF)11002のQ端子出力をハイレベル(H)にプリセットする。これにより、FET10001がOFFされ、第2の電源系が遮断され、省電力モードに移行する。CPU2001への電源供給は遮断される。
以上が、省電力モードに移行するまでの制御の流れである。
図25は、省電力モードから復帰するときのコントローラユニット2000での制御の流れを明示した、コントローラユニット2000における主要部及び省電力モード動作用回路部分を示す図である。以下、省電力モードから復帰するときのコントローラユニット2000での制御の流れについて説明する。
(1)プリンタ108が省電力モードになって待機しているときに、省電力モードから復帰させるための要因が発生して、電源ON信号がロジックORゲート11004に入力されると、CPU2001の割り込み端子INTERRUPTにハイレベル(H)の電源ON信号が入力される。
(2)一方、上記の電源ON信号は、フリップフロップ回路(FF)11002のクロック入力端子にも送られ、フリップフロップ回路(FF)11002のQ端子出力がローレベル(L)になる。これにより、FET10001がONされ、第2の電源系が立ち上がり、省電力モードから復帰が始まる。
(3)第2の電源系から電源が供給されたCPU2001は、ブートを行いROM2003上のブートプログラムを実行する。ブートプログラムの実行によってCPU2001は、汎用入力ポートGPI<0>を介してフリップフロップ回路(FF)11005のQ端子出力を取り入れる。すなわち、フリップフロップ回路(FF)11005に設定されていた前記フラグの値を参照する。
(4)フラグの値は「1」であるため、CPU2001は、省電力モードから復帰した状態であると解釈し、この復帰時にはSDRAM2002にメインプログラムが保持されているので(省電力モード移行時に保持済み)、SDRAM2002に保持されているメインプログラムを実行し始める。なお、前述のように、CPU2001の割り込み端子INTERRUPTにはハイレベル(H)の電源ON信号が入力されているので、メインプログラムの実行によりCPU2001は、プリンタ108を省電力モードから復帰させる何らかの外部起動要因が発生したことを認識し、操作部2012(UI)からの電源ON、ネットワーク部2010からのプリント要求、及びMODEM2050からのプリント要求(ファクシミリ通信)のうちのいずれが要因であるかを把握し、起動後の制御を実行する。
図26は、プリンタ108のメイン電源がOFFの状態から、ユーザがメイン電源をONしてプリンタ108を起動する通常の起動時におけるコントローラユニット2000での制御の流れを明示した、コントローラユニット2000における主要部及び省電力モード動作用回路部分を示す図である。以下、通常のメイン電源ON後の起動時の制御の流れについて説明する。
(1)プリンタ108のメイン電源がONされると、リセットIC1103がリセット信号resetをフリップフロップ回路(FF)11005のCLR端子に出力し、フリップフロップ回路(FF)11005の保持しているフラグは「0」にクリアされる。
(2)また、リセットIC1103がリセット信号resetをフリップフロップ回路(FF)11002のCLR端子に出力し、フリップフロップ回路(FF)11002のQ端子出力がローレベル(L)にクリアされる。これによって、FET10001がONされ、第2の電源系が立ち上がり、CPU2001がブートを行い、ROM2003上のブートプログラムを実行する。
(3)ブートプログラムの実行によりCPU2001は、フリップフロップ回路(FF)11005に保持されているフラグを参照する。フラグの値は「0」であるため、CPU2001は、メイン電源がOFFからONになった状態であると解釈し、この場合には、図2のHDD2004からメインプログラムをSDRAM2002にダウンロードする。その後に、メインプログラムを実行する。
ここで、図24〜図26に示すコントローラユニット2000のCPU2001が実行する動作について図30を参照して説明する。
図30において、ステップS3001では、CPU2001は、画像処理装置であるプリンタ108の電力供給状態を通常の電力供給状態(通常動作モード)から、通常より消費電力の少ない電力供給状態(省電力モード)へ移行させるか否かを判定する。具体的に、CPU2001は、ユーザが操作部2012に対して省電力モードへの移行を指示した場合、または一定時間に亘ってプリンタ108が未使用である場合(ネットワーク部2010がプリントデータを受信しない場合やMODEM2050がファクシミリデータを受信しない場合)は、省電力モードへ移行させるものと判定してステップS3002へ進む。
ステップS3002では、CPU2001は、省電力モードへ移行したことを示す信号をフリップフロップ回路11005の保持させるべく、汎用出力ポートGPO<1>をローレベル(L)からハイレベル(H)に変化させる。これによって、フリップフロップ回路11005のQ端子回路は「1」(ハイレベル)になって、省電力モードフラグがセットされたこととなる。
ステップS3003では、CPU2001は、省電力モード移行信号として汎用出力ポートGPO<0>からフリップフロップ回路11002のQ端子にハイレベル(H)の信号を出力する。これにより、FET10001がOFFされ、第2の電源系が遮断され、省電力モードに移行する。なお、第2の電源系が遮断されることにより、CPU2001への電力供給が遮断される。
ステップS3004では、CPU2001は、汎用入力ポートGPI<0>を介してフリップフロップ回路11005のフラグを読み込む。なお、CPU2001はステップS3003で電力供給が遮断されているが、ステップS3004の処理を実行するときには電力供給が再開されている。これは、後述するロジックORゲート11004から入力される省電力モードからの復帰要因信号(操作部2012に対するユーザからの入力を示す信号(power on(UI))、ネットワーク部2010がプリントデータを受信したことを示す信号(power on(network))、MODEM2050がファクシミリデータを受信したことを示す信号(power on(FAX)))がフリップフロップ回路11002へ入力されることによりFET11001が第2の電源をON状態とするので、その後CPU2001への電力供給が再開されるからである。
ステップS3005では、CPU2001は、汎用入力ポートGPI<0>から読み込んだフラグから、フリップフロップ回路11005に省電力モードフラグが設定されているか否かを判定する。省電力モードフラグがセットされていればステップS3006へ進み、セットされていなければステップS3007へ進む。
ステップS3006では、CPU2001は、省電力モードフラグがセットされていることから、CPU2001がプリンタ108を制御するためのメインプログラムをSDRAM2002から読み出す。
一方、ステップS3007では、CPU2001は、省電力モードフラグがセットされていないことから、CPU2001がプリンタ108を制御するためのメインプログラムをHDD2004から読み出して、SDRAM2002へダウンロードさせた後に、SDRAM2002からメインプログラムを読み出す。
ステップS3008で、CPU2001は、ステップS3006またはステップS3007にてSDRAM2002またはHDD2004から読み出したメインプログラムを実行することでプリンタ108を制御する。
以上のように、本第1の実施の形態においては、省電力モードへの移行時に、CPU2001において実行されるべきメインプログラムをRAM2002に格納した後、FET11001がCPU2001に供給する電源を遮断する。また、省電力モードから通常動作モードへの復帰時には、ロジックORゲート11004からの信号でフリップフロップ回路(FF)11002がFET11001をOFFにし、これによって、FET11001がCPU2001に電源を供給し、電源を供給されたCPU2001は起動後に、RAM2002に格納されたメインプログラムを読み出して実行する。
CPU2001において消費される電力は比較的大きいので、省電力モードの実行時にはコントローラユニット2000での電力消費が抑制される。
また、省電力モードから通常動作モードへの復帰時には、省電力モードの実行時に電力を供給されていてメインプログラムを保持しているRAM2002からCPU2001がメインプログラムを読み出して実行するので、メインプログラムをハードディスク装置2004からダウンロードする場合に比べて、通常動作モードへの高速の復帰が実現できる。しかも、従来のようにサブCPUを使用することもないので、低コストの情報処理装置によって高速復帰を実現することができる。
なお、上記第1の実施の形態では、プリンタ108に搭載されたコントローラユニット2000における省電力モードの動作を説明したが、本発明に係る省電力モードで動作するコントローラユニットは、必ずしもプリンタ等の画像形成装置に搭載されている必要はなく、本発明はコントローラユニット(情報処理装置)一般に適用可能であり、コントローラユニットの制御対象によって限定されるものではない。
[第2の実施の形態]
次に、本発明の第2の実施の形態を説明する。
図27は、本発明の第2の実施の形態に係るネットワークシステムの構成を示すブロック図である。
図中、50はデジタル複写機などの画像形成装置であり、主に画像の出力機能を備える。この画像形成装置50において、140はユーザが画像形成装置50に対して各種の操作入力を行うための操作部、10は操作部140からの指示に従って画像情報を読み取るためのスキャナ、20は画像情報を用紙に印刷するためのプリンタである。
30はコントローラユニットであり、操作部140やPC(Personal Computer)212、213からの指示に基づいて、スキャナ10、プリンタ20に対する画像情報の入出力制御を行う。コントローラユニット30は、例えばPC212、213からLAN211を介して、画像情報である印刷デ−タが与えられると、それをプリンタ20にプリントアウト(画像出力)させる制御を行う。
図28は、図1に示す画像形成装置50の内部構成を示す概略断面図である。この図28を参照して以下に画像形成装置50の動作を説明する。
まず、スキャナ10において、101は原稿台ガラスであり、原稿自動送り装置142から給送された原稿が順次、所定位置に載置される。102は、例えばハロゲンランプから構成される原稿照明ランプであり、原稿台ガラス101に載置された原稿を露光する。103,104,105は走査ミラーであり、原稿照明ランプ102とともに、図示しない光学走査ユニットに収容され、往復動しながら、原稿からの反射光をCCDユニット106に導く。CCDユニット106は、例えばCCDから構成される撮像素子108、撮像素子108に原稿からの反射光を結像させる結像レンズ107、撮像素子108を駆動するCCDドライバ109等から構成されている。撮像素子108から出力される画像信号は、コントローラユニット30に入力される。
次に、プリンタ20において、110は感光ドラムであり、前露光ランプ112によって画像形成に備えて除電される。113は1次帯電器であり、感光ドラム110を一様に帯電させる。117は露光部であり、例えば半導体レーザー等で構成され、後述するようにコントローラユニット30で処理された画像データに基づいて感光ドラム110を露光し、静電潜像を形成する。118は現像器であり、黒色の現像剤(トナー)が収容されている。119は転写前帯電器であり、感光ドラム110上に現像されたトナー像を用紙に転写する前に感光ドラム110に高圧をかける。
120,122,124,142,144は給紙ユニットであり(120は手差し給紙ユニット)、各給紙ローラ121,123,125,143,145の駆動により、転写用紙が装置内へ給送される。転写用紙は、レジストローラ126の配設位置で一旦停止し、感光ドラム110に形成された画像の書き出しタイミングと同期がとられた上で、レジストローラ126から再給送される。127は転写帯電器であり、感光ドラム110に現像されたトナー像を、給送された転写用紙に転写する。128は分離帯電器であり、転写動作の終了した転写用紙を感光ドラム110より分離する。転写されずに感光ドラム110上に残ったトナーはクリーナー111によって回収される。129は搬送ベルトであり、転写プロセスの終了した転写用紙を定着器130に搬送し、例えば熱により定着する。
131はフラッパであり、定着プロセスの終了した転写用紙の搬送パスを、ソータ132または中間トレイ137の配置方向のいずれかに制御する。また、133〜136は給送ローラであり、一度定着プロセスの終了した転写用紙を中間トレイ137に反転(多重印刷)または非反転(両面印刷)して給送する。138は再給送ローラであり、中間トレイ137に載置された転写用紙を再度、レジストローラ126の配設位置まで搬送する。
コントローラユニット30は、後述するマイクロコンピュータ、画像処理部等を備えており、操作部140からの指示に従って、画像形成処理を行う。
図29は、コントローラユニット30の内部構成を示すブロック図である。
コントローラユニット30は、画像入力デバイスであるスキャナ10や画像出力デバイスであるプリンタ20と接続し、一方ではLAN211や公衆回線(WAN)251と接続することで、画像情報やデバイス情報の入出力を行うためのコントローラである。CPU201はシステム全体を制御するコントローラである。RAM202はCPU201が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM203はブートROMであり、システムのブートプログラムが格納されている。HDD204はハードディスクドライブであり、システムソフトウェア、画像データ、ソフトウェアカウンタ値などが格納される。
操作部I/F270は、操作部140との間のインターフェイス部であり、操作部140に表示すべき画像データを操作部140に対して出力する。また、操作部140に対してユーザが入力した情報を、CPU201に伝える役割をする。ネットワーク部210はLAN211に接続され、情報の入出力を行う。MODEM250は公衆回線251に接続され、情報の入出力を行う。スキャナ・プリンタ通信I/F206は、スキャナ10及びプリンタ20に含まれる各CPUとそれぞれ通信を行なうためのインターフェイス部である。以上のデバイスがシステムバス207上に配置される。
イメージバスI/F205は、画像データを高速で転送する画像バス208とシステムバス207とを接続し、データ構造を変換するバスブリッジである。画像バス208は、PCIバスまたはIEEE1394で構成される。画像バス208上には以下のデバイスが配置される。
ラスターイメージプロセッサ(RIP)260は、PDLコードをビットマップイメージに展開する。デバイスI/F部220は、画像入出力デバイスであるスキャナ10やプリンタ20とコントローラユニット30とを接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部280は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部290は、プリント出力画像データに対して、プリンタ20の性能に補正、解像度変換等を行う。画像回転部230は画像データの回転を行う。画像圧縮部240は、多値画像データに対してJPEGの圧縮伸張処理を行い、2値画像データに対してJBIG、MMR、MHの圧縮伸張処理を行う。
また、コントローラユニット30への電源供給は、電源装置40より電源ON/OFF部41に対して行い、電源ON/OFF部41において、コントローラユニット30の回路要素への給電ラインを複数の系統43、44に分け、各系統を選択的にON/OFFする。電源装置40は、AC商用電源からDC電源を生成する装置である。給電ライン43は、デバイス201,203,204,205,206,220,230,240,260,280,290に接続され、給電ライン44は、デバイス202,210,250,270に接続される。
次に、画像形成装置50での起動、印刷出力、省電力モードへの移行、省電力モードからの復帰等の一連の動作について、図29を参照しながら説明する。
まず、画像形成装置50の図示しない元電源スイッチであるメインSWを投入すると、電源装置40からコントローラユニット30に給電され、電源ON/OFF部41にて、給電ライン43、44の両方がON(給電実行)に制御される。これにより、コントローラユニット30はROM203のブートプログラムに従って起動シーケンスを開始する。
画像処理装置50の一連の動作を実行するシステムプログラムは、HDD204に格納されていて、上記起動シーケンスにより、上記システムプログラムは、HDD204より読み出され、RAM202に記憶される。CPU201が、RAM202上にダウンロードされたシステムプログラムを実行することにより、画像処理装置50の一連の動作が実行される。
ここで、画像処理装置50が、LAN211に接続されたPC212またはPC213から送信された画像情報を印刷出力する動作を例に挙げて説明する。
LAN211に接続されたPC212またはPC213から送信された画像情報である印刷データは、コントローラユニット30において、CPU201の制御によって、ネットワーク部210を介して、RAM202に記憶される。そして印刷データは、RAM202より読み出され、イメージバスI/F205を介してRIP260に送られる。この印刷データはPDL(Page Description Language)データの形態をとっており、RIP260においてPDLデータはビットマップデータに展開され、その後、画像圧縮部240にて適宜、圧縮処理が行われ、イメージバスI/F2005を介してHDD204に蓄積される。
プリンタ20へ印刷出力する場合、HDD204に蓄積されたビットマップデータを、イメージバスI/F2005を介して画像圧縮部240に送って、今度は伸張した後、プリンタ画像処理部290にて、プリンタ20の性能に応じた補正、解像度変換等を行い、画像回転部230にて適宜、画像データの回転を行った後、デバイスI/F部220を介してプリンタ20に送り、印刷出力を行わせる。
次に、コントローラユニット30での省電力モード移行について説明する。
省電力モードへの移行時には、CPU201がライン46を介して電源ON/OFF部41を制御することにより、電源ON/OFF部41が、給電ライン43をOFF(給電停止)にし、給電ライン44をON(給電実行)にする。
このように、省電力モードの実行中には、電源ON/OFF部41が給電ライン43をOFFにするため、コントローラユニット30のCPU201を含む主要回路要素における電力消費が抑制される。しかも、コントローラユニット30のネットワーク部210への給電ライン44はONになっているため、省電力モードの実行中でも、LAN211からネットワーク部210に着信があると、ネットワーク部210は電源ON/OFF部41に対してライン45を介して指示を行うことができる。ネットワーク部210からこの指示を受けた電源ON/OFF部41は、給電ライン43もONにして、通常の動作モードに切り替える。これについては、下記に詳しく説明する。
なお、省電力モードの実行中には、RAM202へも電源が供給されるので、セルフリフレッシュ動作により、RAM202に記憶されたシステムプログラムは消去されることなく保持される。
また、省電力モードの実行中にはMODEM250へも電源が供給されるが、これによって、省電力モードの実行中でも、公衆回線251を使用するファクシミリ通信が可能である。
さらに、省電力モードの実行中には操作部I/F270へも電源が供給されるが、これによって、省電力モードの実行中に操作部140に対してユーザが通常の動作モードへの切り換ええを指示した場合でも、その指示に対応できる。
次に、コントローラユニット30の省電力モードから通常の動作モードへの復帰について説明する。
ネットワーク部210に例えばPC212からLAN211を介してプリントコマンドが送信されると、このコマンドを受信したネットワーク部210はこれを解釈して、電源ON/OFF部41にライン45を介して制御信号を送る。制御信号を受けた電源ON/OFF部41は、給電ライン43をONにする。
給電ライン43がONになるとCPU201が起動するが、この際、CPU201は、起動した要因が、省電力モードからの通常の動作モードへの復帰によるものか、または画像形成装置50のメインSWのONによるものかを、電源ON/OFF部41の動作状態より判断する。その結果、省電力モードからの復帰のときは、前述の起動シーケンスにおける、システムプログラムをHDD204よりRAM202にダウンロードするシーケンスを省き、CPU201は、省電力モード移行時にRAM202に記憶しておいたシステムプログラムを利用してシステムプログラムの実行を行う。
これにより、CPU201は、PC212から送られたプリントコマンドに応答して、プリンタ20に印刷出力を行わせる。
この印刷出力を終了した後、CPU201は計時を開始し、外部入力がない状態が予め設定された時間に亘って継続すると、CPU201は電源ON/OFF部41に対して省電力モードへの切り換ええ指示を行い、この指示を受けた電源ON/OFF部41は、給電ライン43をOFFにする。これにより、コントロールユニット30は電力消費が少ない省電力モードの動作状態に切り換わる。
以上のようにして第2の実施の形態においても、省電力モードの実行時に、コントローラユニット30での消費電力を大幅に削減でき、しかも、通常動作モードへの高速復帰を実現できる。
なお、上記の第2の実施の形態でも、画像形成装置50に搭載されたコントローラユニット30における省電力モードの動作を説明したが、本発明に係る省電力モードで動作するコントローラユニットは、必ずしも画像形成装置に搭載されている必要はなく、本発明はコントローラユニット(情報処理装置)一般に適用可能であり、コントローラユニットの制御対象によって限定されるものではない。
[第3の実施の形態]
次に、本発明の第3の実施の形態について図31〜図33を参照して説明する。
本第3の実施の形態における図31〜図33は、上記第1の実施の形態における図24〜図26に対応するものであるが、図31〜図33では、ロジックORゲート11009を設けている点が異なる。
第3の実施の形態は、どのようなタイミングでロジックORゲート11004に復帰要因信号(操作部2012に対するユーザからの入力を示す信号(power on(UI))、ネットワーク部2010がプリントデータを受信したことを示す信号(power on(network))、MODEM2050がファクシミリデータを受信したことを示す信号(power on(FAX)))が入力されても、適切に動作するコントローラユニット2000を実現するものである。
上記第1の実施の形態における図24に示すコントローラユニット2000では、CPU2001が、通常動作モードから省電力動作モードへ移行させると判定した場合に、GPO<0>を介してフリップフロップ回路11002のPR端子に対する出力を変化させることで、フリップフロップ回路11002のQ端子の出力をハイレベルにプリセットするものであった。この場合、CPU2001がGPO<0>を介してフリップフロップ回路11002のPR端子に対する出力を変化させる前に、ロジックORゲート11004に復帰要因信号が入力されたとしても、Q端子の出力はハイレベルにプリセットされてしまうので、プリンタ108を通常動作モードとするべきであるにもかかわらず、FET11001のスイッチングにより第2の電源がOFFとなってしまう。そして、第2の電源がOFFとなると、CPU2001の電力供給が遮断されてしまう。すなわち、この場合はプリンタ108が第2の電源をOFFするので省電力モードに移行する。このように、第1の実施の形態のコントローラユニット2000では、通常動作モードとするべき復帰要因信号が入力された場合であっても一旦第2の電源がOFFとなるので、プリンタ108を動作状態へ復帰させるには、第2の電源をONにしてCPU2001の復帰処理を行う等の時間を要していた。
これに対して、本第3の実施の形態では、以下の方法により、上記問題を解決することができる。
まず、図31に示すように、コントローラユニット2000に復帰要因信号が入力されると、その信号がロジックORゲート11009へ入力され、さらにロジックORゲート11009からはフリップフロップ回路11002のCLR端子にQ端子の出力をクリアする信号が入力される。
そして、CPU2001は、通常動作モードから省電力動作モードへ移行させると判定した場合に、GPO<0>を介してフリップフロップ回路11002のPR端子に対する出力を変化させるわけであるが、フリップフロップ回路11002のCLR端子にQ端子の出力をクリアする信号が入力されているので、たとえPR端子に対する出力が変化しても(CPU2001が省電力モード移行信号を生成しても)、Q端子の出力はハイレベルにプリセットされない。すなわち、FET11001は第2の電源をOFFにしないので、CPU2001への電力供給が遮断されることはなく、プリンタ108が第2の電源をOFFしないので省電力モードに移行しない。このように、コントローラユニット2000では、通常動作モードとするべき復帰要因信号が入力された場合に、一旦第2の電源がOFFすることがないので、第2の電源を一旦OFFしてしまうことによるCPU2001の復帰処理を行う等の時間を要しない。
なお、図32及び図33は、上記第1の実施の形態における図25及び図26の説明と同様であり、ロジックORゲート11009を設けた点が異なる。図32及び図33におけるコントローラユニット2000の動作は、図25及び図26におけるコントローラユニット2000の動作と同様であるので、ここでは説明を省略する。
上記第3の実施の形態によれば、画像処理装置を消費電力の少ない第2の電力供給状態から第1の電力供給状態へ移行させるための復帰要因を示す復帰信号を受信した後に、第1の電力供給状態から第2の電力供給状態へ移行させるための移行信号を受信した場合であっても、第2の電力供給状態へ移行することなく第1の電力供給状態を維持する画像処理装置を提供することができる。