JP2011055479A - スキャナの通信モデル - Google Patents

スキャナの通信モデル Download PDF

Info

Publication number
JP2011055479A
JP2011055479A JP2010162220A JP2010162220A JP2011055479A JP 2011055479 A JP2011055479 A JP 2011055479A JP 2010162220 A JP2010162220 A JP 2010162220A JP 2010162220 A JP2010162220 A JP 2010162220A JP 2011055479 A JP2011055479 A JP 2011055479A
Authority
JP
Japan
Prior art keywords
wia
data
scanner
driver
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010162220A
Other languages
English (en)
Inventor
Thao Merna
マーナ タホ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2011055479A publication Critical patent/JP2011055479A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/333Mode signalling or mode changing; Handshaking therefor
    • H04N1/33346Mode signalling or mode changing; Handshaking therefor adapting to a particular standardised protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00941Interaction of different applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33378Type or format of data, e.g. colour or B/W, halftone or binary, computer image file or facsimile data

Abstract

【課題】2つの同期しないドライバが同一のハードウェア及びソフトウェアリソースにアクセスするため、スキャンシステムが徐々に不安定になっていく可能性がある。
【解決手段】WIAサービスを介してWIAドライバと通信することによりTWAINアプリケーションの代わりに動作するために拡張モジュールが生成される。データ構造は、WIAサービスのカスタムプロパティ機構を介して拡張モジュールからWIAドライバに送信される。スキャナに対する命令データを含むバイナリデータファイルの場所は、データ構造に含まれる場所に従ってWIAドライバにより特定される。命令データはスキャナに送信され、スキャナは命令データを処理し且つWIAドライバに結果を返す。WIAドライバは、新しいバイナリデータファイルに結果を書き込む。データ構造は更新され且つ拡張モジュールに送信され、新しいバイナリデータファイルの場所が特定される。
【選択図】図5

Description

