(57)【特許請求の範囲】
【請求項１】
ＤＣモータを駆動源として複数の受光画素を有するリニアイメージセンサと原稿とを相対的に移動させて、前記原稿を読み取る画像読取装置であって、
前記ＤＣモータの回転に応じてパルスを出力するエンコーダと、
前記パルスに基づき前記リニアイメージセンサの読取同期信号を生成する生成手段と、
前記リニアイメージセンサの少なくとも２つの蓄積時間に対応する第１のシェーディングデータを記憶する記憶手段と、
前記記憶手段に記憶された第１のシェーディングデータに基づいて、前記読取同期信号をもとに設定される前記リニアイメージセンサの蓄積時間に対応する第２のシェーディングデータを求める演算を行う演算手段と、
を有することを特徴とする画像読取装置。
【請求項２】
前記第１のシェーディングデータは、前記受光画素ごとに記憶されることを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記第１のシェーディングデータは、受光画素ごとに取得した複数のシェーディングデータの、平均値を含むことを特徴とする請求項１に記載の画像読取装置。
【請求項４】
前記演算は、線形関数による演算であることを特徴とする請求項１に記載の画像読取装置。
【請求項５】
前記演算により求められた第２のシェーディングデータに基づいて、前記原稿を読み取ったデータを補正する補正手段と、をさらに有することを特徴とする請求項１に記載の画像読取装置。
【請求項６】
前記第１のシェーディングデータは、黒シェーディングデータであることを特徴とする請求項１に記載の画像読取装置。
【請求項７】
前記第１のシェーディングデータは、白シェーディングデータであることを特徴とする請求項１に記載の画像読取装置。
【請求項８】
ＤＣモータを駆動源として複数の受光画素を有するリニアイメージセンサと原稿とを相対的に移動させて、前記原稿を読み取る画像読取方法であって、
少なくとも２つの蓄積時間に対応する前記リニアイメージセンサの第１のシェーディングデータを取得する取得工程と、
前記ＤＣモータの回転に応じたパルスを出力する出力工程と、
前記パルスに基づいて前記リニアイメージセンサの読取同期信号を生成する生成工程と、
前記第１のシェーディングデータに基づいて、前記読取同期信号をもとに設定される前記リニアイメージセンサの蓄積時間に対応する第２のシェーディングデータを求める演算を行う演算工程と、
を有することを特徴とする画像読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取デバイスにより読み取られる画像データを順次、画像処理を施しながら印刷していく画像読取装置および画像読取方法に関する。
【背景技術】
【０００２】
近年、印刷機能以外にコピー機能やＦＡＸ機能を有する複合機（ＭＦＰ：マルチファンクションプリンタ）が普及してきている。ＭＦＰにおいて、原稿の画像を読み取る読取センサは従来ステッピングモータで駆動していた。ステッピングモータを使用する第１の理由としては、低速駆動時の安定性とフィードバック制御が不要なパルス制御の容易性がある。システムメモリが一杯になった場合、読み取った画像データの蓄積動作を停止し、モータを減速制御し、読取再開位置までモータのスイッチバック制御を行い読取を再開する。そのため、スイッチバック動作及び高精度の画像読取制御には、フィードバック制御が必要なＤＣモータは不向きであった。そこで、追従性と一定した停止位置、読取位置を出力パルスで制御できる等の優位性からステッピングモータを使用してきた。
【０００３】
一方で、更に記録される画像の高画質化・高速化が進み、写真調の画質の画像をＡ４サイズで１分以内の速度でコピー処理することが可能となってきている。高速化に伴い、フラットベッドスキャン系のイメージセンサ搬送、シートスキャン系の原稿搬送時の静粛性の面で、ステッピングモータよりＤＣモータの方が優位性が出てきている。
【０００４】
しかし、ＤＣモータをエンコーダ同期で、読み取り画像の１ラインに相当する読取同期信号を生成し、読取動作を行うシステムを形成した場合、フィードバック制御により速度変動が発生する。速度変動量は、駆動速度、負荷によって異なるが、一般的に低速駆動時に速度変動が大きくなることが知られている。速度変動があると読取同期信号の周期も変動することになる。位置ズレを避けるためには、読取同期信号でイメージセンサの蓄積時間間隔も設定することになる。
【０００５】
蓄積時間が変動すると一般的にイメージセンサの暗電流により黒レベルデータが変化する。また、センサ光源の点灯幅も影響を受け、変化する場合、白レベルデータも変化する。
【０００６】
ＤＣモータを使用した装置と別に蓄積時間の変化によりＣＣＤの黒レベルデータを補正するものとして、特許文献１に記載のイメージスキャナの黒レベル補正装置が知られている。
【０００７】
また、蓄積時間に対応した暗出力補正用データテーブルに基づいて暗出力補正を行うものとして、特許文献２に記載の画像読取装置が知られている。
【特許文献１】特開平８−２３７４８０公報
【特許文献２】特開平１１−６９１６２公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１には、ＤＣモータを使用した装置とは別に、蓄積時間の変化により黒レベルデータが変動するのを防止する装置が記載されている。まず蓄積時間設定部によって設定されている蓄積時間データをＤ／Ａ変換回路によってアナログ信号に変換する。次に補正データメモリに記憶されている第１の黒レベル補正データもＤ／Ａ変換回路によってアナログ信号に変換し、乗算処理を行い、画像データの黒レベル補正を行うための第２の黒レベル補正データを得るものとして記載されている。
【０００９】
しかしながら、Ｄ／Ａ変換回路が２回路とアナログ乗算回路、補正データメモリと蓄積時間設定をＤ／Ａ変換部へ渡す構成が必要であり、部品点数、エリアの面でコストアップ等が考えられる。
【００１０】
また、アナログ補正なので、アナログデバイスのタイミング制約及び調整等が必要になる。更に、ライン単位のアナログ補正なので、画素単位の補正ができないという問題がある。
【００１１】
特許文献２には、設定した蓄積時間に対し、所定の蓄積時間範囲に対応するγ補正テーブルを選択し、暗出力補正を行う画像読取装置が記載されている。
【００１２】
しかしながら特許文献２では、蓄積時間に対し、複数のγ補正テーブルから１つを選択することでγ補正は画素単位で可能であるが、画素単位で蓄積時間にバラツキのあるシェーディング補正はできないという問題がある。
【００１３】
また、ＤＣモータのエンコーダ同期の読取同期装置においては、蓄積時間はＤＣモータの速度変動の影響を受け、無段階で変化する。そのため任意の蓄積時間に対して前記の補正を適用しても有効ではない。
【００１４】
本発明は、ＤＣモータのエンコーダに同期して読取動作を行う画像読取装置において、イメージセンサの暗電流、白レベルの変動要因を基準レベルに補正できるＤＣモータの画像読取制御装置を提供することを目的とする。
【００１５】
更に、各種イメージセンサの特性及びバラツキ要因を吸収できるＤＣモータの画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、ＤＣモータを駆動源として複数の受光画素を有するリニアイメージセンサと原稿とを相対的に移動させて、前記原稿を読み取る画像読取装置であって、前記ＤＣモータの回転に応じてパルスを出力するエンコーダと、前記パルスに基づき前記リニアイメージセンサの読取同期信号を生成する生成手段と、前記リニアイメージセンサの少なくとも２つの蓄積時間に対応する第１のシェーディングデータを記憶する記憶手段と、前記記憶手段に記憶された第１のシェーディングデータに基づいて、前記読取同期信号をもとに設定される前記リニアイメージセンサの蓄積時間に対応する第２のシェーディングデータを求める演算を行う演算手段と、を有することを特徴とする画像読取装置。
【発明の効果】
【００１７】
以上説明した様に本発明によれば、ＤＣモータのエンコーダ同期読み取り構成でも、任意の蓄積時間に対する暗電流成分を画素単位で正確に補正できるという効果を有する。また、ＤＣモータのエンコーダ同期の画像読取制御構成でも、任意の蓄積時間に対する暗電流成分やデータ変動を正確に補正できるという効果を有する。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための最良の形態について、以下に図面を参照して説明する。
【００１９】
図１は本発明を適用できる画像読取制御装置のブロック図である。
１０１は読取デバイスで、原稿からの反射光を光電変換しＲＧＢのアナログ信号を出力するＣＣＤ（電荷結合素子）やＣＩＳ（コンタクトイメージセンサ）といった複数の受光画素から成る。それらが一列に配置されているリニアイメージセンサである。１０２は前記アナログ信号をデジタル信号にＡ／Ｄ変換するＡＦＥ（アナログフロントエンド）デバイスから構成される。
【００２０】
１０３は読取デバイス制御部であり、読取デバイス１０１及びＡＦＥ１０２へ制御信号を出力する。読取デバイス制御部１０３は、読み取りデバイス１０１からのＲＧＢのアナログ信号をＡＦＥ１０２経由でデジタル信号として取り込み、データの並べ替え、パッキング等を行う読取データ処理部１０４に画像データを転送する。さらに読取デバイス制御部１０３では、センサー光源の調光制御、入力される画像信号を基にフィードバックＰＷＭ制御等を行う。
【００２１】
読取データ処理部１０４では、後述するエンコーダブロックからの出力信号に同期して生成されるライン単位又は蓄積時間単位の外部読取同期信号周期を計測する手段により、蓄積時間を毎ライン計測する。前記計測結果に基づき、シェーディングデータを画素単位又はライン単位で、蓄積時間で線形補間後、本来のシェーディング補正を行う。
【００２２】
読取制御部１０５では、画像データの取り込み（読み込み）のスタート、終了の制御を行う。１０６はイメージセンサ用の第１のＤＣモータコントローラである。１１６はイメージセンサ駆動用の第１のＤＣモータである。第１のＤＣモータコントローラ１０６は、第１のＤＣモータ１１６の駆動制御を行う。１０７はイメージセンサ用の第１のエンコーダコントローラであり、第１のＤＣモータ１１６の回転に応じて位相の異なるＡ相、Ｂ相のパルスを発生するものである。１０８は不図示のＡＤＦ（オートドキュメントフィーダ）用の第２のＤＣモータコントローラである。１１７はＡＤＦ駆動用の第２のＤＣモータである。１０９はＡＤＦ用の第２のエンコーダコントローラであり、第１のエンコーダコントローラ１０７と同様の制御を行う。すなわち、第２のＤＣモータ１１７の回転に応じて位相の異なるＡ相、Ｂ相のパルスを発生する。なお、パルス発生機構としてはロータリーエンコーダが用いられるのが一般的である。
【００２３】
ＤＣモータコントローラ１０６、１０８はそれぞれ、エンコーダコントローラ１０７、１０９での処理に従い、ＤＣモータ１１６、１１７へのＥｎａｂｌｅ信号、速度と回転方向の情報を持つＰｈａｓｅ信号を出力し、ＤＣモータのフィードバック制御を行う。ＤＣモータ１１６は原稿台の上に載置された原稿に対してイメージセンサを走査するための駆動源である。またＤＣモータ１１７は不図示のオートドキュメントフィーダー（ＡＤＦ）の駆動源としてするものである。ＡＤＦはイメージセンサに対して原稿を移動させる機構である。セレクタ１１０は、ＤＣモータ１１６とＤＣモータ１１７の２つのＤＣモータ制御の切り換えを行う。これは回路規模を縮小するために選択できるようにした１例を示している。エンコーダブロック含めＤＣモータ制御部が同じ場合、更に外側でセレクトする構成も考えられる。また、図１の例ではエンコーダパルスから位相が正転方向か反転方向かを選択して出力する機能を有する構成を示している。１つのＤＣモータのみ制御する場合、セレクタ無しの構成も当然考えられる。
【００２４】
外部トリガから読取同期信号を生成する外部読取同期信号生成ブロック１１１は、正転位相パルス、反転位相パルス、片エッジ、両エッジの情報からパルス数をカウントする。そのカウント値に基づいて、読取解像度の１ライン又は複数ラインとなる基準の外部読取同期信号を生成する。内部読取同期信号生成ブロック１１２は、不図示の内部タイマから読取解像度の１ライン又は複数ラインとなる基準の内部読取同期信号を生成する。内部読取同期信号生成ブロック１１２は、非読取動作時においてイメージセンサに発生する暗電流を除くために周期的に読取同期信号（ＳＨ）を発生させるものである。
【００２５】
セレクタ１１３は、イメージセンサの空送り量を確保したい場合や、ＤＣモータを一定速で制御している以外は、読取デバイスへの同期信号が可変、又は出力されない状況になる。そのため内部生成された読取同期信号と切り替え可能な構成であることを示している。
【００２６】
ＲＡＭ１１５は、通常のシェーディングデータ及び画素単位補正用の複数のシェーディングデータを格納するためのメモリで、ＡＳＩＣ１１４内にＳＲＡＭ等で内蔵メモリとして構成する場合、ＤＲＡＭ等で外部メモリとして構成する場合も考えられる。
【００２７】
図２は本発明を適用できる画像読取制御装置のエンコーダ等の外部パルスを基に読取同期信号を生成するタイミングの一例を示す図である。
【００２８】
エンコーダＡ相（Ｂ相）は、図１のエンコーダブロック１０７、１０９へ入力されるエンコーダ信号出力を表している。例えば、立ち上がりの片エッジサンプリングの場合には、立ち上がりをエンコーダブロックでフィルタリングして、ノイズ除去後、エンコーダパルスＵＰ／ＤＯＷＮ＿ＴＲＧとして出力する。または、両エッジサンプリングの場合も同様に、フィルタリングして、ノイズ除去後、エンコーダパルスＵＰ／ＤＯＷＮ＿ＴＲＧとして出力する。図２では、片エッジ、両エッジサンプリングも同一図で示すために、合わせて示してあるが、特に各々の相関関係は無い。ＵＰ／ＤＯＷＮ＿ＴＲＧのＵＰとＤＯＷＮは、Ａ相、Ｂ相のエンコーダの位相情報からＤＣモータの回転方向を判別し、ＵＰとＤＯＷＮに分けた信号を表す。
【００２９】
トリガカウンタ（ＴＲＧ＿ｃｏｕｎｔｅｒ）はエンコーダパルスをカウントするものである。前記エンコーダパルスＵＰ／ＤＯＷＮ＿ＴＲＧをカウントし、本例では０から３までカウントすることにより副走査読取解像度の１ラインとなる基準の外部読取同期信号（ＥＸＴ＿ＳＨ）を生成する。更に外部読取同期信号（ＥＸＴ＿ＳＨ）をカウントし、副走査読取解像度のＮラインとなるｎＳＨ信号を図１の読取制御部（ｒｅａｄ＿ｃｔｒｌ  ｂｌｏｃｋ）１０５で生成し、出力する。これは、複数ラインの同期信号を生成し、ファームで割り込み制御することで、ファームの割り込み処理の負荷を軽減する一例である。例えば、Ｎライン毎に読取蓄積ラインを制御したり、モータ等の駆動制御もＮライン単位で、トリガ予約型で処理することで、ファームの割り込み処理を軽減した構成を一例として示す。
【００３０】
ここで、副走査とは、読取デバイスを移動する方向または読取対象となる原稿を搬送する方向を指す。
【００３１】
図３は本発明を適用できる画像読取制御装置のモータ速度変動に対する読取同期信号と暗電流データの増加の一例を模式的に示す図である。
【００３２】
ＤＣモータのサーボ制御により、モータ速度が変動することがある。速度変動に伴い、エンコーダからのパルスに基づいて生成されるライン単位の外部読取同期信号（ＳＨＤＩＶ）の生成タイミングも変動する。モータ速度が早ければ、ＳＨＤＩＶの時間間隔が短くなり、逆にモータ速度が遅ければその間隔は長くなることを示している。ここで、光電変換にあたって必要な最小の蓄積時間をＴｔｙｐ（＝Ｔｍｉｎ）とすると、Ｔｔｙｐに対応する黒シェーディングデータは、点線のレベルとなる。暗電流は蓄積時間が延びるほど増加する特性がある。蓄積時間が延びたことで点線で示す補正基準レベルを超える増加分が、補正が必要な暗電流成分等の増加データ分になる。この例では、光源にはＬＥＤを使用しており、図３において光源点灯時間は各ＳＨＤＩＶの間隔に関わらず一定になっている。ある読取同期信号区間での光源点灯によりイメージセンサで蓄積されたそのデータを光源点灯の次の同期タイミングで補正用シェーディングデータに反映しながらデータ補正を行う場合を示している。
【００３３】
図４は本発明を適用できる画像読取制御装置のモータ速度変動に対する読取同期信号と白シェーディングのデータ増加の一例を示す図である。
【００３４】
図３における説明同様、ＤＣモータのサーボ制御により、モータ速度が変動する。速度変動に伴い、エンコーダからのパルスに基づいて生成されるライン単位の外部読取同期信号（ＳＨＤＩＶ）の生成タイミングも変動する。最小の蓄積時間をＴｔｙｐ（＝Ｔｍｉｎ）とすると、その時の白シェーディングデータは、点線のレベルが補正基準となる。例えば、光源点灯幅が基準となる蓄積時間Ｔｔｙｐを超えるような場合、蓄積時間が延びたことで補正基準レベルを超える増加分が、補正が必要な白レベルの増加データ分になる。そのデータを光源点灯の次の同期タイミングで補正用シェーディングデータに反映しながらデータ補正を行う場合を示している。
【実施例１】
【００３５】
以下、実施例１として、受光画素ごとの黒および白シェーディングデータ補正について説明する。図５は実施例１にかかわる蓄積時間と黒及び白のシェーディングデータの線形補間法の関係の一例を示す図である。図５の右側において、イメージセンサの主走査方向の位置をセンサ読取範囲として横軸にとり、縦軸はセンサの出力を表している。また、黒ＳＨＤ、黒‘ＳＨＤ、白ＳＨＤ、白’ＳＨＤに対応するハッチのかけられた領域はそれぞれ、各受光画素のシェーディングデータのバラツキがあることを表している。ここで、光電変換に必要な最小または基準となる蓄積時間をＴｔｙｐとし、Ｔｔｙｐに対応する白シェーディングデータをＷｔｙｐ、黒シェーディングデータをＤｔｙｐとする。また最大の蓄積時間をＴｍａｘとし、Ｔｍａｘに対応する白シェーディングデータをＷｍａｘ、黒シェーディングデータをＤｍａｘとする。左側の図は、それらの蓄積時間Ｔｔｙｐ、Ｔｍａｘを設定してそれぞれのシェーディングデータＤｔｙｐ、Ｄｍａｘ、Ｗｔｙｐ、Ｗｍａｘをもとに線形関数により任意の蓄積時間Ｔｘに対応するシェーディングデータを求めることを示している。このように、イメージセンサの受光画素ごとでその特性にバラツキがある。そのため、同じ蓄積時間が設定されても受光画素ごとに見ると発生する暗電流に差が生じる。本実施例では、個々の受光画素ごとにシェーディングデータを取得して補正を行う例を示している。まず、蓄積時間Ｔｔｙｐに対する黒シェーディングデータＤｔｙｐ、白シェーディングデータＷｔｙｐが読取モードに応じた解像度分取得し内蔵メモリまたは外部メモリに保持する。それら複数のシェーディングデータは、圧縮した形で保持しても構わない。そして、蓄積時間Ｔｍａｘとして、モータの速度変動により変動する蓄積時間の最大値又はそれ以上の値になる蓄積時間に設定する。これら複数の蓄積時間に対するシェーディングデータは、内部タイマーや外部同期信号を起動し、取得する。最大の蓄積時間Ｔｍａｘに対する黒シェーディングデータＤｍａｘ、白シェーディングデータＷｍａｘも読取モードに応じた解像度の有効画素ｘ分、取得する。
【００３６】
これにより、２つの異なる蓄積時間に対応するシェーディングデータが取得される。
【００３７】
ここで、蓄積時間Ｔｘは、実際の読取動作におけるＤＣモータ駆動中の任意の蓄積時間を示している。
【００３８】
取得した２つの異なる蓄積時間に対応するシェーディングデータに基づいて、蓄積時間Ｔｘにおけるシェーディングデータの補正手順の一例を下記に示す。
（１）蓄積時間Ｔｔｙｐ時の黒シェーディングデータＤｔｙｐ（ｘ）をメモリに格納する。
（２）蓄積時間Ｔｔｙｐ時の白シェーディングデータＷｔｙｐ（ｘ）をメモリに格納する。
（３）蓄積時間Ｔｍａｘ時の黒シェーディングデータＤｍａｘ（ｘ）をメモリに格納する。
（４）蓄積時間Ｔｍａｘ時の白シェーディングデータＷｍａｘ（ｘ）をメモリに格納する。
（５）任意の蓄積時間に対応する黒シェーディングデータをＤ’（ｘ）として、それを求める関数は以下で示される。
Ｄ’（ｘ）＝Ｄｔｙｐ（ｘ）＋（Ｄｍａｘ（ｘ）−Ｄｔｙｐ（ｘ））×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
すなわち、Ｄｔｙｐ（ｘ）、Ｄｍａｘ（ｘ）、Ｔｍａｘ、Ｔｔｙｐそれぞれの値から導かれる線形関数により補正された黒シェーディングデータが求まる。
【００３９】
こうして求められたＤ‘（ｘ）により黒シェーディングデータ補正を画素単位で全有効画素に対して行う。
（６）任意の蓄積時間に対応する白シェーディングデータをＷ’（ｘ）とすると、（５）と同様に
Ｗ’（ｘ）＝Ｗｔｙｐ（ｘ）＋（Ｗｍａｘ（ｘ）−Ｗｔｙｐ（ｘ））×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
となり、Ｗｔｙｐ（ｘ）、Ｗｍａｘ（ｘ）、Ｔｍａｘ、Ｔｔｙｐそれぞれの値から導かれる線形関数により補正されたシェーディングデータが求まる。このＷ’（ｘ）により白シェーディングデータ補正を画素単位で全有効画素に対して行う。
【００４０】
上記より、下記に示すように補正後の画像読取信号出力をＶｏｕｔ、読み取った画像データの入力信号をＶｉｎ、Ｃｏｎｓｔを補正係数、Ｏｆｆｓｅｔを微調整用の値とする。
【００４１】
そして、上記式より求めたシェーディングデータＤ‘により補正を施す。
Ｖｏｕｔ＝Ｃｏｎｓｔ＊（Ｖｉｎ−Ｄ’）／（Ｗ’−Ｄ’）＋Ｏｆｆｓｅｔ
（５）、（６）の演算回路は、ファームウェア構成、ハードウェア構成、又はファーム／ハードウェアの混在構成の場合も同様に考えられる。また、圧縮データ形式でメモリに格納されている場合は、逐次デコードしながら補正演算を行う。
【００４２】
更に、全有効画素に対して、シェーディングデータの補正を行うが、実際は、画素単位で補正した黒及び白、黒又は白の補正データで、通常のシェーディング補正も同時に行う場合が、一般的である。但し、前記処理手順以外は、システムにより任意であり限定されないため、省略する。
【００４３】
データ補正の線形性が任意の蓄積時間間隔に制限される場合、複数の蓄積時間間隔で上記の同様の処理を行うことで、対応できることが容易に考えられる。
【００４４】
蓄積時間のＴｔｙｐをＴｎ−１、ＴｍａｘをＴｎとして、任意の蓄積時間Ｔｘが、２点の蓄積時間の格納データ間にあることだけを判別する手段があれば可能である。
【００４５】
また、前記補正が、黒シェーディングデータに対してのみ、有効である場合、黒シェーディングに対する（１）、（３）、（５）の処理だけで構成しても構わない。同様に、前記補正が、白シェーディングデータに対してのみ、有効である場合、白シェーディングに対する（２）、（４）、（６）の処理だけで構成しても構わない。
【００４６】
このように、異なる２つの蓄積時間に対応する黒、白シェーディングデータをそれぞれ受光画素ごとに取得し、任意の蓄積時間に対応する黒、白の補正したシェーディングデータを線形関数により求める。これにより、蓄積時間に適したシェーディングデータを適用して読み取った画像データを適切に補正することができる。
【００４７】
図６は、実施例１における黒及び白のシェーディングデータの画素単位の線形補間のデータ補正の一例を示すフローチャートである。
【００４８】
操作キーにより、コピー又はスキャン動作を開始する（Ｓ６０１）。選択されたスキャン／コピー時の読取モード（解像度）を設定する（Ｓ６０２）。第１と第２の蓄積時間に対する黒シェーディングデータを取得する（Ｓ６０３）。ここでは、更に複数の蓄積時間に対応するシェーディングデータが必要な場合について示しており、第Ｎまでの蓄積時間に対する黒シェーディングデータを取得する。例えば、蓄積時間の短い方からＴ１＜Ｔ２＜Ｔ３＜・・・＜Ｔｎで、左記に対応したシェーディングデータの関係で取得する。（Ｓ６０３）の黒シェーディングの場合と同様に白シェーディングデータも複数取得する（Ｓ６０４）。続いて、スキャン動作に移行して、ＤＣモータ駆動を開始する（Ｓ６０５）。モータ駆動が開始されると図２にあるようにエンコーダ信号により、予め設定されたパルス数に基づいて読取同期信号が生成される（Ｓ６０６）。読取同期信号が蓄積時間周期に相当しており、イメージセンサへの駆動信号と読み取った画像のデータ入力が開始される。前記読取同期信号を毎ライン、ＣＩＳ系は、ＬＥＤ等の単色ラインに対して計測し、蓄積時間を内部レジスタやメモリに保持する（Ｓ６０７）。続いて、第１と第２の蓄積時間に対する黒シェーディングデータのメモリ等からの読み出しを設定し（Ｓ６０８）、画素単位で、２点の黒シェーディングデータを読み出す。更に複数必要な場合は、蓄積時間がどの蓄積時間内にあるかを判別して、前後の蓄積時間に対する黒シェーディングデータのメモリ等からの読み出しを設定し（Ｓ６０８）、画素単位で、選択設定された２点の黒シェーディングデータを読み出す。（Ｓ６０８）の黒シェーディングの場合と同様に白シェーディングデータも選択設定する（Ｓ６０９）。続いて、図５の説明にあるようにシェーディングデータの補正手順に従い、画素単位の黒シェーディングデータを線形補間する（Ｓ６１０）。（Ｓ６１０）の黒シェーディングの場合と同様に白シェーディングデータも選択設定する（Ｓ６１１）。続いて、前記により補正された黒及び白、黒又は白のシェーディングデータを用いて、例えば下記に示すシェーディング補正を実施する（Ｓ６１２）。
Ｖｏｕｔ＝Ｃｏｎｓｔ＊（Ｖｉｎ−Ｄ’）／（Ｗ’−Ｄ’）＋Ｏｆｆｓｅｔ
ここで、Ｖｏｕｔ：出力データ、Ｖｉｎ：入力データ、Ｃｏｎｓｔ：補正係数、Ｏｆｆｓｅｔ：微調整用、Ｄ’：補正後の黒シェーディングデータ、Ｗ’：補正後の白シェーディングデータをそれぞれ示す。
【００４９】
１ラインのシェーディング補正が最終画素であるかを判別し（Ｓ６１３）、最終画素でない場合（Ｎｏ）、ステップ（Ｓ６０８）に戻り、次の画素の補正を繰り返す。ステップ（Ｓ６１３）で、最終画素である場合（Ｙｅｓ）、更に最終読取ラインであるかを判別し（Ｓ６１４）、最終読取ラインでない場合（Ｎｏ）、ステップ（Ｓ６０６）に戻り、次のラインの読取同期信号の生成と蓄積時間の計測を繰り返す。ステップ（Ｓ６１４）で、最終読取ラインである場合（Ｙｅｓ）、コピー／スキャン動作を終了する（Ｓ６１５）。
【００５０】
また、前記補正が、黒シェーディングデータに対してのみ、有効である場合、黒シェーディングに対するフロー処理だけで構成しても構わない。同様に、前記補正が、白シェーディングデータに対してのみ、有効である場合、白シェーディングに対するフロー処理だけで構成しても構わない。
【実施例２】
【００５１】
以下、実施例２として、受光画素ごとの黒および白シェーディングデータを取得し、それらの平均値を採用してシェーディングデータを補正する例について説明する。
【００５２】
図７は実施例２における蓄積時間と黒及び白のシェーディングデータの平均と線形補間の関係の一例を示す図である。図６の右側において、イメージセンサの主走査方向をセンサ読取範囲として横軸にとり、縦軸はセンサの出力を表している。また、黒ＳＨＤ平均、黒‘ＳＨＤ平均、白ＳＨＤ平均、白’ＳＨＤ平均に対応するハッチのかけられた領域はそれぞれ、各受光画素のシェーディングデータのバラツキを表している。ここで、光電変換に必要な最小または基準となる蓄積時間をＴｔｙｐとし、Ｔｔｙｐに対応する白シェーディングデータをＷｔｙｐ、黒シェーディングデータをＤｔｙｐとする。また最大の蓄積時間をＴｍａｘとし、Ｔｍａｘに対応する白シェーディングデータをＷｍａｘ、黒シェーディングデータをＤｍａｘとする。左側の図は、それらの蓄積時間Ｔｔｙｐ、Ｔｍａｘを設定してそれぞれのシェーディングデータＤｔｙｐ、Ｄｍａｘ、Ｗｔｙｐ、Ｗｍａｘから線形関数により任意の蓄積時間Ｔｘに対応するシェーディングデータを求めることを示している。
【００５３】
本実施例２では、受光画素ごとに補正をかけるのではなく、受光画素ごとのばらつきに起因するシェーディングデータの平均値を保持する。これにより処理負荷低減やメモリ容量の削減を図った例を示している。最小又は基準となる蓄積時間Ｔｔｙｐに対する黒シェーディングデータＤｔｙｐ、白シェーディングデータＷｔｙｐが読取モードに応じた解像度分、取得する。前記シェーディングデータは、圧縮した形で、内蔵メモリや外部メモリに保持しても構わない。蓄積時間Ｔｍａｘは、モータの速度変動により変動する蓄積時間の最大値又はそれ以上の値になる蓄積時間に設定する。複数の蓄積時間に対するシェーディングデータは、内部タイマーや外部同期信号を起動し、取得する。蓄積時間Ｔｍａｘに対する黒シェーディングデータＤｍａｘ、白シェーディングデータＷｍａｘも読取モードに応じた解像度の有効画素ｘ分、取得しながら平均データ又は加算データのみ記憶する。
【００５４】
蓄積時間Ｔｘは、ＤＣモータ駆動中の任意の蓄積時間を示している。
【００５５】
取得したシェーディングデータの補正手順の一例を下記に示す。
（１）蓄積時間Ｔｔｙｐ時の黒シェーディングデータＤｔｙｐ（ｘ）をメモリに格納する。
及びＤｔｙｐ（ｘ）の平均データをメモリ、レジスタ等に記憶する。
（２）蓄積時間Ｔｔｙｐ時の白シェーディングデータＷｔｙｐ（ｘ）をメモリに格納する。
及びＷｔｙｐ（ｘ）の平均データをメモリ、レジスタ等に記憶する。
（３）蓄積時間Ｔｍａｘ時の黒シェーディングデータＤｍａｘ（ｘ）の平均データＤｍａｘ＿ａｖｅをメモリ、レジスタ等に記憶する。Ｄｍａｘ＿ａｖｅ：蓄積時間Ｔｍａｘに対応する受光画素ごとの黒シェーディングデータを平均した値
（４）蓄積時間Ｔｍａｘ時の白シェーディングデータＷｍａｘ（ｘ）の平均データＷｍａｘ＿ａｖｅをメモリ、レジスタ等に記憶する。Ｗｍａｘ＿ａｖｅ：蓄積時間Ｔｍａｘに対応する受光画素ごとの白シェーディングデータを平均した値
（５）任意の蓄積時間に対応する黒シェーディングデータをＤ’（ｘ）として、それを求める関数は以下で示される。Ｄ’（ｘ）＝Ｄｔｙｐ（ｘ）＋（Ｄｍａｘ＿ａｖｅ−Ｄｔｙｐ＿ａｖｅ）×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
すなわち、Ｄｔｙｐ（ｘ）、Ｄｍａｘ＿ａｖｅ、Ｔｍａｘ、Ｔｔｙｐそれぞれの値から導かれる線形関数により補正された黒シェーディングデータが求まる。このＤ’（ｘ）により、黒シェーディングデータ補正を一律平均データで全有効画素に対して行う。
（６）任意の蓄積時間に対応する白シェーディングデータをＷ’（ｘ）とすると、（５）と同様に
Ｗ’（ｘ）＝Ｗｔｙｐ（ｘ）＋（Ｗｍａｘ＿ａｖｅ−Ｗｔｙｐ＿ａｖｅ）×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
となり、Ｗｔｙｐ（ｘ）、Ｗｍａｘ＿ａｖｅ、Ｔｍａｘ＿ａｖｅ、Ｔｔｙｐそれぞれの値から導かれる線形関数により補正されたシェーディングデータが求まる。このＷ’（ｘ）により白シェーディングデータ補正を一律平均データで全有効画素に対して行う。
【００５６】
（５）、（６）の演算回路は、ファームウェア構成、ハードウェア構成、又はファーム／ハードウェアの混在構成の場合も同様に考えられる。また、圧縮データ形式でメモリに格納されている場合は、逐次デコードしながら補正演算を行う。
【００５７】
更に、全有効画素に対して、シェーディングデータの補正を行うが、実際は、画素単位で補正した黒及び白、黒又は白の補正データで、通常のシェーディング補正も同時に行う場合が、一般的である。但し、前記処理手順以外は、システムにより任意であり限定されないため、省略する。
【００５８】
図５の場合と同様にデータ補正の線形性が任意の蓄積時間間隔に制限される場合、複数の蓄積時間間隔で上記の同様の処理を行うことで、対応できることが容易に考えられる。
【００５９】
蓄積時間のＴｔｙｐをＴｎ−１、ＴｍａｘをＴｎとして、任意の蓄積時間Ｔｘが、２点の蓄積時間の格納データ間にあることだけを判別する手段があれば可能である。
【００６０】
また、平均データを用いた上記の構成の場合は、入力データを補正しても同様の構成で考えることができ、シェーディングブロックに手を入れなくても回路追加で構成できる利点がある。
【００６１】
また、前記補正が、黒シェーディングデータに対してのみ、有効である場合、黒シェーディングに対する（１）、（３）、（５）の処理だけで構成しても構わない。
【００６２】
また（１）、（３）、（５）の蓄積時間でのデータ補正が、黒シェーディングデータに対する補正でよい場合、（５）の右辺の蓄積時間補正分
Ｄｄｃ＝（Ｄｍａｘ＿ａｖｅ−Ｄｔｙｐ＿ａｖｅ）×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
を入力データＶｉｎから減算することで、例えば下記に示すような蓄積時間のシェーディング補正に書き換えることができる。ここで、補正後の画像読取信号出力をＶｏｕｔ、読み取った画像データの入力信号をＶｉｎ、Ｃｏｎｓｔを補正係数、Ｏｆｆｓｅｔを微調整用の値とする。Ｖｏｕｔ＝Ｃｏｎｓｔ＊｛（Ｖｉｎ−Ｄｄｃ）−Ｄｔｙｐ｝／（Ｗｔｙｐ−Ｄｔｙｐ）＋Ｏｆｆｓｅｔ
上記演算方法でも同様に、蓄積時間での黒シェーディング補正を実現することができる。
【００６３】
同様に、前記補正が、白シェーディングデータに対してのみ、有効である場合、白シェーディングに対する（２）、（４）、（６）の処理だけで構成しても構わない。
【００６４】
前記同様、（６）の右辺の蓄積時間補正分
Ｗｄｃ＝（Ｗｍａｘ＿ａｖｅ−Ｗｔｙｐ＿ａｖｅ）×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｔｙｐ）
を入力データＶｉｎから減算することで、例えば下記に示すような蓄積時間のシェーディング補正に書き換えることができる。
Ｖｏｕｔ＝Ｃｏｎｓｔ＊｛（Ｖｉｎ−Ｗｄｃ）−Ｄｔｙｐ｝／（Ｗｔｙｐ−Ｄｔｙｐ）＋Ｏｆｆｓｅｔ
上記演算方法でも同様に、蓄積時間での白シェーディング補正を実現することができる。
【００６５】
更に、黒と白の両方で処理しても同様に蓄積時間でのシェーディング補正が実現できることが容易に考えられる。
【００６６】
このように、異なる２つの蓄積時間に対応する黒、白シェーディングデータをイメージセンサ単位で見た平均値を取得し、任意の蓄積時間に対応する黒、白の補正したシェーディングデータを線形関数により求める。これにより、蓄積時間に適したシェーディングデータを適用して読み取った画像データを適切に補正することができる。
【００６７】
図８は、実施例２における黒及び白のシェーディングデータのライン単位の平均データでの線形補間法によるデータ補正の一例を示すフローチャートである。
【００６８】
操作キーにより、コピー又はスキャン動作を開始する（Ｓ８０１）。選択されたスキャン／コピー時の読取モード（解像度）を設定する（Ｓ８０２）。黒及び白、黒又は白の基準になる所定の蓄積時間に対するシェーディングデータを取得する（Ｓ８０３）。続いて、第１（例えば前記基準の場合）と第２の蓄積時間に対する黒シェーディングデータの平均値を取得する（Ｓ８０４）。更に複数の蓄積時間に対応するシェーディングデータが必要な場合について示しており、第Ｎまでの蓄積時間に対する黒シェーディングデータの平均値を取得する。例えば、蓄積時間の短い方からＴ１＜Ｔ２＜Ｔ３＜・・・＜Ｔｎで、左記に対応したシェーディングデータの平均値の関係で取得する。（Ｓ８０４）の黒シェーディングの場合と同様に白シェーディングデータも複数取得する（Ｓ８０５）。続いて、スキャン動作に移行してＤＣモータ駆動を開始する（Ｓ８０６）。モータ駆動が開始されると図２にあるようにエンコーダ信号により、予め設定されたパルス数で読取同期信号が生成される（Ｓ８０７）。読取同期信号が蓄積時間周期になっており、イメージセンサへの駆動信号とデータ入力が開始される。前記読取同期信号を毎ライン、ＣＩＳ系は、ＬＥＤ等の単色ラインに対して計測し、蓄積時間を内部レジスタやメモリに保持する（Ｓ８０８）。続いて、第１と第２の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定し（Ｓ８０９）、画素単位で、基準の黒シェーディングデータを読み出す。更に複数必要な場合は、蓄積時間がどの蓄積時間内にあるかを判別して、前後の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定する（Ｓ８０９）。そして選択設定された２点の黒シェーディングデータの平均値と画素単位で基準の黒シェーディングデータを読み出す。（Ｓ８０９）の黒シェーディングの場合と同様に白シェーディングデータの平均値も選択設定する（Ｓ８１０）。続いて、図６の説明にあるようにシェーディングデータの補正手順に従い、ライン単位の黒シェーディングデータを線形補間する（Ｓ８１１）。（Ｓ８１１）の黒シェーディングの場合と同様に白シェーディングデータも線形補間する（Ｓ８１２）。続いて、前記により補正された黒及び白、黒又は白のシェーディングデータを用いて、例えば前述に示すシェーディング補正を実施する（Ｓ８１３）。補正値はライン単位で取得し、基準のシェーディングデータを基に全有効画素に対して補正を行う。続いて、最終読取ラインであるかを判別し（Ｓ８１４）、最終読取ラインでない場合（Ｎｏ）、ステップ（Ｓ８０７）に戻り、次のラインの読取同期信号の生成と蓄積時間の計測を繰り返す。ステップ（Ｓ８１４）で、最終読取ラインである場合（Ｙｅｓ）、コピー／スキャン動作を終了する（Ｓ８１５）。
【００６９】
図９は、本発明を適用できる黒及び白のシェーディングデータのライン単位の平均データでの線形補間の入力データ補正の一例を示すフローチャートである。
【００７０】
操作キーにより、コピー又はスキャン動作を開始する（Ｓ９０１）。選択されたスキャン／コピー時の読取モード（解像度）を設定する（Ｓ９０２）。黒及び白、黒又は白の基準になる所定の蓄積時間に対するシェーディングデータを取得する（Ｓ９０３）。続いて、第１（例えば前記基準の場合）と第２の蓄積時間に対する黒シェーディングデータの平均値を取得する（Ｓ９０４）。更に複数必要な場合は、第Ｎまでの蓄積時間に対する黒シェーディングデータの平均値を取得する。例えば、蓄積時間の短い方からＴ１＜Ｔ２＜Ｔ３＜・・・＜Ｔｎで、左記に対応したシェーディングデータの平均値の関係で取得する。（Ｓ９０４）の黒シェーディングの場合と同様に白シェーディングデータも複数取得する（Ｓ９０５）。続いて、スキャン動作のＤＣモータ駆動を開始する（Ｓ９０６）。モータ駆動が開始されると図２にあるようにエンコーダ信号より設定されたパルス数で読取同期信号が生成される（Ｓ９０７）。読取同期信号が蓄積時間周期になっており、イメージセンサへの駆動信号とデータ入力が開始される。前記読取同期信号を毎ライン、ＣＩＳ系は、ＬＥＤ等の単色ラインに対して計測し、蓄積時間を内部レジスタやメモリに保持する（Ｓ９０８）。続いて、第１と第２の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定し（Ｓ９０９）、画素単位で、基準の黒シェーディングデータを読み出す。更に複数必要な場合は、蓄積時間がどの蓄積時間内にあるかを判別して、前後の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定する。そして選択設定された２点の黒シェーディングデータの平均値と画素単位で基準の黒シェーディングデータを読み出す（Ｓ９０９）。（Ｓ９０９）の黒シェーディングの場合と同様に白シェーディングデータの平均値も選択設定する（Ｓ９１０）。続いて、図６の説明にあるようにシェーディングデータの補正手順に従い、ライン単位の黒シェーディングデータの線形補間分入力データを補正する（Ｓ９１１）。（Ｓ９１１）の黒シェーディングの場合と同様に白シェーディング補正分、入力データを補正する（Ｓ９１２）。補正値はライン単位で取得し、入力データに対してデータ補正を行い、その後、例えば前述に示すシェーディング補正を実施する（Ｓ９１３）。続いて、最終読取ラインであるかを判別し（Ｓ９１４）、最終読取ラインでない場合（Ｎｏ）、ステップ（７）に戻り、次のラインの読取同期信号の生成と蓄積時間の計測を繰り返す。ステップ（Ｓ９１４）で、最終読取ラインである場合（Ｙｅｓ）、コピー／スキャン動作を終了する（Ｓ９１５）。
【００７１】
以上のように、本発明では、黒レベル又は白レベルのデータに対し、画素単位又はライン単位で、必要に応じて前記補正方法を選択、組み合わせる。これにより、ＤＣモータのエンコーダ同期の画像読取装置において、任意の蓄積時間に対するイメージセンサの暗電流成分やデータ変動を最適に補正できる。
【図面の簡単な説明】
【００７２】
【図１】本発明における画像読取制御装置のブロック図である。
【図２】本発明における画像読取制御装置のエンコーダ等の外部パルスを基に読取同期信号を生成するタイミングの一例を示す図である。
【図３】本発明におけるモータ速度変動に対する読取同期信号と暗電流データの増加の一例を示す図である。
【図４】本発明におけるモータ速度変動に対する読取同期信号と白シェーディングのデータ増加の一例を示す図である。
【図５】第１の実施例である蓄積時間と黒及び白のシェーディングデータの画素単位の線形補間の関係の一例を示す図である。
【図６】第１の実施例に対応する黒及び白のシェーディングデータの画素単位の線形補間のデータ補正の一例を示すフローチャートである。
【図７】第２の実施例である蓄積時間と黒及び白のシェーディングデータのイメージセンサのライン単位の平均と線形補間の関係の一例を示す図である。
【図８】第２の実施例に対応する黒及び白のシェーディングデータのイメージセンサのライン単位の平均データでの線形補間のデータ補正の一例を示すフローチャートである。
【図９】本発明を適用できる黒及び白のシェーディングデータのライン単位の平均データでの線形補間の入力データ補正の一例を示すフローチャートである。
【符号の説明】
【００７３】
１０１  読取デバイス
１０２  ＡＦＥ（アナログフロントエンド）
１０３  読取デバイス制御部
１０４  読取データ処理部
１０５  読取制御部
１０６  第１のＤＣモータコントローラ
１０７  第１のエンコーダブロック
１０８  第２のＤＣモータコントローラ
１０９  第２のエンコーダブロック
１１０  セレクタ
１１１  外部ＳＨ生成ブロック
１１２  内部ＳＨ生成ブロック
１１３  セレクタ
１１４  ＡＳＩＣ
１１５  ＲＡＭ
【図１】
0004892447.tif 000002
【図２】
0004892447.tif 000003
【図３】
0004892447.tif 000004
【図４】
0004892447.tif 000005
【図５】
0004892447.tif 000006
【図６】
0004892447.tif 000007
【図７】
0004892447.tif 000008
【図８】
0004892447.tif 000009
【図９】
0004892447.tif 000010