(57)【特許請求の範囲】
【請求項１】
画像読取システムであって、
第１の画像読取装置と、
第２の画像読取装置と、
前記第１の画像読取装置と前記第２の画像読取装置とが並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記第１の画像読取装置を制御するための第１のドライバと、
前記第２の画像読取装置を制御するための第２のドライバと、
前記第１のドライバまたは前記第２のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第１のドライバまたは前記第２のドライバと通信するための第１のドライバインターフェースを備え、
前記第１のドライバおよび前記第２のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第１のドライバは、前記第２のドライバが備えるアプリケーションインタフェースと通信するための第２のドライバインターフェースをさらに備え、
前記情報処理装置は、前記アプリケーションプログラムによって前記第１のドライバを起動した後、前記第１のドライバによって前記第２のドライバを起動することにより、前記第１の画像読取装置と前記第２の画像読取装置とを利用可能な状態とし、
前記情報処理装置は、前記第１の画像読取装置により画像を読取る際には前記第１のドライバを介して前記第１の画像読取装置を制御し、前記第２の画像読取装置により画像を読取る際には前記第１のドライバおよび前記第２のドライバを介して前記第２の画像読取装置を制御することを特徴とする画像読取システム。
【請求項２】
前記アプリケーションプログラムは、前記第１の画像読取装置が読取った画像のデータを、前記第１のドライバを介して受け取り、前記第２の画像読取装置が読取った画像のデータを、前記第１のドライバおよび前記第２のドライバを介して受け取るように構成されていることを特徴とする請求項１に記載の画像読取システム。
【請求項３】
前記第１の画像読取装置と前記第２の画像読取装置との両方が前記情報処理装置に接続されているときに前記アプリケーションプログラムが起動されると、前記アプリケーションプログラムは、前記第１のドライバを前記情報処理装置のメモリへとロードするように構成されており、前記第１のドライバは、前記第２のドライバを前記情報処理装置のメモリへとロードするように構成されていることを特徴とする請求項１または２に記載の画像読取システム。
【請求項４】
前記第１のドライバは、前記情報処理装置を、
前記第２のドライバが前記情報処理装置にインストールされているかどうかを判定する判定手段と、
前記第２のドライバが前記情報処理装置にインストールされているときは前記第２のドライバを前記情報処理装置へロードし、前記第２のドライバが前記情報処理装置にインストールされていないときは前記第２のドライバのロードを実行しないロード手段として機能させることを特徴とする請求項３に記載の画像読取システム。
【請求項５】
前記第１のドライバは、前記情報処理装置を、
前記第１の画像読取装置と前記第２の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段と、
前記ユーザーインターフェースを通じて前記第１の画像読取装置が選択されると、
画像の読取開始コマンドを前記第１の画像読取装置に送信する第１の送信手段と、
前記ユーザーインターフェースを通じて前記第２の画像読取装置が選択されると、
画像の読取開始コマンドを前記第２の画像読取装置に送信する第２の送信手段として機能させることを特徴とする請求項３または４に記載の画像読取システム。
【請求項６】
前記第１のドライバは、前記情報処理装置を、
前記第１の画像読取装置が対応している機能と前記第２の画像読取装置が対応している機能とを比較し、前記第１の画像読取装置と前記第２の画像読取装置とに共通している機能を抽出する手段として機能させ、
前記表示手段は、前記抽出された機能の設定項目を前記ユーザーインターフェースに表示することを特徴とする請求項５に記載の画像読取システム。
【請求項７】
前記表示手段は、前記抽出されなかった機能の設定項目を前記ユーザーインターフェースで操作不可能となるように表示することを特徴とする請求項６に記載の画像読取システム。
【請求項８】
前記第１のドライバは、前記情報処理装置を、
前記ユーザーインターフェースを通じてどの画像読取装置が選択されたかを判別する判別手段と、
前記ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて前記ユーザーインターフェースにおける操作可能項目を変更する変更手段として機能させることを特徴とする請求項５に記載の画像読取システム。
【請求項９】
前記第２のドライバは、前記情報処理装置を
前記第２の画像読取装置から転送されてきた画像のデータを前記第１のドライバへ受け渡す手段として機能させ、
前記第１のドライバは、前記情報処理装置を
前記第２のドライバから受け渡された画像のデータを前記アプリケーションプログラムへ受け渡す手段として機能させることを特徴とする請求項２に記載の画像読取システム。
【請求項１０】
画像読取システムであって、
第１の画像読取装置と、
第２の画像読取装置と、
前記第１の画像読取装置と前記第２の画像読取装置とが並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記第１の画像読取装置を制御するための第１のドライバを含む第１の制御手段と、
前記第２の画像読取装置を制御するための第２のドライバを含む第２の制御手段と、
前記第１の制御手段または前記第２の制御手段から画像のデータを受け取って画像処理を実行するアプリケーションプログラムを含む画像処理手段と
を備え、
前記画像処理手段は、前記第１の制御手段または前記第２の制御手段と通信するための第１のインターフェースを備え、
前記第１の制御手段は、前記画像処理手段と通信するための第２のインターフェースと、前記第２の制御手段と通信するための第３のインターフェースとを備え、
前記第２の制御手段は、前記画像処理手段と通信するための第４のインターフェースを備え、
前記情報処理装置は、前記アプリケーションプログラムによって前記第１のドライバを起動した後、前記第１のドライバによって前記第２のドライバを起動することにより、前記第１の画像読取装置と前記第２の画像読取装置とを利用可能な状態とし、
前記画像処理手段が備える第１のインターフェースは前記第１の制御手段が備える第２のインターフェースと接続され、前記第１の制御手段が備える第３のインターフェースは前記第２の制御手段が備える第４のインターフェースと接続されることで、前記画像処理手段は、前記第１の画像読取装置が読取った画像のデータを前記第１の制御手段を介して受け取り、前記第２の画像読取装置が読取った画像のデータを前記第１の制御手段および前記第２の制御手段を介して受け取ることを特徴とする画像読取システム。
【請求項１１】
請求項１ないし１０のいずれか１項に記載された画像読取システムにおいて使用される前記第１のドライバであるコンピュータプログラムであって、
前記コンピュータプログラムは、前記情報処理装置を、
前記アプリケーションプログラムと通信するための前記アプリケーションインタフェースと、
前記第２のドライバが備えるアプリケーションインタフェースと通信するための前記第２のドライバインターフェースと
前記第１の画像読取装置が読取った画像のデータを前記アプリケーションプログラムへ渡すとともに、前記第２の画像読取装置が読取った画像のデータを、前記第２のドライバを介して受け取って前記アプリケーションへ渡す手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１２】
情報処理装置が接続される第１の画像読取装置と、前記第１の画像読取装置に接続される第２の画像読取装置とを備え、
前記情報処理装置は、前記第１の画像読取装置を制御する第１のドライバと前記第２の画像読取装置を制御する第２のドライバとを含む制御プログラムの実行にあたり、前記第１のドライバを起動した後、当該第１のドライバによって前記第２のドライバを起動し、前記制御プログラムの実行に基づいて、前記第２の画像読取装置への読取指示信号を前記第１のドライバから前記第２のドライバを経由して伝達することを特徴とする画像読取システム。
【請求項１３】
前記情報処理装置は、前記第２の画像読取装置で読取られる読取画像を前記第２のドライバから前記第１のドライバを経由して取得することを特徴とする請求項１２に記載の画像読取システム。
【請求項１４】
前記制御プログラムは、前記第１のドライバと、前記第２のドライバとに対して情報の入出力を行うためのアプリケーションプログラムを含むことを特徴とする請求項１２又は１３に記載の画像読取システム。
【請求項１５】
第１の画像読取装置と第２の画像読取装置とが接続可能であると共に、前記第１の画像読取装置を制御する第１のドライバと、前記第２の画像読取装置を制御する第２のドライバと、前記第１のドライバまたは前記第２のドライバとの間で情報の入出力を行うアプリケーションプログラムとを備えており、
前記アプリケーションプログラムの起動に伴って、前記第１のドライバ及び前記第２のドライバのそれぞれを起動するにあたり、前記アプリケーションプログラムによって前記第１のドライバを起動した後、前記第１のドライバによって前記第２のドライバを起動することにより、前記第１の画像読取装置と前記第２の画像読取装置とを利用可能な状態とすることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿の画像情報を読取る画像読取装置、画像読取方法を実行するためのプログラムに関する。
【背景技術】
【０００２】
一般に、画像読取装置（以下スキャナ）には、シートフィード機能を有するシートフィードスキャナと、フラットベッドスキャナと、シートフィード機能とフラットベッド機能が一体になったスキャナ（以下複合スキャナ）との３種類が存在する。これらは用途に応じて使い分けられている。例えば大量に文書をスキャンしたいときは、シートフィードスキャナが適している。本をスキャンしたいときはフラットベッドスキャナが適している。そして、複合スキャナはその両方の用途を兼ね備えている。
【０００３】
複合スキャナはシートフィード機能とフラットベッド機能が一体になっているため各種の用途に使用可能であるが、複合スキャナのサイズは一般的に大きく、可搬性に乏しい。よって、可搬性も望んでいるユーザーにとって、複合スキャナは不向きであろう。そこで、可搬性を望むユーザーはフラットベッドスキャナとシートフィードスキャナとをそれぞれ購入し、用途に応じてこれらを使い分けている。また、これらのスキャナは比較的に小さいため、使わないときはスキャナを机上から片付けることができる。
【０００４】
ところで、スキャナは一般的にＵＳＢ（ユニバーサル・シリアル・バス）などの接続インターフェースを介してパーソナルコンピュータ（ＰＣ）と接続されて使用される。スキャナは、スキャナドライバと呼ばれる、アプリケーションとスキャナの仲介を行うプログラムモジュールによって制御される。スキャナが読取った画像は、スキャナドライバを介してアプリケーションプログラム（以下アプリケーション）に渡され、アプリケーションがその画像を表示したり、保存したりする。
【０００５】
フラットベッドスキャナとシートフィードスキャナを購入した場合、ユーザーはフラットベッドスキャナ用ドライバ（以下フラットベッドドライバ）とシートフィードスキャナ用ドライバ（以下シートフィードドライバ）をそれぞれＰＣにインストールしなければならない。さらに、ユーザーは、アプリケーションを実行している最中に、使用するスキャナに対応したスキャナドライバを選択しなければならない。スキャナドライバが選択されると、アプリケーションは、これまで選択されていたスキャナドライバをメモリからアンロードし、新しく選択されたスキャナドライバをメモリにロードし、ロードしたスキャナドライバを通じてスキャナを初期化する必要がある。これらの処理は一般的に時間がかかる処理である。そのため、ユーザーは使用するスキャナを切り替えるたびに、ストレスを感じてしまうかもしれない。
【０００６】
この課題を解決するために、特許文献１では、シートフィードスキャナにプラテンスキャナ（フラットベッドスキャナ）を接続できる構成にし、フラットベッドスキャナが読取った画像は、シートフィードスキャナ内で画像処理される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２３４８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載されているスキャナシステムでは、シートフィードスキャナとフラットベッドスキャナとは専用のプラテンインタフェースによって接続されており、シートフィードスキャナがフラットベッドスキャナを制御する構成を採用している。すなわち、フラットベッドスキャナは、シートフィードスキャナがなければ機能しない構成となっている。つまり、フラットベッドスキャナは、シートフィードスキャナに完全に依存している（特許文献１、段落００３１）。また、スキャナドライバは、シートフィードスキャナのみについて必要とされるものと推測される。なぜなら、フラットベッドスキャナは読取った画像の情報をシートフィードスキャナに渡し、シートフィードスキャナがその情報を画像のデータに変換するからである（特許文献１、段落００３５）。このように、特許文献１に記載されたシステムでは、単一のスキャナドライバのみを用意すればよいものの、シートフィードスキャナは、フラットベッドスキャナの制御機能を備えている必要があり、両者を接続するための専用のインターフェースも必要となってしまう。また、フラットベッドスキャナを単体でＰＣに接続して使用することもできない。
【０００９】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。本発明では、例えば、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【００１０】
本発明の画像読取システムは、例えば、
第１の画像読取装置と、
第２の画像読取装置と、
前記第１の画像読取装置と前記第２の画像読取装置とが並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記第１の画像読取装置を制御するための第１のドライバと、
前記第２の画像読取装置を制御するための第２のドライバと、
前記第１のドライバまたは前記第２のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第１のドライバまたは前記第２のドライバと通信するための第１のドライバインターフェースを備え、
前記第１のドライバおよび前記第２のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第１のドライバは、前記第２のドライバが備えるアプリケーションインタフェースと通信するための第２のドライバインターフェースをさらに備え、
前記情報処理装置は、前記アプリケーションプログラムによって前記第１のドライバを起動した後、前記第１のドライバによって前記第２のドライバを起動することにより、前記第１の画像読取装置と前記第２の画像読取装置とを利用可能な状態とし、
前記情報処理装置は、前記第１の画像読取装置により画像を読取る際には前記第１のドライバを介して前記第１の画像読取装置を制御し、前記第２の画像読取装置により画像を読取る際には前記第１のドライバおよび前記第２のドライバを介して前記第２の画像読取装置を制御することを特徴とする。
【発明の効果】
【００１１】
本発明では、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することができる。具体的には、第１の画像読取装置を第１のドライバにより制御し、第２の画像読取装置を第１のドライバを介して第２のドライバにより制御できるようにしたため、第１のドライバのアンロードや再ロードは不要となる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るシートフィードスキャナの構成を示す図。
【図２】実施形態に係るフラットベッドスキャナの構成を示す図。
【図３Ａ】シートフィードスキャナの電気回路の概略構成を示すブロック図。
【図３Ｂ】フラットベッドスキャナの電気回路の概略構成を示すブロック図。
【図３Ｃ】実施形態に係るＰＣの電気回路の概略構成を示すブロック図。
【図４】ＰＣ上のアプリケーションとスキャナドライバの構成を示す図。
【図５】シートフィードスキャナとフラットベッドスキャナがＰＣへ同時に接続されたときの図。
【図６】ＰＣに複数のスキャナドライバの構成を示す図。
【図７】アプリケーションによって実行されるフラットベッドドライバのロード処理を示したフローチャート図。
【図８】フラットベッドドライバが表示するユーザーインターフェース図。
【図９】白紙検知機能のＯＮ／ＯＦＦを設定するための設定ダイアログ図。
【図１０】自動読取方法の一例を示したフローチャート図。
【図１１】ＰＣに接続された３台以上のスキャナを使用するための共通のユーザーインターフェースの一例を示した図。
【図１２】スキャナ選択用ダイアログの一例を示した図。
【図１３】ユーザーインターフェースの他の例を示した図。
【図１４】画像処理部の搭載位置を説明するためのす図。
【発明を実施するための形態】
【００１３】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１４】
以下では、それぞれ種類（例えば、読取り形式等）の異なる複数の画像読取装置と、これらの画像読取装置が並列または直列に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
【００１５】
なお、画像読取システムには、２種類以上の画像読取装置が少なくとも２台あればよい。すなわち、第１の読取り形式の画像読取装置が１台で、第１の読取り形式の画像読取装置が２台であってもよい。
【００１６】
また、情報処理装置に対する画像読取装置の接続形態も各画像読取装置が独立かつ並列（パラレル）に情報処理装置へ接続されていてもよいし、すべての画像読取装置が直列（シーケンシャル）に接続されていてもよい。あるいは、並列接続形態と直列接続形態とが混在していてもよい。
【００１７】
本実施形態では、画像読取装置を制御する制御プログラムのうちある画像読取装置のドライバが他の画像読取装置のドライバにとってはまるでアプリケーションプログラムであるかのように振舞うことに特徴があるからである。
【００１８】
図１は、実施形態に係るシートフィードスキャナ１の構成を示す図である。シートフィードスキャナ１は、第１の画像読取装置とは種類の異なる第２の画像読取装置の一例である。
【００１９】
なお、シートフィードスキャナは、シートスルー型スキャナと呼ばれることもある。スキャンが開始されると、シートフィードスキャナ１は原稿検知センサ９を用いて原稿Ｄが存在するか否かを判定する。
【００２０】
原稿Ｄが存在していれば、ラインイメージセンサ５が白色の対向部材７を読取り、シートフィードスキャナ１はシェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【００２１】
ピックアップローラ２と給送ローラ３とがシートフィードスキャナ１内に原稿Ｄの束を取り込む。分離ローラ４は束を１枚ずつの原稿に分離する。第１ローラ対８ａは、分離された原稿Ｄを副走査方向（原稿搬送方向）に搬送し、ラインイメージセンサ５は、原稿Ｄの上面に形成されている画像を主走査方向（原稿搬送方向と直交する方向）に沿って読取る。
【００２２】
シートフィードスキャナ１は、メモリから読み出した補正用のデータを用いて読取った画像にシェーディング補正を実行する。画像が読取られた後、原稿Ｄは、第２ローラ対８ｂによって装置外部へ排出される。
【００２３】
なお、本実施形態では、シートの搬送路を略水平としたシートフィードスキャナ１を例示したが、勿論これに限定されず、例えば、給紙部と排紙部とを上下に配置し、給紙部からＵ字形状等にカーブした搬送路を介して排紙部に排出するＵターンパス型スキャナであってもよい。
【００２４】
図２は、実施形態に係るフラットベッドスキャナ１０の構成を示す図である。フラットベッドスキャナ１０は、第１の画像読取装置の一例である。
【００２５】
操作者はフラットベッドカバー１４を開け、ガラス面１１に原稿Ｄを載置する。スキャンが開始されると、フラットベッドスキャナ１０は、ラインイメージセンサ１２で白色の対向部材１５を読取り、シェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【００２６】
ラインイメージセンサ１２は、移動ユニット１３によって副走査方向に移動しながら、原稿Ｄの下面に形成されている画像を主走査方向に沿って読取る。また、フラットベッドスキャナ１０は、メモリから補正データを読み出して、画像にシェーディング補正を実行する。スキャン終了後、ラインイメージセンサ１２は移動ユニット１３によって元の位置に復帰する。
【００２７】
図３Ａは、シートフィードスキャナ１の電気回路の概略構成を示すブロック図である。
【００２８】
Ａ／Ｄ変換部２１は、ラインイメージセンサ５の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ（画像データ）に変換する。
【００２９】
画像処理部２２は、ラインイメージセンサ５およびＡ／Ｄ変換部２１などの制御と、Ａ／Ｄ変換部２１から出力された画像データに各種の画像処理（シェーディング補正等）を実行する。
【００３０】
画像メモリ２３は、画像データを記憶する。インターフェース部２４は、外部ホスト装置（ＰＣまたは他のスキャナ装置）と通信するためのインターフェースである。
【００３１】
インターフェース部２４は、信号ケーブル２５を介してＰＣ等の外部ホスト装置と接続されている。なお、インターフェース部２４は、無線ＬＡＮ、ワイヤレスＵＳＢ、ブルートゥースなどの無線インターフェースであってもよい。また、インターフェース部２４は、ＵＳＢインターフェース、有線ＬＡＮインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部２４は、ＵＳＢハブ機能を備えたＵＳＢインターフェースであるものと仮定する。
【００３２】
ＣＰＵ２６は、シートフィードスキャナ１の制御を司る制御部である。画像処理部２２とＣＰＵ２６とは、バス２７を介して接続されている。ＣＰＵ２６は画像処理部２２を介して画像メモリ２３にアクセスする。
【００３３】
駆動部２９は、ピックアップローラ２、給送ローラ３、分離ローラ４、ローラ対８ａ、８ｂを駆動するためのモータである。モータドライバ２８は、ＣＰＵ２６からの指示に基づいて駆動部２９を制御する制御回路である。
【００３４】
図３Ｂは、フラットベッドスキャナ１０の電気回路の概略構成を示すブロック図である。
【００３５】
Ａ／Ｄ変換部３１は、ラインイメージセンサ１２の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ（画像データ）に変換する。
【００３６】
画像処理部３２は、ラインイメージセンサ１２およびＡ／Ｄ変換部３１などの制御と、Ａ／Ｄ変換部３１から出力された画像データに各種の画像処理（シェーディング補正等）を実行する。
【００３７】
画像メモリ３３は、画像データを記憶する。インターフェース部３４は、外部ホスト装置（ＰＣまたは他のスキャナ装置）と通信するためのインターフェースである。
【００３８】
インターフェース部３４は、信号ケーブル３５を介してＰＣ等の外部ホスト装置と接続されている。なお、インターフェース部３４は、無線ＬＡＮ、ワイヤレスＵＳＢ、ブルートゥースなどの無線インターフェースであってもよい。
【００３９】
また、インターフェース部３４は、ＵＳＢインターフェース、有線ＬＡＮインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部３４は、ＵＳＢハブ機能を備えたＵＳＢインターフェースであるものと仮定する。
【００４０】
ＣＰＵ３６は、フラットベッドスキャナ１０の制御を司る制御部である。画像処理部３２とＣＰＵ３６とは、バス３７を介して接続されている。ＣＰＵ３６は画像処理部３２を介して画像メモリ３３にアクセスする。
【００４１】
駆動部３９は、移動ユニット１３を駆動するためのモータである。モータドライバ３８は、ＣＰＵ３６からの指示に基づいて駆動部３９を制御する制御回路である。
【００４２】
図３Ｃは、実施形態に係るＰＣ４０の電気回路の概略構成を示すブロック図である。
【００４３】
ＣＰＵ４６は、コンピュータプログラムに基づいて、コンピュータの各ユニットを統括的に制御する制御ユニットである。ＣＰＵ４６は、アプリケーションプログラムやスキャナドライバにしたがって、シートフィードスキャナ１やフラットベッドスキャナ１０を制御する。
【００４４】
ＲＯＭ４１は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。ＲＡＭ４２は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ（ＨＤＤ）４３は、大容量の記憶ユニットである。
【００４５】
表示装置４５は、ユーザーに対して各種情報を表示するための表示ユニットである。操作部４７は、ポインティングデバイスやキーボードなどの入力ユニットである。
【００４６】
通信インターフェース４４は、ネットワーク通信カードなどの通信ユニットである。ＣＰＵ４６は、通信インターフェース４４を介してシートフィードスキャナ１やフラットベッドスキャナ１０と通信する。
【００４７】
図４は、ＰＣ４０上のアプリケーションとスキャナドライバの構成を示す図である。ここでは、シートフィードスキャナ１とフラットベッドスキャナ１０とのうちいずれか一方のみが単独でＰＣ４０に接続されているものと仮定する。
【００４８】
ユーザーは、スキャナを購入すると、アプリケーション４８とスキャナドライバ４９をＰＣのＨＤＤ４３にインストールする。アプリケーション４８は、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどである。
【００４９】
なお、アプリケーション４８は、第１のドライバまたは第２のドライバと情報の入出力が可能なプログラムであり、具体的には、第１のドライバまたは第２のドライバから画像のデータを受け取るアプリケーションプログラムの一例である。
【００５０】
インストールされたアプリケーション４８は、スキャナドライバ４９を介してスキャナ１、１０を制御したり、スキャナドライバ４９から受け取った画像データに画像処理を実行したりする。よって、アプリケーション４８およびＣＰＵ４６は、第１の制御手段または第２の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
【００５１】
アプリケーション４８とスキャナドライバ１９との間、スキャナドライバ４９とスキャナ１，１０との間は、それぞれ決められたプロトコルで通信している。本実施形態では、アプリケーション４８とスキャナドライバ４９はＴｗａｉｎ規格で決められたプロトコルで通信を行うものとする。このＴｗａｉｎ規格で決められたプロトコルは、第１のドライバまたは第２のドライバと通信するための第１のドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインタフェースの一例でもある。
【００５２】
また、Ｔｗａｉｎ規格で決められたプロトコルは、画像処理手段が第１の制御手段または第２の制御手段と通信するための第１のインターフェースであり、第１の制御手段が画像処理手段と通信するための第２のインターフェースであり、第１の制御手段が第２の制御手段と通信するための第３のインターフェースであり、そして第２の制御手段が画像処理手段と通信するための第４のインターフェースの一例である。スキャナドライバ４９とスキャナ１、１０との間では、ＳＣＳＩ規格で決められたプロトコルで通信を行っているものと仮定する。このように、ＳＣＳＩ規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。ＳＣＳＩ規格で決められたプロトコルは、しかし、本発明では、これらの以外のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データとが、スキャナ、ドライバおよびアプリケーション間で送受信されることになる。
【００５３】
図５は、シートフィードスキャナ１とフラットベッドスキャナ１０がＰＣ４０へ同時に接続されたときの図である。
【００５４】
図５（Ａ）では、ＰＣ４０にシートフィードスキャナ１とフラットベッドスキャナ１０が並列に接続されている。図５（Ｂ）では、フラットベッドスキャナ１０のインターフェース部３４がハブ機能を備えており、ＰＣ４０→フラットベッドスキャナ１０→シートフィードスキャナ１と数珠繋ぎに（シーケンシャルに）接続されている。どちらの接続状態であっても、ＰＣ４０のＣＰＵ２６は２つのスキャナが接続されているものとして認識する。インターフェース部３４がＵＳＢハブを内蔵していると考えれば、本実施形態を理解しやすいであろう。
【００５５】
図６は、ＰＣ４０に複数のスキャナドライバの構成を示す図である。従来は、図６（Ａ）に示すように、スキャナドライバとスキャナとは１対１で設けられていた。そのため、シートフィードドライバ４９ａとフラットベッドドライバ４９ｂとは完全に独立しており、両者が連携することはなかった。なお、ユーザーは、シートフィードドライバ４９ａとフラットベッドドライバ４９ｂとをＰＣ４０にそれぞれインストールし、使用するスキャナに応じて、スキャナドライバをアプリケーション４８で切り替えなければならなかった。スキャナの切り替え時に、アプリケーション４８は、切り替え前のスキャナドライバのアンロードと、切り替え後のスキャナドライバのロードおよびスキャナの初期化処理を実行する。よって、この処理時間は比較的に長い時間であった。本実施形態によれば、詳細は後述するが、第１のドライバと第２のドライバとの連携により、上述したスキャナドライバのロードおよびスキャナの初期化等の煩雑な処理が不要となるため、図６（Ａ）のような接続においても、シートフィードスキャナとフラットベッドスキャナとの読取動作の制御における処理時間を短縮化することができる。
【００５６】
ここで、シートフィードドライバ４９ａおよびＣＰＵ４６は、第２の画像読取装置を制御するための第２の制御手段として機能する。フラットベッドドライバ４９ｂおよびＣＰＵ４６は、第１の画像読取装置を制御するための第１の制御手段として機能する。
【００５７】
図６（Ｂ）は、本実施形態のスキャナドライバの構成を示している。フラットベッドドライバ４９ｂは、第１の画像読取装置を制御するための第１のドライバの一例である。
【００５８】
シートフィードドライバ４９ａは、第２の画像読取装置を制御するための第２のドライバの一例である。ＣＰＵ４６は、アプリケーション４８を起動すると、まずフラットベッドドライバ４９ｂをＲＡＭ４２へロードする。
【００５９】
さらに、ＣＰＵ４６は、フラットベッドドライバ４９ｂにしたがって、シートフィードドライバ４９ａをＲＡＭ４２へロードする。シートフィードドライバ４９ａにとって、フラットベッドドライバ４９ｂは、あたかもアプリケーション４８と同じ役割を担う。つまり、フラットベッドドライバ４９ｂは、シートフィードドライバ４９ａに対してはアプリケーション４８として振舞うよう、シートフィードドライバ４９ａと通信するためのインターフェースを内包している。
【００６０】
このインターフェースは、上述したＴｗａｉｎ規格で決められたプロトコルであり、第１のドライバが、第２のドライバが備えるアプリケーションインタフェースと通信するための第２のドライバインターフェースの一例である。
【００６１】
なお、シートフィードスキャナ１とフラットベッドスキャナ１０との切り替え（選択）は、アプリケーション４８から起動されるフラットベッドドライバ４９ｂの設定画面において実行される。
【００６２】
アプリケーションプログラム４８は、第１の画像読取装置（フラットベッドスキャナ１０）が読取った画像のデータを、第１のドライバ（フラットベッドドライバ４９ｂ）を介して受け取る。
【００６３】
また、アプリケーションプログラム４８は、第２の画像読取装置（シートフィードスキャナ１）が読取った画像のデータを、第１のドライバおよび第２のドライバ（シートフィードドライバ４９ａ）を介して受け取るように構成されている。
【００６４】
以上のように、フラットベッドドライバ４９ｂとシートフィードドライバ４９ａの両方ともがアプリケーション４８が実行されている間は常にＲＡＭ４２へロードされている。
【００６５】
よって、アプリケーション４８の起動時にフラットベッドドライバ４９ｂとシートフィードドライバ４９ａとが１度だけＲＡＭ４２にロードされるだけで、アプリケーション４８の実行中は、フラットベッドドライバ４９ｂとシートフィードドライバ４９ａのアンロードやリロードは発生しない。したがって、本実施形態によれば、スキャナの切り替え速度は、従来例と比較して格段に速いといえる。
【００６６】
図７は、アプリケーション４８によって実行されるフラットベッドドライバ４９ａのロード処理を示したフローチャートである。ステップＳ７０１で、ＰＣ４０のＣＰＵ４６は、操作部４７からのアプリケーション４８の起動指示を受信すると、ＨＤＤ４３に記憶されているアプリケーション４８をＲＡＭ４２へロードする。これにより、アプリケーション４８が起動する。
【００６７】
Ｓ７０２で、ＣＰＵ４６は、アプリケーション４８にしたがって、フラットベッドドライバ４９ｂをＲＡＭ４２へロードする。このように、第１の画像読取装置と第２の画像読取装置との両方が情報処理装置に接続されているときにアプリケーションプログラムが起動されると、アプリケーションプログラム（ＣＰＵ４６）は、第１のドライバを情報処理装置のメモリへとロードする。
【００６８】
Ｓ７０３で、ＣＰＵ４６は、フラットベッドドライバ４９ｂにしたがって、シートフィードドライバ４９ａがインストールされているかどうかを判定する。このように、ＣＰＵ４６は、第２のドライバが情報処理装置にインストールされているかどうかを判定する判定手段として機能する。
【００６９】
例えば、ＣＰＵ４６は、フラットベッドドライバ４９ｂが対応しているシートフィードドライバのリストを参照し、当該リストに掲載されているシートフィードドライバをＨＤＤ４３から検索する。あるいは、当該シートフィードドライバをＯＳ（オペレーティングシステム）が管理しているレジストリから検索する。シートフィードドライバが検索により発見されれば、シートフィードドライバはインストール済みである。この場合は、Ｓ７０４に進む。なお、シートフィードドライバがインストールされていなければ、ＣＰＵ４６は、シートフィードドライバのロード処理を終了する。
【００７０】
Ｓ７０４で、ＣＰＵ４６は、シートフィードスキャナ１がＰＣ４０と接続されているかどうかを判定する。シートフィードスキャナ１がＰＣ４０と接続されていれば、Ｓ７０５に進む。なお、シートフィードスキャナ１が接続されていなければ、ＣＰＵ４６は、シートフィードドライバのロード処理を終了する。よって、ＣＰＵ４６は、第２のドライバが情報処理装置にインストールされていないときは第２のドライバのロードを実行しないロード手段として機能する。
【００７１】
Ｓ７０５で、ＣＰＵ４６は、フラットベッドドライバ４９ｂにしたがってＨＤＤ４３からシートフィードドライバ４９ａを読出し、ＲＡＭ４２へロードする。このように、第１のドライバは第２のドライバを情報処理装置のメモリへとロードする。すなわち、ＣＰＵ４６は、第２のドライバが情報処理装置にインストールされているときは第２のドライバを情報処理装置のメモリへロードするロード手段として機能する。なお、ＣＰＵ４６は、アプリケーション４８にしたがってフラットベッドドライバ４９ｂをアンロードしたときに、シートフィードドライバ４９ａもアンロードする。
【００７２】
図８は、フラットベッドドライバが表示するユーザーインターフェースの一例を示した図である。ユーザーインターフェース５１はフラットベッドスキャナ１０のみがＰＣ４０に接続されているときにアプリケーション４８によって呼び出されて表示装置４５に表示されるユーザーインターフェースである。
【００７３】
すなわち、ユーザーインターフェース５１はフラットベッドドライバ４９ｂのユーザーインターフェースである。ユーザーインターフェース５１では、カラーモード、読取サイズおよび解像度を設定できる。
【００７４】
ＣＰＵ４６は、スキャンボタン５４の押し下げを検出すると、スキャンの開始をスキャナドライバに指示する。Ｃｌｏｓｅボタン５５の押し下げを検出すると、ＣＰＵ４６は、ユーザーインターフェースを閉じる。
【００７５】
ユーザーインターフェース５２はシートフィードスキャナ１のみがＰＣ４０に接続されているときにアプリケーション４８によって呼び出されて表示装置４５に表示されるユーザーインターフェースである。すなわち、ユーザーインターフェース５２はシートフィードドライバ４９ａのユーザーインターフェースである。なお、ユーザーインターフェース５２には、特殊機能ボタン５６が追加されている。
【００７６】
シートフィードスキャナ１は、フラットベッドスキャナ１０に比べて単位時間あたりに大量の原稿をスキャンできる。そのため、原稿束の中には、ユーザーが誤って白紙原稿を混ぜてしまう場合がある。そういった白紙原稿を見つけ、画像化しない機能（白紙検知機能）をシートフィードスキャナ１は持っている。本実施形態では、ＣＰＵ４６が特殊機能ボタン５６の押し下げを検出すると、白紙検知機能のＯＮ／ＯＦＦを設定するための設定ダイアログ５７を表示装置４５に表示する。
【００７７】
図９は、白紙検知機能のＯＮ／ＯＦＦを設定するための設定ダイアログ５７を示した図である。この設定の初期値はＯＦＦである。
【００７８】
図８の説明に戻る。ユーザーインターフェース５３はフラットベッドスキャナ１０とシートフィードスキャナ１との両方がＰＣ４０に接続されているときに表示されるユーザーインターフェースである。
【００７９】
ＣＰＵ４６は、Ｓ７０５でシートフィードドライバ４９ａのロードに成功すると、フラットベッドドライバ４９ｂにしたがってユーザーインターフェース５３を表示装置４５に表示する。
【００８０】
シートフィードドライバ４９ａのロードに失敗したときは、ユーザーインターフェース５１が表示される。ユーザーインターフェース５１と比較すると、ユーザーインターフェース５３では、読取方法（読取りに使用する画像読取装置）の設定項目が追加されている。
【００８１】
よって、ユーザーは、読取方法の設置項目においてフラットベッドスキャナ１０とシートフィードスキャナ１とを切り替えて使用できる。このように、ＣＰＵ４６や表示装置４５は、第１の画像読取装置と第２の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段として機能する。
【００８２】
ユーザーが設定したカラーモード、解像度、サイズなどの設定情報の保存は、フラットベッドドライバ４９ｂ（ＣＰＵ４６）が行う。そのため、ユーザーがアプリケーション４８でシートフィードドライバ４９ａを直接選択した場合、ユーザーインターフェース５３で設定されたカラーモード、解像度、サイズの内容は、シートフィードドライバ４９ａには適用されない。
【００８３】
つまり、ユーザーがアプリケーション４８で直接的にシートフィードドライバ４９ａを使用するときは、ユーザーインターフェース５３で設定された設定情報が復元されない。設定情報は、ＰＣ４０内の所定の場所（例：レジストリファイル）に保存される。レジストリファイル自身は、ＨＤＤ４３に記憶される。
【００８４】
上述した白紙検知機能については、フラットベッドドライバ４９ｂがシートフィードドライバ４９ａをロードするときに初期化処理を実行するので、ＯＦＦとなる。
【００８５】
解像度の選択項目としてはフラットベッドドライバ４９ｂとシートフィードドライバ４９ａとの両方がサポートしている解像度のみが表示される。フラットベッドドライバ４９ｂ（ＣＰＵ４６）は、シートフィードドライバ４９ａがサポートしている解像度をシートフィードドライバ４９ａから取得し、その中から、フラットベッドドライバ４９ｂもサポートしている解像度のみを抽出する。
【００８６】
このようにして、ユーザーインターフェース５３上で選択可能な解像度が決定される。サイズ、カラーモードに関しても同様の抽出処理が実行されてもよい。これにより、シートフィードドライバ４９ａとフラットベッドドライバ４９ｂとが共通して採用しているサイズ、カラーモードだけを抽出して、ユーザーインターフェース５３に反映させることができる。
【００８７】
このように、ＣＰＵ４６は、第１の画像読取装置が対応している機能と第２の画像読取装置が対応している機能とを比較し、第１の画像読取装置と第２の画像読取装置とに共通している機能を抽出する手段として機能する。また、ＣＰＵ４６および表示装置４５は、抽出された機能の設定項目をユーザーインターフェースに表示する表示手段として機能する。
【００８８】
図１０は、自動読取方法の一例を示したフローチャートである。図８に示したユーザーインターフェース５３は、読取方法の選択項目として「自動」を有している。ユーザーが読取方法（自動）を選択したこと、および、スキャンボタン５４を押し下げたことを検出すると、ＣＰＵ４６は、スキャンを開始する。
【００８９】
Ｓ１００１で、ＣＰＵ４６は、シートフィードスキャナ１に原稿が載置されているかどうかを判定する。例えば、ＣＰＵ４６は、フラットベッドドライバ４９ｂを介してシートフィードドライバ４９ａにシートフィードスキャナ１に原稿が載置されているかどうかを問い合せる。
【００９０】
シートフィードドライバ４９ａ（ＣＰＵ４６）は、原稿検知センサ９の検知情報を取得し、原稿の有無をフラットベッドドライバ４９ｂに伝える。原稿がシートフィードスキャナ１の原稿台に載置されていれば、Ｓ１００２に進む。
【００９１】
Ｓ１００２で、ＣＰＵ４６は、フラットベッドドライバ４９ｂを介してシートフィードドライバ４９ａにスキャン開始コマンドを送信する。なお、ユーザーインターフェース５３において、フラットベッドスキャナ１０が選択されたときは、ＣＰＵ４６は、画像の読取開始コマンドをフラットベッドスキャナ１０（第１の画像読取装置）に送信する第１の送信手段として機能する。
【００９２】
シートフィードドライバ４９ａは、スキャン開始コマンドを受信すると、シートフィードスキャナ１のＣＰＵ２６にスキャン開始コマンドを転送する。このように、ＣＰＵ４６は、ユーザーインターフェース５３を通じてシートフィードスキャナ１（第２の画像読取装置）が選択されると、スキャン開始コマンド（画像の読取開始コマンド）を第２の画像読取装置に送信する第２の送信手段として機能する。
【００９３】
シートフィードスキャナ１のＣＰＵ２６は、スキャン開始コマンドを受信すると、スキャン処理を開始する。ＣＰＵ２６は、ラインイメージセンサ５および画像処理部２２を制御して画像データを生成し、シートフィードドライバ４９ａへ画像データを転送する。シートフィードドライバ４９ａは、画像データをフラットベッドドライバ４９ｂに転送する。
【００９４】
このように、シートフィードドライバ４９ａは、第２の画像読取装置から転送されてきた画像のデータを第１のドライバへ受け渡す手段としてＣＰＵ４６を機能させている。さらに、フラットベッドドライバ４９ｂは画像データをアプリケーション４８に転送する。よって、フラットベッドドライバ４９ｂは、第２のドライバから受け渡された画像のデータをアプリケーションプログラムへ受け渡す手段としてＣＰＵ４６を機能させている。
【００９５】
一方、シートフィードスキャナ１に原稿が載置されていなければ、Ｓ１００３に進む。Ｓ１００３でＣＰＵ４６は、フラットベッドドライバ４９ｂにスキャン開始コマンドを送信する。
【００９６】
フラットベッドドライバ４９ｂは、スキャン開始コマンドを受信すると、フラットベッドスキャナ１０のＣＰＵ３６にスキャン開始コマンドを転送する。フラットベッドスキャナ１０のＣＰＵ３６は、スキャン開始コマンドを受信すると、スキャン処理を開始する。
【００９７】
ＣＰＵ３６は、ラインイメージセンサ１２および画像処理部３２を制御して画像データを生成し、フラットベッドドライバ４９ｂへ画像データを転送する。フラットベッドドライバ４９ｂは、画像データをアプリケーション４８に転送する。
【００９８】
なお、白紙検知機能がＯＮに設定されている場合、フラットベッドドライバ４９ｂまたはシートフィードドライバ４９ａ白紙検知機能は、原稿画像内を調べ、白紙かどうかを判定する。白紙であれば画像データを破棄する。例えば、ＣＰＵ４６または画像処理部２２、３２は、画像を２値画像へ変換する。次に２値画像変換した画像内の黒画素数を数え、その数が画像全体の２割以下のときに、原稿画像を白紙と判定する。
【００９９】
次にＰＣ４０から、シートフィードスキャナ１にフラットベッドスキャナ１０を介して、どのようにしてコマンドがやり取りされるかについてさらに詳細に説明する。本実施形態では、フラットベッドスキャナ１０はＵＳＢハブを備えている。そのため、図５（Ｂ）が示すように、ＰＣ４０とシートフィードスキャナ１との間にフラットベッドスキャナ１０が介在していても、ＰＣ４０から直接的にシートフィードスキャナ１にコマンドを送信することができる。つまりＰＣ４０のＣＰＵ４６にとって、図５（Ａ）の接続形態も図５（Ｂ）の接続形態もＵＳＢレベルにおいて違いはないからである。このように、シートフィードスキャナ１とフラットベッドスキャナ１０とはスキャナ読取処理に関して独立している。
【０１００】
すなわち、シートフィードスキャナ１にとってフラットベッドスキャナ１０はＰＣ４０への信号とＰＣ４０からの信号との中継点に過ぎない。フラットベッドスキャナ１０のＣＰＵ３６や画像処理部３２も、シートフィードスキャナ１の信号の中継に関与しない。これは、シートフィードドライバ４９ａがフラットベッドドライバ４９ｂに依存していることと比較すると、対照的といえよう。
【０１０１】
次に、フラットベッドドライバ４９ｂがＣＰＵ４６と協働して実行するコマンド解析処理について説明する。
【０１０２】
シートフィードスキャナ１とフラットベッドスキャナ１０とが同時にＰＣ４０に接続されている状態でアプリケーション４８からシートフィードドライバ４９ａにコマンドを送るときは、フラットベッドドライバ４９ｂを経由する。
【０１０３】
そのため、フラットベッドドライバ４９ｂは、アプリケーション４８からのコマンドを解析し、解析結果にしたがってフラットベッドスキャナ１０とシートフィードスキャナ１の制御を行う。
【０１０４】
フラットベッドスキャナ１０とシートフィードスキャナ１のどちらを制御するかは、ユーザーインターフェース５３の設定に依存している。ユーザーインターフェース５３において読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ４９ｂはアプリケーション４８からのコマンドを受信し、フラットベッドスキャナ１０を制御する。
【０１０５】
また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ４９ｂは、アプリケーション４８からのコマンドをシートフィードドライバ４９ａにそのまま転送する。
【０１０６】
シートフィードドライバ４９ａは、フラットベッドドライバ４９ｂを介してアプリケーション４８からのコマンドを受信し、シートフィードスキャナ１を制御する。
【０１０７】
読取方法として「自動」が選択されているときは、原稿がシートフィードスキャナ１にセットされているかどうかに応じて、一方のスキャナ装置を選択する。コマンドの送受信方法は、選択されたスキャナ装置に応じた送受信方法が選択されることになる。
【０１０８】
次に、スキャン画像（画像データ）がスキャナからスキャナドライバを介してアプリケーション４８に渡るまでの処理について説明する。読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ４９ｂが、フラットベッドスキャナ１０を制御し、画像を取得し、アプリケーション４８にスキャン画像を渡す。また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ４９ｂが、シートフィードドライバ４９ａから画像を取得し、そのままアプリケーション４８に渡す。
【０１０９】
以上、本実施形態によれば、シートフィードスキャナ１とフラットベッドスキャナ１０とが同時にＰＣ４０に接続されているときは、ユーザーは、フラットベッドドライバ４９ｂを介して２つのスキャナを使用することができる。よって、ユーザーは、一度、アプリケーション４８においてフラットベッドドライバ４９ｂを選択すれば、使用するスキャナを切り替えるためにドライバの再選択は必要がない。
【０１１０】
すなわち、従来必要であったフラットベッドドライバ４９ｂのアンロードとシートフィードドライバ４９ａのロードは省略できる。これは、アプリケーション４８の起動時にフラットベッドドライバ４９ｂがシートフィードドライバ４９ａをＲＡＭ４２へすでにロードしているためである。よって、スキャナドライバの切り替えに伴って必要であったアンロードおよびロードに伴う処理時間が不要となる。頻繁にシートフィードスキャナ１とフラットベッドスキャナ１０とを切り替えるような使用環境では、本実施形態の効果は高い。
【０１１１】
また、フラットベッドドライバ４９ｂは、アプリケーションプログラムとしてシートフィードドライバ４９ａと通信するためのプロトコル（例：Ｔｗａｉｎ）に対応しているため、シートフィードドライバ４９ａにとってはフラットベッドドライバ４９ｂがアプリケーションとして見える。
【０１１２】
よって、フラットベッドスキャナ１０をすでに所有しているユーザーが新しくシートフィードスキャナ１を追加購入しても、フラットベッドドライバ４９ｂを介してフラットベッドスキャナ１０と新しいシートフィードスキャナ１との両方を使うことができる。
【０１１３】
また、メーカーにとっては、フラットベッドドライバ４９ｂを新製品のシートフィードスキャナ１に対応させるためのバージョンアップを行う必要はない。フラットベッドドライバ４９ｂは、シートフィードドライバ４９ａと通信するためのプロトコルをすでに備えているからである。
【０１１４】
本実施形態では、フラットベッドドライバ４９ｂを介してシートフィードドライバ４９ａを使用したが、シートフィードドライバ４９ａを介してフラットベッドドライバ４９ｂを使用できるように構成してもよい。この場合は、上述の説明において、フラットベッドドライバ４９ｂとシートフィードドライバ４９ａとを読み替えるとともに、フラットベッドスキャナ１０とシートフィードスキャナ１とを読み替えればよい。
【０１１５】
図１１は、ＰＣ４０に接続された３台以上のスキャナを使用するための共通のユーザーインターフェース１１０１の一例を示した図である。ＰＣ４０に接続できるスキャナの台数は３台以上であってもよい。
【０１１６】
この場合のユーザーインターフェース１１０１に、スキャナを選択するためのコンボボックスが追加されることになる。コンボボックスには、選択可能なスキャナの名称が列挙されることになる。なお、図１１に示したユーザーインターフェース１１０１は、１台のフラットベッドスキャナと、４つのシートフィードスキャナとが接続されているときのユーザーインターフェースの一例である。
【０１１７】
図１２は、スキャナ選択用ダイアログの一例を示した図である。上述したコンボボックスに代えて、図１２に示したスキャナ選択用ダイアログ１２０１が採用されてもよい。ユーザーがスキャナ選択用ダイアログ１２０１から所望の一つを選択すると、選択されたスキャナに対応したスキャナドライバがＲＡＭ４２へロードされる。ＲＡＭ４２へのスキャナドライバのロードは１度限りでよいことは上述した通りである。
【０１１８】
読取方法として「自動」が選択されているときは、ＣＰＵ４６は、スキャナドライバを通じて、ＰＣ４０に接続されているすべてのシートフィードスキャナの原稿台を調査し、原稿が載置されているシートフィードスキャナのみにスキャン開始コマンドを送信するようにしてもよい。
【０１１９】
図１３は、ユーザーインターフェースの他の例を示した図である。上記の実施形態では、フラットベッドドライバ４９ｂが、フラットベッドスキャナ１０とシートフィードスキャナ１とで共通にサポートしている機能についての選択項目のみをユーザーインターフェースに表示している。
【０１２０】
図１３が示すように、ユーザーインターフェース１３０１には、両者に共通でない選択項目が表示されてもよい。例えば、フラットベッドスキャナ１０が解像度１２００ｄｐｉをサポートしており、シートフィードスキャナ１ではこれをサポートしていないものとする。
【０１２１】
さらに、シートフィードスキャナ１は白紙検知機能をサポートおり、フラットベッドスキャナ１０もこれをサポートしているものと仮定する。この場合、読取方法として「フィーダー」が選択されると、ＣＰＵ４６は、解像度１２００ｄｐｉはグレーアウト表示に切り替えることで、解像度１２００ｄｐｉを無効としてもよい。
【０１２２】
このように、ＣＰＵ４６は、抽出されなかった機能の設定項目をユーザーインターフェースで操作不可能となるように表示装置４５に表示する手段として機能する。一方、フラットベッドが選択されると、ＣＰＵ４６は、解像度１２００ｄｐｉについてグレーアウト表示から有効表示に切り替える。
【０１２３】
よって、ＣＰＵ４６は、ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じてユーザーインターフェースにおける操作可能項目を変更する変更手段として機能する。
【０１２４】
上述したように、ユーザーが特殊機能ボタン５６を押すと、ＣＰＵ４６は、図９に示した設定ダイアログ５７を表示する。設定ダイアログ５７は、フラットベッドドライバ４９ｂがシートフィードドライバ４９ａの設定ダイアログを呼び出して表示装置４５に表示したものである。
【０１２５】
よって、ＣＰＵ４６は、ユーザーが読取方法をフィーダーに設定したときに特殊機能ボタン５６を選択可能なように表示する。一方、そうでないときは、ＣＰＵ４６は、特殊機能ボタン５６を無効とすべく、グレーアウト表示に切り替える。
【０１２６】
本実施形態では、フラットベッドスキャナ１０にシートフィードスキャナ１を接続し、フラットベッドドライバ４９ｂでシートフィードドライバ４９ａを制御するものと仮定して説明した。しかし、シートフィードスキャナ１にフラットベッドスキャナ１０を接続し、シートフィードドライバ４９ａでフラットベッドドライバ４９ｂを制御してもよい。また、スキャナの組み合わせは、フラットベッドスキャナ１０、シートフィードスキャナ１に限定されるものではない。すなわち、種類の異なる複数の画像読取装置をＰＣ４０に接続するときも本実施形態に係る発明を適用できる。
【０１２７】
図１４は、画像処理部の搭載位置を説明するためのす図である。上記の実施形態では、図１４（Ａ）が示すように、フラットベッドスキャナ１０とシートフィードスキャナ１とがそれぞれ画像処理部を備えており、画像処理部は共通化されてはいない。しかし、図１４（Ｂ）が示すように、フラットベッドドライバ４９ｂとシートフィードドライバ４９ａとのそれぞれが画像処理部を備えてもよい。
【０１２８】
以上説明したように、本実施形態によれば、第１の画像読取装置を第１のドライバにより制御し、第２の画像読取装置を第１のドライバを介して第２のドライバにより制御できるようにしたため、第１のドライバをアンロードしたり、再ロードしたりする時間を省略できる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【０１２９】
例えば、読取り形式の異なる複数の画像読取装置がＰＣ（情報処理装置）に接続されているときにアプリケーションプログラム４８が起動されると、アプリケーションプログラム４８は第１のドライバを情報処理装置のメモリへとロードする。さらに、第１のドライバは第２のドライバを情報処理装置のメモリへとロードする。よって、ユーザーインターフェース５３などにおいて使用すべきスキャナを切り替えたとしても、ドライバのアンロード、ロードおよび初期化処理は発生しない。すなわち、スキャナドライバの切り替えに必要となる切り替え時間を従来よりも短縮できる。
【０１３０】
また、第２の画像読取装置が読取った画像のデータを第１のドライバおよび第２のドライバを介してアプリケーションプログラムが受け取るように、第１のドライバを構成したことで、第２の画像読取装置用の第２のドライバについては変更することなく、本発明を適用できる。
【０１３１】
すなわち、第２のドライバについての更新やバージョンアップの手間を省くことができる。また、第２のドライバがインストールされていれば当該第２のドライバをメモリにロードし、第２のドライバがインストールされていなければ当該第２のドライバをロードしないように第１のドライバを構成している。すなわち、第２のドライバのロード処理はアプリケーションプログラムではなく第１のドライバが担当している。
【０１３２】
また、第１のドライバが提供するユーザーインターフェース上で画像読取装置を切り替えるようにしているため、画像読取装置の切り替えに伴うドライバのアンロード、ロードおよび初期化処理は必要がない。なお、第２の画像読取装置が選択されたときは第１のドライバがアプリケーションプログラムのように振舞って第２のドライバへコマンドを渡す。それ故、第２のドライバは、本発明を適用する上での特別な更新や改変は必要がない。
【０１３３】
また、第１のドライバのユーザーインターフェースでは、第１の画像読取装置と第２の画像読取装置とで共通している機能についてその設定項目が設けられている。よって、どの画像読取装置が選択されても、読取り処理に反映することが不可能な設定を操作者が行ってしまうことを防止できる。
【０１３４】
なお、共通していない設定項目については、ユーザーインターフェースから消去してしまったり、操作不可能なようにグレーアウト表示したりしてもよい。グレーアウト表示された設定項目は、操作者により選択されなかった他の画像読取装置では設定可能な項目であることを操作者に示唆することができる。
【０１３５】
また、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて、ユーザーインターフェースにおける操作可能な設定項目を変更してもよい。この場合は、複数の画像読取装置に共通しているものだけでなく、選択された画像読取装置で設定可能な設定項目をすべて表示することができる。よって、操作者は選択した画像読取装置が備えるすべての機能を使用することができる。
【０１３６】
さらに、シートスルー型スキャナのドライバと通信可能なフラットベッド型スキャナのドライバを用いることにより、例えば、情報処理装置（ＰＣ）からの読取指示信号をシートスルー型スキャナに伝達することができる。逆に、情報処理装置は、シートスルー型スキャナでの読取画像をシートスルー型スキャナのドライバからフラットベッド型スキャナのドライバを経由して取得することができる。これにより、フラットベッド型スキャナを情報処理装置と既存のシートスルー型スキャナとの間に接続することが可能となる。すなわち、フラットベッドスキャナに複数の接続部を設けるだけで、情報処理装置にフラットベッド型スキャナを接続すると共にフラットベッド型スキャナに既存のシートスルー型スキャナを接続することができる。
【０１３７】
その結果、ユーザーは、フラットベッド型スキャナを導入するだけで、情報処理装置の操作に基づいて、フラットベッド型スキャナとシートスルー型スキャナとを１つのスキャナユニットとして容易に使い分けすることができる。また、シートスルー型スキャナを保有するユーザーは、既存のシートスルー型スキャナを改良（改造）することなく、フラットベッド型スキャナを追加利用することができる。
【０１３８】
なお、上述した本実施形態では、異なる種類の画像読取装置に基づいて説明したが、ここでいう異なる種類の画像読取装置とは、読み取り形式に限定されず、例えば、略同一の読み取り形式の読取装置であってもよいし、読取の原稿サイズ（Ａ４以下の対応機種と、Ａ３以下の対応機種等）が違う装置、スペック（性能）違いの装置、あるいは型式違いの装置等を含み、上述した実施形態に限定されるものではない。
【符号の説明】
【０１３９】
１…シートフィードスキャナ
２…ピックアップローラ
３…搬送ローラ
４…分離ローラ
５…ラインイメージセンサ
７…対向面
８ａ…第１ローラ対
８ｂ…第１ローラ対
９…原稿検知センサ
１０…フラットベッドスキャナ１０
１１…ガラス
１２…ラインイメージセンサ
１３…移動ユニット
１４…スキャナカバー
１５…対向面
２１…Ａ／Ｄ変換部
２２…画像処理部
２３…メモリ
２４…インターフェース部
２５…信号ケーブル
２６…ＣＰＵ
２７…バス
２８…モータドライバ
２９…駆動部
４０…ＰＣ
４８…アプリケーション
４９…スキャナドライバ
５１…ユーザーインターフェース
５２…ユーザーインターフェース
５３…ユーザーインターフェース
【図１】
0005395237.tif 000002
【図２】
0005395237.tif 000003
【図３Ａ】
0005395237.tif 000004
【図３Ｂ】
0005395237.tif 000005
【図３Ｃ】
0005395237.tif 000006
【図４】
0005395237.tif 000007
【図５】
0005395237.tif 000008
【図６】
0005395237.tif 000009
【図７】
0005395237.tif 000010
【図８】
0005395237.tif 000011
【図９】
0005395237.tif 000012
【図１０】
0005395237.tif 000013
【図１１】
0005395237.tif 000014
【図１２】
0005395237.tif 000015
【図１３】
0005395237.tif 000016
【図１４】
0005395237.tif 000017