本発明は、スキャナの通信モデルに関し、特に、スキャナアプリケーションとスキャナハードウェアとの間の通信を提供するスキャナドライバに対するWIA及びTWAINプロトコルに関する。
スキャナ及びスキャナドライバの分野において、TWAINプロトコルは事実上の標準になったため、スキャンアプリケーションがTWAINプロトコルのみをサポートすることは一般的である。TWAINプロトコルは、標準ソフトウェアプロトコルであり、アプリケーションとスキャナハードウェアとの間の通信を統制するアプリケーションプログラムインタフェース(API)である。しかし、スキャナメーカーがTWAINよりはるかに非一般的なMicrosoft(登録商標)のプロトコル、即ちMicrosoft(登録商標)のWindows(登録商標) Image Acquisition(WIA)プロトコルをサポートするドライバをハードウェアと共に提供しない限り、スキャナメーカーはハードウェアにMicrosoft(登録商標)のロゴを入れれない。
その結果、通常、スキャナメーカーは、2つの別個のドライバ、即ち殆どの顧客のアプリケーションのためのTWAINドライバ及びハードウェアがMicrosoft(登録商標)のロゴを表示できるようにするためのWIAドライバを提供する。このように、スキャナメーカーはハードウェア上にMicrosoft(登録商標)のロゴを提示することができるが、その一方で依然としてTWAINアプリケーションをサポートする。
2つの別個の十分に発達したドライバを使用することの1つの問題は、2つの別個の同期しないドライバが同一のハードウェア及びソフトウェアリソースに別個にアクセスするため、スキャンシステムが徐々に不安定になっていく可能性があることである。更に、2つのドライバが実質的に同一のジョブを実行していても、一般に双方のドライバに対する開発が必要である。Microsoft(登録商標)がWIAドライバをTWAINアプリケーションに対するTWAINドライバとするTWAINラッパーを提供するが、TWAINラッパーは原始的すぎるため効果的でも効率的でもない。
上述の状況は、WIAサービスのWIAカスタムプロパティ機構を介してTWAINアプリケーションの代わりにWIAドライバにデータ構造を渡すことにより対処される。ここで、データ構造は、スキャナに対する命令データ及びスキャナからの結果データを含むバイナリデータファイルの場所を示す。
従って、本明細書で説明する一実施形態において、通信はスキャナに対するWIAドライバとTWAINアプリケーションとの間で提供される。WIAサービスを介してWIAドライバと通信するために、TWAINアプリケーションの代わりに動作する拡張モジュールが生成される。データ構造は、WIAサービスのカスタムプロパティ機構を介して拡張モジュールからWIAドライバに送信され、データ構造はスキャナに対する命令データを含むバイナリデータファイルの場所を含む。バイナリデータファイルの場所は、データ構造に含まれる場所に従ってWIAドライバにより特定され、命令データが取得される。命令データは、WIAドライバからスキャナに送信され、スキャナは、命令データを処理し且つ結果をWIAドライバに送信する。WIAドライバは、命令データに従って新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所でデータ構造を更新する。新しいバイナリデータファイルの場所を含むデータ構造は、WIAサービスのカスタムプロパティ機構を介してWIAドライバから拡張モジュールに送信される。新しいバイナリデータファイルの場所は、データ構造に含まれる場所に従って拡張モジュールにより特定され、情報が取得される。取得された情報は、TWAINアプリケーションの代わりに拡張モジュールにより処理される。
データ構造がWIAサービスのWIAカスタムプロパティ機構を介してTWAINアプリケーションの代わりにWIAドライバに渡されるこの構成により、一般に単一の組合せドライバを有するスキャナハードウェアへの最大限のアクセス権をTWAINアプリケーションに提供できる。従って、複数のドライバが同一のリソースにアクセスすることにより起こる不安定さは低減され、単一のドライバに対してのみ開発が必要になる。
この簡単な概要は、本発明の本質を容易に理解できるように提供された。以下の詳細な説明及び添付の図面を参照することにより、更に完全に理解される。
本発明の態様が実現される環境の一実施形態を示す図である。 図1に示すホストコンピュータの内部アーキテクチャを詳細に示すブロック図である。 図1に示すスキャナの内部アーキテクチャを示すブロック図である。 スキャナと通信するためのモジュールの例を示す概略図である。 スキャナと通信する処理の一例を示すフローチャートである。 通信モジュール及びスキャナを示し、拡張モジュールとWIAドライバとスキャナとの間の通信を示す概略図である。
図1は、本発明の態様が実現される環境の一例を示す。一般にコンピュータ100は、Microsoft(登録商標)のWindows(登録商標)又はApple(登録商標)のMac OS(登録商標)又はLINUX等のオペレーティングシステムを有するプログラマブル汎用パーソナルコンピュータを含む。これは、特定の機能を実行し且つそれらの機能を実行する時に実質的には専用コンピュータになるように以下に説明するようにプログラムされる。図1に示すように、コンピュータ100は、表示画面101の最上部にスキャナオプションに対するユーザインタフェース102を表示し、画面の最下部に画像103を表示する。スキャナ200は、コンピュータ100に接続され、印刷された画像、印刷されたテキスト、手書きされたもの又は対象物を光学走査し且つそれをデジタル画像に変換するために使用される。
ホストコンピュータ100は、固定ディスク45等のコンピュータ可読記憶媒体を更に含む。固定ディスク45は、以下に更に完全に説明するように、スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信方法をコンピュータに実行させるためのコンピュータ実行可能処理ステップ又はコンピュータ実行可能プログラム等のコンピュータ可読情報を格納するように構成される。
図1はコンピュータを示すが、本開示の態様を実現するための演算機器は種々の実施形態において実現可能である。例えば画像処理環境において、演算機器はデジタルカメラ又はデジタルビデオレコーダに含まれてもよい。医用画像処理環境において、演算機器はCTスキャナ又はX線撮影装置であってもよい。アプリケーション及び環境に従って、他の実施形態が可能である。
図1において、スキャナ200はデスクトップ(又はフラットベッド)スキャナとして示される。スキャナにおいて、原稿は走査のためにガラスウィンドウの上に載置される。しかし、スキャナ200は他の撮像装置として実現可能である。例えばスキャナ200は、ハンドヘルドスキャナとして具体化されてもよい。この場合、装置は手に持って移動できる。スキャナ200は、大判原稿のための機械的駆動スキャナとして具体化されてもよい。この場合、フラットベッド設計は実用的でない。
図2は、図1に示すコンピュータ100の内部アーキテクチャを詳細に示すブロック図である。図2に示すように、ホストコンピュータ100は、コンピュータバス115とインタフェースする中央処理装置(CPU)110を含む。また、固定ディスク45(例えば、ハードディスク又は他の不揮発性記憶媒体)、ネットワークインタフェース111、主ランタイムトランジェントメモリとして使用するランダムアクセスメモリ(RAM)116、読み出し専用メモリ(ROM)117、表示画面101に対するディスプレイインタフェース118、キーボードインタフェース112、マウスインタフェース113及びスキャナインタフェース114がコンピュータバス115とインタフェースする。スキャナインタフェース114は、汎用バス、小型計算機システムインタフェース(SCSI)、USB接続、FireWire接続又は別の接続等の接続を介してスキャナ200とインタフェースし、有線又は無線ネットワークを介してデータを送信するように構成されてもよい。
RAM116は、オペレーティングシステム、アプリケーションプログラム、通信モジュール及びデバイスドライバ等のソフトウェアプログラム中の命令の実行中にRAM116に格納された情報をCPU110に提供するためにコンピュータバス115とインタフェースする。更に詳細には、CPU110は、最初に固定ディスク45又は別の記憶装置からRAM116の領域にコンピュータ実行可能処理ステップをロードする。CPU110は、ロードされたコンピュータ実行可能処理ステップを実行するためにRAM116から格納された処理ステップを実行できる。コンピュータ実行可能ソフトウェアプログラムが機能又は較正情報、カラー画像、あるいは他の情報等のデータにアクセスし且つ/又は変更できる程度まで、そのデータがそのようなソフトウェアプログラムの実行中にCPU110によりアクセス可能であるように、そのデータはRAM116に格納される。
図2に示すように、固定ディスク45は、オペレーティングシステム120、並びにワードプロセシングプログラム又はグラフィック画像管理プログラム等のアプリケーションプログラム121に対するコンピュータ実行可能処理ステップを含む。固定ディスク45は、入力デバイスドライバ122、出力デバイスドライバ123及び他のデバイスドライバ124等のデバイスへのソフトウェアインタフェースのためのデバイスドライバに対するコンピュータ実行可能処理ステップを更に含む。項目ツリー126は、スキャナ200の較正及び/又は機能情報を含み、これはスキャナ200の代わりにユーザインタフェースを生成するために使用される。走査済画像ファイルを含む画像ファイル127及び他のファイル128は、出力デバイスに出力するため及びアプリケーションプログラムにより操作するために入手可能である。
通信モジュール125は、スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信を提供するためのコンピュータ実行可能処理ステップを含む。図6に示すように、一般に通信モジュール125は、拡張モジュール(WIAユーザインタフェース拡張モジュール又は他社のTWAINデータソース等)及びWIAドライバを含む。
更に詳細には、通信モジュール125は、WIAサービスを介してWIAドライバと通信するためにTWAINアプリケーションの代わりに動作するように構成され且つWIAサービスのカスタムプロパティ機構を介してWIAドライバにデータ構造を送信するように構成される拡張モジュールを含む。データ構造は、スキャナに対する命令データを含むバイナリデータファイルの場所を含む。次に、拡張モジュールは、受信した場所に従って新しいバイナリデータファイルの場所を特定し、TWAINアプリケーションの代わりに取得した情報を処理する。一般に通信モジュール125は、データ構造に含まれる場所に従ってバイナリデータファイルの場所を特定し、命令データを取得し且つスキャナに命令データを送信するように構成されるWIAドライバを更に含む。尚、スキャナは、命令データを処理し且つ結果をWIAドライバに送信し返す。WIAドライバは、新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所でデータ構造を更新する。WIAドライバは、新しいバイナリデータファイルの場所を含むデータ構造をWIAサービスのカスタムプロパティ機構を介して拡張モジュールに送信する。これらの処理については、以下に更に詳細に説明する。
通信モジュール125に対するコンピュータ実行可能処理ステップ125は、オペレーティングシステム120の一部として、プリンタドライバ等の出力デバイスドライバの一部として又はスタンドアロンアプリケーションプログラムとして構成されてもよい。それらの処理ステップは、オペレーティングシステム、デバイスドライバ又はアプリケーションプログラムに対するダイナミックリンクライブラリ(DLL)又はプラグインとして構成されてもよい。例えば実施形態に係る通信モジュール125は、スキャナ等の入力デバイス又はプリンタ等の出力デバイスのファームウェアで具体化されてもよく、あるいは汎用コンピュータ用のスタンドアロン通信アプリケーションで提供されてもよい。本明細書で説明する一実施形態において、通信モジュール125は、ホストコンピュータ100のオペレーティングシステムに直接組み込まれてもよい。本発明はそれらの実施形態に限定されず、開示される通信モジュールは他の環境で使用されてもよいことが理解される。
図3は、スキャナ200のアーキテクチャを示すブロック図である。簡潔にするために、本明細書においては、スキャナ200の基本的な構成要素のみを示し、スキャナ200の構成要素の詳細な説明は行わない。
図3において、スキャナ200は、画像を取り込む読み取りセンサ201及びセンサ201からの画像信号を処理する画像処理回路202を含む。メモリ203は、スキャナを制御するためにCPU204により実行されるプログラムを格納する。インタフェース205は、コンピュータ100等の接続装置からコマンドを受信し、CPU204にコマンドを送信する。インタフェース205は、コンピュータ100等の接続装置に結果として得られるデータを更に出力する。インタフェース205は、例えばパラレルポート、汎用バス、小型計算機システムインタフェース(SCSI)、USB接続、FireWire接続又は別の接続を含むことができ、有線又は無線ネットワークを介してデータを送信するように構成されてもよい。
上述したように、殆どのコンピュータは、スキャナと通信するために別個の十分に発達したTWAIN及びWIAドライバを含む。それらのドライバは、システムを不安定にし且つリソースを浪費する。
従って、スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信を提供する処理について、図4〜図6を参照して説明する。
図4は、通信処理において使用されてもよい種々のモジュールの例を示す。各モジュールは、コンピュータ実行可能ソフトウェアコード又はCPU110等のプロセッサにより実行可能な処理ステップであり、固定ディスク45等のコンピュータ可読記憶媒体に格納される。図4に示すモジュールより多くのモジュール又は少ないモジュールが使用されてもよく、他のアーキテクチャが可能である。一部のモジュールはMicrosoft(例えば、WIA)モジュールであり、一部のモジュールは第三者モジュールであり、一部のモジュールはソフトウェアメーカの独自のモジュールである。
TWAINApp401は、コンピュータ100上で実行するTWAINアプリケーションに対応する。例えばTWAINApp401は、Adobe(登録商標)のAcrobat等のTWAINインタフェースを介して取得される画像の挿入を許可するオーサリングアプリケーションであってもよい。
TWAIN DSM402は、TWAINデータソースマネージャである。TWAIN DSM402の主な役割は、種々の装置に対してTWAINコマンドを変換するTWAINデータソースとTWAINApp401との間の接続を確立及び管理することである。一般に、アプリケーションがTWAINデータソースと通信する必要がある場合、アプリケーションは正確にアドレス指定されたメッセージによりTWAIN DSM402を呼び出す。一般にTWAIN DSM402は、アプリケーション及び/又はユーザが所望のソースを選択することを可能にし、選択したソースをロード及びアンロードし、特定のアプリケーションからの全ての呼び出しが適切なソースに正確にルーティングされることを確認する。
しかし、本実施形態によると、TWAIN DSM402は他社のTWAINデータソース403(以下においては、「他社のTWAIN DS403」)に結合される。他社のTWAIN DS403は、TWAINApp401の代わりにWIAサービス406と通信する拡張モジュールのうちの1つである。以下に更に完全に説明するように、他社のTWAIN DS403は、WIAドライバ407にデータ構造を渡すことによりスキャナ200に対する命令データをWIAドライバ407に送信し、その後、要求の結果を格納する新しいバイナリデータファイルの場所を含むデータ構造を受信する。TWAINApp401の代わりに、他社のTWAIN DS403は取得した情報を処理する。その点に関して、他社のTWAIN DS403は、TWAINApp401及びTWAIN DSM402の代わりに多くのコマンドを実行できる。例えば、現在のファイル名を返したり、走査済画像を画像ファイルに書き込んだりできる。
WIAユーザインタフェース拡張モジュール404(以下においては、「WIA UI拡張モジュール404」)は、WIAサービス406のカスタムプロパティ機構を介してWIAドライバ407と通信できる別の拡張モジュールである。WIA UI拡張モジュール404は、WIAドライバ407にデータ構造を渡すことによりスキャナ200に対する命令データをWIAドライバ407に送信し、その後、要求の結果を格納する新しいバイナリデータファイルの場所を含むデータ構造を受信する。WIA UI拡張モジュール404は、TWAINApp401の代わりに、データ構造に含まれる場所に従って新しいバイナリデータファイルの場所を特定し且つ結果を表示する。例えばWIA UI拡張モジュール404は、固定ディスク45上の項目ツリー126に書き込むためにスキャナ200から取得された機能及び/又は較正データを使用でき、スキャナ200に対してロバスト性を有する拡張ユーザインタフェースを構成するために項目ツリー126からの情報を使用できる。
WIAApp405は、例えば純粋にWIAアプリケーションに対応するか、又はWIAプロトコルを介して通信する他の非TWAINアプリケーションに対応する。
WIAサービス406は、処理境界を越えて他社のTWAIN DS403及びWIA拡張モジュール404と通信する。WIAサービス406は、アプリケーションがスキャナと通信することを可能にするためにWIAプロトコルを備えるローカルで実行するサービスである。尚、WIAサービス406は、ユーザが作成したパラメータをスキャナに渡せるようにするカスタムプロパティ機構を含む。以下に説明するように、カスタムプロパティ機構は、WIAドライバ407にデータ構造を渡すために使用され、データ構造は、カスタムプロパティ機構を使用してWIAドライバ407から受信される。
WIAドライバ407は、TWAINApp401の代わりに命令をスキャナ200に渡し且つスキャナ200からの結果を返すために他社のTWAIN DS403又はWIA UI拡張モジュール404と通信する。特にWIAドライバ407は、他社のTWAIN DS403又はWIA UI拡張モジュール404からデータ構造を受信し、データ構造に含まれる場所に従ってスキャナ200に対する命令データを含むバイナリデータファイルの場所を特定し、スキャナ200に命令データを送信し、スキャナ200からの結果を新しいバイナリデータファイルに書き込み、新しいバイナリデータファイルの場所によりデータ構造を更新し、他社のTWAIN DS403又はWIA UI拡張モジュール404にデータ構造を送信し返す。一実施形態において、WIAドライバ407はWIAサービス406によりロードされるWIAミニドライバである。
図4において、WIAドライバサービスライブラリ408を更に示す。WIAドライバサービスライブラリ408は、WIAドライバ407にヘルパー機能を提供するシステムにより供給された構成要素である。
接続モジュール409は、接続層410を介してWIAドライバ407とスキャナ200との間の通信を提供する。接続層410は、例えばTCP/IP層、USB物理層又はBluetooth物理層を含むことができる。
図5は、スキャナと通信する処理の一例を示すフローチャートである。
簡単に説明すると、図5において、通信は、スキャナに対するWIAドライバとTWAINアプリケーションとの間で提供される。WIAサービスを介してWIAドライバと通信するために、TWAINアプリケーションの代わりに動作する拡張モジュールが生成される。データ構造は、WIAサービスのカスタムプロパティ機構を介して拡張モジュールからWIAドライバに送信され、データ構造は、スキャナに対する命令データを含むバイナリデータファイルの場所を含む。バイナリデータファイルの場所は、データ構造に含まれる場所に従ってWIAドライバにより特定され、命令データが取得される。命令データは、WIAドライバからスキャナに送信され、スキャナは、命令データを処理し且つその結果をWIAドライバに送信し返す。WIAドライバは、命令データに従って新しいバイナリデータファイルに結果を書き込み、新しいバイナリデータファイルの場所によりデータ構造を更新する。新しいバイナリデータファイルの場所を含むデータ構造は、WIAサービスのカスタムプロパティ機構を介してWIAドライバから拡張モジュールに送信される。新しいバイナリデータファイルの場所はデータ構造に含まれる場所に従って拡張モジュールにより特定され、情報が取得される。取得された情報は、TWAINアプリケーションの代わりに拡張モジュールにより処理される。
更に詳細には、ステップ501において、コンピュータ100はTWAINApp401の代わりに動作するような拡張モジュールを生成する。拡張モジュールは、TWAINApp401の代わりに命令を送信し、TWAINApp401の代わりにスキャナ200からの結果を処理する。
この点に関して、TWAINApp401の代わりに動作する特定の種類の拡張モジュールは、TWAINApp401からの要求に依存する。特にTWAINApp401からの要求又はコマンドがユーザインタフェースを表示することである場合、WIA UI拡張モジュール404は、スキャナ200から機能を要求するためにTWAINApp401の代わりに通信してもよい。機能は、固定ディスク45上の項目ツリー126に書き込まれ、その後、TWAINApp401の代わりに拡張ユーザインタフェースを表示するために使用されてもよい。一方、TWAINApp401がスキャナ200から画像データを要求する場合、他社のTWAIN DS403がTWAINApp401の代わりに通信し且つ結果として得られる画像データをTWAINApp401に送信してもよい。
場合によっては、他社のTWAIN DS403及びWIA UI拡張モジュール404は全体の機能性を実行するために協働するが、他社のTWAIN DS403及びWIA UI拡張モジュール404のうちの一方のみがWIAドライバとの実際の通信を実行してもよい(以下に説明するように)。例えば、他社のTWAIN DS403は、ユーザインタフェースに対する要求を最初に受信してもよいが、残りの処理を実行するためにWIA UI拡張モジュール404にその要求を単純に中継してもよい。
ステップ502において、データ構造はWIAサービス406のカスタムプロパティ機構を介して拡張モジュールからWIAドライバ407に送信される。一実施形態において、データ構造は、WIAドライバ407により制御されるダイアログボックスオブジェクトを介して受信されてもよい。
カスタムプロパティ機構は、WIAプロトコルでデータを送信する特定の方法である。呼び出し側は、通常のWIAプロパティのようにカスタムプロパティを操作できる。従って、WIAカスタムプロパティ機構により、ユーザが生成したパラメータがWIAドライバ407に渡される。更に、WIAサービス406は、カスタムプロパティの処理方法を理解しているため、変換は殆ど必要とされず且つ他の実装も要求されない。
拡張モジュールからWIAドライバ407に送信されるデータ構造は、少なくとも3つの要素を含む。特にデータ構造は、少なくともコマンド名、予想されるデータの種類を示す要素及びバイナリデータファイルの場所を示す要素を含む。例えば、コマンドは「GetImageData」であってもよく、データタイプは.binであってもよく、場所は、例えば「c:\drivers\temp.bin」であるバイナリデータファイルの場所の名前を含む文字列であってもよい。
この点に関して、コマンド文字列は、その場所に与えられたファイルにアクセスし且つバイナリデータファイルに見つけられるデータにより特定の動作(スキャナ200への送信等)を行うようにWIAドライバ407に命令し、またスキャナ200から受信された結果を使用して行うこと(1つ又は複数の新しいバイナリデータファイルに結果として得られるデータを書き込むこと等)をWIAドライバ407に示す特定の種類のコマンド文字列である。
バイナリファイルは、バイナリ形式で符号化される任意の種類のデータを含んでもよいコンピュータファイルである。例えばバイナリデータファイルは、スキャナ200に対する命令データ又はスキャナ200からの結果のデータを格納してもよい。バイナリデータファイルの場所は、オペレーティングシステム120のインストール領域、あるいは過度のセキュリティ制限なしでWIAドライバ407又は拡張モジュールにより容易にアクセスされるメモリの別の部分において特定されるべきである。各コマンドに対する命令データは、WIAドライバ407にデータ構造を送信する前に1つ又は複数のバイナリデータファイルに書き込まれてもよい。
ステップ503において、WIAドライバ407は、データ構造に含まれる場所に従ってバイナリデータファイルの場所を特定し、そのバイナリデータファイルに格納される命令データを取得する。バイナリデータファイル中の命令データの内容は、アプリケーション及び要求されたデータに依存する。従って、一例において、命令データは、較正データ又はスキャナ200の機能に対する要求に対応可能である。別の例において、命令データは、スキャナ200からの画像データに対する要求に対応可能である。
ステップ504において、WIAドライバ407はスキャナ200に命令データを送信する。
ステップ505において、スキャナ200は受信した命令データを処理し、結果をWIAドライバ407に送信し返す。例えば命令データが較正データに対する要求に対応する場合、スキャナ200はWIAドライバ407に較正データを送信する。一方、命令データが画像データに対する要求に対応する場合、スキャナ200はWIAドライバ407に生画像データを送信する。
ステップ506において、WIAドライバ407はスキャナ200から受信される結果を新しいバイナリデータファイルに書き込む。この点に関して、スキャナ200からの結果を格納するために、複数の新しいバイナリデータファイルが使用されてもよい。例えば複数の画像がスキャナ200により入力される場合、複数の新しいバイナリデータファイルに結果として得られる画像データを格納する必要がある。そのような場合、WIAドライバ407は、データ構造のファイル場所特定要素を介してそれら複数のデータファイルの全ての場所を指し示すポインタを返せる。WIAドライバ407は、拡張モジュールが結果の場所を特定できるように新しいバイナリデータファイルの場所によりデータ構造を更新する。
ステップ507において、WIAドライバ407は、カスタムプロパティ機構を介して拡張モジュールにデータ構造を送信し返す。この時点で、データ構造は、拡張モジュールがスキャナ200からの結果の場所を特定できるように、新しいバイナリデータファイルの場所を含む。
ステップ508において、拡張モジュールは、データ構造に含まれる場所を使用して新しいバイナリデータファイルの場所を特定する。従って、拡張モジュールは、較正データ、画像データ又はスキャナ200からの他の結果を取得できる。
ステップ509において、拡張モジュールは、TWAINApp401の代わりに新しいバイナリデータファイルから取得される情報を処理する。
拡張モジュールによる処理は、TWAINApp401の代わりに送信された命令データに依存する。例えば命令データがスキャナ200の機能に対する要求に対応する場合、WIA UI拡張モジュール404は、TWAINApp401の代わりに拡張ユーザインタフェースを表示するためにその情報を使用できる。この点に関して、WIAドライバ407がスキャナ200の固有のWIAプロトコルに従って機能を取得するため、WIA UI拡張モジュール404はより高いロバスト性を有するユーザインタフェースを提供できる。更に、WIA UI拡張モジュール404がTWAINApp401の代わりにそのような情報を表示できるため、TWAINApp401の固有のユーザインタフェースは全く必要ない。
一実施形態において、較正及び/又は機能データは、ユーザがコンピュータ100と対話する前にスキャナ200から取得可能である。例えばTWAINApp401は、スキャナ200の開始時又は設置時に給紙装置又はスキャナフラットベッドの較正又は機能データのためにWIAドライバ407をクエリできる。ユーザがTWAINApp401にアクセスする時までに拡張ユーザインタフェースが生成され且つ容易に利用可能となるように、取得されたデータは固定ディスク45上の項目ツリー126に書き込まれる。較正データは、ユーザが画像をインポートすることを要求する時に取得されてもよい。
逆に、ユーザは上述の通信処理を使用してパラメータを選択及び設定できてもよい。例えばWIA UI拡張モジュール404は、ユーザインタフェースからスキャナ機能のユーザ選択に対応する命令データを含むデータ構造を渡すことができ、WIAドライバ407により制御されるダイアログボックスは、スキャナ200への送信用の命令又は選択をユーザから受信するために使用される。
別の例において、命令データがスキャナ200からの画像データに対する要求に対応する場合、他社のTWAIN DS403は、拡張モジュールとして動作可能である。特に画像データは、他社のTWAIN DS403により取得され且つTWAINApp401に転送される。更に、一般に画像データは、多くの画像取得方法より効率的に取得される。特にWIAドライバ407は、画像全体の画像データが新しいバイナリデータファイルに格納されると、画像全体の画像データを取得し且つTWAINApp401に通知を送信できる。従って、画像全体の画像データは、画像データがTWAINApp401に転送される前に他社のTWAIN DS403により取得されてもよい。それに応じて、TWAINApp401が1つずつ画像データを取得する必要はなく、ユーザは単純に画像データを要求し、完全な画像は他社のTWAIN DS403から返される。当然、画像データは要望に応じてまとめて転送されてもよく又は分割して転送されてもよい。
図6は、他社のTWAIN DS403又はWIA UI拡張モジュール404(共に図示する)とWIAドライバとスキャナとの間の通信を示す概略図である。他社のTWAIN DS403/WIA UI拡張モジュール404及びWIAドライバ407は、共に通信モジュール125を構成する。上述したように、通信モジュール125は、コンピュータ100の固定ディスク45に格納され、スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信を提供するコンピュータ実行可能処理ステップを含む。
図6に示すように、他社のTWAIN DS403/WIA UI拡張モジュール404は、バイナリデータファイルの場所を含むデータ構造をカスタムプロパティ機構を介してWIAドライバ407に渡し、この時点で新しいバイナリデータファイルの場所を含むデータ構造をWIAドライバ407から受信する。WIAドライバ407は、命令データをスキャナ200に渡し、スキャナ200から結果を受信する。
上述の構成により、一般に単一の組合せドライバを有するスキャナハードウェアへの最大限のアクセス権をTWAINアプリケーションに提供できる。これにより、複数のドライバによりリソースにアクセスすることにより起こる不安定さは低減される。更に単一のドライバに対してのみ開発が必要になる。
本発明は、特定の典型的な実施形態に関する詳細な説明を提供した。添付の特許請求の範囲の範囲が上述の実施形態に限定されず、特許請求の範囲の範囲から逸脱せずに種々の変更及び変形が行われてもよいことが理解される。

