JP2007150464A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2007150464A JP2007150464A JP2005339280A JP2005339280A JP2007150464A JP 2007150464 A JP2007150464 A JP 2007150464A JP 2005339280 A JP2005339280 A JP 2005339280A JP 2005339280 A JP2005339280 A JP 2005339280A JP 2007150464 A JP2007150464 A JP 2007150464A
- Authority
- JP
- Japan
- Prior art keywords
- scanner
- processing
- image
- driver
- scan
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】単一のドライバによる不具合を解消することができるようにする。
【解決手段】画像を入力するための画像入力装置と、前記画像入力装置を制御するためのドライバ・プログラムとを有する画像処理装置であって、画像入力の際に必要なUI処理及び読み取られた画像データを処理及び表示する為のスキャナ・ドライバ部と、前記スキャナ・ドライバ部とは独立した別のプロセスとして動作し、前記画像入力装置のハードウェアの制御を行う下位レベル・ドライバ部と、前記スキャナ・ドライバ部と前記下位レベル・ドライバ部との間でプロセス間通信を行って情報のやり取りを行う通信部とを有することを特徴とする画像処理装置等、を提供する。
【選択図】図1
【解決手段】画像を入力するための画像入力装置と、前記画像入力装置を制御するためのドライバ・プログラムとを有する画像処理装置であって、画像入力の際に必要なUI処理及び読み取られた画像データを処理及び表示する為のスキャナ・ドライバ部と、前記スキャナ・ドライバ部とは独立した別のプロセスとして動作し、前記画像入力装置のハードウェアの制御を行う下位レベル・ドライバ部と、前記スキャナ・ドライバ部と前記下位レベル・ドライバ部との間でプロセス間通信を行って情報のやり取りを行う通信部とを有することを特徴とする画像処理装置等、を提供する。
【選択図】図1
Description
本発明は画像処理装置に関し、特に、イメージ・スキャナやフィルム・スキャナ、デジタルカメラなどの画像入力装置の読み込み処理プログラム(ドライバ)を有する画像処理装置に用いて好適な技術に関する。
イメージ・スキャナやフィルム・スキャナ等の画像入力装置は、反射原稿(写真プリントなど)や透過原稿(写真フィルムなど)をデジタルの画像イメージとして入力する機能を備え、近年わが国でも一般的に使われるようになってきている。この種の装置に於いては、画像入力装置はSCSI(Small Computer System Interface)やUSB(Universal Serial Bus)等を介してパーソナルコンピュータ等の情報処理装置に接続される。画像入力装置の制御は専用のプログラム(ドライバ・プログラム)により行われる。スキャナ・ドライバはまずスキャン用の画面を表示する。
図2は、スキャン用画面の一例を示す図である。
当該画面に於いてユーザはまずスキャンのモード(カラー、モノクロなど)206を指定した後プレビューボタン203を押すと、スキャナはプレビュー動作を行う。そうするとスキャナ・ドライバはスキャナからプレビュー用の低解像度の画像を読み出してプレビュー用の画像データを取得する。スキャナ・ドライバではその結果を当該画面のプレビュー領域201に表示する。
当該画面に於いてユーザはまずスキャンのモード(カラー、モノクロなど)206を指定した後プレビューボタン203を押すと、スキャナはプレビュー動作を行う。そうするとスキャナ・ドライバはスキャナからプレビュー用の低解像度の画像を読み出してプレビュー用の画像データを取得する。スキャナ・ドライバではその結果を当該画面のプレビュー領域201に表示する。
ユーザはプレビュー画面のうちのスキャンすべき領域202をマウス等を使って指定し、スキャンの解像度207、ズーム208の有無、ガンマ209、明るさ210、コントラスト211等のパラメータを設定した後、スキャンボタン204を押す。そうすると、スキャナ・ドライバはスキャナに対してパラメータの設定やコマンドの発行を行い、セットされた原稿のうちユーザが指定した範囲のみをスキャンする。その後読み取った画像データに対して必要な処理(色補正や画像処理)を行った後、ファイルとして保存したり、当該ドライバを呼び出したアプリケーション・プログラムに処理済みの画像データを渡したりする。
従来のスキャナでは、スキャナ側にインテリジェンスがあった為に、スキャナ・ドライバでは簡単なコマンドを発行することにより、スキャナに対するパラメータの設定やスキャン画像の呼び出しを行うことができた。例えば図3で示すように、スキャナ・ドライバ301はSCSI等のインタフェースを介してスキャナに対してコマンド302を送信する。
例えば、CanoScan300/600の場合には以下のようなSCSIコマンドが用意されており、これらを使用するだけでスキャンを実行したり、キャリブレーションを行ったりすることができるようになっていた。この為、従来のスキャナ・ドライバのスキャナ制御部は比較的シンプルにできており、スキャナ・ドライバの一部として組み込まれていた。
SetWindows:スキャン範囲、明るさ/コントラスト等の設定、
Scan:スキャン動作の起動、
Read:画像データの読み込み、
Send:各種パラメータ(ディザパターン、濃度カーブ等)の設定、
Exec Calibration:キャリブレーションの実行。
SetWindows:スキャン範囲、明るさ/コントラスト等の設定、
Scan:スキャン動作の起動、
Read:画像データの読み込み、
Send:各種パラメータ(ディザパターン、濃度カーブ等)の設定、
Exec Calibration:キャリブレーションの実行。
ところが、近年ではパーソナルコンピュータ等のホスト機器の処理能力が向上してきたことから、スキャナには必要最低限の機能のみを備えている。そして、インタフェース(USB等)を介して、スキャナのコントローラの各種レジスタを直接操作することによりスキャナの制御を行うケースが増えてきた。この場合、スキャナの制御を行う処理が従来に比べて非常に複雑になる為、スキャナを制御する処理を下位レベル・ドライバなるまとまったプログラムとして用意することが増えてきた。
また、従来はスキャナ側で行われていた明るさ/コントラストの調整や色補正(マスキング処理)等もスキャナ・ドライバ側で行う必要が出てきた。このため、第4図に示すように、スキャナ・ドライバは下位レベル・ドライバ部402とスキャナ・ドライバ部401とから構成されるようになってきている。
スキャナ・ドライバ部401は下位レベル・ドライバ部402を介して、スキャンのパラメータを設定したり、スキャナからの画像データを読み込み、更に必要な色補正や画像処理(明るさ/コントラストの調整等)を行ったりする。下位レベル・ドライバ部402はスキャナ・ドライバ部401からの指示に基づいて、USB等のインタフェースを介して画像入力装置404のコントローラのレジスタを直接読み書きすることにより、必要なスキャナの制御を行う。
このように、従来のスキャナ・ドライバでは、スキャナ・ドライバ部401と下位レベル・ドライバ部402は第4図に示すように、一体化されて同一のプロセスとして動作するように構成されていた。このため、スキャナ・ドライバ部401と下位レベル・ドライバ部402とは逐次的に動作することしかできず、例えばスキャナが画像を読み取っている間は、スキャナ・ドライバ部401では色補正や画像処理を行うことができないという問題があった。
また、スキャナのコントローラの仕様は機器毎に異なることが多いが、その場合実際には下位レベル・ドライバ部402の処理を入れ替えるだけでよいのに、スキャナ・ドライバ全体を入れ替えなければならないという問題もあった。
本発明は前述の問題点に鑑み、単一のドライバによる不具合を解消することができるようにすることを目的としている。
本発明は前記従来例の欠点に鑑みて成されたものであり、画像を入力するための画像入力装置と、前記画像入力装置を制御するためのドライバ・プログラムとを有する画像処理装置であって、画像入力の際に必要なUI処理及び読み取られた画像データを処理及び表示する為のスキャナ・ドライバ部と、前記スキャナ・ドライバ部とは独立した別のプロセスとして動作し、前記画像入力装置のハードウェアの制御を行う下位レベル・ドライバ部と、前記スキャナ・ドライバ部と前記下位レベル・ドライバ部との間でプロセス間通信を行って情報のやり取りを行う通信部とを有することを特徴とする画像処理装置等、を提供する。
本発明によれば、スキャナ・ドライバ部の処理と、実際にスキャナ・コントローラのレジスタを制御する処理とを独立したプロセスとして動作するように構成されているため、両者を並行して動作させることができ、画像入力のスループットを向上させることができるという効果が得られる。また、スキャナ・ドライバ部と下位レベル・ドライバ部とを分離し、スキャナ及びスキャナのコントローラに固有の処理を全て下位レベル・ドライバ部に行わせることができるので、スキャナ・ドライバ部はスキャナに関わらずに共通に使用することができるようになる。更に、スキャナ毎に下位レベル・ドライバ部を複数個用意しておけば、接続されているスキャナの種類に応じて、下位レベル・ドライバ部をダイナミックに切り替えることも可能になる。
(第1の実施形態)
以下に、一実施形態に沿って、本発明に内容を詳細に説明する。
図1は、本実施形態においてシステムの構成を示す図である。
図1において、101はスキャナ・ドライバの本体であり、ドライバのUI処理、スキャン処理、及び色補正/画像処理を行う。
以下に、一実施形態に沿って、本発明に内容を詳細に説明する。
図1は、本実施形態においてシステムの構成を示す図である。
図1において、101はスキャナ・ドライバの本体であり、ドライバのUI処理、スキャン処理、及び色補正/画像処理を行う。
102はUI処理部であり、図2で示すようなUI画面の表示、プレビューの表示、スキャン範囲の指定処理、及び各種スキャン・パラメータ(モード206など)の設定処理、スキャンの実行処理、及びキャリブレーションの実行処理を司る。
103は色補正/画像処理部であり、UI処理部101で設定された各種パラメータ(ズーム、ガンマ、明るさ、コントラストなど)、及びスキャン処理部104経由で取得された画像データに基づいて、スキャナに応じた色味の調整、拡大/縮小処理(ズームの場合)、明るさ/コントラストの調整処理等を行い、最終的に得られた画像イメージを本ドライバを呼び出したアプリケーションに引き渡す。
104はスキャン処理部であり、UI処理部101で設定されたパラメータ(解像度、スキャン範囲など)に従ってスキャン処理を実行し、得られた画像イメージ(生画像イメージ)をUI処理部101及び色補正/画像処理部103に引き渡す。スキャン処理部104ではスキャナの制御は行わず、クライアント側プロセス間通信部105と通して下位レベル・ドライバのプロセス107とやり取りを行う。すなわち、下位レベル・ドライバのプロセス107に実際のスキャナの制御を行ってもらい、再度プロセス間通信を介して読み取られた画像データ等を受け取る。
107は下位レベル・ドライバのプロセスである。下位レベル・ドライバのプロセス107はプロセス間通信を介してスキャナ・ドライバ101からの各種指令及びパラメータを受け取る。当該指令及びパラメータはサーバ側プロセス間通信部108で受け取られ、受信した指令(コマンド)に応じて下位レベル・ドライバ109本体の対応する関数を呼び出す。
下位レベル・ドライバ109はUSB等のインタフェース110を介して画像入力装置111のコントローラのレジスタを直接操作し、各種パラメータの設定処理、及びスキャン動作の実行等を行う。読み取られた画像データ等は、再びサーバ側プロセス間通信部108を通り、プロセス間通信を経由してスキャナ・ドライバ110のクライアント側プロセス間通信部105に返される。
次に、本実施形態での処理の流れについて説明する。まずスキャナ・ドライバ110側の処理について説明する。図6は、本実施形態におけるスキャナ・ドライバ110のメインプログラムの処理手順の一例を示すフローチャートである。
スキャナ・ドライバ110は起動されるとまず、下位レベル・ドライバ初期化処理を呼び出す(ステップS601)。詳細については図7を参照しながら後述する。
スキャナ・ドライバ110は起動されるとまず、下位レベル・ドライバ初期化処理を呼び出す(ステップS601)。詳細については図7を参照しながら後述する。
次に、スキャナ能力情報取得処理を呼び出して(ステップS602)、対象となるスキャナの能力(最高解像度、スキャン最大幅/最大高、自動原稿フィーダ(ADF)の有無、透過原稿ユニット(TPU)の有無など)に関する情報を取得する。
その後UI処理部102を起動して図2に示すような画面を表示する(ステップS603)。次に、プレビューボタン203が押されたか否かを判断する(ステップS604)。この判断の結果、当該画面に於いてプレビューボタン203が押された場合には、プレビュー処理を実行した後(ステップS605)、再びUI処理に戻って、得られたプレビュー画像をUI画面201上に表示する。プレビュー処理については、図8を参照しながら後述する。
一方、ステップS603の判断の結果、プレビューボタン203が押されていない場合は、スキャンボタン204が押されたか否かを判断する(ステップS606)。この判断の結果、スキャン範囲202を指定してスキャンボタン204が押された場合には、本スキャン処理を実行した後(ステップS607)、再びUI処理に戻る。本スキャン処理については図9を参照しながら後述する。
一方、ステップS606の判断の結果、スキャンボタン204が押されていない場合は、キャリブレーションボタン205が押されたか否かを判断する(ステップS608)。この判断の結果、キャリブレーションボタン205が押された場合には、キャリブレーション処理を実行した後(ステップS609)、再びUI処理に戻る。
一方、ステップS608の判断の結果、キャリブレーションボタン205が押されていない場合は、終了が選択されたか否かを判断する(ステップS610)。この判断の結果、UI処理において処理の終了が選択された場合には、下位レベル・ドライバ終了処理を実行して(ステップS611)、スキャナ・ドライバ101の処理を終了する。一方、ステップS610の判断の結果、処理の終了が選択されていない場合は、再びUI処理に戻る。
図7は、図6のステップS601の下位レベル・ドライバ初期化処理の詳細を示すフローチャートである。
図7において、まずプロセス間通信に必要なパイプラインをオープンした後(ステップS701)、下位レベル・ドライバのプロセス107を起動する(ステップS702)。そして、最後にスキャナ初期化処理を実行して(ステップS703)、処理を終了する。
図7において、まずプロセス間通信に必要なパイプラインをオープンした後(ステップS701)、下位レベル・ドライバのプロセス107を起動する(ステップS702)。そして、最後にスキャナ初期化処理を実行して(ステップS703)、処理を終了する。
図8は、図6のステップS605のプレビュー処理の詳細を示すフローチャートである。
図8において、プレビュー用のスキャン・パラメータを設定(801)した後(ステップS801)、スキャンを起動し(ステップS802)、画像の読み取り処理を行う(ステップS803)。そして、スキャン停止を行い(ステップS804)、最後に取得したプレビュー用画像をデータをバッファに格納して(ステップS805)、処理を終了する。
図8において、プレビュー用のスキャン・パラメータを設定(801)した後(ステップS801)、スキャンを起動し(ステップS802)、画像の読み取り処理を行う(ステップS803)。そして、スキャン停止を行い(ステップS804)、最後に取得したプレビュー用画像をデータをバッファに格納して(ステップS805)、処理を終了する。
図9は、図6のステップS607の本スキャン処理の詳細を示すフローチャートである。
図9において、まず本スキャンに必要はパラメータを設定した後(ステップS901)、スキャン動作を起動する(ステップS902)。
図9において、まず本スキャンに必要はパラメータを設定した後(ステップS901)、スキャン動作を起動する(ステップS902)。
次に、本スキャン用のバッファに空きがあった場合には(ステップS903)、画像読み取り処理を行い(ステップS904)、読み取られた生の画像データをバッファに格納する(ステップS905)。そして、当該生画像データに対して色補正及び画像処理(ガンマ補正、明るさ/コントラスト調整など)を行う(ステップS906)。これをスキャン範囲全域に対して行い、スキャンが終了したか否かを判断する(ステップS907)。この判断の結果、必要なスキャンが終了した場合には、スキャン停止処理を行って(ステップS908)、処理を終了する。一方、ステップS907の判断の結果、書お良していない場合は、ステップS903に戻る。
図10は、図6のステップS611の下位レベル・ドライバ終了処理の詳細を示すフローチャートである。
図10において、まずスキャナ終了処理を実行した後(ステップS1001)、下位レベル・ドライバのプロセスを終了させて(ステップS1002)、処理を終了する。
図10において、まずスキャナ終了処理を実行した後(ステップS1001)、下位レベル・ドライバのプロセスを終了させて(ステップS1002)、処理を終了する。
これまで説明してきた処理のうち、下記の8種類の処理については、実際の処理は下位レベル・ドライバのプロセス107中で実行されるように構成されている。
(1)スキャナ初期化処理(ステップS703)、
(2)スキャナ終了処理(ステップS1001)、
(3)スキャナ能力情報取得処理(ステップS602)、
(4)スキャン・パラメータ設定処理(ステップS801、S901)、
(5)スキャン開始処理(ステップS802、S902)、
(6)画像読取り処理(ステップS803、S904)、
(7)スキャン停止処理(ステップS804、S808)、
(8)キャリブレーション処理(ステップS609)。
これらの関数は、図1のクライアント側プロセス間通信処理部105においてプロセス間通信に変換され、実際の動作は下位レベル・ドライバ・プロセス107側で処理される。
(1)スキャナ初期化処理(ステップS703)、
(2)スキャナ終了処理(ステップS1001)、
(3)スキャナ能力情報取得処理(ステップS602)、
(4)スキャン・パラメータ設定処理(ステップS801、S901)、
(5)スキャン開始処理(ステップS802、S902)、
(6)画像読取り処理(ステップS803、S904)、
(7)スキャン停止処理(ステップS804、S808)、
(8)キャリブレーション処理(ステップS609)。
これらの関数は、図1のクライアント側プロセス間通信処理部105においてプロセス間通信に変換され、実際の動作は下位レベル・ドライバ・プロセス107側で処理される。
図11は、本実施形態におけるクライアント側プロセス間通信処理部105による処理の詳細を示す図である。スキャナ・ドライバにおいて上記(1)〜(8)の関数を呼び出すと、実際には図11のそれぞれの対応する関数が呼び出されるようになっている。
処理が開始されると、各関数では呼び出された関数名に対応する"コマンド・コード"を決定し(ステップS1105)、パイプライン経由で下位レベル・ドライバ・プロセスに送信する(ステップS1106)。その後、各関数の引数として渡されて来たパラメータを同じくパイプライン経由で下位レベル・ドライバのプロセス107に送信する(ステップS1107)。
これ以降の処理は下位レベル・ドライバのプロセス107側で処理され、その結果として"レスポンス・コード"及び"データ"(画像データ等)をパイプライン経由で返して来る。そして、まず"レスポンス・コード"を受信し(ステップS1108)、次に、"データ"を受信する(ステップS1109)。そして、それらの値を上記(1)〜(8)の関数の戻り値として返す。
次に、下位レベル・ドライバのプロセス107側の処理について説明する。図12は、本実施形態において、下位レベル・ドライバのプロセス107のメイン処理を示すフローチャートであり、図1のサーバ側プロセス間通信部108で行われる処理に相当する。
処理が起動されるとまず、スキャナ・ドライバ101からのプロセス間通信による"コマンド"の受信を待合わせる(ステップS1201)。次に、"コマンド"が受信されると、何を呼び出すかを判別する(ステップS1202)。この判別の結果、その値に応じて、下位レベル・ドライバ109の対応する関数(下位レベル・ドライバAPI)を呼び出す(ステップS1203〜S1206)。
そして、各関数から"結果コード"及び場合によって処理の結果の"データ"(スキャナから読取られた画像データ等)が返ってくるので、それらをパイプライン経由でスキャナ・ドライバ101に送り返す(ステップS1207)。その後、この処理を終了するか否かを判断し(ステップS1208)、終了しないならばステップS1201に戻り、終了するならばそのまま終了する。
図13〜図21で示される関数群は、下位レベル・ドライバ109の実際の処理である。
これらの関数はUSBなどのインタフェースを介して、スキャナのコントローラのレジスタに直接アクセスし、スキャン処理に必要な各種処理を実行する。
図13は、本実施形態におけるスキャナ初期化処理の詳細を示すフローチャートである。
当該関数では、まずスキャナ・デバイスへのI/Oパスをオープンする(ステップS1301)。そして、下位レベル・ドライバ109の処理に必要な各種内部変数の初期化、及び動的メモリの確保処理等を行った後(ステップS1302)、スキャナ・コントローラの初期化処理を行い(ステップS1303)、処理を終了する。
これらの関数はUSBなどのインタフェースを介して、スキャナのコントローラのレジスタに直接アクセスし、スキャン処理に必要な各種処理を実行する。
図13は、本実施形態におけるスキャナ初期化処理の詳細を示すフローチャートである。
当該関数では、まずスキャナ・デバイスへのI/Oパスをオープンする(ステップS1301)。そして、下位レベル・ドライバ109の処理に必要な各種内部変数の初期化、及び動的メモリの確保処理等を行った後(ステップS1302)、スキャナ・コントローラの初期化処理を行い(ステップS1303)、処理を終了する。
図14は、本実施形態におけるスキャナ終了処理の詳細を示すフローチャートである。
当該関数では、ステップS1302で確保された動的メモリの解放処理を行った後(ステップS1401)、スキャナ・デバイスへのI/Oパスをクローズし(ステップS1402)、処理を終了する。
当該関数では、ステップS1302で確保された動的メモリの解放処理を行った後(ステップS1401)、スキャナ・デバイスへのI/Oパスをクローズし(ステップS1402)、処理を終了する。
図15は、本実施形態におけるスキャナ能力情報取得関数の詳細を示すフローチャートである。
当該関数では、下位レベル・ドライバ109がサポートするスキャナの能力に関する情報、即ち以下のような情報を返す。
ベンダー名、モデル名、ファーム・バージョン、
物理的解像度(75/150/300/600/1200 dpi等)、
スキャン可能範囲の幅/高さ、
スキャン方法(フラットベッド、自動フィーダ(ADF)、透過原稿ユニット(TPU)等、)、
イメージモード(白黒、グレー、カラーなど)、
イメージのビット長(1/8/12/16ビットなど)。
当該関数では、下位レベル・ドライバ109がサポートするスキャナの能力に関する情報、即ち以下のような情報を返す。
ベンダー名、モデル名、ファーム・バージョン、
物理的解像度(75/150/300/600/1200 dpi等)、
スキャン可能範囲の幅/高さ、
スキャン方法(フラットベッド、自動フィーダ(ADF)、透過原稿ユニット(TPU)等、)、
イメージモード(白黒、グレー、カラーなど)、
イメージのビット長(1/8/12/16ビットなど)。
図16は、本実施形態におけるスキャン・パラメータ設定処理の詳細を示すフローチャートである。
当該関数では、スキャン処理に必要な、以下のようなパラメータを設定し(ステップS1601)、処理を終了する。
スキャン解像度(dpi)、
スキャン範囲(左上端、右下端の位置)、
スキャンモード(白黒、グレー、カラーなど)、
スキャン方法(フラットベッド、ADF、TPUなど)、
ピクセル当りのビット数(1、8、24ビットなど)。
当該関数では、スキャン処理に必要な、以下のようなパラメータを設定し(ステップS1601)、処理を終了する。
スキャン解像度(dpi)、
スキャン範囲(左上端、右下端の位置)、
スキャンモード(白黒、グレー、カラーなど)、
スキャン方法(フラットベッド、ADF、TPUなど)、
ピクセル当りのビット数(1、8、24ビットなど)。
一方、図17は、本実施形態におけるスキャン・パラメータ取得処理の詳細を示すフローチャートである。
当該関数では上記関数とは逆に、下位レベル・ドライバ109に設定されているスキャン・パラメータの値を読み出して返す処理を行い(ステップS1701)、処理を終了する。
当該関数では上記関数とは逆に、下位レベル・ドライバ109に設定されているスキャン・パラメータの値を読み出して返す処理を行い(ステップS1701)、処理を終了する。
図18は、本実施形態におけるスキャン開始関数の処理を示すフローチャートである。
当該関数ではまず、キャリブレーション・ファイルからキャリブレーション・データを読み出し、当該データをスキャナのコントローラにダウンロードする(ステップS1801)。なお、キャリブレーション・ファイルについては後述する。これにより、スキャナの状態(ランプの明るさや各イメージ・センサの感度など)に最適な状態でスキャンが出来るようになる。
当該関数ではまず、キャリブレーション・ファイルからキャリブレーション・データを読み出し、当該データをスキャナのコントローラにダウンロードする(ステップS1801)。なお、キャリブレーション・ファイルについては後述する。これにより、スキャナの状態(ランプの明るさや各イメージ・センサの感度など)に最適な状態でスキャンが出来るようになる。
次に、ステップS1802でスキャナ・ドライバから(スキャン・パラメータ設定処理経由で)設定されたスキャン・パラメータに応じてコントローラの各種レジスタを設定する。その後、最後にステップS1803でスキャン動作の起動(ランプのON、モータの起動など)を行い、処理を終了する。
図19は、本実施形態における画像読み取り処理を示すフローチャートである。
当該関数では、スキャナのコントローラより、スキャンされた画像データの読み出し処理を行い(ステップS1901)、処理を終了する。
当該関数では、スキャナのコントローラより、スキャンされた画像データの読み出し処理を行い(ステップS1901)、処理を終了する。
図20は、本実施形態におけるスキャン停止処理関数の処理を示すフローチャートである。
当該関数では、スキャン動作の停止処理(モータの停止、ランプOFF、キャリアのホームポジションへの移動処理等)を行い(ステップS2001)、処理を終了する。
当該関数では、スキャン動作の停止処理(モータの停止、ランプOFF、キャリアのホームポジションへの移動処理等)を行い(ステップS2001)、処理を終了する。
最後に図21は、本実施形態におけるキャリブレーション処理関数の処理を示すフローチャートである。
当該関数では、スキャナに対してキャリブレーション処理を行った後(ステップS2101)、結果のデータをファイル(キャリブレーション・ファイル)に書き込み(ステップS2102)、処理を終了する。
当該関数では、スキャナに対してキャリブレーション処理を行った後(ステップS2101)、結果のデータをファイル(キャリブレーション・ファイル)に書き込み(ステップS2102)、処理を終了する。
(本発明に係る他の実施形態)
第1の実施形態では、主にフラットベッド・スキャナの場合を例に説明したが、フラットベッド・スキャナに限らず、フィルム・スキャナやデジタルカメラなど、各種の画像入力機器に対しても実施可能である。
第1の実施形態では、主にフラットベッド・スキャナの場合を例に説明したが、フラットベッド・スキャナに限らず、フィルム・スキャナやデジタルカメラなど、各種の画像入力機器に対しても実施可能である。
また、第1の実施形態では下位レベル・ドライバのプロセスそれぞれ一つであるとして説明を行ってきたが、実際に接続されるスキャナのコントローラの仕様によって下位レベル・ドライバのプロセスで行うべき処理は異なってくる。
そこで、図5に示すように、スキャナの種類に応じて下位レベル・ドライバのプロセス502を複数個用意しておく。そして、物理的に接続されている画像入力装置504の種類に応じて下位レベル・ドライバのプロセス502のプログラムをダイナミックに入れ替えることにより、接続された画像入力装置504に最適な処理を実行できるように構成することも可能である。
前述した本発明の実施形態における画像処理装置を構成する各手段は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
101 スキャナ・ドライバ
102 UI処理部
103 色補正/画像処理部
104 スキャン処理部
105 クライアント側プロセス間通信部
107 下位レベル・ドライバのプロセス
108 サーバ側プロセス間通信部
109 下位レベル・ドライバ
110 インタフェース
111 画像入力装置
102 UI処理部
103 色補正/画像処理部
104 スキャン処理部
105 クライアント側プロセス間通信部
107 下位レベル・ドライバのプロセス
108 サーバ側プロセス間通信部
109 下位レベル・ドライバ
110 インタフェース
111 画像入力装置
Claims (3)
- 画像を入力するための画像入力装置と、前記画像入力装置を制御するためのドライバ・プログラムとを有する画像処理装置であって、
画像入力の際に必要なUI処理及び読み取られた画像データを処理及び表示する為のスキャナ・ドライバ部と、
前記スキャナ・ドライバ部とは独立した別のプロセスとして動作し、前記画像入力装置のハードウェアの制御を行う下位レベル・ドライバ部と、
前記スキャナ・ドライバ部と前記下位レベル・ドライバ部との間でプロセス間通信を行って情報のやり取りを行う通信部とを有することを特徴とする画像処理装置。 - 前記下位レベル・ドライバ部は、前記スキャナ・ドライバ部とは独立に入れ替え可能に構成されていることを特徴とする請求項1に記載の画像処理装置。
- 前記下位レベル・ドライバ部は、複数の画像入力装置のそれぞれに対応して複数個設けられ、実際に接続されている画像入力装置に応じた下位レベル・ドライバ部を自動選択及び実行するように構成されていることを特徴とする請求項1に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005339280A JP2007150464A (ja) | 2005-11-24 | 2005-11-24 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005339280A JP2007150464A (ja) | 2005-11-24 | 2005-11-24 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007150464A true JP2007150464A (ja) | 2007-06-14 |
Family
ID=38211371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005339280A Pending JP2007150464A (ja) | 2005-11-24 | 2005-11-24 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007150464A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876886A (zh) * | 2009-04-30 | 2010-11-03 | 佳能株式会社 | 图像形成装置及其控制方法 |
-
2005
- 2005-11-24 JP JP2005339280A patent/JP2007150464A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876886A (zh) * | 2009-04-30 | 2010-11-03 | 佳能株式会社 | 图像形成装置及其控制方法 |
KR101408739B1 (ko) * | 2009-04-30 | 2014-06-17 | 캐논 가부시끼가이샤 | 화상형성장치, 그 제어 방법, 및 기억매체 |
US8922821B2 (en) | 2009-04-30 | 2014-12-30 | Canon Kabushiki Kaisha | Image forming apparatus connectable to a portable storage medium, method of controlling the same, and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7051281B1 (en) | Remotely controllable user interface display apparatus and method of controlling same | |
JP4194575B2 (ja) | ウエブサービスアプリケーションベースの光学文字認識システム及び方法 | |
US7859694B2 (en) | Data processing device | |
US20060082837A1 (en) | Image processing apparatus | |
EP1701246A2 (en) | System and method for managing output path with context preservation | |
US7505162B2 (en) | Digital scanning systems and methods for scanning multi-sided cards and documents | |
JP2008197809A (ja) | 情報処理装置、代行処理実行方法および代行処理実行プログラム | |
US20090067008A1 (en) | System and method for transportable software operation of document processing devices | |
JP2004175020A (ja) | 画像形成装置 | |
US8610943B2 (en) | Apparatus, method and program for customizing scanning an image | |
JP2004194244A (ja) | 印刷データを生成することができるディジタルカメラ | |
JP2007150464A (ja) | 画像処理装置 | |
JP2001333237A (ja) | 画像形成システム | |
JP2000316063A (ja) | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP4485485B2 (ja) | 画像形成システム、ジョブ処理方法 | |
JP2004266470A (ja) | 画像処理装置及び画像処理方法 | |
JP2005332072A (ja) | データ処理装置、カード型リムーバブル記憶装置及びデータ処理方法 | |
JPH1093766A (ja) | イメージ画像形成システム及びスキャナ装置 | |
JP3927777B2 (ja) | 画像処理装置および画像処理方法および記憶媒体 | |
JP2007325007A (ja) | 画像入力装置制御装置 | |
JP2002044317A (ja) | 読み取りパラメータ調整機能を備えた画像入力方法およびそのプログラム記録媒体 | |
JP2011013837A (ja) | プリントシステムおよび印刷制御装置 | |
JP2001078036A (ja) | 画像処理装置及びその方法 | |
US20040151402A1 (en) | Image processing program products allowing a read original to be used in a computer | |
JP2008147888A (ja) | 画像入力装置 |