(57)【要約】      （修正有）【課題】情報処理装置に適切なスレッド数で画像処理を実行させることができる技術を提供する。【解決手段】情報処理装置のスキャナドライバは、スレッド数設定処理のＳ２１にて、画像処理のスレッドの数の上限である上限スレッド数を論理コア数に設定し、Ｓ２９にて搬送速度が遅いモデルと判断した場合、また、Ｓ３１にてネットワークＩ／Ｆの種類が無線ＬＡＮであると判断した場合、Ｓ３５にて上限スレッド数を１に設定する。第１処理では、上限スレッド数を上限として画像処理のスレッドが起動されるので、ＰＣに適切なスレッド数で画像処理を実行させることができる。【選択図】図４
2019140593.tif 000002
【特許請求の範囲】
【請求項１】
読取装置と通信可能な通信インタフェースと、第１記憶部と、制御部とを備える情報処理装置で読み取り可能なプログラムであって、
前記制御部に、
前記通信インタフェースを介して、前記読取装置に読取指示を送信する送信処理と、
前記読取指示に従って前記読取装置が原稿を読み取って生成した読取データを受信する第１受信処理と、
前記第１受信処理にて受信された原稿１ページ分の前記読取データをアプリケーションプログラムが使用可能な画像データに変換する画像処理と、
連続して送信される前記原稿１ページ分の前記読取データの受信間隔の長短の指標となる受信間隔情報を、前記通信インタフェースを介して前記読取装置から受信する第２受信処理と、
前記第２受信処理にて受信した前記受信間隔情報が第１の情報である場合に、スレッドの上限数を第１の値に設定し、当該受信間隔情報が前記第１の情報が指標する前記受信間隔よりも前記受信間隔が長いことを指標する第２の情報である場合に、前記スレッドの上限数を前記第１の値よりも小さい第２の値に設定する第１設定処理と、
前記第１受信処理にて前記原稿１ページ分の前記読取データが受信されると、前記第１設定処理にて設定された前記スレッドの上限数を上限として、前記第１記憶部を使用して前記画像処理を実行するスレッドを起動する起動処理と、
を実行させることを特徴とするプログラム。
【請求項２】
前記第１設定処理は、
前記制御部の処理能力に基づき前記第１の値を設定し、
前記第１の値が２より大きい場合、前記第２の値を前記第１の値よりも小さい値に設定し、
前記第１の値が２以下である場合、前記第２の値を１に設定することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記受信間隔情報は、前記読取装置の機種名を含み、
前記第１設定処理は、
前記機種名が前記第１の情報である場合に、前記スレッドの上限数を前記第１の値に設定し、前記機種名が前記第２の情報である場合に、前記スレッドの上限数を前記第２の値に設定することを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記受信間隔情報は、前記通信インタフェースの種類を含み、
前記第１設定処理は、
前記通信インタフェースの種類が前記第１の情報である場合に、前記スレッドの上限数を前記第１の値に設定し、前記通信インタフェースの種類が前記第２の情報である場合に、前記スレッドの上限数を前記第２の値に設定することを特徴とする請求項１または２に記載のプログラム。
【請求項５】
前記制御部に、
前記原稿の原稿サイズおよび前記読取装置が前記原稿を読み取る際の解像度の少なくとも何れか一方を受け付ける受付処理を実行させ、
前記第１設定処理は、
前記受付処理にて前記原稿サイズが受け付けられ、当該原稿サイズが基準サイズ以上である場合、および、前記受付処理にて前記解像度が受け付けられ、当該解像度が解像度基準値より大きい場合の少なくとも何れか一方に該当する場合、前記第１設定処理にて設定された前記スレッドの上限数を前記第２の値とすることを特徴とする請求項１から４の何れかに記載のプログラム。
【請求項６】
前記情報処理装置は、第２記憶部を備え、
前記制御部に、
前記第１受信処理にて前記原稿１ページ分の前記読取データが受信されると、実行中のスレッドの数が前記スレッドの上限数より小さいか否かを判断する第１判断処理と、
前記第１判断処理にて前記スレッドの上限数より小さいと判断された場合、前記起動処理と、
前記第１判断処理にて前記スレッドの上限数よりも大きいと判断された場合、前記第１受信処理にて受信された前記原稿１ページ分の前記読取データをファイルとして前記第２記憶部に記憶させる記憶処理と、
を実行させることを特徴とする請求項１から５の何れかに記載のプログラム。
【請求項７】
前記制御部に、
前記第２記憶部に記憶されている１つ以上の前記読取データのファイルの容量の総量はデータ量基準値以下であるか否かを判断する第２判断処理と、
前記第２判断処理にて前記データ量基準値以下でないと判断された場合、前記スレッドの上限数に設定されている値をより大きい値に変更する第２設定処理と、
を実行させることを特徴とする請求項６に記載のプログラム。
【請求項８】
読取装置と通信可能な通信インタフェースと、
第１記憶部と、
制御部と、を備え、
前記制御部は、
前記通信インタフェースを介して、前記読取装置に読取指示を送信する送信処理と、
前記読取指示に従って前記読取装置が原稿を読み取って生成した読取データを受信する第１受信処理と、
前記第１受信処理にて受信された原稿１ページ分の前記読取データをアプリケーションプログラムが使用可能な画像データに変換する画像処理と、
連続して送信される前記原稿１ページ分の前記読取データの受信間隔の長短の指標となる受信間隔情報を、前記通信インタフェースを介して前記読取装置から受信する第２受信処理と、
前記第２受信処理にて受信した前記受信間隔情報が第１の情報である場合に、スレッドの上限数を第１の値に設定し、当該受信間隔情報が前記第１の情報が指標する前記受信間隔よりも前記受信間隔が長いことを指標する第２の情報である場合に、前記スレッドの上限数を前記第１の値よりも小さい第２の値に設定する第１設定処理と、
前記第１受信処理にて前記原稿１ページ分の前記読取データが受信されると、前記第１設定処理にて設定された前記スレッドの上限数を上限として、前記第１記憶部を使用して前記画像処理を実行するスレッドを起動する起動処理と、
を実行することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムおよび情報処理装置に関するものである。
【背景技術】
【０００２】
従来、読取装置が原稿を読み取って生成した読取データを情報処理装置が受信して、受信した読取データに対して情報処理装置が画像処理を行う技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−９３５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、読取装置にて複数枚の原稿が読み取られる場合には、情報処理装置には、次々と、読取データが送信される。これらの読取データについては、例えば、１ページ分の読取データの画像処理を行うスレッドを複数起動し、並行して画像処理を行うことが考えられる。この場合、スレッド数が多いほど画像処理を早期に完了することができる一方、１つのスレッドについて少なくとも１ページの読取データを画像処理するだけのメモリ領域を確保する必要があるため、情報処理装置のメモリに負荷がかかってしまう。したがって、スレッド数を適切な値に制御することが必要であった。
【０００５】
本願は、上記の課題に鑑み提案されたものであって、情報処理装置に適切なスレッド数で画像処理を実行させることができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書は、読取装置と通信可能な通信インタフェースと、第１記憶部と、制御部とを備える情報処理装置で読み取り可能なプログラムであって、制御部に、通信インタフェースを介して、読取装置に読取指示を送信する送信処理と、読取指示に従って読取装置が原稿を読み取って生成した読取データを受信する第１受信処理と、第１受信処理にて受信された原稿１ページ分の読取データをアプリケーションプログラムが使用可能な画像データに変換する画像処理と、連続して送信される原稿１ページ分の読取データの受信間隔の長短の指標となる受信間隔情報を、通信インタフェースを介して読取装置から受信する第２受信処理と、第２受信処理にて受信した受信間隔情報が第１の情報である場合に、スレッドの上限数を第１の値に設定し、当該受信間隔情報が第１の情報が指標する受信間隔よりも受信間隔が長いことを指標する第２の情報である場合に、スレッドの上限数を第１の値よりも小さい第２の値に設定する第１設定処理と、第１受信処理にて原稿１ページ分の読取データが受信されると、第１設定処理にて設定されたスレッドの上限数を上限として、第１記憶部を使用して画像処理を実行するスレッドを起動する起動処理と、を実行させることを特徴とするプログラムを開示する。
【０００７】
また、本明細書は、読取装置と通信可能な通信インタフェースと、第１記憶部と、制御部と、を備え、制御部は、通信インタフェースを介して、読取装置に読取指示を送信する送信処理と、読取指示に従って読取装置が原稿を読み取って生成した読取データを受信する第１受信処理と、第１受信処理にて受信された原稿１ページ分の読取データをアプリケーションプログラムが使用可能な画像データに変換する画像処理と、連続して送信される原稿１ページ分の読取データの受信間隔の長短の指標となる受信間隔情報を、通信インタフェースを介して読取装置から受信する第２受信処理と、第２受信処理にて受信した受信間隔情報が第１の情報である場合に、スレッドの上限数を第１の値に設定し、当該受信間隔情報が第１の情報が指標する受信間隔よりも受信間隔が長いことを指標する第２の情報である場合に、スレッドの上限数を第１の値よりも小さい第２の値に設定する第１設定処理と、第１受信処理にて原稿１ページ分の読取データが受信されると、第１設定処理にて設定されたスレッドの上限数を上限として、第１記憶部を使用して画像処理を実行するスレッドを起動する起動処理と、を実行することを特徴とする情報処理装置を開示する。
【発明の効果】
【０００８】
本願に係る技術によれば、連続して送信される１ページ分の読取データの受信間隔を示す受信間隔情報に基づいて、スレッド数は第１の値もしくは第２の値に制限されるので、情報処理装置に適切なスレッド数で画像処理を実行させることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るスキャンシステムのブロック図である。
【図２】スキャンシーケンスの前半のシーケンス図である。
【図３】スキャンシーケンスの後半のシーケンス図である。
【図４】スレッド数設定処理のフローチャートである。
【図５】第１処理のフローチャートである。
【図６】第２処理のフローチャートである。
【発明を実施するための形態】
【００１０】
（スキャンシステムの構成）
図１に、本願に係る実施形態として例示されるスキャンシステム１のブロック図を示す。スキャンシステム１は、ＰＣ１０およびスキャナ５０を備える。
【００１１】
ＰＣ１０は、ＣＰＵ１２、メインメモリ１３、補助記憶装置１４、ディスプレイＩ／Ｆ１５、ＬＣＤ１６、入力Ｉ／Ｆ１８、およびネットワークＩ／Ｆ２０などを備えている。これらの構成要素は、バス２２を介して互いに通信可能とされている。
【００１２】
ＣＰＵ１２は、補助記憶装置１４内のアプリケーションプログラム２６、スキャナドライバ２８、オペレーティングシステム（以下、「ＯＳ」と略す）３２をメインメモリ１３に展開して各処理を実行する。補助記憶装置１４は、例えば、ＨＤＤ（Hard Disk Drive）、ＳＤＤ（Solid State Drive）などで実現される。アプリケーションプログラム２６は、例えば、スキャナ５０でスキャンされたスキャンデータに対して、公知のＯＣＲ技術で利用される文字認識処理を実行するためのプログラムであり、具体的には、Ａｄｏｂｅ  Ｐｈｏｔｏｓｈｏｐ（登録商標）などの画像編集ソフトである。
【００１３】
スキャナドライバ２８は、スキャナ５０のデバイスドライバであり、スキャナ５０と例えばアプリケーションプログラム２６、ＯＳ３２などとのデータの送受信を仲介する。ＯＳ３２は、アプリケーションプログラム２６、スキャナドライバ２８に利用される基本的な機能をＡＰＩなどにより提供するプログラムである。尚、ここでは、アプリケーションプログラム２６およびスキャナドライバ２８はＴＷＡＩＮ（Tool Without An Interesting Name）に対応しており、命令等の送受信はＴＷＡＩＮを用いて行われるものとする。尚、使用される規格は、ＴＷＡＩＮに限定されず、ＷＩＡ（Windows Imaging Acquisition）でも良い。また、以下の説明では、アプリケーションプログラム２６等を実行するＣＰＵ１２のことを、単にプログラム名でも記載する場合がある。例えば、「アプリケーションプログラム２６が」という記載は、「アプリケーションプログラム２６を実行するＣＰＵ１２が」ということを意味する場合がある。
【００１４】
補助記憶装置１４は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述するスキャナ５０の記憶部５７についても同様である。
【００１５】
ＬＣＤ１６は、ＰＣ１０の各種情報を表示する。ＬＣＤ１６は、ディスプレイＩ／Ｆ１５を介してバス２２に接続されている。ＬＣＤ１６は、ディスプレイＩ／Ｆ１５を介して表示データを取得する。入力Ｉ／Ｆ１８は、キーボード、マウス等を含み、ユーザ操作を入力するためのインタフェースである。尚、入力Ｉ／Ｆ１８は、キーボード等に限らず、ＬＣＤ１６の表示画面に重畳された膜状のタッチセンサでも良い。ネットワークＩ／Ｆ２０は、ネットワーク４０を介して、スキャナ５０のネットワークＩ／Ｆ５１に接続されている。尚、ネットワークＩ／Ｆ２０は、有線ＬＡＮ、無線ＬＡＮ、ＵＳＢケーブルなどによる通信が可能となっている。
【００１６】
スキャナ５０は、原稿に印刷された画像を読み取ってスキャンデータを生成する装置である。スキャナ５０は、ネットワークＩ／Ｆ５１、ＣＰＵ５２、ディスプレイＩ／Ｆ５３、ＬＣＤ５４、入力Ｉ／Ｆ５５、記憶部５７、ＡＤＦ（Auto Document Feeder）６１、搬送部６２、および読取部６３等を備えている。これらの構成要素は、バス５６を介して互いに通信可能とされている。また、スキャナ５０は不図示の筐体、挿入口、排紙口、搬送経路、給紙トレイを有する。挿入口および排紙口は、筐体に設けられた開口であり、挿入口と排出口とを結ぶ搬送経路が筐体内部に設けられている。給紙トレイは、挿入口に配設されており、複数枚の原稿を支持することができる。以下の説明において、スキャナ５０が原稿に印刷された画像を読み取ってスキャンデータを生成することをスキャンと記載する場合がある。
【００１７】
ＣＰＵ５２は、記憶部５７に記憶されているスキャナプログラム５８に従って処理を実行する。スキャナプログラム５８は、スキャナ５０を統括的に制御するプログラムである。記憶部５７は、メインメモリとして機能する揮発性メモリ、補助記憶装置として機能する不揮発性メモリなどが組み合わされて構成されている。また、記憶部５７には、デバイス能力５９が記憶されている。デバイス能力５９は、スキャナ５０が有する機能などの情報であり、スキャナ５０のモデル名、搬送部６２の搬送速度、読取部６３がカラーでの読み取りが可能か否か、読取部６３が読み取り可能な解像度、および読取部６３が読み取り可能な用紙サイズなどである。尚、搬送速度は、例えば、１分間当たりに搬送される原稿の枚数で規定される。ここでは、スキャナ５０は、モノクロおよびカラーでの読み取りが可能であり、搬送方向のサイズが所定サイズより大きい長尺サイズの読み取りが可能であるものとする。従って、用紙サイズには例えばＡ４などの規格されたサイズの他に、長尺サイズが含まれるものとする。
【００１８】
ＡＤＦ６１は、給紙トレイにセットされた原稿を１枚ずつスキャナ５０の搬送経路へ送出する。搬送部６２は、ＡＤＦ６１により送出された原稿を搬送経路に沿って排紙口へ搬送する。読取部６３は、光源およびイメージスキャナなどを有し、原稿から画像を読み取り、スキャンデータを生成する。
【００１９】
ＬＣＤ５４は、スキャナ５０の各種情報を表示する。ＬＣＤ５４は、ディスプレイＩ／Ｆ５３を介してバス５６に接続されている。ＬＣＤ５４は、ディスプレイＩ／Ｆ５３を介して表示データを取得する。入力Ｉ／Ｆ５５は、ユーザ操作を入力するためのインタフェースである。
【００２０】
ＰＣ１０とスキャナ５０とはネットワーク４０を通じて通信可能となっている。ネットワーク４０の種類は、例えば有線ＬＡＮ、無線ＬＡＮ、ＵＳＢケーブルなどである。
【００２１】
尚、以下の処理およびフローチャートの各処理ステップは、基本的に、スキャナドライバ２８などのプログラムに記述された命令に従ったＣＰＵ１２の処理を示す。すなわち、以下の説明における「判断」、「算出」、「決定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１２の処理を表している。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１２が要求することなくデータを受信するという処理も、「ＣＰＵ１２がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００２２】
（スキャナドライバの機能概要）
スキャンシステム１においては、スキャナ５０は、スキャナドライバ２８からのスキャン指示に応じて、給紙トレイにセットされた原稿を読み取り、生成したスキャンデータをスキャナドライバ２８へネットワーク４０を介して送信する。スキャナドライバ２８は、受信するスキャンデータに対して、アプリケーションプログラム２６が使用可能な画像データに変換する画像処理を行う。ここで、ユーザにより、給紙トレイに複数の原稿がセットされ、スキャナ５０にて複数枚の原稿が読み取られる場合には、スキャナドライバ２８には、次々と、原稿１ページ分のスキャンデータが送信される。また、スキャナドライバ２８は、原稿１ページ分のスキャンデータの受信完了を待って、受信完了した原稿１ページ分のスキャナデータに対して画像処理を行う。このため、原稿１ページ分のスキャナデータの受信完了から次の原稿１ページ分のスキャナデータの受信を完了するまでの時間間隔と、原稿１ページ分のスキャンデータに対する画像処理の処理時間とが同程度であると良い。例えば、原稿１ページ分のスキャンデータを受信する間隔に対して、原稿１ページ分のスキャンデータに対する画像処理の処理時間が長いと、ＰＣ１０には画像処理待ちのスキャンデータが蓄積されていくことになる。一方、原稿１ページ分のスキャンデータを受信する間隔に対して、原稿１ページ分のスキャンデータに対する画像処理の処理時間が短い場合には、時間に余裕があるにもかかわらず、メインメモリ１３を一時的に多く使用して、その結果、処理時間が短くなっている場合もある。つまり、この場合には、メインメモリ１３が無駄に使用されてしまっている状況が考えられる。
【００２３】
しかしながら、原稿１ページ分のスキャンデータの受信を完了する間隔および処理時間は、様々であり、同程度では無い場合が多い。原稿１ページ分のスキャンデータの受信を完了する間隔は、搬送部６２の搬送速度、スキャンデータの送受信に要する時間などにより決まり、詳しくは、例えばスキャナ５０の性能、ネットワーク４０の通信の種類などに依存する。また、処理時間はＰＣ１０の性能などに依存する。このうち、原稿１ページ分のスキャンデータの受信を完了する間隔は、上記のように、スキャナ５０、通信の種類などにより決まり、調整することは困難であるが、処理時間については、最短の時間はＰＣ１０の性能などで決まってしまうものの、処理時間を長くする調整は画像処理を実行するスレッド数を制御することにより可能となっている。
【００２４】
また、一般に、スレッド数がＰＣ１０の性能に対して多いと、個々のスレッドのスレッド起動から終了までの時間が長くなってしまう。次に説明する、スキャンシーケンスにて実行されるスレッド数設定処理は、ＰＣ１０およびスキャナ５０の性能、通信の種類、スキャンの設定に応じて、画像処理を実行するスレッドの上限数を設定するものである。これにより、ＰＣ１０に適切なスレッド数で画像処理を実行させることができる。
【００２５】
（スキャンシーケンス）
次に、スキャナドライバ２８およびスキャナプログラム５８により実行されるスキャンシーケンスについて図２を用いて説明する。図２は、スキャナ５０にて３枚の原稿の片面が連続してスキャンされる場合について例示している。
【００２６】
アプリケーションプログラム２６は、編集画面（不図示）をＬＣＤ１６に表示させ、入力Ｉ／Ｆ１８を介して、ユーザからの入力を受け付ける。編集画面にてスキャナ５０による読み取り指示を受け付けると、アプリケーションプログラム２６は、スキャナドライバ２８にＯｐｅｎメッセージを送信する（Ｍ１）。スキャナドライバ２８はメッセージＭ１を受信すると、スキャナプログラム５８に接続要求する（Ｍ２）。詳しくは、スキャナドライバ２８がＰＣ１０にインストールされた後、設定されたスキャナ５０との通信の種類に従って、スキャナドライバ２８はスキャナプログラム５８に接続要求する。ここで、通信の種類とは、上記の無線ＬＡＮ、有線ＬＡＮ、ＵＳＢなどのことである。スキャナプログラム５８は、メッセージＭ２を受信すると、例えばスキャナドライバ２８とのデータ送受に必要な初期処理を実行し、接続完了メッセージをスキャナドライバ２８に送信する（Ｍ３）。スキャナドライバ２８は、メッセージＭ３を受信することにより、スキャナ５０との通信の種類を確定することができる。スキャナドライバ２８は、メッセージＭ３を受信すると、スキャナプログラム５８にデバイス能力を問い合わせる（Ｍ４）。スキャナプログラム５８は、メッセージＭ４を受信すると、デバイス能力５９を参照し、スキャナドライバ２８にデバイス能力を応答する（Ｍ５）。スキャナドライバ２８は、メッセージＭ５を受信すると、受信したデバイス能力をメインメモリ１３に記憶させ、スキャン受付処理を実行する（Ｓ１）。詳しくは、スキャナドライバ２８は、スキャン受付処理において、ＬＣＤ１６にスキャナ５０の設定を受け付ける設定画面（不図示）を表示させ、スキャンの解像度および用紙サイズの各値、カラー／モノクロの選択を受け付け、受け付けた各値をスキャンのパラメータとしてメインメモリ１３に記憶させる。次に、スレッド数決定処理を実行する（Ｓ２）。
【００２７】
スレッド数決定処理については、図４を用いて説明する。スレッド数設定処理を開始すると、スキャナドライバ２８は、後述する第１処理および第２処理にて使用する変数である上限スレッド数を論理コア数に設定する（Ｓ２１）。詳しくは、スキャナドライバ２８はＯＳ３２にＰＣ１０の論理コア数を問い合わせ、応答された論理コア数を上限スレッド数に代入する。尚、上限スレッド数は、後述する第１処理および第２処理にて起動される画像処理を実行するスレッドの上限数として使用される。次に、スキャナドライバ２８は、論理コア数は２以上であるか否かを判断する（Ｓ２３）。論理コア数は２以上でないと判断することに応じて（Ｓ２３：ＮＯ）、論理コア数は１であり、これ以上、小さくすることはできないため、スキャナドライバ２８は上限スレッド数を１に設定し（Ｓ３５）、スレッド数設定処理を終了する。
【００２８】
一方、論理コア数は２以上であると判断することに応じて（Ｓ２３：ＹＥＳ）、スレッド数を制限する必要があるか否かを判断するために、スキャナドライバ２８は、まず解像度は３００ｄｐｉ以下であるか否かを判断する（Ｓ２５）。解像度は３００ｄｐｉ以下でないと判断することに応じて（Ｓ２５：ＮＯ）、解像度が高い程スキャンデータのデータ量が多く、メインメモリ１３の使用量が多くなる傾向があるため、スキャナドライバ２８は上限スレッド数を１に設定し（Ｓ３５）、スレッド数設定処理を終了する。一方、解像度は３００ｄｐｉ以下であると判断することに応じて（Ｓ２５：ＹＥＳ）、原稿サイズは長尺であるか否かをスキャナドライバ２８は判断する（Ｓ２７）。原稿サイズは長尺であると判断することに応じて（Ｓ２７：ＹＥＳ）、原稿の搬送方向のサイズは所定サイズより大きいため、スキャンデータのデータ量が多く、メインメモリ１３の使用量が多くなるため、スキャナドライバ２８は上限スレッド数を１に設定し（Ｓ３５）、スレッド数設定処理を終了する。一方、原稿サイズは長尺でないと判断することに応じて（Ｓ２７：ＮＯ）、スキャナドライバ２８は搬送速度が遅いモデルであるか否かを判断する（Ｓ２９）。尚、スキャナドライバ２８は、モデル名に対して、搬送速度が速いか／遅いかの何れかが対応付けられた情報を予め保有している。そして、ステップＳ２９では、メッセージＭ５にて応答されたデバイス能力に含まれるモデル名が、搬送速度が速いか／遅いかの何れが対応付けられているかにより判断される。搬送速度が遅いモデルであると判断することに応じて（Ｓ２９：ＹＥＳ）、原稿１ページ分のスキャンデータの受信間隔が長く、画像処理に時間をかけることができるため、上限スレッド数を１に設定し（Ｓ３５）、スレッド数設定処理を終了する。一方、搬送速度が遅いモデルでないと判断することに応じて（Ｓ２９：ＮＯ）、通信に使用しているネットワークＩ／Ｆ２０の種類、つまりネットワーク４０の種類は無線ＬＡＮであるか否かを判断する（Ｓ３１）。詳しくは、メッセージＭ５にて確定した通信の種類が無線ＬＡＮであるか否かを判断する。ネットワークＩ／Ｆ２０は無線ＬＡＮであると判断することに応じて（Ｓ３１：ＹＥＳ）、原稿１ページ分のスキャンデータの受信間隔が長く、画像処理に時間をかけることができるため、スキャナドライバ２８は上限スレッド数を１に設定し（Ｓ３５）、スレッド数設定処理を終了する。
【００２９】
一方、ネットワークＩ／Ｆ２０は無線ＬＡＮでないと判断することに応じて（Ｓ３１：ＮＯ）、スキャナドライバ２８は上限スレッド数を１減算する（Ｓ３３）。ここで、１減算するのは、スキャナドライバ２８は、画像処理と並行して、後述する第１処理および第２処理の何れかを実行するためである。スキャナドライバ２８は、ステップＳ３３を実行後、スレッド数設定処理を終了する。尚、ステップＳ２５〜Ｓ３１の実行順は、上記に限定されない。
【００３０】
ところで、ステップＳ３３が実行される場合とは、原稿１ページ分のスキャンデータのデータ量が少なく、原稿１ページ分のスキャンデータの受信間隔が短い場合である。スキャンデータのデータ量が少ないため、後続の原稿１ページ分のスキャンデータを受信するまでに画像処理が完了せずに画像処理のスレッドが累積的に増大していく場合は少ないと想定される。また、原稿１ページ分のスキャンデータの受信間隔が短い場合であるため、画像処理が終了して、次の原稿１ページ分のスキャンデータの受信待ちの状態が生じる場合は少ないと想定される。このような場合には、画像処理のスレッドの数が論理コア数に基づいた値にされることで、メインメモリ１３に過大な負荷はかからずに、すべての原稿のスキャンデータに対する画像処理が短い期間で実行されることが可能となる。
一方で、ステップＳ３５が実行される場合とは、スキャンデータのデータ量が多い場合、あるいは、原稿１ページ分のスキャンデータの受信間隔が長い場合である。スキャンデータのデータ量が多い場合、画像処理のスレッドの数を制限しないと、後続の原稿１ページ分のスキャンデータの受信までに画像処理が完了せずに、画像処理のスレッドの数に応じて、メインメモリ１３の使用量が増大し、その結果、各々のスレッドの開始から終了までの時間が長くなってしまうことが想定される。そこで、画像処理のスレッドの数を１に制限することで、メインメモリ１３の使用量の増大を抑制し、スレッドの開始から終了までの時間が長くなってしまうことが抑制される。また、原稿１ページ分のスキャンデータの受信間隔が長い場合、上限スレッド数が論理コア数に基づいた値にされてしまうと、原稿１ページ分のスキャンデータの受信の度に新たな画像処理が開始され、１次的にメインメモリ１３の使用量が無駄に増加してしまうことが想定される。そこで、スレッドの数は１に制限されることで、１次的にメインメモリ１３の使用量が無駄に増加してしまうことが抑制される。
【００３１】
図２に戻り、スレッド数決定処理の実行後、スキャナドライバ２８はスキャン受付処理にて受け付けたスキャンのパラメータをスキャナプログラム５８へ送信し（Ｍ６）、スキャナプログラム５８へスキャン開始を指示する（Ｍ７）。スキャナプログラム５８は、メッセージＭ７を受信すると、スキャン処理を開始する。スキャナプログラム５８は、スキャン処理を開始すると、ＡＤＦ６１に給紙トレイにセットされた原稿の搬送を開始させ、読取部６３に原稿の読み取りを開始させる。また、スキャナプログラム５８は、ネットワークＩ／Ｆ５１を介して生成されたスキャンデータをスキャナドライバ２８へ送信させる。尚、スキャナプログラム５８は、スキャンデータの生成と送信とを並行して実行させる。そして、送信されるスキャンデータは、例えば所定のデータ量以下のスキャンデータであり、原稿１ページ分のスキャンデータについて複数回の送信が実行される。尚、図３では、原稿１ページ目の最初のスキャンデータの送信（Ｍ８）、原稿３ページ各々の最後のスキャンデータの送信（Ｍ９，Ｍ１０，Ｍ１１）のみを記載し、これ以外のスキャンデータの送信については略記している。スキャナプログラム５８は給紙トレイにセットされたすべての原稿の読み取りを終え、生成されたスキャンデータのすべての送信を完了すると、Ｅｎｄメッセージをスキャナドライバ２８へ送信し（Ｍ１２）、スキャン処理を終了する。尚、スキャナドライバ２８はＥｎｄメッセージを受信すると、その旨をメインメモリ１３に記憶させる。
【００３２】
スキャナドライバ２８は、原稿１ページ分のスキャンデータの受信を完了すると、つまり、原稿１ページにおける最後のスキャンデータを受信すると、第１処理を開始する（Ｓ３）。第１処理については図５を用いて説明する。尚、以下の説明におけるスキャンデータとは、特記しない限り、原稿１ページ分のスキャンデータのことである。第１処理を開始すると、まず、実行中の画像処理のスレッド数はスレッド数設定処理にて設定された上限スレッド数よりも小さいか否かを判断する（Ｓ４１）。実行中のスレッド数が上限スレッド数よりも小さくないと判断することに応じて（Ｓ４１：ＮＯ）、スキャナドライバ２８は受信したスキャンデータを受信時刻に対応付けてファイルとして補助記憶装置１４に一時保存し（Ｓ４３）、第１処理を終了する。一方、実行中のスレッド数が上限スレッド数よりも小さいと判断することに応じて（Ｓ４１：ＹＥＳ）、スキャナドライバ２８は補助記憶装置１４にスキャンデータのファイルがあるか否かを判断する（Ｓ４５）。補助記憶装置１４にスキャンデータのファイルがあると判断することに応じて（Ｓ４５：ＹＥＳ）、補助記憶装置１４に記憶されている受信時刻が最古であるスキャンデータのファイルをメインメモリ１３に読み出し、読み出したスキャンデータを画像処理するスレッドを起動する。そして受信したスキャンデータを受信時刻に対応付けてファイルとして補助記憶装置１４に一時保存し（Ｓ４８）、第１処理を終了する。一方、補助記憶装置１４にスキャンデータのファイルないと判断することに応じて（Ｓ４５：ＮＯ）、受信したスキャンデータを画像処理するスレッドを起動し、第１処理を終了する。
【００３３】
図３を用いて、第１処理について説明する。尚、ここでは、スレッド数設定処理にて上限スレッド数が２に設定されたものとする。例えば、原稿１ページ目のスキャンデータの受信完了後に実行される第１処理（Ｓ３）では、実行中の画像処理のスレッドはなく、補助記憶装置１４にスキャンデータのファイルは記憶されていないので、１つ目の画像処理のスレッドが起動される。尚、画像処理のスレッドでは、詳しくは、受信したスキャンデータのデコード、デコードされたデータに対する例えば解像度の調整などの画像処理などが実行され、画像処理により生成されたデータである画像データがスキャナドライバ２８へ送信される。また、例えばデコードなどの処理毎に別個のスレッドが起動される場合がある。原稿２ページ目のスキャンデータの受信完了後に実行される第１処理（Ｓ４）でも同様に、実行中の画像処理のスレッドはなく、補助記憶装置１４にスキャンデータのファイルは記憶されていないので、画像処理のための、２つ目の画像処理のスレッドが起動される。一方、原稿３ページ目のスキャンデータの受信完了後に実行される第１処理（Ｓ５）では、既に実行中のスレッドの数は上限スレッド数と同じ２であるため、ステップＳ４１（図５）にてＮＯと判断されるため、画像処理のスレッドは起動されずに、スキャンデータは補助記憶装置１４に一時保存される。
【００３４】
上記のように、画像処理のスレッドは、処理を終了すると、画像データをスキャナドライバ２８へ送信する。スキャナドライバ２８は画像データを受信すると、第２処理を開始する。第２処理については、図６を用いて説明する。尚、第１処理および第２処理は択一的に実行される。例えば、スキャナドライバ２８は画像データを受信した場合であっても、第１処理を実行している場合には、第１処理の終了後、第２処理を実行する。第２処理を開始すると、まず、スキャナドライバ２８は、アプリケーションプログラム２６から送信される転送準備完了問い合わせ（不図示）を受信する（Ｓ５１）。次に、アプリケーションプログラム２６へ転送準備完了メッセージを送信する（Ｓ５３）。アプリケーションプログラム２６は、転送準備完了メッセージを受信すると、スキャナドライバ２８へ転送命令を送信する（不図示）。スキャナドライバ２８は、転送命令を受信すると（Ｓ５５）、画像処理のスレッドから送信された画像データをアプリケーションプログラム２６へ送信する（Ｓ５７）。次に、スキャナドライバ２８は、スキャナ５０におけるスキャン処理は終了しているか否かを判断する（Ｓ５９）。スキャナドライバ２８は、メインメモリ１３に、Ｅｎｄメッセージを受信した旨が記憶されている場合スキャン処理は終了したと判断し、Ｅｎｄメッセージを受信した旨が記憶されていない場合スキャン処理は終了していないと判断する。スキャン処理は終了していないと判断すると（Ｓ５９：ＮＯ）、スキャナドライバ２８は補助記憶装置１４にスキャンデータのファイルが記憶されているか否かを判断する（Ｓ６５）。補助記憶装置１４にスキャンデータのファイルが記憶されていないと判断することに応じて（Ｓ６５：ＮＯ）、補助記憶装置１４にスキャンデータがなく、スキャンデータの受信待ちの状態であるため、スキャナドライバ２８は第２処理を終了する。一方、補助記憶装置１４にスキャンデータのファイルが記憶されていると判断することに応じて（Ｓ６５：ＹＥＳ）、ステップＳ４７と同様に、補助記憶装置１４に記憶されているスキャンデータを画像処理するスレッドを起動する（Ｓ６７）。次に、スキャナドライバ２８は上限スレッド数が１であるか否かを判断する（Ｓ６９）。上限スレッド数が１でないと判断することに応じて（Ｓ６９：ＮＯ）、スキャナドライバ２８は第２処理を終了する。一方、上限スレッド数が１であると判断することに応じて（Ｓ６９：ＹＥＳ）、スキャナドライバ２８は補助記憶装置１４に記憶されているスキャンデータのファイルのデータの容量の総量は基準値Ｎ以下であるか否かを判断する（Ｓ７１）。基準値Ｎ以下であると判断することに応じて（Ｓ７１：ＹＥＳ）、スキャナドライバ２８は第２処理を終了する。一方、基準値Ｎ以下でないと判断することに応じて（Ｓ７１：ＮＯ）、画像処理待ちのスキャンデータのファイルが補助記憶装置１４に多く蓄積されている状態であるため、スキャナドライバ２８は上限スレッド数を１加算して（Ｓ７３）、ステップＳ６５へ戻る。これにより、画像処理待ちのスキャンデータのファイルが補助記憶装置１４に多く蓄積されている場合には、補助記憶装置１４に記憶されているスキャンデータのファイルを減らし、画像処理のスレッド数を増やすことができる。
【００３５】
一方、スキャン処理は終了したと判断することに応じて（Ｓ５９：ＹＥＳ）、スキャナドライバ２８は実行中の画像処理のスレッドがあるか否かを判断する（Ｓ６１）。実行中の画像処理のスレッドがあると判断することに応じて（Ｓ６１：ＹＥＳ）、スキャナドライバ２８はステップＳ６５へ進む。一方、実行中の画像処理のスレッドがないと判断することに応じて（Ｓ６１：ＮＯ）、スキャナ５０でスキャンされて生成されたすべてのスキャンデータに対する画像処理が完了しているため、アプリケーションプログラム２６へ完了メッセージを送信し（Ｓ６３）、第２処理を終了する。
【００３６】
図３を用いて第２処理について説明する。原稿１ページ目の画像処理のスレッドが終了し、スキャナドライバ２８へ画像データが送信されると（Ｍ１３）、第２処理が実行される（Ｓ６）。ステップＳ６での第２処理におけるステップＳ５７にて画像データがアプリケーションプログラム２６へ送信される（Ｍ１４）。また、第２処理におけるステップＳ６７にて補助記憶装置１４に記憶されていた原稿３ページ目のスキャンデータの画像処理のスレッドが起動される。原稿２ページ目の画像処理のスレッドが終了し、画像データが送信されると（Ｍ１５）。第２処理が実行され（Ｓ７）、第２処理におけるステップＳ５７にて画像データがアプリケーションプログラム２６へ送信される（Ｍ１６）。尚、ステップＳ７での第２処理では、補助記憶装置１４にスキャンデータは記憶されていないため、新たな画像処理のスレッドが起動されることはない。原稿３ページ目の画像処理のスレッドが終了し、スキャナドライバ２８へ画像データが送信されると（Ｍ１７）。第２処理が実行され（Ｓ８）、第２処理におけるステップＳ５７にて画像データがアプリケーションプログラム２６へ送信される（Ｍ１８）。また、第２処理におけるステップＳ６３にて完了メッセージが送信される（Ｍ１９）。アプリケーションプログラム２６は、メッセージＭ２０を受信すると、スキャナドライバ２８へＣｌｏｓｅメッセージを送信する。スキャナドライバ２８はＣｌｏｓｅメッセージを受信すると、起動状態から待機状態に移行する。
【００３７】
このように、例えばスレッド数設定処理により、上限スレッド数が２に制限された場合には、画像処理のスレッドは２より多く起動されることはないため、メインメモリ１３に過大な負荷はかからずに、すべての原稿のスキャンデータに対する画像処理が短い期間で実行されることが可能となる。また、例えば、図３に示すシーケンス図が例えば有線ＬＡＮによる通信時のものであるとした場合、無線ＬＡＮによる通信の場合には、図３に示すよりもスキャンデータの受信間隔はより長くなる。この場合には、スレッド数設定処理により、上限スレッド数は１に制限されるため、１次的にメインメモリ１３の使用量が無駄に増加してしまうことが抑制される。
【００３８】
ここで、ＰＣ１０は情報処理装置の一例であり、スキャナ５０は読取装置の一例であり、スキャナドライバ２８はプログラムの一例であり、ネットワークＩ／Ｆ２０は通信インタフェースの一例であり、メインメモリ１３は第１記憶部の一例であり、補助記憶装置１４は第２記憶部の一例であり、ＣＰＵ１２は制御部の一例である。
また、スキャンデータは読取データの一例であり、メッセージＭ３にて確定するネットワークＩ／Ｆ２０の種類およびメッセージＭ５にて応答されるデバイス能力は受信間隔情報の一例であり、上限スレッド数はスレッドの上限数の一例であり、モデル名は機種名の一例である。また、ステップＳ３３にて上限スレッド数に設定される論理コア数から１減算した値は第１の値の一例であり、ステップＳ３５にて上限スレッド数に設定される「１」は第２の値の一例である。また、搬送速度が速いと対応付けられたモデル名は第１の情報の一例であり、搬送速度が遅いと対応付けられたモデル名は第２の情報の一例である。また、ネットワークＩ／Ｆ２０の種類である有線ＬＡＮおよびＵＳＢケーブルは第１の情報の一例であり、無線ＬＡＮは第２の情報の一例である。また、ステップＳ２５にて判断に使用される「３００ｄｐｉ」は解像度基準値の一例であり、ステップＳ２７にて判断に使用される「長尺サイズ」は基準サイズの一例であり、ステップＳ７３にて判断に使用される基準値Ｎはデータ量基準値の一例である。また、メッセージＭ７の送信は送信処理の一例であり、メッセージＭ９〜Ｍ１１の受信は第１受信処理の一例であり、画像処理のスレッドにて実行される処理は画像処理の一例であり、メッセージＭ５は第２受信処理の一例であり、スレッド数設定処理は第１設定処理の一例であり、ステップＳ４９，Ｓ６７は起動処理の一例である。また、ステップＳ１は受付処理の一例であり、ステップＳ４１は第１判断処理の一例であり、ステップＳ４３は記憶処理の一例であり、ステップＳ７１は第２判断処理の一例であり、ステップＳ７３は第２設定処理の一例である。
【００３９】
以上、説明した実施形態によれば、以下の効果を奏する。
スキャナドライバ２８は、スレッド数設定処理のステップＳ２９にて搬送速度が遅いモデルと判断した場合、また、ステップＳ３１にてネットワークＩ／Ｆ２０の種類が無線ＬＡＮであると判断した場合、原稿１ページ分のスキャンデータの受信間隔が長いため、ステップＳ３５にて上限スレッド数を１に設定する。即ち、論理コア数が３以上であり、ステップＳ２９にてＮＯと判断され、かつステップＳ３１にてＮＯと判断された場合に設定される上限スレッド数は論理コア数から１減算した値であるのに対し、受信間隔が長い場合には、論理コア数から１減算した値よりも小さい値である１に設定される。また、ステップＳ４１で実行中の画像処理のスレッドの数が上限スレッド数より小さいと判断された場合、ステップＳ４７もしくはステップＳ４９にて画像処理のスレッドが起動される。つまり、上限スレッド数を上限として画像処理のスレッドが起動される。これにより、連続して送信される原稿１ページ分のスキャンデータの受信間隔を示すネットワークＩ／Ｆ２０の種類およびスキャナ５０の搬送速度に基づいて、上限スレッド数は、論理コア数から１減算された値もしくは１に制限されるので、適切なスレッド数でＰＣ１０に画像処理を実行させることができる。
【００４０】
また、スレッド数設定処理は、ステップＳ２１にて論理コア数を上限スレッド数に設定する。そして、論理コア数が２より大きい場合にはステップＳ２３にてＹＥＳと判断され、ステップＳ３３にて上限スレッド数は論理コア数から１減算した値とされ、論理コア数が２である場合にはステップＳ２３にてＹＥＳと判断され、ステップＳ３３にて上限スレッド数は論理コア数から１減算した値である１とされ、論理コア数が１の場合にはステップＳ２３にてＮＯと判断され、ステップＳ３５にて上限スレッド数は１とされる。つまり、論理コア数が２より大きい場合、ステップＳ２９にてＹＥＳと判断された場合、もしくはステップＳ３１にてＹＥＳと判断された場合に設定される上限スレッド数は、ステップＳ２９にてＮＯと判断された場合、かつステップＳ３１にてＮＯと判断された場合に設定される上限スレッド数よりも小さい値とされる。このように、受信間隔が長くないと判断される場合に設定される上限スレッド数は、は、ＰＣ１０の処理能力に基づき設定されるので、上限スレッド数がＰＣ１０の性能に対して多くなることによる、個々のスレッドのスレッド起動から終了までの時間が長くなってしまうことが抑制される。
【００４１】
また、スレッド数設定処理は、ステップＳ２９にて搬送速度が遅いモデルと判断した場合、ステップＳ３５にてスレッド数を１に設定する。原稿を搬送しつつ原稿の読み取りを行うスキャナ５０においては、一般に、スキャナ５０による読み取り速度は、搬送部６２の搬送速度に依存する。そして、搬送速度が遅いほど、原稿１ページ分のスキャンデータの受信間隔が長くなる。また、モデル名は搬送速度が遅いか／早いかの指標となり得る。そこで、モデル名により、上限スレッド数を設定することで、適切なスレッド数でＰＣ１０に画像処理を実行させることができる。
【００４２】
また、スレッド数設定処理は、ステップＳ３１にてネットワークＩ／Ｆ２０の種類が無線ＬＡＮであると判断した場合、ステップＳ３５にて上限スレッド数を１に設定する。無線ＬＡＮである場合、スキャンデータの送受信にかかる時間が長くなり、原稿１ページ分のスキャンデータの受信間隔が長くなる。そこで、ネットワークＩ／Ｆ２０の種類により、上限スレッド数を設定することで、適切なスレッド数でＰＣ１０に画像処理を実行させることができる。
【００４３】
また、スキャナドライバ２８は、スキャン受付処理にて、原稿サイズおよび解像度の設定を受け付け、スレッド数設定処理のステップＳ２５にて解像度が３００ｄｐｉ以上であると判断した場合、また、ステップＳ２７にて原稿サイズが長尺であると判断した場合、ステップＳ３５にて上限スレッド数を１に設定する。原稿サイズおよび解像度が大きい場合にはスキャンデータのデータ量も大きくなりメインメモリ１３の使用量も多くなる。そこで、上限スレッド数を１に制限することで、メインメモリ１３の容量がひっ迫してしまうことが抑制される。
【００４４】
また、第１処理は、ステップＳ４１にて実行中のスレッド数が上限スレッド数よりも小さいと判断すると、ステップＳ４３にてスキャンデータをファイルとして補助記憶装置１４に一時保存する。これにより、受信するスキャンデータは補助記憶装置１４に記憶されるので、メインメモリ１３の使用量を抑えることができる。
【００４５】
また、第２処理は、ステップＳ７１にて、補助記憶装置１４に記憶されているスキャンデータのファイルのデータの容量の総量は基準値Ｎ以下でないと判断することに応じて、ステップＳ７３にて上限スレッド数を１加算する。例えば、読み取られる原稿の枚数が多く、また、画像処理の処理時間が長い場合には、補助記憶装置１４に記憶されるファイルの数が累積的に増大してく状況も考えられる。そこで、このような場合には、上限スレッド数を増やすことで、補助記憶装置１４に記憶されるファイルの数と起動される画像処理のスレッドの数との調整を図ることができる。
【００４６】
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、上記では、受信間隔情報の一例として、モデル名を例示したが、これに限定されない。例えば、搬送部６２の搬送速度を受信間隔情報としても良い。詳しくは、例えば、メッセージＭ５にて応答されるデバイス能力に搬送速度の情報が含まれる場合には、この搬送速度の情報により、搬送速度の速いか遅いかを判断する構成としても良い。
【００４７】
また、上記では、第２の値の一例として「１」を例示したが、これに限定されない。例えば、スキャナ５０が原稿の表面および裏面を同時期にスキャンする、所謂両面スキャン機能を有し、２ページ分のスキャンデータをスキャナドライバ２８へ送信する構成の場合には、第２の値を「２」としても良い。尚、この場合には、スキャン受付処理（Ｓ１）にて、片面スキャン／両面スキャンの何れかの選択を受け付け、片面スキャンを受け付けた場合には第２の値を「１」、両面スキャンを受け付けた場合には第２の値を「２」とする構成とすると良い。
【００４８】
また、上記では、スレッド数設定処理において、解像度が３００ｄｐｉ以下、原稿サイズが長尺以外、搬送速度が速い、ネットワークＩ／Ｆ２０の種類が無線ＬＡＮ以外である場合にステップＳ３３を実行すると説明したが、これに限定されず、各々の値の組み合わせによってステップＳ３３を実行する構成にしても良い。詳しくは、例えば、スキャンデータのデータ量の判断においては、例えば解像度が４００ｄｐｉであっても原稿サイズがＢ５サイズであれば、スキャンデータのデータ量は少ないと判断しても良い。また、例えば、原稿１ページ分のスキャンデータの受信間隔の判断においては、例えば、無線ＬＡＮであっても、解像度が２００ｄｐｉであり原稿サイズがＢ５サイズであれば、受信間隔は短いと判断しても良い。このような判断は、例えば、上限スレッド数を１とする各パラメータの範囲を予め規定したテーブルにより行う構成とすれば良い。
【００４９】
また、上記では、スキャン受付処理（Ｓ１）にて、スキャンの解像度および用紙サイズを受け付けると説明したが、これに限定されず、解像度および用紙サイズの何れか一方のみを受け付ける構成としても良い。この場合には、スレッド数設定処理にて、ステップＳ２５およびステップＳ２７の該当する何れか一方を省略する構成としても良い。
【００５０】
また、上記では、スキャンシステム１は、ＰＣ１０およびスキャナ５０を備えると説明したが、構成を限定するものでは無く、例えば、複数のスキャナを備える構成でも良い。また、スキャナ５０は、カラー読み取りおよび長尺サイズの読み取りが可能であると説明したが、機能を限定するものでは無い。
【符号の説明】
【００５１】
１０  ＰＣ
１３  メインメモリ
２８  スキャナドライバ
５０  スキャナ
２０  ネットワークＩ／Ｆ
１２  ＣＰＵ
【図１】
2019140593.tif 000003
【図２】
2019140593.tif 000004
【図３】
2019140593.tif 000005
【図４】
2019140593.tif 000006
【図５】
2019140593.tif 000007
【図６】
2019140593.tif 000008