Claims (22)

  1. スキャナに対するWIAドライバとTWAINアプリケーションとの間で通信する方法であって、
    WIAサービスを介して前記WIAドライバと通信するために前記TWAINアプリケーションの代わりに動作する拡張モジュールを生成するステップと、
    前記WIAサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記WIAドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するステップと、
    前記データ構造に含まれる前記場所に従って前記WIAドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得するステップと、
    前記スキャナが前記命令データを処理し且つその結果を前記WIAドライバに送信し、前記WIAドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記WIAドライバから前記スキャナに前記命令データを送信するステップと、
    前記WIAサービスの前記カスタムプロパティ機構を介して前記WIAドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信するステップと、
    前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得するステップと、
    前記TWAINアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理するステップとを有することを特徴とする方法。
  2. 前記拡張モジュールはWIAユーザインタフェース拡張モジュールであり、前記処理は前記TWAINアプリケーションの代わりに前記取得した情報を表示することを含むことを特徴とする請求項1に記載の方法。
  3. 前記命令データは前記スキャナの機能に対する要求に対応し、前記スキャナは機能情報を前記WIAドライバに送信し返し、前記WIAユーザインタフェース拡張モジュールは前記TWAINアプリケーションの代わりにユーザインタフェースを表示することを特徴とする請求項2に記載の方法。
  4. 前記拡張モジュールは他社のTWAINデータソースであり、前記表示された情報の処理は前記TWAINアプリケーションに前記取得したデータを送信することを含むことを特徴とする請求項1に記載の方法。
  5. 前記命令データは前記スキャナからの画像データに対する要求に対応し、前記スキャナは前記WIAドライバに画像データを送信し返し、前記画像データは前記他社のTWAINデータソースにより取得され且つ前記TWAINアプリケーションに転送されることを特徴とする請求項4に記載の方法。
  6. 画像全体の画像データは、前記画像データが前記TWAINアプリケーションに転送される前に前記他社のTWAINデータソースにより取得されることを特徴とする請求項5に記載の方法。
  7. 前記画像全体の前記画像データが前記新しいバイナリデータファイルに格納されると、前記WIAドライバは前記TWAINアプリケーションに通知を送信することを特徴とする請求項6に記載の方法。
  8. 前記バイナリデータファイル及び前記新しいバイナリデータファイルの場所は、オペレーティングシステムのインストール領域において特定されることを特徴とする請求項1に記載の方法。
  9. 前記データ構造は、前記WIAドライバに対するコマンドを更に含むことを特徴とする請求項1に記載の方法。
  10. 前記WIAドライバは、前記WIAサービスによりロードされるミニドライバであることを特徴とする請求項1に記載の方法。
  11. コンピュータ実行可能処理ステップを格納するように構成されるコンピュータ可読メモリと、
    前記メモリに格納される前記コンピュータ実行可能処理ステップを実行するように構成されるプロセッサとを有し、
    前記メモリに格納される前記処理ステップは、スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信をプロセッサに提供させ、
    WIAサービスを介して前記WIAドライバと通信するために前記TWAINアプリケーションの代わりに動作する拡張モジュールを生成し、
    前記WIAサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記WIAドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信し、
    前記データ構造に含まれる前記場所に従って前記WIAドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得し、
    前記スキャナが前記命令データを処理し且つその結果を前記WIAドライバに送信し、前記WIAドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記WIAドライバから前記スキャナに前記命令データを送信し、
    前記WIAサービスの前記カスタムプロパティ機構を介して前記WIAドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信し、
    前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得し、
    前記TWAINアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理する、ステップを含むことを特徴とする通信装置。
  12. 前記拡張モジュールはWIAユーザインタフェース拡張モジュールであり、前記処理は前記TWAINアプリケーションの代わりに前記取得した情報を表示することを含むことを特徴とする請求項11に記載の通信装置。
  13. 前記命令データは前記スキャナの機能に対する要求に対応し、前記スキャナは機能情報を前記WIAドライバに送信し返し、前記WIAユーザインタフェース拡張モジュールは前記TWAINアプリケーションの代わりにユーザインタフェースを表示することを特徴とする請求項12に記載の通信装置。
  14. 前記拡張モジュールは他社のTWAINデータソースであり、前記処理は前記TWAINアプリケーションに前記取得したデータを送信することを含むことを特徴とする請求項11に記載の通信装置。
  15. 前記命令データは前記スキャナからの画像データに対する要求に対応し、前記スキャナは前記WIAドライバに画像データを送信し返し、前記画像データは前記他社のTWAINデータソースにより取得され且つ前記TWAINアプリケーションに転送されることを特徴とする請求項14に記載の通信装置。
  16. 画像全体の画像データは、前記画像データが前記TWAINアプリケーションに転送される前に前記他社のTWAINデータソースにより取得されることを特徴とする請求項15に記載の通信装置。
  17. 前記画像全体の前記画像データが前記新しいバイナリデータファイルに格納されると、前記WIAドライバは前記TWAINアプリケーションに通知を送信することを特徴とする請求項16に記載の通信装置。
  18. 前記バイナリデータファイル及び前記新しいバイナリデータファイルの場所は、オペレーティングシステムのインストール領域において特定されることを特徴とする請求項11に記載の通信装置。
  19. 前記データ構造は、前記WIAドライバに対するコマンドを更に含むことを特徴とする請求項11に記載の通信装置。
  20. 前記WIAドライバは、前記WIAサービスによりロードされるミニドライバであることを特徴とする請求項11に記載の通信装置。
  21. スキャナに対するWIAドライバとTWAINアプリケーションとの間の通信を提供する通信モジュールであって、
    WIAサービスを介して前記WIAドライバと通信するために前記TWAINアプリケーションの代わりに動作するように構成され、前記WIAサービスのカスタムプロパティ機構を介して前記WIAドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するように構成される拡張モジュールであり、受信した場所に従って新しいバイナリデータファイルの場所を特定し且つ前記TWAINアプリケーションの代わりに取得した情報を処理する拡張モジュールと、
    前記データ構造に含まれる前記場所に従って前記バイナリデータファイルの場所を特定し、前記命令データを取得し、且つ前記命令データを処理し且つ前記WIAドライバに結果を送信する前記スキャナに前記命令データを送信するように構成される前記WIAドライバであり、新しいバイナリデータファイルに前記結果を書き込み、前記新しいバイナリデータファイルの前記場所により前記データ構造を更新し、前記WIAサービスの前記カスタムプロパティ機構を介して前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信する前記WIAドライバとを有することを特徴とする通信モジュール。
  22. スキャナに対するWIAドライバとTWAINアプリケーションとの間で通信する方法をコンピュータに実行させるためのコンピュータ実行可能処理ステップを格納するコンピュータ読み出し可能な記憶媒体であって、前記方法は、
    WIAサービスを介して前記WIAドライバと通信するために前記TWAINアプリケーションの代わりに動作する拡張モジュールを生成するステップと、
    前記WIAサービスのカスタムプロパティ機構を介して前記拡張モジュールから前記WIAドライバに前記スキャナに対する命令データを含むバイナリデータファイルの場所を含むデータ構造を送信するステップと、
    前記データ構造に含まれる前記場所に従って前記WIAドライバにより前記バイナリデータファイルの場所を特定し且つ前記命令データを取得するステップと、
    前記スキャナが前記命令データを処理し且つその結果を前記WIAドライバに送信し、前記WIAドライバが前記命令データに従って前記結果を新しいバイナリデータファイルに書き込み且つ前記新しいバイナリデータファイルの場所により前記データ構造を更新するように、前記WIAドライバから前記スキャナに前記命令データを送信するステップと、
    前記WIAサービスの前記カスタムプロパティ機構を介して前記WIAドライバから前記拡張モジュールに前記新しいバイナリデータファイルの前記場所を含む前記データ構造を送信するステップと、
    前記場所に従って前記拡張モジュールにより前記新しいバイナリデータファイルの場所を特定し且つ前記情報を取得するステップと、
    前記TWAINアプリケーションの代わりに前記拡張モジュールにより前記取得した情報を処理するステップとを有することを特徴とするコンピュータ読み出し可能な記憶媒体。
