以下に本発明を実施の形態に基づいて詳細に説明する。なお、以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
(実施形態1)
以下、本実施形態では、情報読取装置の一例である画像読取装置として、それぞれ種類(例えば、読取形式等)の異なる複数の画像読取装置と、これらの画像読取装置が並列または直列に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
なお、画像読取システムには、2種類以上の画像読取装置が少なくとも2台あればよい。すなわち、第1の読取形式の画像読取装置が1台で、第1の読取形式の画像読取装置が2台であってもよい。また、本実施形態では、異なる種類の画像読取装置に基づいて説明するが、同一の装置でもよいし、例えば、略同一の読み取り形式の読取装置であってもよいし、読取の原稿サイズ(A4以下の対応機種と、A3以下の対応機種等)が違う装置、スペック(性能)違いの装置、あるいは型式違いの装置等でもよく、本実施形態に限定されるものではない。
また、情報処理装置に対する画像読取装置の接続形態も2つの画像読取装置が直列(シーケンシャル)に接続されていれば、例えば、並列(パラレル)に情報処理装置へ接続されていてもよいし、あるいは、並列接続形態と直列接続形態とが混在していてもよい。
本実施形態では、画像読取装置を制御する制御プログラムのうちある画像読取装置のドライバが他の画像読取装置のドライバにとってはまるでアプリケーションプログラムであるかのように振舞うようになっている。
図1は、実施形態に係るシートフィードスキャナ1の構成を示す図である。シートフィードスキャナ1は、第1画像読取装置(第1情報読取装置)に接続される第2画像読取装置(第2情報読取装置)の一例である。
なお、シートフィードスキャナは、シートスルー型スキャナと呼ばれることもある。スキャンが開始されると、シートフィードスキャナ1は原稿検知センサ9を用いて原稿Dが存在するか否かを判定する。
原稿Dが存在していれば、ラインイメージセンサ5が白色の対向部材7を読取り、シートフィードスキャナ1はシェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
ピックアップローラ2と給送ローラ3とがシートフィードスキャナ1内に原稿Dの束を取り込む。分離ローラ4は束を1枚ずつの原稿に分離する。第1ローラ対8aは、分離された原稿Dを副走査方向(原稿搬送方向)に搬送し、ラインイメージセンサ5は、原稿Dの上面に形成されている画像を主走査方向(原稿搬送方向と直交する方向)に沿って読取る。
シートフィードスキャナ1は、メモリから読み出した補正用のデータを用いて読取った画像にシェーディング補正を実行する。画像が読み取られた後、原稿Dは、第2ローラ対8bによって装置外部へ排出される。
なお、本実施形態では、シートの搬送路を略水平としたシートフィードスキャナ1を例示したが、勿論これに限定されず、例えば、給紙部と排紙部とを上下に配置し、給紙部からU字形状等にカーブした搬送路を介して排紙部に排出するUターンパス型スキャナであってもよい。
図2は、実施形態に係るフラットベッドスキャナ10の構成を示す図である。フラットベッドスキャナ10は、情報処理装置に接続される第1画像読取装置の一例である。
操作者はフラットベッドカバー14を開け、ガラス面11に原稿Dを載置する。スキャンが開始されると、フラットベッドスキャナ10は、ラインイメージセンサ12で白色の対向部材15を読取り、シェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
また、本実施形態では、ラインイメージセンサ12は、移動ユニット13によって副走査方向に移動しながら、原稿Dの下面に形成されている画像を主走査方向に沿って読取る。また、フラットベッドスキャナ10は、メモリから補正データを読み出して、画像にシェーディング補正を実行する。スキャン終了後、ラインイメージセンサ12は移動ユニット13によって元の位置に復帰する。
なお、上述した本実施形態では、フラットベットカバー14は、1枚板で説明したが、本発明は勿論これに限定されず、例えば、長手方向の略中央部で折り畳み可能な開閉蓋であってもよい。これにより、開閉蓋を開けたままで、スキャン実行をすることができ、ユーザーの利便性を更に向上することができる。
具体的には、開閉蓋は、原稿との当接面、すなわち、ガラス面11に対向する側の面が略中央部で複数又は二分割されて互いに接近する方向に折り畳み可能とすることができる。これにより、開閉蓋を開閉した状態であっても、スキャナ本体側はガラス面11上の原稿の画像を読み取り可能となる。
また、スキャンモードでは、プリスキャンと本スキャンとを実行し、例えば、プリスキャン時に消灯モード(光源を消灯しながらのスキャン)で読み取り、本スキャン時に点灯モード(光源を点灯しながらのスキャン)で所定の解像度で読み取りを行うようにしてもよい。プリスキャンと本スキャンとの順番は、どちらが先でも実現可能である。
さらに、プリスキャン時は、原稿の外側に写り込む外光の影響を読み取り、当該外光の影響を本スキャン画像から取り除くような画像処理を施すことで、フラットベットカバー14の開状態でも高品質なスキャンを実現可能である。
ここで、「外光の影響を取り除く」とは、例えば、原稿台上の原稿を含む読取領域内であって原稿よりも外側の領域における外光の入射による影響(蛍光灯等での外光変化に起因する影響)を除外することである。具体的には、原稿の外側で直接的にセンサに対して入射する外光の影響を含む部分(領域)を原稿の画像を含む読取画像から除外することを意味し、原稿の外側の領域を所定の画像に置き換えること等を含む。
また、ここでいう「原稿の外側」とは、原稿の外周領域だけではなく、原稿内のバインダー等の穴(パンチ穴)部分を含む。このように原稿に穴がある場合には、上述した本発明の画像処理により、穴部分での外光の影響を取り除くことができる。これにより、穴部分を特定することができ、その後の穴消し処理(例えば、穴の形状等の特徴部分を検知して穴画像を原稿の下地色(白色等)に置き換える等の処理)を確実に実行することができるという効果もある。
なお、プリスキャン時は、本スキャンと同一又は同程度の解像度であってもよいが、本スキャンよりも低解像度で読み取るようにすることが好ましい。これにより、読取時間を短縮することができ、高速スキャンを実現することができる。
図3Aは、シートフィードスキャナ1の電気回路の概略構成を示すブロック図である。
A/D変換部21は、ラインイメージセンサ5の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
画像処理部22は、ラインイメージセンサ5およびA/D変換部21などの制御と、A/D変換部21から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
画像メモリ23は、画像データを記憶する。インターフェース部24は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
インターフェース部24は、信号ケーブル25を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部24は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。また、インターフェース部24は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部24は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
CPU26は、シートフィードスキャナ1の制御を司る制御部である。画像処理部22とCPU26とは、バス27を介して接続されている。CPU26は画像処理部22を介して画像メモリ23にアクセスする。
駆動部29は、ピックアップローラ2、給送ローラ3、分離ローラ4、ローラ対8a、8bを駆動するためのモータである。モータドライバ28は、CPU26からの指示に基づいて駆動部29を制御する制御回路である。
図3Bは、フラットベッドスキャナ10の電気回路の概略構成を示すブロック図である。
A/D変換部31は、ラインイメージセンサ12の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
画像処理部32は、ラインイメージセンサ12およびA/D変換部31などの制御と、A/D変換部31から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
画像メモリ33は、画像データを記憶する。インターフェース部34は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
インターフェース部34は、信号ケーブル35を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部34は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。
また、インターフェース部34は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部34は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
CPU36は、フラットベッドスキャナ10の制御を司る制御部である。画像処理部32とCPU36とは、バス37を介して接続されている。CPU36は画像処理部32を介して画像メモリ33にアクセスする。
駆動部39は、移動ユニット13を駆動するためのモータである。モータドライバ38は、CPU36からの指示に基づいて駆動部39を制御する制御回路である。
図3Cは、実施形態に係るPC40の電気回路の概略構成を示すブロック図である。
CPU46は、コンピュータプログラムに基づいて、コンピュータの各ユニットを統括的に制御する制御ユニットである。CPU46は、アプリケーションプログラムやスキャナドライバにしたがって、シートフィードスキャナ1やフラットベッドスキャナ10を制御する。
ROM41は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。RAM42は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ(HDD)43は、大容量の記憶ユニットである。
表示装置45は、ユーザーに対して各種情報を表示するための表示ユニットである。操作部47は、ポインティングデバイスやキーボードなどの入力ユニットである。
通信インターフェース44は、ネットワーク通信カードなどの通信ユニットである。CPU46は、通信インターフェース44を介してシートフィードスキャナ1やフラットベッドスキャナ10と通信する。
図4は、PC40上のアプリケーションとスキャナドライバの構成を示す図である。ここでは、シートフィードスキャナ1とフラットベッドスキャナ10とのうちいずれか一方のみが単独でPC40に接続されているものと仮定する。
ユーザーは、スキャナを購入すると、アプリケーション48とスキャナドライバ49をPCのHDD43にインストールする。アプリケーション48は、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどである。
なお、アプリケーション48は、第1のドライバまたは第2のドライバと情報の入出力が可能なプログラム(制御プログラム)であり、具体的には、第1のドライバまたは第2のドライバから画像のデータを受け取るアプリケーションプログラムの一例である。
インストールされたアプリケーション48は、スキャナドライバ49を介してスキャナ1、10を制御したり、スキャナドライバ49から受け取った画像データに画像処理を実行したりする。よって、アプリケーション48およびCPU46は、第1の制御手段または第2の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
アプリケーション48とスキャナドライバ19との間、スキャナドライバ49とスキャナ1,10との間は、それぞれ決められたプロトコルで通信している。本実施形態では、アプリケーション48とスキャナドライバ49はTwain規格で決められたプロトコルで通信を行うものとする。このTwain規格で決められたプロトコルは、第1のドライバまたは第2のドライバと通信するための第1のドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインタフェースの一例でもある。
また、Twain規格で決められたプロトコルは、画像処理手段が第1の制御手段または第2の制御手段と通信するための第1のインターフェースであり、第1の制御手段が画像処理手段と通信するための第2のインターフェースであり、第1の制御手段が第2の制御手段と通信するための第3のインターフェースであり、そして第2の制御手段が画像処理手段と通信するための第4のインターフェースの一例である。スキャナドライバ49とスキャナ1、10との間では、SCSI規格で決められたプロトコルで通信を行っているものと仮定する。
このように、SCSI規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。SCSI規格で決められたプロトコルは、しかし、本発明では、これらの以外のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データとが、スキャナ、ドライバおよびアプリケーション間で送受信されることになる。
図5は、シートフィードスキャナ1とフラットベッドスキャナ10がPC40へ同時に接続されたときの図である。
図5(A)では、PC40にシートフィードスキャナ1とフラットベッドスキャナ10が並列に接続されている。図5(B)では、フラットベッドスキャナ10のインターフェース部34がハブ機能を備えており、PC40→フラットベッドスキャナ10→シートフィードスキャナ1と数珠繋ぎに(シーケンシャルに)接続されている。どちらの接続状態であっても、PC40のCPU26は2つのスキャナが接続されているものとして認識する。インターフェース部34がUSBハブを内蔵していると考えれば、本実施形態を理解しやすいであろう。すなわち、フラットベットスキャナ10は、PC40とシートフィードスキャナ1との間の中継器としての役割がある。本実施形態では、フラットベットスキャナ10には、図示しないが、PC40との接続部(例えば、USB接続部)と、シートフィードスキャナ1との接続部(例えば、USB接続部)とがそれぞれ設けられている。したがって、シートフィードスキャナ1は、フラットベットスキャナ10を経由してPC40に間接的に接続される。
図6は、PC40に複数のスキャナドライバの構成を示す図である。通常は、図6(A)に示すように、スキャナドライバとスキャナとは1対1で設けられていた。そのため、シートフィードドライバ49aとフラットベッドドライバ49bとは完全に独立しており、両者が連携することはなかった。なお、ユーザーは、シートフィードドライバ49aとフラットベッドドライバ49bとをPC40にそれぞれインストールし、使用するスキャナに応じて、スキャナドライバをアプリケーション48で切り替えなければならなかった。スキャナの切り替え時に、アプリケーション48は、切り替え前のスキャナドライバのアンロードと、切り替え後のスキャナドライバのロードおよびスキャナの初期化処理を実行する。よって、この処理時間は比較的に長い時間であった。
ここで、シートフィードドライバ49aおよびCPU46は、第2の画像読取装置を制御するための第2の制御手段として機能する。フラットベッドドライバ49bおよびCPU46は、第1画像読取装置を制御するための第1の制御手段として機能する。
図6(B)は、本実施形態のスキャナドライバの構成を示している。フラットベッドドライバ49bは、第1の画像読取装置を制御するための第1のドライバの一例である。
シートフィードドライバ49aは、第2の画像読取装置を制御するための第2のドライバの一例である。CPU46は、アプリケーション48を起動すると、まずフラットベッドドライバ49bをRAM42へロードする。
さらに、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aをRAM42へロードする。シートフィードドライバ49aにとって、フラットベッドドライバ49bは、あたかもアプリケーション48と同じ役割を担う。つまり、フラットベッドドライバ49bは、シートフィードドライバ49aに対してはアプリケーション48として振舞うよう、シートフィードドライバ49aと通信するためのインターフェースを内包している。
このインターフェースは、上述したTwain規格で決められたプロトコルであり、第1のドライバが、第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースの一例である。
なお、シートフィードスキャナ1とフラットベッドスキャナ10との切り替え(選択)は、アプリケーション48から起動されるフラットベッドドライバ49bの設定画面において実行される。
アプリケーションプログラム48は、第1の画像読取装置(フラットベッドスキャナ10)が読取った画像のデータを、第1のドライバ(以下、フラットベッドドライバ49bともいう)を介して受け取る。
また、アプリケーションプログラム48は、第2の画像読取装置(シートフィードスキャナ1)が読み取った画像のデータを、第1のドライバおよび第2のドライバ(以下、シートフィードドライバ49aともいう)を介して受け取るように構成されている。
以上のように、フラットベッドドライバ49bとシートフィードドライバ49aの両方ともがアプリケーション48が実行されている間は常にRAM42へロードされている。
よって、アプリケーション48の起動時にフラットベッドドライバ49bとシートフィードドライバ49aとが1度だけRAM42にロードされるだけで、アプリケーション48の実行中は、フラットベッドドライバ49bとシートフィードドライバ49aのアンロードやリロードは発生しない。したがって、本実施形態によれば、スキャナの切り替え速度は、従来例と比較して格段に速いといえる。
図7は、アプリケーション48によって実行されるフラットベッドドライバ49aのロード処理を示したフローチャートである。ここでは、アプリケーション48の起動に伴って、第1のドライバと第2のドライバとが起動するロード処理の一例を示す。
ステップS701で、PC40のCPU46は、操作部47からのアプリケーション48の起動指示を受信すると、HDD43に記憶されているアプリケーション48をRAM42へロードする。これにより、アプリケーション48が起動する。
S702で、CPU46は、アプリケーション48にしたがって、フラットベッドドライバ49bをRAM42へロードする。このように、第1の画像読取装置と第2の画像読取装置との両方が情報処理装置に接続されているときにアプリケーションプログラムが起動されると、アプリケーションプログラム(CPU46)は、第1のドライバを情報処理装置のメモリへとロードする。
S703で、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aがインストールされているかどうかを判定する。このように、CPU46は、第2のドライバが情報処理装置にインストールされているかどうかを判定する判定手段として機能する。
例えば、CPU46は、フラットベッドドライバ49bが対応しているシートフィードドライバのリストを参照し、当該リストに掲載されているシートフィードドライバをHDD43から検索する。あるいは、当該シートフィードドライバをOS(オペレーティングシステム)が管理しているレジストリから検索する。シートフィードドライバが検索により発見されれば、シートフィードドライバはインストール済みである。この場合は、S704に進む。なお、シートフィードドライバがインストールされていなければ、CPU46は、シートフィードドライバのロード処理を終了する。
S704で、CPU46は、シートフィードスキャナ1がPC40と接続されているかどうかを判定する。シートフィードスキャナ1がPC40と接続されていれば、S705に進む。なお、シートフィードスキャナ1が接続されていなければ、CPU46は、シートフィードドライバのロード処理を終了する。よって、CPU46は、第2のドライバが情報処理装置にインストールされていないときは第2のドライバのロードを実行しないロード手段として機能する。
S705で、CPU46は、フラットベッドドライバ49bにしたがってHDD43からシートフィードドライバ49aを読出し、RAM42へロードする。このように、第1のドライバは第2のドライバを情報処理装置のメモリへとロードする。すなわち、CPU46は、第2のドライバが情報処理装置にインストールされているときは第2のドライバを情報処理装置のメモリへロードするロード手段として機能する。なお、CPU46は、アプリケーション48にしたがってフラットベッドドライバ49bをアンロードしたときに、シートフィードドライバ49aもアンロードする。
なお、ここで、上記の図7では、ロード処理の一例として、アプリケーション48の起動後に、第1のドライバ(フラットベットドライバ49b)を起動させ、その後、第2のドライバ(シートフィードドライバ49a)を起動する場合について説明したが、勿論これに限定されず、アプリケーションの起動に伴って両方のドライバを同時に起動させてもよいし、第2のドライバを起動後に第1のドライバを起動するようにしてもよい。何れにしても、第1のドライバと第2のドライバとが起動されるため、ユーザーは、シートフィードスキャナ1とフラットベットスキャナ10とを即座に使用することができて非常に便利である。
すなわち、情報処理装置の一例であるPC40に対して複数の情報読取装置が接続可能であると共に、複数の情報読取装置のうち第1情報読取装置を制御する第1のドライバと、複数の情報読取装置のうち第1情報読取装置とは別の第2情報読取装置を制御する第2のドライバと、第1のドライバまたは第2のドライバとの間で情報の入出力(例えば、情報の受取等)を行うアプリケーションプログラムとを備え、第1のドライバ及び第2のドライバのそれぞれを起動させて、この状態をスキャン実行前の待機状態とし、その後は、第1情報読取装置と第2情報読取装置とで直ぐに読取開始が可能となっている。
ここで、第1のドライバと第2のドライバとを起動させるタイミングは、特に限定されず、例えば、アプリケーションプログラムの起動に連動させてもよいし、PC40での操作(スキャン設定変更、スキャナ選択等)に基づいて、第1のドライバと第2のドライバとを同時起動してもよいし、第1のドライバの起動に伴って第2のドライバを起動するようにしてもよいし、その逆でもよい。何れにしても、第1のドライバと第2のドライバとを起動した状態をスキャン実行前の待機状態としているので、ユーザーは、シートフィードスキャナ1とフラットベットスキャナ10とを即座に使用することができて非常に便利である。
また、このように、複数の情報読取装置がPCに接続されて各ドライバが利用可能となった状態においては、各情報読取装置での読取画像を制御プログラム(例えば、アプリケーションプログラム)により結合するようにしてもよい。これにより、それぞれのスキャナを接続して各スキャナドライバを都度切り替えて使用しなければならない従来装置と比べて、ユーザーの利便性をさらに向上することができる。
例えば、表紙又は裏表紙と、表紙と裏表紙との間に配置される複数の原稿とを1つのファイルとして読み取りたい場合、フラットベットスキャナで表紙又は裏表紙を読み取ると共に、シートフィードスキャナで複数の原稿を読み取るようにアプリケーションプログラムから各スキャナに指示を出すようにしてもよい。この場合は、各スキャナは、同時駆動でもよいし、別駆動でもよいし、あるいは連動駆動(順番駆動)でもよい。
また、各スキャナで読み取った読取画像は、アプリケーションプログラムが受け取るようにし、アプリケーションプログラムの実行により1つの画像ファイルに結合処理をするようにしてもよい。ここでの結合処理は、アプリケーションプログラムで実行しなくても、フラットベットドライバに画像処理機能を設けてそこで実行してもよいし、シートフィードドライバに画像処理機能を設けてそこで実行してもよい。例えば、フラットベットドライバとシートフィードドライバとの何れか一方から他方のドライバへ読取画像を送り、そのドライバで結合処理を行うようにしてもよい。なお、各スキャナ本体又は何れかのスキャナ本体に画像処理手段を設けて、その画像処理手段で読取画像の結合処理を行うようにしてもよい。
さらに、各スキャナへの指示コマンドは、例えば、読取の順番を指定する情報が含まれていてもよい。例えば、フラットベットスキャナで読み取った後にシートフィードスキャナに読み取らせるようにしてもよいし、その逆で読み取りを実行させるようにしてもよい。
この場合、それぞれの読取画像をPCに送って、PC側で1つの画像ファイルに結合処理をするようにしてもよい。あるいは、フラットベットスキャナで読み取った読取画像をシートフィードスキャナに送ってシートフィードスキャナでの読取画像と結合処理し、最終的に、PCに結合画像を送信するようにしてもよい。勿論、その逆で、シートフィードスキャナでの読取画像をフラットベットスキャナに送って、フラットベットスキャナでの読取画像と結合処理し、最終的に、PCに結合画像を送信するようにしてもよい。
なお、上述した例では、基本的にはPCからの指示コマンド(読取指示)に基づくものであるが、各スキャナにPCと同様の機能を持たせ、別途、PCと同様の操作を可能とする操作部をスキャナに設けて、当該スキャナにより別のスキャナにPCと同様の指示コマンドを出すようにしてもよい。この場合には、スキャナに設けたPCと同様の機能(CPU等)により、上述したアプリケーションプログラム等の制御プログラムを実行するようにしてもよい。
また、上述した例では、各スキャナの接続順番、例えば、PCに接続されたフラットベットスキャナにシートフィードスキャナを接続する場合、PCに接続されたシートフィードスキャナにフラットベットスキャナを接続する場合の何れを含んでいてもよいし、これら各スキャナ以外のスキャナ等の別の周辺機器を接続するようにしてもよい。
以下、図8は、フラットベッドドライバが表示するユーザーインターフェースの一例を示した図である。ユーザーインターフェース51はフラットベッドスキャナ10のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。
すなわち、ユーザーインターフェース51はフラットベッドドライバ49bのユーザーインターフェースである。ユーザーインターフェース51では、例えば、カラーモード、読取サイズおよび解像度等を設定できる。
CPU46は、スキャンボタン54の押し下げを検出すると、スキャンの開始をスキャナドライバに指示する。Closeボタン55の押し下げを検出すると、CPU46は、ユーザーインターフェースを閉じる。
ユーザーインターフェース52はシートフィードスキャナ1のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。すなわち、ユーザーインターフェース52はシートフィードドライバ49aのユーザーインターフェースである。なお、ユーザーインターフェース52には、特殊機能ボタン56が追加されている。
シートフィードスキャナ1は、フラットベッドスキャナ10に比べて単位時間あたりに大量の原稿をスキャンできる。そのため、原稿束の中には、ユーザーが誤って白紙原稿を混ぜてしまう場合がある。そういった白紙原稿を見つけ、画像化しない機能(白紙検知機能)をシートフィードスキャナ1は持っている。本実施形態では、CPU46が特殊機能ボタン56の押し下げを検出すると、白紙検知機能のON/OFFを設定するための設定ダイアログ57を表示装置45に表示する。
図9は、白紙検知機能のON/OFFを設定するための設定ダイアログ57を示した図である。この設定の初期値はOFFである。
図8の説明に戻る。ユーザーインターフェース53はフラットベッドスキャナ10とシートフィードスキャナ1との両方がPC40に接続されているときに表示されるユーザーインターフェースである。
CPU46は、S705でシートフィードドライバ49aのロードに成功すると、フラットベッドドライバ49bにしたがってユーザーインターフェース53を表示装置45に表示する。
シートフィードドライバ49aのロードに失敗したときは、ユーザーインターフェース51が表示される。ユーザーインターフェース51と比較すると、ユーザーインターフェース53では、読取方法(読み取りに使用する画像読取装置)の設定項目が追加されている。
よって、ユーザーは、読取方法の設置項目においてフラットベッドスキャナ10とシートフィードスキャナ1とを切り替えて使用できる。このように、CPU46や表示装置45は、第1の画像読取装置と第2の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段として機能する。
ユーザーが設定したカラーモード、解像度、サイズなどの設定情報の保存は、フラットベッドドライバ49b(CPU46)が行う。そのため、ユーザーがアプリケーション48でシートフィードドライバ49aを直接選択した場合、ユーザーインターフェース53で設定されたカラーモード、解像度、サイズの内容は、シートフィードドライバ49aには適用されない。
つまり、ユーザーがアプリケーション48で直接的にシートフィードドライバ49aを使用するときは、ユーザーインターフェース53で設定された設定情報が復元されない。設定情報は、PC40内の所定の場所(例:レジストリファイル)に保存される。レジストリファイル自身は、HDD43に記憶される。
上述した白紙検知機能については、フラットベッドドライバ49bがシートフィードドライバ49aをロードするときに初期化処理を実行するので、OFFとなる。
解像度の選択項目としてはフラットベッドドライバ49bとシートフィードドライバ49aとの両方がサポートしている解像度のみが表示される。フラットベッドドライバ49b(CPU46)は、シートフィードドライバ49aがサポートしている解像度をシートフィードドライバ49aから取得し、その中から、フラットベッドドライバ49bもサポートしている解像度のみを抽出する。
このようにして、ユーザーインターフェース53上で選択可能な解像度が決定される。サイズ、カラーモードに関しても同様の抽出処理が実行されてもよい。これにより、シートフィードドライバ49aとフラットベッドドライバ49bとが共通して採用しているサイズ、カラーモードだけを抽出して、ユーザーインターフェース53に反映させることができる。
このように、CPU46は、第1の画像読取装置が対応している機能と第2の画像読取装置が対応している機能とを比較し、第1の画像読取装置と第2の画像読取装置とに共通している機能を抽出する手段として機能する。また、CPU46および表示装置45は、抽出された機能の設定項目をユーザーインターフェースに表示する表示手段として機能する。
図10は、自動読取方法の一例を示したフローチャートである。図8に示したユーザーインターフェース53は、読取方法の選択項目として「自動」を有している。ユーザーが読取方法(自動)を選択したこと、および、スキャンボタン54を押し下げたことを検出すると、CPU46は、スキャンを開始する。なお、ここでは図示しないが、シートフィードスキャナ1又はフラットベットスキャナ10側の操作ボタン(例えば、スキャン開始ボタン等)によりスキャンを開始するようにしてもよい。
S1001で、CPU46は、シートフィードスキャナ1に原稿が載置されているかどうかを判定する。例えば、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにシートフィードスキャナ1に原稿が載置されているかどうかを問い合せる。
シートフィードドライバ49a(CPU46)は、原稿検知センサ9の検知情報を取得し、原稿の有無をフラットベッドドライバ49bに伝える。原稿がシートフィードスキャナ1の原稿台に載置されていれば、S1002に進む。
S1002で、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにスキャン開始コマンドを送信する。なお、ユーザーインターフェース53において、フラットベッドスキャナ10が選択されたときは、CPU46は、画像の読取開始コマンドをフラットベッドスキャナ10(第1の画像読取装置)に送信する第1の送信手段として機能する。なお、ここでのスキャン開始コマンドは、フラットベットドライバ49bを介してシートフィードドライバ49aに送信されるが、その後、実際にシートフィードスキャナ1にはフラットベットスキャナ10を経由する。この載、フラットベットスキャナ10は、受け取ったスキャン開始コマンド(シートフィードスキャナ1用)をCPU36等で判断し、自身へのコマンドでない場合に、シートフィードスキャナ1に転送する。
シートフィードドライバ49aは、スキャン開始コマンドを受信すると、シートフィードスキャナ1のCPU26にスキャン開始コマンドを転送する。このように、CPU46は、ユーザーインターフェース53を通じてシートフィードスキャナ1(第2の画像読取装置)が選択されると、スキャン開始コマンド(画像の読取開始コマンド)を第2の画像読取装置に送信する第2の送信手段として機能する。
シートフィードスキャナ1のCPU26は、スキャン開始コマンドを受信すると、スキャン処理を開始する。CPU26は、ラインイメージセンサ5および画像処理部22を制御して画像データを生成し、シートフィードドライバ49aへ画像データを転送する。シートフィードドライバ49aは、画像データをフラットベッドドライバ49bに転送する。
このように、シートフィードドライバ49aは、第2の画像読取装置から転送されてきた画像のデータを第1のドライバへ受け渡す手段としてCPU46を機能させている。さらに、フラットベッドドライバ49bは画像データをアプリケーション48に転送する。よって、フラットベッドドライバ49bは、第2のドライバから受け渡された画像のデータをアプリケーションプログラムへ受け渡す手段としてCPU46を機能させている。
一方、シートフィードスキャナ1に原稿が載置されていなければ、S1003に進む。S1003でCPU46は、フラットベッドドライバ49bにスキャン開始コマンドを送信する。
フラットベッドドライバ49bは、スキャン開始コマンドを受信すると、フラットベッドスキャナ10のCPU36にスキャン開始コマンドを転送する。フラットベッドスキャナ10のCPU36は、スキャン開始コマンドを受信すると、スキャン処理を開始する。
CPU36は、ラインイメージセンサ12および画像処理部32を制御して画像データを生成し、フラットベッドドライバ49bへ画像データを転送する。フラットベッドドライバ49bは、画像データをアプリケーション48に転送する。
なお、白紙検知機能がONに設定されている場合、フラットベッドドライバ49bまたはシートフィードドライバ49a白紙検知機能は、原稿画像内を調べ、白紙かどうかを判定する。白紙であれば画像データを破棄する。例えば、CPU46または画像処理部22、32は、画像を2値画像へ変換する。次に2値画像変換した画像内の黒画素数を数え、その数が画像全体の2割以下のときに、原稿画像を白紙と判定する。
次にPC40から、シートフィードスキャナ1にフラットベッドスキャナ10を介して、どのようにしてコマンドがやり取りされるかについてさらに詳細に説明する。本実施形態では、フラットベッドスキャナ10はUSBハブを備えている。そのため、図5(B)が示すように、PC40とシートフィードスキャナ1との間にフラットベッドスキャナ10が介在していても、PC40から直接的にシートフィードスキャナ1にコマンドを送信することができる。つまりPC40のCPU46にとって、図5(A)の接続形態も図5(B)の接続形態もUSBレベルにおいて違いはないからである。このように、シートフィードスキャナ1とフラットベッドスキャナ10とはスキャナ読取処理に関して独立している。
すなわち、シートフィードスキャナ1にとってフラットベッドスキャナ10はPC40への信号とPC40からの信号との中継点に過ぎない。フラットベッドスキャナ10のCPU36や画像処理部32も、シートフィードスキャナ1の信号の中継に関与しない。これは、シートフィードドライバ49aがフラットベッドドライバ49bに依存していることと比較すると、対照的といえよう。
次に、フラットベッドドライバ49bがCPU46と協働して実行するコマンド解析処理について説明する。
シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されている状態でアプリケーション48からシートフィードドライバ49aにコマンドを送るときは、フラットベッドドライバ49bを経由する。この際、フラットベットスキャナ10では、PC40からのシートフィードスキャナ10へのコマンドが一旦情報として通過する。この際、例えば、フラットベットスキャナ10のCPU36が自身へのコマンドでないと判断し、その後、シートフィードスキャナ1へ転送するよう制御することができる。勿論、フラットベットスキャナ10のインターフェース34部分にコマンド判断機能を設けて、シートフィードスキャナ10へのコマンドをインターフェース34から直接、シートフィードスキャナ1へ転送するようにしてもよい。あるいは、フラットベットスキャナ10にコマンド判断手段を別途設けて、コマンドの振り分けを行うようにしてもよい。このように、シートフィードスキャナ1へのコマンドは、フラットベットスキャナ10を経由することになる。
そのため、フラットベッドドライバ49bは、アプリケーション48からのコマンドを解析し、解析結果にしたがってフラットベッドスキャナ10とシートフィードスキャナ1の制御を行う。
また、フラットベッドスキャナ10とシートフィードスキャナ1のどちらを制御するかは、ユーザーインターフェース53の設定に依存している。ユーザーインターフェース53において読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bはアプリケーション48からのコマンドを受信し、フラットベッドスキャナ10を制御するようにしてもよい。
さらに、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bは、アプリケーション48からのコマンドをシートフィードドライバ49aにそのまま転送するようにしてもよい。
シートフィードドライバ49aは、フラットベッドドライバ49bを介してアプリケーション48からのコマンドを受信し、シートフィードスキャナ1を制御する。
読取方法として「自動」が選択されているときは、原稿がシートフィードスキャナ1にセットされているかどうかに応じて、一方のスキャナ装置を選択する。コマンドの送受信方法は、選択されたスキャナ装置に応じた送受信方法が選択されることになる。
次に、スキャン画像(画像データ)がスキャナからスキャナドライバを介してアプリケーション48に渡るまでの処理について説明する。読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bが、フラットベッドスキャナ10を制御し、画像を取得し、アプリケーション48にスキャン画像を渡す。また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bが、シートフィードドライバ49aから画像を取得し、そのままアプリケーション48に渡す。
以上、本実施形態によれば、シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されているときは、ユーザーは、フラットベッドドライバ49bを介して2つのスキャナを使用することができる。よって、ユーザーは、一度、アプリケーション48においてフラットベッドドライバ49bを選択すれば、使用するスキャナを切り替えるためにドライバの再選択は必要がない。
すなわち、従来必要であったフラットベッドドライバ49bのアンロードとシートフィードドライバ49aのロードは省略できる。これは、アプリケーション48の起動時にフラットベッドドライバ49bがシートフィードドライバ49aをRAM42へすでにロードしているためである。よって、スキャナドライバの切り替えに伴って必要であったアンロードおよびロードに伴う処理時間が不要となる。頻繁にシートフィードスキャナ1とフラットベッドスキャナ10とを切り替えるような使用環境では、本実施形態の効果は高い。
また、フラットベッドドライバ49bは、アプリケーションプログラムとしてシートフィードドライバ49aと通信するためのプロトコル(例:Twain)に対応しているため、シートフィードドライバ49aにとってはフラットベッドドライバ49bがアプリケーションとして見える。
よって、フラットベッドスキャナ10をすでに所有しているユーザーが新しくシートフィードスキャナ1を追加購入しても、フラットベッドドライバ49bを介してフラットベッドスキャナ10と新しいシートフィードスキャナ1との両方を使うことができる。
また、メーカーにとっては、フラットベッドドライバ49bを新製品のシートフィードスキャナ1に対応させるためのバージョンアップを行う必要はない。フラットベッドドライバ49bは、シートフィードドライバ49aと通信するためのプロトコルをすでに備えているからである。
本実施形態では、フラットベッドドライバ49bを介してシートフィードドライバ49aを使用したが、シートフィードドライバ49aを介してフラットベッドドライバ49bを使用できるように構成してもよい。この場合は、上述の説明において、フラットベッドドライバ49bとシートフィードドライバ49aとを読み替えるとともに、フラットベッドスキャナ10とシートフィードスキャナ1とを読み替えればよい。
図11は、PC40に接続された3台以上のスキャナを使用するための共通のユーザーインターフェース1101の一例を示した図である。PC40に接続できるスキャナの台数は3台以上であってもよい。
この場合のユーザーインターフェース1101に、スキャナを選択するためのコンボボックスが追加されることになる。コンボボックスには、選択可能なスキャナの名称が列挙されることになる。なお、図11に示したユーザーインターフェース1101は、1台のフラットベッドスキャナと、4つのシートフィードスキャナとが接続されているときのユーザーインターフェースの一例である。
図12は、スキャナ選択用ダイアログの一例を示した図である。上述したコンボボックスに代えて、図12に示したスキャナ選択用ダイアログ1201が採用されてもよい。ユーザーがスキャナ選択用ダイアログ1201から所望の一つを選択すると、選択されたスキャナに対応したスキャナドライバがRAM42へロードされる。RAM42へのスキャナドライバのロードは1度限りでよいことは上述した通りである。
読取方法として「自動」が選択されているときは、CPU46は、スキャナドライバを通じて、PC40に接続されているすべてのシートフィードスキャナの原稿台を調査し、原稿が載置されているシートフィードスキャナのみにスキャン開始コマンドを送信するようにしてもよい。
図13は、ユーザーインターフェースの他の例を示した図である。上記の実施形態では、フラットベッドドライバ49bが、フラットベッドスキャナ10とシートフィードスキャナ1とで共通にサポートしている機能についての選択項目のみをユーザーインターフェースに表示している。
図13が示すように、ユーザーインターフェース1301には、両者に共通でない選択項目が表示されてもよい。例えば、フラットベッドスキャナ10が解像度1200dpiをサポートしており、シートフィードスキャナ1ではこれをサポートしていないものとする。
さらに、シートフィードスキャナ1は白紙検知機能をサポートおり、フラットベッドスキャナ10もこれをサポートしているものと仮定する。この場合、読取方法として「フィーダー」が選択されると、CPU46は、解像度1200dpiはグレーアウト表示に切り替えることで、解像度1200dpiを無効としてもよい。
このように、CPU46は、抽出されなかった機能の設定項目をユーザーインターフェースで操作不可能となるように表示装置45に表示する手段として機能する。一方、フラットベッドが選択されると、CPU46は、解像度1200dpiについてグレーアウト表示から有効表示に切り替える。
よって、CPU46は、ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じてユーザーインターフェースにおける操作可能項目を変更する変更手段として機能する。
上述したように、ユーザーが特殊機能ボタン56を押すと、CPU46は、図9に示した設定ダイアログ57を表示する。設定ダイアログ57は、フラットベッドドライバ49bがシートフィードドライバ49aの設定ダイアログを呼び出して表示装置45に表示したものである。
よって、CPU46は、ユーザーが読取方法をフィーダーに設定したときに特殊機能ボタン56を選択可能なように表示する。一方、そうでないときは、CPU46は、特殊機能ボタン56を無効とすべく、グレーアウト表示に切り替える。
本実施形態では、フラットベッドスキャナ10にシートフィードスキャナ1を接続し、フラットベッドドライバ49bでシートフィードドライバ49aを制御するものと仮定して説明した。しかし、シートフィードスキャナ1にフラットベッドスキャナ10を接続し、シートフィードドライバ49aでフラットベッドドライバ49bを制御してもよい。また、スキャナの組み合わせは、フラットベッドスキャナ10、シートフィードスキャナ1に限定されるものではない。すなわち、種類の異なる複数の画像読取装置をPC40に接続するときも本実施形態に係る発明を適用できる。
ここで、本実施形態の上述したシートフィードスキャナ1とフラットベットスキャナ10とを有する画像読取装置(情報読取装置の一例)は、それぞれのスキャナ1,10を組み合わせて、1つの画像ファイル(結合情報)を形成する場合に適用することができる。これにより、ユーザーの利便性に優れた画像読取装置を実現することができる。
詳細には、本実施形態の画像読取装置では、アプリケーションプログラムの起動後に、第1のドライバと第2のドライバとが自動起動するようになっている。このように、両ドライバを起動状態とすることにより、スタンバイに要する時間の短縮化を図ることができる。
情報処理装置の一例であるPC40には、フラットベットスキャナ10を制御する第1のドライバ(フラットベットドライバ49b)と、シートフィードスキャナ1を制御する第2のドライバ(シートフィードドライバ49a)と、各ドライバからの画像情報を受け取るアプリケーションプログラムとを含む制御プログラムがインストール等により導入されている。また、制御プログラムは、シートフィードスキャナ1とフラットベットスキャナ10とがPCに接続されて各ドライバが起動して利用可能となった状態においては、各スキャナ1,10での読取画像を結合するプログラムを含んでいる。
本実施形態では、この読取画像の結合プログラムをアプリケーションプログラムに組み込んで実行させるようにした。また、アプリケーションプログラムでは、複数の読取画像を結合する場合に、読取画像の結合順番を適宜変更できるようにしてもよいし、読み取った順番で自動的に結合処理を行うようにしてもよい。さらに、単に各スキャナ1,10で読み取った各読取画像を結合するだけではなく、例えば、一方の読取画像に他方の読取画像を挿入して1つの画像ファイルとしてもよい。具体的には、フラットベッドスキャナ10でスキャンする画像を、シートフィードスキャナ1でスキャンするバッチのどこに入れるか予め設定する機能(挿入位置設定モード等のプログラムを制御プログラムに挿入)を設けておき、各スキャナ1,10で読み取った画像を挿入結合するようにしてもよい。この場合には、シートフィードスキャナ1で読み取って、後でフラットベットスキャナ10により読み取った読取画像を、挿入設定に基づいてバッチの途中に挿入する。これにより、バッチ中の順番を間違うことなく1つの結合画像を得ることができる。
また、シートフィードスキャナ1で複数の原稿を読み取る際において、原稿搬送が難しい又はできない原稿等があった場合、その原稿位置の情報を挿入結合位置として記憶したり、あるいはバーコードやマークシート等に入れ替えたりして、当該原稿をフラットベットスキャナ10で読み取って、後から上記挿入結合位置(バッチの途中)に挿入するようにしてもよい。これにより、例えば、シートフィードスキャナ1で搬送不良(ジャム等)が生じた場合、そのジャムしたところに、フラットベッドスキャナ10でスキャンした画像を挿入し、1つの画像ファイルとして取得することができる。
このように、本実施形態では、それぞれのスキャナ1,10の各スキャナドライバ(フラットベットドライバ49b、シートフィードドライバ49a)を都度切り替えることなく、それぞれのドライバをアプリケーションプログラムと共に起動させておくことにより、両スキャナ1,10が利用可能な状態となっている。
したがって、例えば、表紙又は裏表紙と、表紙と裏表紙との間に配置される複数の原稿とを1つのファイルとして読み取りたい場合、フラットベットスキャナ10で表紙又は裏表紙を読み取ると共に、シートフィードスキャナ1で複数の原稿を読み取るようにアプリケーションプログラムから各スキャナに指示を出し、それぞれの読取画像を結合処理により1つのファイルとして取得することができる。
以下、図14を用いて、このような連続運転時の処理手順として、複数の原稿をシートフィードスキャナ1で読み取ると共に表紙等となる1枚の原稿をフラットベットスキャナ10により読み取って各読取画像を結合する場合について説明する。図14は、本実施形態に係る画像読取装置(システム)の動作を示すフローチャート図である。
図14に示すように、まず、アプリケーションプログラムを実行(ステップS2001)した後、HDDに記憶されているシートフィードドライバ49aとフラットベットドライバ49bとをRAM等のメモリへロードする(ステップS2002)。ここでのステップS2001及びS2002での処理は、図7で説明したステップと同様にすることができる。なお、各ドライバ49a,49bのロードのタイミングは、アプリケーションプログラムの起動に連動してもよいし、ユーザー操作によりアプリケーションプログラムと関係なく起動するようにしてもよいが、何れにしても、両ドライバ49a,49bが起動される。
次に、シートフィードスキャナ1でスキャンを開始するか否かをユーザーに選択させる(ステップS2003)。ステップS2003でシートフィードスキャナ1によりスキャン指定(Yes)があると、当該シートフィードスキャナ1でスキャンを実行(ステップS2004)し、アプリケーションプログラムがシートフィードスキャナ1で読み取った読取画像を入手する(ステップS2005)。ここでは、シートフィードスキャナ1において予め複数の原稿のセットがされているものとする。また、ここではスキャナ読取設定を省略したが、スキャナでの読取設定を所望のタイミングで実行するようにしてもよい。なお、その後は、シートフィードスキャナ1で読み取った複数の読取画像を結合処理(ステップS2006)し、スキャン終了するかどうか、すなわち、連続スキャン運転をするかどうかを選択する(ステップS2007)。
ユーザーが連続スキャン運転を開始(No)する場合、ステップS2003に戻り、ステップS2003でシートフィードスキャナ1によるスキャン指定がない場合(No)、フラットベットスキャナ10でスキャンを開始するか否かをユーザーに選択させる(ステップS2008)。ステップS2008でフラットベットスキャナ10によりスキャン指定(Yes)があると、当該フラットベットスキャナ10でスキャンを実行(ステップS2009)し、アプリケーションプログラムがフラットベットスキャナ10で読み取った読取画像を入手する(ステップS2010)。なお、図14のフローでは、ユーザーは、シートフィードスキャナ1を連続運転させることもでき、また、フラットベットスキャナ10を連続運転させることもでき、あるいは、両スキャナ1,10を適宜組み合わせて使用することもできる。
次いで、前回のステップS2005でシートフィードスキャナ1から入手した読取画像と、ステップS2010でフラットベットスキャナ10から入手した読取画像とを結合する(ステップS2006)。なお、その後は、ステップS2007へ進み、連続スキャン運転する原稿がない場合(ステップS2007:Yes)は、スキャン終了する。
なお、ステップS2006では、シートフィードスキャナ1での複数の読取画像を結合する他、シートフィードスキャナ1での読取画像にフラットベットスキャナ10で読み取った読取画像を結合したり、複数の原稿を個別にフラットベットスキャナ10で読み取った各読取画像を結合したりすることができる。
図14で示すフローでは、シートフィードスキャナ1で読み取った後にフラットベットスキャナ10で読み取って、各読取画像を結合する一例の手順について説明したが、本発明は勿論これに限定されるものではない。
例えば、ステップS2003とステップS2008とを入れ替えてもよい。すなわち、まずフラットベットスキャナ10でスキャン開始するかどうかをユーザーに選択させ、フラットベットスキャナ10でスキャンを開始した後、連続スキャン運転させる際に、フラットベットスキャナ10を選択せず、シートフィードスキャナで読み取り、その後、両方の読取画像を結合するようにしてもよい。何れにしても、ユーザーは、ステップS2003とステップS2008とで、シートフィードスキャナ1とフラットベットスキャナ10との読取順番を適宜設定することができる。
また、図15に示すように、ステップS2010の後に、結合画像の有無を選択させるようにしてもよい(ステップS2011)。これによれば、1つの原稿の画像をフラットベットスキャナ10で読み取った後、シートフィードスキャナ1で複数の原稿画像を読み取りたい場合は、ステップS2003でシートフィードスキャナ1を選択せずにステップS2008でフラットベットスキャナ10を選択し、ステップS2011で結合画像なしとして連続スキャン運転を選択する(ステップS2007:No)。そして、ステップS2003でシートフィードスキャナ1を選択し、当該シートフィードスキャナ1で読み取った読取画像と、前回のフラットベットスキャナ10で読み取った読取画像とをステップS2006で結合するようにしてもよい。
なお、図14又は図15において、ステップS2011の代わりに、ステップS2006前のステップとして、結合する読取画像があるかどうかを判定するステップを設けるようにしてもよい。
また、図14又は図15では、ステップS2007で連続スキャン運転の選択を行うようにしているが、本発明は勿論これに限定されず、例えば、図16に示すように、予め連続運転するかどうかを設定できるようにしてもよい。
具体的には、図16に示すように、まず、アプリケーションプログラムを実行(ステップS3001)した後、HDDに記憶されているシートフィードドライバ49aとフラットベットドライバ49bとをRAM等のメモリへロードする(ステップS3002)。ここでのステップS3001及びS3002での処理は、上述した図7及び上記図14等で説明したステップと同様にすることができる。
次に、2つのスキャナ1,10を用いて連続スキャン運転するかどうかのモード切替を行う(ステップS3003)。ステップS3003で連続スキャン運転するとした場合(Yes)には、スキャナ順番を設定する(ステップS3004)。続いて、各スキャナ1,10でのスキャン設定を行う(ステップS3005)。ここでのスキャン設定は、スキャナ読取設定であり、例えば、原稿サイズ、解像度、カラー又はモノクロ等の読取方式、両面又は片面の読取モード等が挙げられるが、勿論これらに限定されるものではない。
次いで、PCからの操作に基づいて、スキャン実行の指示を待つ(ステップS3006)。具体的には、アプリケーションプログラムの起動等により表示される読取制御画面でのスキャン実行ボタンの押下により、PCからスキャン実行指示が出されるか否かを待つ状態となる。ステップS3006でスキャン実行指示を受け取ると(Yes)、所定のスキャナ順番及びスキャン設定に基づいて、各スキャナ1,10でのスキャンを実行する(ステップS3007)。
続いて、アプリケーションプログラムが、ステップS3007で読み取った各読取画像を入手する(ステップS3008)。そして、アプリケーションプログラムは、受け取った各読取画像の結合処理を実行する(ステップS3009)。この際、アプリケーションプログラムでは、読取画像の結合順番を適宜変更できるようにしてもよいし、読み取った順番で自動的に結合処理を行うようにしてもよい。
なお、ステップS3003で連続スキャン運転を実行しない場合(No)には、何れかのスキャナ1,10を選択する(ステップS3010)。続いて、スキャナ設定(ステップS3011)後、スキャン実行指示を待つ(ステップS3012)。そして、スキャン実行指示を受け取ると、選択したスキャナで読み取り(ステップS3013)、アプリケーションプログラムが何れか一方のスキャナ1,10で読み取った読取画像を入手(ステップS3014)し、スキャン終了となる。
以上説明したように、本実施形態では、PC等の情報読取装置に情報読取装置の一例である複数のスキャナ(シートフィードスキャナ1、フラットベットスキャナ10)を接続し、各スキャナ1,10を使用する状態において、両方のスキャナドライバを起動させた状態とし、各スキャナ1,10での読取画像を適宜1つの画像ファイルに結合できるようにしたので、例えば、ユーザーによる連続スキャン運転時に要する処理時間の短縮化を図ることができる。また、各スキャナ1,10をそれぞれ独立して利用したり、あるいは1つのスキャナユニットとして利用したりして、所望の画像ファイルを取得することができる。したがって、優れたユーザー利便性を実現することができる。
また、本実施形態では、各スキャナ1,10のドライバを各スキャナの読取前に起動させておくようにしたので、スキャナドライバ切り替えに要する時間を短縮することができる。
さらに、本実施形態では、PCに接続されるフラットベットスキャナ10にシートフィードスキャナ1を接続し、PCと各スキャナ1,10との情報入出力において、1つのドライバ(上述した実施形態ではフラットベットドライバ)を経由するようにしたので、既存のシートフィードスキャナ(複数の接続部を持たないスキャナ)1にフラットベットスキャナ10を追加して利用することができる。これにより、各スキャナ1,10をそれぞれ独立して利用したり、あるいは1つのスキャナユニットとして利用したりすることができ、ユーザーの利便性をさらに向上することができる。
図17は、画像処理部の搭載位置を説明するためのす図である。上記の実施形態では、図17(A)が示すように、フラットベッドスキャナ10とシートフィードスキャナ1とがそれぞれ画像処理部を備えており、画像処理部は共通化されてはいない。しかし、図17(B)が示すように、フラットベッドドライバ49bとシートフィードドライバ49aとのそれぞれが画像処理部を備えてもよい。
以上説明したように、本実施形態によれば、フラットベットスキャナ10に複数の接続部を設けて、PC40に対してフラットベットスキャナ10を接続すると共に、フラットベットスキャナ10にシートフィードスキャナ1を接続するようにしたので、フラットベットスキャナ10の追加利用のためにシートフィードスキャナ1を改造することない。また、ユーザーは、既存のシートフィードスキャナ1に対してフラットベットスキャナ10を接続することができ、これらシートフィードスキャナ1及びフラットベットスキャナ10を個々独立、又は1つの画像読取ユニットとして利用することができる。
また、本実施形態では、フラットベットスキャナ10をフラットベットドライバ49bにより制御し、シートフィードスキャナ1をフラットベットドライバ49bを介してシートフィードドライバ49aにより制御できるようにしたため、フラットベットドライバ49bをアンロードしたり、再ロードしたりする時間を省略できる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
例えば、読取り形式の異なる複数の画像読取装置がPC(情報処理装置)に接続されているときにアプリケーションプログラム48が起動されると、アプリケーションプログラム48はフラットベットドライバ49bを情報処理装置のメモリへとロードする。さらに、フラットベットドライバ49bはシートフィードドライバ49aを情報処理装置のメモリへとロードする。よって、ユーザーインターフェース53などにおいて使用すべきスキャナを切り替えたとしても、ドライバのアンロード、ロードおよび初期化処理は発生しない。すなわち、スキャナドライバの切り替えに必要となる切り替え時間を従来よりも短縮できる。
また、シートフィードスキャナ1が読取った画像のデータをフラットベットドライバ49bおよびシートフィードドライバ49aを介してアプリケーションプログラムが受け取るように、フラットベットドライバ49bを構成したことで、シートフィードスキャナ用のシートフィードドライバ49aについては変更することなく、本発明を適用できる。
すなわち、シートフィードドライバ49aについての更新やバージョンアップの手間を省くことができる。また、シートフィードドライバ49aがインストールされていれば当該シートフィードドライバ49aをメモリにロードし、シートフィードドライバ49aがインストールされていなければ当該シートフィードドライバ49aをロードしないようにフラットベットドライバ49bを構成している。すなわち、シートフィードドライバ49aのロード処理はアプリケーションプログラムではなくフラットベットドライバ49bが担当している。
また、フラットベットドライバ49bが提供するユーザーインターフェース上で画像読取装置を切り替えるようにしているため、画像読取装置の切り替えに伴うドライバのアンロード、ロードおよび初期化処理は必要がない。なお、シートフィードスキャナ1が選択されたときはフラットベットドライバ49bがアプリケーションプログラムのように振舞ってシートフィードドライバ49aへコマンドを渡す。それ故、シートフィードドライバ49aは、本発明を適用する上での特別な更新や改変は必要がない。
また、フラットベットドライバ49bのユーザーインターフェースでは、第1の画像読取装置と第2の画像読取装置とで共通している機能についてその設定項目が設けられている。よって、どの画像読取装置が選択されても、読取処理に反映することが不可能な設定を操作者が行ってしまうことを防止できる。
なお、共通していない設定項目については、ユーザーインターフェースから消去してしまったり、操作不可能なようにグレーアウト表示したりしてもよい。グレーアウト表示された設定項目は、操作者により選択されなかった他の画像読取装置では設定可能な項目であることを操作者に示唆することができる。
また、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて、ユーザーインターフェースにおける操作可能な設定項目を変更してもよい。この場合は、複数の画像読取装置に共通しているものだけでなく、選択された画像読取装置で設定可能な設定項目をすべて表示することができる。よって、操作者は選択した画像読取装置が備えるすべての機能を使用することができる。
さらに、本実施形態のように、シートスルー型スキャナのドライバと通信可能なフラットベット型スキャナのドライバを用いることにより、例えば、情報処理装置(PC)からの読取指示信号をシートスルー型スキャナに伝達することができる。逆に、情報処理装置は、シートスルー型スキャナでの読取画像をシートスルー型スキャナのドライバからフラットベット型スキャナのドライバを経由して取得することができる。これにより、フラットベット型スキャナを情報処理装置と既存のシートスルー型スキャナとの間に接続することが可能となる。すなわち、フラットベットスキャナに複数の接続部を設けるだけで、情報処理装置にフラットベット型スキャナを接続すると共にフラットベット型スキャナに既存のシートスルー型スキャナを接続することができる。
その結果、ユーザーは、フラットベット型スキャナを導入するだけで、情報処理装置の操作に基づいて、フラットベット型スキャナとシートスルー型スキャナとを別々のスキャナとして使用したり、あるいは1つのスキャナユニットとして容易に使い分けしたりすることができる。また、シートスルー型スキャナを保有するユーザーは、既存のシートスルー型スキャナに対して別途、接続部等を設けるための改良(改造)をすることなく、フラットベット型スキャナを追加利用することができる。
(実施形態2)
本実施形態では、第1画像読取装置としてフラットベットスキャナを採用し、第2画像読取装置としてシートフィードスキャナを採用し、どちらかのスキャナにシートがセットされた場合に、シートを検知した側のスキャナでの画像読取モードに切り替わるようにした以外は、上述した実施形態1と同様である。
詳細には、本実施形態では、フラットベットスキャナにシートを載置する載置台(第1載置台)を設け、その載置台にシート検知センサ(第1シート検知手段)を設けることにより、シートの有無を検知することができる。一方、シートフィードスキャナにおいても同様に、シートを載置する載置台(第2載置台)を設け、その載置台にシート検知センサ(第2シート検知手段)を設けることにより、シートの有無を検知することができる。
このような構造を採用することにより、フラットベットスキャナ又はシートフィードスキャナの何れか一方にシートがセットされたことを検知することができる。また、シートの有無に関する情報については、各ドライバを介してアプリケーションに伝達することができる。
例えば、情報処理装置(PC)にフラットベットスキャナを接続し、そのフラットベットスキャナにシートフィードスキャナを接続している状態においては、シートフィードスキャナでのシートの有無に関する情報は、シートフィードドライバからフラットベットドライバを経由して、アプリケーションへ伝達することができる。なお、フラットベットスキャナでのシートの有無に関する情報は、直接、フラットベットドライバからアプリケーションへ伝達することができる。
これにより、フラットベットスキャナ又はシートフィードスキャナの何れかでシートを検知した場合には、シートを検知した側のスキャナが読取可能な状態となるため、当該スキャナでの画像読取モードに切り替えることができる。
そして、例えば、情報処理装置からの操作(実際にはアプリケーション実行に伴うユーザーインターフェース画面からの操作)に基づいて、シートを検知した側のスキャナで画像読取を開始することができる。
また、本実施形態では、図示しないが、シートフィードスキャナ、フラットベットスキャナ側に、スキャン動作の制御あるいは設定を実行するための制御パネル、又は操作ボタン(例えば、スキャン開始ボタン等)を設けることができる。このような場合には、シートがセットされた状態で、スキャナ側の操作により、シートを検知した側のスキャナで画像読取を開始させることもできる。
さらに、読取画像は、スキャナから情報処理装置に自動的に送信することができるが、この際、例えば、シートフィードスキャナでの読取画像については、シートフィードドライバからフラットベットドライバを経由して情報処理装置に送信される。
以上のような構成とすることにより、シートフィードスキャナ等の既存の画像読取装置を改造することなく、既存の画像読取装置に対して別の画像読取装置を接続できると共に、各画像読取装置を独立又は1つの画像読取ユニットとして利用でき、さらに、ユーザーの利便性を向上することができる。なお、本実施形態で説明した上述の構成については、上述した実施形態1に適用することができる。
(実施形態3)
図18は、本発明の実施形態3に係る情報読取装置の一例である画像読取装置(画像読取ユニット)の概略構成図である。
図18に示すように、本実施形態の画像読取装置は、PC等の情報処理装置400aに接続される第2画像読取装置の一例であるシートフィードスキャナ1と、別の情報処理装置400bに接続される第1画像読取装置の一例であるフラットベットスキャナ10とを備えている。
具体的には、2つの情報処理装置400a,400bは、それぞれネットワークで通信可能に接続されている。
また、情報処理装置400aにおいては、シートフィードスキャナ1を制御する制御プログラムとして、アプリケーション480aとシートフィードドライバ(第2のドライバ)490aとが導入されている。
すなわち、情報処理装置400aは、アプリケーション480aから各種の指示情報がシートフィードドライバ490aを介してシートフィードスキャナ1に送られ、当該指示情報に基づいてシートフィードスキャナ1が読み取った読取画像をシートフィードドライバ490aを介して取得できるようになっている。
一方、情報処理装置400bにおいては、フラットベットスキャナ10又はシートフィードスキャナ1をそれぞれ制御する制御プログラムとして、アプリケーション480bとフラットベットドライバ490bとが導入されている。
ここでのフラットベットドライバ490は、マルチファンクションドライバ(多機能ドライバ)であり、アプリケーション480bからの各種の指示情報について、フラットベットスキャナ1への出力以外にも、ネットワークを経由して、情報処理装置400aのアプリケーション480aに直接出力できるようになっている。
具体的には、シートフィードスキャナ1用のアプリケーション480aは、ネットワークを経由して、フラットベットドライバ490bからの情報処理装置400b(アプリケーション480b)の指示情報を受け取り、その情報をTwainプロトコルでシートフィードドライバ490aに伝達する機能を備えている。すなわち、フラットベットスキャナ10用のフラットベットドライバ490bは、フラットベットスキャナ1用のアプリケーション480b以外にも、シートフィードスキャナ1用のアプリケーション480aとの情報通信が可能となっている。
このように、情報処理装置400b側からは、アプリケーション480bから各種の指示情報に基づいて、フラットベットスキャナ1とシートフィードスキャナ10との両方を制御可能となっている。このため、情報処理装置400bは、フラットベットスキャナ1から読取画像を取得できる他、シートフィードスキャナ10からも読取画像を取得することができる。
以上、本実施形態では、上述した構成とすることにより、シートフィードスキャナ等の既存の画像読取装置(シートフィードスキャナ1等)に接続部等の構成追加のための改造をしなくても、ネットワークを経由して、既存の画像読取装置(シートフィードスキャナ1等)に対して別の画像読取装置(フラットベットスキャナ10等)を接続することができる。これにより、ユーザーは、各画像読取装置を独立又は1つの画像読取ユニットとして適宜利用することができ、ユーザーにとって非常に自由度のある装置の利用態様を実現し提供することができる。
なお、本実施形態においてシートフィードドライバ490aやフラットベッドドライバ490bのロード等の実行手順等については、上述した実施形態1と同様にすることが可能である。
また、本実施形態では、フラットベットドライバ490bとシートフィードスキャナ1用のアプリケーション480aとの間でネットワークを経由して通信可能とした場合について説明したが、本発明は勿論これに限定されず、例えば、図16に示すように、フラットベットドライバ490bは、フラットベットスキャナ1用のアプリケーション480bを経由して、シートフィードスキャナ1用のアプリケーション480aと通信可能としてもよい。何れにしても、本発明は、シートフィードスキャナ1等の既存の情報読取装置に対して、通信可能な状態で接続される他の情報処理装置のドライバに、既存の情報処理装置のドライバへの指示を出すための機能を追加するだけで、既存の情報読取装置を改造(接続部等を設ける等のハード的な改造)等することなく、別の情報読取装置を接続することができるものである。
(実施形態4)
上述した実施形態1又は2では、シート搬送路が略水平であるシートフィードスキャナを備えた画像読取装置を例示して説明したが、本発明は勿論これに限定されず、様々なシートフィードスキャナ等の情報読取装置にも適用することができる。図20〜図23は、本発明の実施形態3に係る情報読取装置の一例である他の画像読取装置(シートフィードスキャナ)の概略構成図である。
詳細には、図20(a)及び図20(b)に示す画像読取装置100は、原稿を積載する給紙トレイ102が装置本体101Aに対してヒンジ部102aを介して開閉可能に支持されている。給紙トレイ102は、閉じた状態で原稿の給紙口13を覆い(図17(a)の破線)、開放された状態(図20(a)及び図20(b)の状態)で積載面102bに原稿が積載される。
給紙トレイ102に積載された複数枚の原稿は、フィードローラ104と分離パッド105とによって最も下の原稿から1枚ずつ搬送路に分離給送される。搬送路に給送された原稿は、搬送ローラ対106により下流側に搬送される。さらに原稿は、読取センサ108,109により表裏両面の画像が読み取られ、その後、搬送ローラ対107により装置外に排紙される。このような画像読取装置についても本発明を適用することができる。
また、図21に示す画像読取装置200は、縦型の搬送経路を備えたスキャナであり、スキャナ本体Sにより全体が構成されている。具体的には、スキャナ本体Sの内部には、給紙ローラ201が設けられている。この給紙ローラ201は、モータ202に接続されている。
また、給紙ローラ201の下流側には、搬送ローラ203が配置されている。さらに、搬送ローラ203の下流側には、原稿の一方面を読み取る第1画像読取センサ204が配置されている。
また、この第1画像読取センサ204の下流側には、排紙ローラ207が設けられている。この排紙ローラ207の手前には、原稿の他方面を読み取る第2画像読取センサ209が設けられている。
なお、搬送ローラ203と第2画像読取手段209との間に対応する位置には、原稿の到達及び通過を検知するレジストセンサP2が配置されている。
そして、このような縦型の画像読取装置においては、給紙ローラ201、搬送ローラ203及び排紙ローラ207がモータ202により同時に駆動される。なお、給紙ローラ201の対向する側には、分離ローラ213が配設されている。
これにより、原稿台205からの原稿は1枚ずつ分離されながら給紙ローラ201により給送される。このような縦型の画像読取装置についても本発明を適用することができる。
図22に示す情報読取装置300は、小切手や手形類等の紙葉類を読み取るチェックスキャナであり、紙葉類を載置するための載置部302と、縦置きの紙葉類を搬送するための搬送路303と、排紙された紙葉類を載置するための排紙部304とを備えている。
また、図示しないが、搬送路303には、紙葉類の磁気インク文字(MICR[Magnetic Ink Character Recongnition])を読み取る磁気センサが設けられている。なお、搬送路には、OCR(Optical Character Recongnition)等の文字情報を読み取る読取センサを設けてもよいし、あるいは、紙葉類の画像を読み取る読取センサを設けてもよい。
また、載置部302に載置された紙葉類は、分離ローラ(不図示)によって重送されずに搬送路303を通過して排紙され、この排紙された紙葉類は排紙部304に載置されるようになっている。このようなチェックスキャナである情報読取装置についても本発明を適用することができる。
図23に示す画像読取装置400は、Uターンパス型シートフィードスキャナであり、装置本体401の一端部側に設けられて原稿Sを給紙する給紙トレイ402と、Uターン形状の搬送路403と、排紙された原稿Sを載置するための排紙トレイ404とを備えている。
また、搬送路403には、給紙トレイ402側から送りローラ405と、給紙ローラ406と、搬送ローラ対407と、原稿Sの画像を読み取る画像読取ユニット408と、排紙ローラ対409とが設けられている。
これにより、原稿Sは、給紙トレイ402から装置本体401に取り込まれ、搬送路403中を搬送されながら、画像読取ユニット408により片面又は両面の画像が読み取られる。このようなUターンパス型シートフィードスキャナである画像読取装置400についても本発明を適用することができる。
以上説明したように、本実施形態では、各種シートフィードスキャナを例示したが、これら各スキャナ等の情報読取装置を本発明に適用することにより、上述した実施形態1又は2と同様の効果を得ることができる。
(他の実施形態)
以上、本発明を実施形態1〜4に基づいて説明したが、本発明は上述した各実施形態1〜4に限定されるものではない。例えば、上述した実施形態1等では、第一画像読取装置(フラットベットスキャナ10)には情報処理装置(PC40)と第二画像読取装置(シートフィードスキャナ1)とをそれぞれ接続可能としたが、本発明は勿論これに限定されず、第一画像読取装置にはさらに接続部を設けて、他の画像読取装置を含む周辺機器を1つ以上接続するようにしてもよい。また、第二画像読取装置に第一画像読取装置との接続部とそれ以外の接続部とが設けられている場合には、第二画像読取装置に別の画像読取装置を連結してもよい。その場合には、直列であってもよいし、並列であってもよい。なお、このような接続については、上述した実施形態2等の画像読取装置に適用してもよい。何れにしても、ユーザーは、複数の画像読取装置を独立して使用することができ、又は1つの画像読取ユニットとして使用することができる。
なお、上述した実施形態1等では、第一画像読取装置と第二画像読取装置とからなる画像読取装置(画像読取ユニット)として説明したが、本発明は勿論これに限定されず、例えば、情報処理装置と、画像読取ユニットとで画像読取システムとしてもよいし、画像以外の文字情報、図形情報、識別情報等を読み取る情報読取システムとしてもよい。
また、本発明では、以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム又は装置に供給し、それらのコンピュータ(CPUやMPU等)が格納されたプログラムコードを読出し実行しても本発明の目的は達成される。
すなわち、情報処理装置に接続されると共にシートの情報を読み取る第1情報読取装置を制御する第1ドライバと、第1情報読取装置に接続されると共にシートの情報を読み取る第2情報読取装置を制御する第2ドライバと、第1ドライバ又は前記第2ドライバからの情報を受け取るアプリケーションプログラムとを含む制御プログラムを有するようにする。そして、制御プログラムは、アプリケーションプログラムの起動に伴って第1ドライバと第2ドライバとをそれぞれ起動して第1情報読取装置と第2情報読取装置とを制御可能状態とするよう情報処理装置を機能させる。また、制御プログラムは、第1ドライバと第2ドライバとの起動状態において、第1情報読取装置で読み取る第1読取情報と、第2情報読取装置で読み取る第2読取情報との結合処理を実行するよう情報処理装置を機能させる。このようなプログラムを本発明の情報読取処理プログラムとし、本発明の目的は達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OS(オペレーティングシステム)に供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW等がある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD等がある。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
他に、プログラムの供給方法として、クライアントコンピュータのブラウザを用いてインターネットのホームページや画像読取装置101から本発明のコンピュータプログラムをハードディスク装置等の記録媒体にダウンロードすることもできる。もしくは、圧縮され自動インストール機能を含むファイルをハードディスク装置等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数の操作者に対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納して操作者に配布することも可能である。その場合、所定の条件をクリアした操作者に対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることができる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現する。
また、コンピュータが読み出したプログラムコードを実行するだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働するOS等が実際の処理の一部又は全部を行うことでも実現される。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む方法も可能である。その場合、プログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行うことでも実現される。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。