JP2010162220A 2009-07-17 2010-07-16 スキャナの通信モデル Withdrawn JP2011055479A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/505,429 US20110016475A1 (en) 2009-07-17 2009-07-17 Communication model for a scanner

Publications (1)

Publication Number Publication Date
JP2011055479A true JP2011055479A (ja) 2011-03-17

Family

ID=43466158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010162220A Withdrawn JP2011055479A (ja) 2009-07-17 2010-07-16 スキャナの通信モデル

Country Status (2)

Country Link
US (1) US20110016475A1 (ja)
JP (1) JP2011055479A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110304740A1 (en) * 2010-06-10 2011-12-15 Apteryx, Inc. Universal image capture manager
US20240020136A1 (en) * 2022-07-18 2024-01-18 Vmware, Inc. Method to realize scanner redirection between a client and an agent
US20240020137A1 (en) * 2022-07-18 2024-01-18 Vmware, Inc. Method to realize scanner redirection between a client and an agent using different scanning protocols
US11750749B1 (en) * 2022-08-29 2023-09-05 Vmware, Inc. Method to use native scanning properties dialog to scan in scanner redirection

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6373507B1 (en) * 1998-09-14 2002-04-16 Microsoft Corporation Computer-implemented image acquistion system
US7266761B2 (en) * 1999-06-15 2007-09-04 Microsoft Corporation Special API interface for interfacing an application with a TWAIN module, negotiating and presenting a user interface for inserting an image into a document
US6489973B1 (en) * 1999-10-04 2002-12-03 Canon Kabushiki Kaisha Image acquisition architecture
US7047534B2 (en) * 2000-03-17 2006-05-16 Microsoft Corporation Simplified device drivers for hardware devices of a computer system
US20010045964A1 (en) * 2000-04-25 2001-11-29 Microsoft Corporation Method and system for transferring images from an imaging source device toa destination
US6938261B2 (en) * 2000-05-12 2005-08-30 Microsoft Corporation System and method employing script-based device drivers
US7254816B2 (en) * 2003-05-05 2007-08-07 Microsoft Corporation Device driver conversion and creation
JP4345029B2 (ja) * 2007-03-28 2009-10-14 ブラザー工業株式会社 画像処理プログラム

Also Published As

Publication number Publication date
US20110016475A1 (en) 2011-01-20

Similar Documents

Publication Publication Date Title
US10122870B2 (en) Information processing system, information processing apparatus, and information processing method
US20110128572A1 (en) Printing apparatus, printing method and storage medium
US8654388B2 (en) Information processing apparatus that transforms an output setting of a predetermined format into a setting described in an original format
US9876918B2 (en) Information processing system for generating job execution screen, electronic apparatus, and program
US20140019859A1 (en) System, information processing apparatus, and method of controlling display
US10762043B2 (en) Information processing system, information processing apparatus, and information processing method
JP2011055479A (ja) スキャナの通信モデル
US20150149516A1 (en) Information processing apparatus, information processing method, and storage medium
JP2016164767A (ja) 情報処理装置、制御方法、制御プログラム
US20170019477A1 (en) Information storage apparatus, information storage method, and information processing system
JP2008090562A (ja) 画像投影装置、画像投影方法、及び画像投影装置に用いられるプログラム
JP6318469B2 (ja) サービス提供システム及びサービス提供方法
JP2006085377A (ja) 電子機器及びその制御方法及びプログラム及び記憶媒体
US20190042291A1 (en) Information processing apparatus, control method therefor, and program
JP5163523B2 (ja) 情報処理装置、プログラム及び記録媒体
JP2010141598A (ja) 画像形成装置、表示制御方法、及び表示制御プログラム
US20180074764A1 (en) Information processing device, information processing system, and information processing method
US10552100B2 (en) Information processing apparatus that executes a printer driver for merging address books, information processing method, and non-transitory recording medium
US9740471B2 (en) Information processing apparatus, and information processing method
US11843745B2 (en) Information processing apparatus for readout of data compressed in a mount format
JP2014120017A (ja) 画像処理システム、画像処理装置、情報端末装置及びプログラム
US10846035B2 (en) Method for controlling image forming apparatus and image forming apparatus using same
US10681243B2 (en) Scan system, method, and program product for generating a file with embedded useable information from a scanned image depending on scanner information
JP2009289121A (ja) 情報処理装置、出力装置、出力処理方法、及びプログラム
JP2006086862A (ja) 画像供給装置と撮像装置、情報処理装置及びその制御方法と通信システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131001