(57)【特許請求の範囲】
【請求項１】
原稿を読み取るためのイメージセンサと、
モータを駆動源として、前記原稿と前記イメージセンサとの相対的な移動を行う移動手段と、
前記モータの回転に応じてエンコーダから出力されたエンコーダパルスに基づき、前記移動の方向におけるライン毎に前記イメージセンサからの受光信号を色毎に順番に蓄積し、蓄積された前記受光信号に基づく複数の色のデータを出力する出力手段と、
前記出力手段によって出力された前記複数の色のデータ各々に対して、取得したシェーディングデータに基づく、前記イメージセンサにおける暗電流による出力される前記複数の色のデータへの影響を補正するための補正値を用いて、シェーディング補正を行う補正手段と、
を有し、
前記出力手段は、前記複数の色のうち、所定の色については、前記エンコーダパルスに基づくタイミングから蓄積時間が所定時間となるように前記エンコーダパルスに非同期に決定された終了タイミングまで前記受光信号の蓄積を行い、前記複数の色のち、前記所定の色と異なる他の色については、前記エンコーダパルスに基づく開始タイミングから前記エンコーダパルスに同期して決定される終了タイミングまで前記受光信号の蓄積を行い、
前記補正手段は、出力された前記所定の色のデータと前記他の色のデータとを互いに独立して補正し、前記他の色のデータには、前記エンコーダパルスに応じた補正値を用いて補正を行うことを特徴とする画像読取装置。
【請求項２】
前記補正手段は、前記イメージセンサが有する受光画素毎の補正値を用いて、前記受光画素毎に補正を行うことを特徴とする、請求項１に記載の画像読取装置。
【請求項３】
前記補正手段は、前記他の色に対する前記シェーディング補正として、前記イメージセンサの画素毎に異なる補正値を適用する１次補正と、前記エンコーダパルスに応じて、前記イメージセンサの各画素に同じ補正値を適用する２次補正と、を行うことを特徴とする、請求項２に記載の画像読取装置。
【請求項４】
前記補正手段は、
少なくとも２つ以上の蓄積時間で取得したシェーディングデータから校正曲線を生成し、
所定のモータ速度に対応した蓄積時間を基準とした蓄積時間の変動量を求め、
前記蓄積時間の変動量に対するシェーディングデータの変動に基づき前記他の色のための前記補正値を算出することを特徴とする、請求項１乃至３のいずれか１項に記載の画像読取装置。
【請求項５】
前記補正値は、前記イメージセンサが有する複数の受光画素の平均データで算出されることを特徴とする、請求項１乃至４のいずれか１項に記載の画像読取装置。
【請求項６】
前記出力手段は、前記エンコーダパルスに基づくタイミングから、前記出力手段が有する内部タイマによるカウントによって前記蓄積時間が所定時間となるように決定された終了タイミングまで、前記所定の色の前記受光信号の蓄積を行うことを特徴とする、請求項１乃至５のいずれか１項に記載の画像読取装置。
【請求項７】
前記シェーディングデータは、黒シェーディングデータであることを特徴とする、請求項１乃至６のいずれか１項に記載の画像読取装置。
【請求項８】
前記シェーディングデータは、白シェーディングデータであることを特徴とする、請求項１乃至６のいずれか１項に記載の画像読取装置。
【請求項９】
前記モータは、ＤＣモータであることを特徴とする、請求項１乃至８のいずれか１項に記載の画像読取装置。
【請求項１０】
前記モータは、パルスモータであることを特徴とする、請求項１乃至８のいずれか１項に記載の画像読取装置。
【請求項１１】
前記イメージセンサは、原稿の前記ライン毎に、前記所定の色と前記他の色とを少なくとも含む複数の色を順次切り替えて発光し、前記原稿からの反射光を受光することで前記原稿を読み取ることを特徴とする、請求項１乃至１０のいずれか１項に記載の画像読取装置。
【請求項１２】
モータを駆動源としてイメージセンサと原稿との相対的な移動を行い、前記原稿を読み取る画像読取装置が実行する画像読取方法であって、
前記モータの回転に応じてエンコーダから出力されたエンコーダパルスに基づき、前記移動の方向におけるライン毎に前記イメージセンサからの受光信号を色毎に順番に蓄積し、蓄積された前記受光信号に基づく複数の色のデータを出力するステップと、
出力された前記複数の色のデータの各々に対して、シェーディングデータに基づく、前記イメージセンサにおける暗電流による前記複数の色のデータへの影響を補正するための補正値を用いて、シェーディング補正を行うステップと、
を含み、
前記複数の色のうち、所定の色については、前記エンコーダパルスに基づくタイミングから、蓄積時間が所定時間となるように前記エンコーダパルスに非同期に決定された終了タイミングまで前記受光信号の蓄積が行われ、前記複数の色のうち、前記所定の色と異なる他の色については、前記エンコーダパルスに基づく開始タイミングから、前記エンコーダパルスに同期して決定される終了タイミングまで前記受光信号の蓄積が行われ、
前記所定の色のデータと前記他の色のデータとは互いに独立して補正され、前記他の色のデータには、前記エンコーダパルスに応じた補正値を用いた補正が行われる、ことを特徴とする画像読取方法。
【請求項１３】
前記イメージセンサが有する受光画素毎の補正値を用いて、前記受光画素毎に補正が行われることを特徴とする、請求項１２に記載の画像読取方法。
【請求項１４】
前記他の色に対する前記シェーディング補正として、前記イメージセンサの画素毎に異なる補正値を適用する１次補正と、前記エンコーダパルスに応じて、前記イメージセンサの各画素に同じ補正値を適用する２次補正と、が行われることを特徴とする請求項１３に記載の画像読取方法。
【請求項１５】
少なくとも２つ以上の蓄積時間で取得したシェーディングデータから校正曲線が生成され、
所定のモータ速度に対応した蓄積時間を基準とした蓄積時間の変動量が求められ、
前記蓄積時間の変動量に対するシェーディングデータの変動に基づき前記他の色のための前記補正値が算出される、
ことを特徴とする、請求項１２乃至１４のいずれか１項に記載の画像読取方法。
【請求項１６】
前記補正値は、前記イメージセンサが有する複数の受光画素の平均データで算出されることを特徴とする、請求項１２乃至１５のいずれか１項に記載の画像読取方法。
【請求項１７】
前記エンコーダパルスに基づくタイミングから、内部タイマによるカウントによって前記蓄積時間が所定時間となるように決定された終了タイミングまで、前記所定の色の前記受光信号の蓄積が行われることを特徴とする請求項１２乃至１６のいずれか１項に記載の画像読取方法。
【請求項１８】
前記イメージセンサは、前記原稿の前記ライン毎に、前記所定の色と前記他の色とを少なくとも含む複数の色を順次切り替えて発光し、前記原稿からの反射光を受光することで前記原稿を読み取ることを特徴とする請求項１２乃至１７のいずれか１項に記載の画像読取方法。
【請求項１９】
コンピュータに、請求項１２乃至１８のいずれか１項に記載の画像読取方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取デバイスにより読み取った画像データに順次、画像処理を施す画像読取装置、画像読取方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、印刷機能に加えてコピー機能やＦＡＸ機能を有する複合機（ＭＦＰ：マルチファンクションプリンタ）において、原稿の画像を読み取るイメージセンサの駆動源としてＤＣモータが採用されている。ＤＣモータは、従来のステッピングモータと比較して、フラットベッドスキャン系のイメージセンサ搬送、シートスキャン系の原稿搬送時の静粛性の面で優位なためである。
【０００３】
一方、ＤＣモータは、コギングトルク等により回転速度が変動するため、イメージセンサにおける信号の蓄積時間も変動してしまう。蓄積時間が変動すると一般的にイメージセンサの暗電流により黒レベルデータが変化する。また、センサ光源の点灯幅も影響を受け、変化する場合、白レベルデータも変化する。
【０００４】
このような黒レベルデータや白レベルデータの変化に対処するため、シェーディングデータの補正が行なわれている。例えば、特許文献１に記載の技術では、シェーディングデータ取得時に対するスキャン実行時の蓄積時間変動量を計測する。そして、蓄積時間変動量に対する黒レベルデータや白レベルデータの変動量を線形関数演算により算出し、その変動量を補正値としてシェーディングデータを補正している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８９２４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、ライン単位の平均データでシェーディングデータを補正している。そのため、特異画素においては、黒レベルデータの変動量が１ライン平均のシェーディングデータ補正量と異なるため、補正しきれない。以下に、図１、図２を用いて説明する。
【０００７】
図１は、イメージセンサの信号蓄積及び画素出力に最低限必要な蓄積時間Ｔｍｉｎで取得した黒シェーディングデータを示している。●点が、（Ａ）全画素平均的に発生する暗電流による黒レベルデータで、◆点が、（Ｂ）特異画素で発生する暗電流による黒レベルデータである。黒レベルターゲットまで補正するための黒シェーディングデータは、（Ａ）全画素平均的に発生する暗電流による黒レベルデータ＝Ｄａｍ、（Ｂ）特異画素で発生する暗電流による黒レベルデータ＝Ｄｂｍとする。ここで、全画素平均的に発生する暗電流による黒レベルデータは、全画素同値とする。また、特異画素で発生する暗電流量は、全画素平均的に発生する暗電流量の３倍とする（すなわち、Ｄｂｍ＝３×Ｄａｍ）。また、黒レベルデータの１ライン平均値は、全画素平均的に発生する暗電流による黒レベルデータと同値とする。
【０００８】
図２は、蓄積時間Ｔｔｙｐで取得した黒シェーディングデータのライン単位の補正を示している。（Ａ）全画素平均的に発生する暗電流による黒レベルデータ＝Ｄａｔ、（Ｂ）特異画素で発生する暗電流による黒レベルデータ＝Ｄｂｔとする。ここで、黒レベルターゲットまで補正するための黒シェーディングデータの補正量はΔＤａ＝Ｄａｔ−Ｄａｍであるため、（Ａ）全画素平均的に発生する暗電流と、（Ｂ）特異画素で発生する暗電流は、以下のように表すことができる。  
（Ａ）全画素平均的に発生する暗電流：Ｄａｔ−Ｄａｍ−ΔＤａ＝０
（Ｂ）特異画素で発生する暗電流：Ｄｂｔ−Ｄｂｍ−ΔＤａ＝３Ｄａｔ−３Ｄａｍ−ΔＤａ＝２ΔＤａ
すなわち、蓄積時間Ｔｔｙｐにおいては、（Ａ）全画素平均的に発生する暗電流は補正できるが、（Ｂ）特異画素で発生する暗電流は２ΔＤａだけ補正しきれない。よって、読み取った画像には、特異画素からスキャンした部分が縦筋として現れてしまう。
【０００９】
なお、特許文献１には、画素単位で黒シェーディングデータを補正する技術も記載されている。この場合、補正量を画素単位で算出するため、特異画素においても黒シェーディングデータを補正することができる。図３は、蓄積時間Ｔｔｙｐで取得した黒シェーディングデータの画素単位の補正を示している。暗電流による黒レベルデータを図２と同様とすると、◆点において、（Ｂ）特異画素で発生する暗電流による黒レベルデータはΔＤｂ（＝３ΔＤａ）で補正することができる。しかしながら、黒シェーディングデータの補正値を画素毎に算出し、保持するため、多くのメモリ量と処理時間を要し、製品のパフォーマンスに影響することが懸念される。
【課題を解決するための手段】
【００１０】
本発明の一実施例による画像読取装置は、原稿を読み取るためのイメージセンサと、モータを駆動源として、前記原稿と前記イメージセンサとの相対的な移動を行う移動手段と、前記モータの回転に応じてエンコーダから出力されたエンコーダパルスに基づき、前記移動の方向におけるライン毎に前記イメージセンサからの受光信号を色毎に順番に蓄積し、蓄積された前記受光信号に基づく複数の色のデータを出力する出力手段と、前記出力手段によって出力された前記複数の色のデータ各々に対して、取得したシェーディングデータに基づく、前記イメージセンサにおける暗電流による出力される前記複数の色のデータへの影響を補正するための補正値を用いて、シェーディング補正を行う補正手段と、を有する。前記出力手段は、前記複数の色のうち、所定の色については、前記エンコーダパルスに基づくタイミングから蓄積時間が所定時間となるように前記エンコーダパルスに非同期に決定された終了タイミングまで前記受光信号の蓄積を行い、前記複数の色のち、前記所定の色と異なる他の色については、前記エンコーダパルスに基づく開始タイミングから前記エンコーダパルスに同期して決定される終了タイミングまで前記受光信号の蓄積を行う。前記補正手段は、出力された前記所定の色のデータと前記他の色のデータとを互いに独立して補正し、前記他の色のデータには、前記エンコーダパルスに応じた補正値を用いて補正を行う。
【発明の効果】
【００１１】
本発明によれば、多くのメモリ量や処理時間を要することなく、（Ａ）全画素平均的に発生する暗電流と、（Ｂ）特異画素で発生する暗電流の変化に対して適切なシェーディング補正値を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】蓄積時間Ｔｍｉｎで取得した黒シェーディングデータを示す図である。
【図２】特許文献１における、蓄積時間Ｔｔｙｐで取得した黒シェーディングデータのライン単位の補正を説明する図である。
【図３】特許文献１における、蓄積時間Ｔｔｙｐで取得した黒シェーディングデータの画素単位の補正を説明する図である。
【図４】本発明の一実施例における画像読取装置の構成を示すブロック図である。
【図５】本発明の一実施例における画像読取装置のカラーモードのスキャン時のタイミングチャートを示す図である。
【図６】本発明の一実施例におけるモータ速度変動に対する読取同期信号の変化を示す図である。
【図７】本発明の一実施例における画像読取装置のカラーモードのシェーディングデータ取得時のタイミングチャートを示す図である。
【図８】本発明の一実施例における画像読取装置の蓄積時間Ｔｔｙｐにおける黒シェーディングデータを示す図である。
【図９】本発明の一実施例における蓄積時間と黒及び白のシェーディングデータのイメージセンサのライン単位の平均と線形補間の関係を示す図である。
【図１０】本発明の一実施例における画像読取装置の蓄積時間Ｔｔｙｐ＋Δｔにおける黒シェーディングデータの補正を示す図である。
【図１１】本発明の一実施例における黒及び白のシェーディングデータのライン単位の平均データによるシェーディングデータ補正を示すフローチャートである。
【図１２】本発明の一実施例における黒及び白のシェーディングデータのライン単位の平均データによる入力データ補正を示すフローチャートである。
【図１３】本発明による黒シェーディング補正の効果を特許文献１に記載の技術と比較して説明する図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施例について、図面を参照して詳細に説明する。なお、以下に説明する実施例は一例に過ぎず、本発明を限定するものではない。
【００１４】
図４は、本発明の一実施例における画像読取装置の構成を示す。本画像読取装置は、モータを駆動源としてイメージセンサと原稿とを相対的に移動させて原稿を読み取ることができる。
【００１５】
読取デバイス１０１は、原稿からの反射光を光電変換し、ＲＧＢのアナログ信号を出力するＣＣＤ（電荷結合素子）やＣＩＳ（コンタクトイメージセンサ）といった複数の受光画素から成る。読取デバイス１０１は、それらが一列に配置されたリニアイメージセンサである。ＡＦＥ（アナログフロントエンド）デバイス１０２は、読取デバイス１０１から出力されたアナログ信号をデジタル信号にＡ／Ｄ変換するように構成される。
【００１６】
読取デバイス制御部１０３は、読取デバイス１０１及びＡＦＥデバイス１０２へ制御信号を出力する。読取デバイス制御部１０３は、読み取りデバイス１０１からのＲＧＢのアナログ信号をＡＦＥデバイス１０２経由でデジタル信号として取り込み、データの並べ替え、パッキング等を行う読取データ処理部１０４に画像データとして転送する。さらに読取デバイス制御部１０３は、センサ光源の調光制御、入力される画像信号を基にフィードバックＰＷＭ制御等を行う。
【００１７】
読取データ処理部１０４は、後述するエンコーダコントローラからの出力信号又は内部タイマに同期して生成される、読取解像度のライン単位又はイメージセンサの蓄積時間単位の読取同期信号に同期し、シェーディング補正を行う。また、読取データ処理部１０４は、演算手段１１８を有する。演算手段１１８は、２つ以上の任意の蓄積時間によるシェーディングデータから校正曲線を生成する。また、演算手段１１８は、スキャン中におけるモータ速度の目標値（目標モータ速度）に対応した蓄積時間を基準とした蓄積時間変動量を計測し、蓄積時間変動量に対するシェーディングデータの変動をシェーディングデータの補正値として演算する。
【００１８】
読取制御部１０５は、画像データの取り込み（読み込み）のスタート、終了の制御を行う。
【００１９】
イメージセンサ用の第１のＤＣモータコントローラ１０６は、イメージセンサ用の第１のＤＣモータ１１６の駆動制御を行う。イメージセンサ用の第１のエンコーダコントローラ１０７は、第１のＤＣモータ１１６の回転に応じて位相の異なるＡ相、Ｂ相のパルスを受信する。不図示のＡＤＦ（オートドキュメントフィーダ）用の第２のＤＣモータコントローラ１０８は。ＡＤＦ駆動用の第２のＤＣモータ１１７の駆動制御を行う。ＡＤＦ用の第２のエンコーダコントローラ１０９は、第１のエンコーダコントローラ１０７と同様の制御を行う。すなわち、第２のＤＣモータ１１７の回転に応じて位相の異なるＡ相、Ｂ相のパルスを受信する。パルス発生機構としては、一般的に、ロータリーエンコーダが用いられる。
【００２０】
ＤＣモータコントローラ１０６、１０８はそれぞれ、エンコーダコントローラ１０７、１０９の処理に従い、ＤＣモータ１１６、１１７へのＥｎａｂｌｅ信号と、速度と回転方向の情報を持つＰｈａｓｅ信号を出力し、ＤＣモータのフィードバック制御を行う。ＤＣモータ１１６は、原稿台の上に載置された原稿に対してイメージセンサを走査するための駆動源である。ＤＣモータ１１７は、不図示のオートドキュメントフィーダ（ＡＤＦ）の駆動源である。ＡＤＦは、イメージセンサに対して原稿を移動させる機構である。セレクタ１１０は、ＤＣモータ１１６とＤＣモータ１１７の２つのＤＣモータ制御の切り換えを行う。これは回路規模を縮小するために選択できるようにした１例を示している。エンコーダコントローラを含めＤＣモータ制御部が同じ場合、更に外側でセレクトする構成も考えられる。また、図４の例ではエンコーダパルスから位相が正転方向か反転方向かを選択して出力する機能を有する構成を示している。１つのＤＣモータのみを制御する場合、セレクタは無くてもよい。
【００２１】
外部トリガから読取同期信号を生成する外部読取同期信号生成ブロック１１１は、正転位相パルス、反転位相パルス、片エッジ、両エッジの情報からパルス数をカウントする。外部読取同期信号生成ブロック１１１は、そのカウント値に基づいて、読取解像度の１ライン又は複数ラインとなる基準の外部読取同期信号（ＥＸＴ＿ＳＨ）を生成する。内部読取同期信号生成ブロック１１２は、イメージセンサの読取同期信号として内部同期信号（ＩＮＴ＿ＳＨ）を不図示のタイマから、イメージセンサの信号蓄積及び信号出力の１周期分の同期信号を生成している。
【００２２】
セレクタ１１３は、エンコーダ信号を元に生成される外部同期信号（ＥＸＴ＿ＳＨ）と、内部タイマから生成される内部同期信号（ＩＮＴ＿ＳＨ）を不図示の読取同期信号（ＳＨ）カウンタにてカウントする。セレクタ１１３はカウントに応じて、イメージセンサの読取同期信号（ＳＨ）をセレクトする。本画像読取装置は、スキャン中に外部同期信号（ＥＸＴ＿ＳＨ）と、次の外部同期信号（ＥＸＴ＿ＳＨ）との区間に内部同期信号（ＩＮＴ＿ＳＨ）を内部逓倍するようにセレクタ１１３を制御する。本画像読取装置は、セレクタ１１３をそのように制御することで、イメージセンサの読取同期信号（ＳＨ）を生成する外部同期ＳＨ生成モードを有する。複数内部逓倍する例としては、ＣＩＳのカラー読取においてＲｃｈ、Ｇｃｈ、Ｂｃｈをイメージセンサの蓄積周期毎に出力させる際に３逓倍したり、更にはＳ/Ｓ発生時のモータ駆動速度調整のためにダミーの蓄積周期を追加したりするときに用いられる。また、本画像読取装置は、読取デバイス１０１のみを駆動させるときは、内部同期信号（ＩＮＴ＿ＳＨ）のみ生成するようセレクタ１１３を制御することで、イメージセンサの読取同期信号（ＳＨ）を生成する内部同期ＳＨ生成モードを有する。内部同期ＳＨ生成モードは、シェーディングデータ取得時や、イメージセンサのフォトダイオード残留電荷リセットのための空読みなどに用いられる。
【００２３】
ＲＡＭ１１５は、通常のシェーディングデータ及び画素単位補正用の複数のシェーディングデータを格納するためのメモリであり、ＡＳＩＣ１１４内にＳＲＡＭ等で内蔵メモリとして構成してもよいし、ＤＲＡＭ等で外部メモリとして構成してもよい。
【００２４】
以下に、本画像読取装置におけるスキャン及びシェーディングデータ取得時のタイミング制御を説明する。読取デバイス１０１には、ＣＩＳ（コンタクトイメージセンサ）を用いるものとする。
【００２５】
図５は、本実施例における画像読取装置のカラーモードのスキャン時のタイミングチャートを示す。本スキャン時は、外部同期ＳＨ生成モードで読取同期信号（ＳＨ）を生成している。エンコーダＡ相（Ｂ相）は、図４のエンコーダコントローラ１０７、１０９へ入力されるエンコーダ信号出力を表している。例えば、図５に示したエンコーダＡ相の立ち上がりの片エッジサンプリングの場合には、立ち上がりをエンコーダコントローラでフィルタリングして、ノイズを除去した後、エンコーダパルスＥＮＣ＿ＴＲＧとして出力する。トリガカウンタ（ＴＲＧ＿ｃｏｕｎｔｅｒ）は、エンコーダパルスＥＮＣ＿ＴＲＧをカウントするものである。本実施例では、エンコーダパルスＥＮＣ＿ＴＲＧを１から４までカウントすることにより、副走査読取解像度の１ラインとなる基準の外部読取同期信号（ＥＸＴ＿ＳＨ）を生成する。ここで、副走査とは、読取デバイスを移動する方向または読取対象となる原稿を搬送する方向を指す。
【００２６】
カラーモード読取時、読取デバイス１０１のＬＥＤ点灯がＲＧＢ順次点灯であるため、読取解像度の１ラインは、イメージセンサの蓄積周期においてＲｃｈ（Ｒチャンネル）、Ｇｃｈ（Ｇチャンネル）、Ｂｃｈ（Ｂチャンネル）の３周期で構成される。例えば、読取解像度における１ラインのスタートとして外部読取同期信号（ＥＸＴ＿ＳＨ）が入力されると、セレクタ１１３は、ＳＨ＿ｃｏｕｎｔ＝１にリセットする。
【００２７】
ＳＨ＿ｃｏｕｎｔ＝１の区間では、読取デバイス制御部１０３はＧｃｈのＬＥＤを点灯させ、イメージセンサはＧｃｈの信号を蓄積し、１周期前に蓄積したＲｃｈのデータを出力する。内部読取同期信号生成ブロック１１２は、外部読取同期信号（ＥＸＴ＿ＳＨ）が入力されてから、シェーディングデータ取得時の蓄積時間Ｔｍｉｎ経過後に内部読取同期信号（ＩＮＴ＿ＳＨ）を生成する。セレクタ１１３は、内部読取同期信号（ＩＮＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝２にインクリメントする。
【００２８】
ＳＨ＿ｃｏｕｎｔ＝２の区間では、読取デバイス制御部１０３はＢｃｈのＬＥＤを点灯させ、イメージセンサはＢｃｈの信号を蓄積し、１周期前に蓄積したＧｃｈのデータを出力する。内部読取同期信号生成ブロック１１２は、内部読取同期信号（ＩＮＴ＿ＳＨ）を生成してから、シェーディングデータ取得時の蓄積時間Ｔｍｉｎ経過後に内部読取同期信号（ＩＮＴ＿ＳＨ）を生成する。セレクタ１１３は、内部読取同期信号（ＩＮＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝３にインクリメントする。
【００２９】
ＳＨ＿ｃｏｕｎｔ＝３の区間では、読取デバイス制御部１０３はＲｃｈのＬＥＤを点灯させ、イメージセンサはＲｃｈの信号を蓄積し、１周期前に蓄積したＢｃｈのデータを出力する。外部読取同期信号生成ブロック１１１は、次のラインの外部同期信号（ＥＸＴ＿ＳＨ）が入力されたとき、セレクタ１１３は外部読取同期信号（ＥＸＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝１にリセットする。
【００３０】
なお、蓄積時間Ｔｍｉｎは、イメージセンサの信号蓄積及び信号出力に必要な最小または基準となる蓄積時間である。
【００３１】
また、モータ速度は、周期的に発生するコギングにより瞬時的に変動するため、読取解像度の１ラインの読取時間（ＬｉｎｅＴｉｍｅ）も同期して変動する。例えば、本実施例における画像読取装置は、ＬｉｎｅＴｉｍｅが最大でΔｔ変動する特性である場合、Ｒｃｈ（ＳＨ＿ｃｏｕｎｔ＝３）の蓄積時間がＴｍｉｎを下回らないようにモータ速度を制御する。例えば、Ｒｃｈの平均蓄積時間をＴｔｙｐ（Ｔｔｙｐ＞Ｔｍｉｎ＋Δｔ）としてマージンを持たせるようなモータ駆動のサーボ制御を行う。本画像読取装置においては、図６に示したとおり、サーボ制御によりコギングが発生したライン以外ではＲｃｈの蓄積時間がＴｔｙｐに保たれ、コギングが発生したラインではＲｃｈの蓄積時間がＴｔｙｐ±Δｔになる前提とする。
【００３２】
なお、Δｔは、モータ速度及びモータコギングトルクの特性に依存する。一般的には、モータ速度が遅いほどΔｔが大きくなる。コギング周期はモータ構造に依存し、モータ１回転におけるコギング発生回数が決まっている。また、サーボ制御は既知の技術であるため、本明細書では説明を省略する。
【００３３】
図７は、本実施例における画像読取装置のカラーモードのシェーディングデータ取得時のタイミングチャートを示す。シェーディングデータ取得時は、内部同期ＳＨ生成モードで読取同期信号（ＳＨ）を生成している。
【００３４】
読取解像度における１ラインのスタートとして内部読取同期信号（ＩＮＴ＿ＳＨ）が入力されると、セレクタ１１３は、ＳＨ＿ｃｏｕｎｔ＝１にリセットする。
【００３５】
ＳＨ＿ｃｏｕｎｔ＝１の区間では、読取デバイス制御部１０３はＧｃｈのＬＥＤを点灯させ、イメージセンサはＧｃｈの信号を蓄積し、１周期前に蓄積したＲｃｈのデータを出力する。内部読取同期信号生成ブロック１１２は、内部読取同期信号（ＩＮＴ＿ＳＨ）が入力されてから、シェーディングデータ取得時の蓄積時間Ｔｍｉｎ経過後に内部読取同期信号（ＩＮＴ＿ＳＨ）を生成する。セレクタ１１３は、内部読取同期信号（ＩＮＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝２にインクリメントする。
【００３６】
ＳＨ＿ｃｏｕｎｔ＝２の区間では、読取デバイス制御部１０３はＢｃｈのＬＥＤを点灯させ、イメージセンサはＢｃｈの信号を蓄積し、１周期前に蓄積したＧｃｈのデータを出力する。内部読取同期信号生成ブロック１１２は、内部読取同期信号（ＩＮＴ＿ＳＨ）を生成してから、シェーディングデータ取得時の蓄積時間Ｔｍｉｎ経過後に内部読取同期信号（ＩＮＴ＿ＳＨ）を生成する。セレクタ１１３は、内部読取同期信号（ＩＮＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝３にインクリメントする。
【００３７】
ＳＨ＿ｃｏｕｎｔ＝３の区間では、読取デバイス制御部１０３はＲｃｈのＬＥＤを点灯させ、イメージセンサはＲｃｈの信号を蓄積し、１周期前に蓄積したＢｃｈのデータを出力する。内部読取同期信号生成ブロック１１２は、内部読取同期信号（ＩＮＴ＿ＳＨ）を生成してから、シェーディングデータ取得時の蓄積時間Ｔｔｙｐ経過後に内部読取同期信号（ＩＮＴ＿ＳＨ）を生成する。セレクタ１１３は、内部読取同期信号（ＩＮＴ＿ＳＨ）を読取同期信号（ＳＨ）としてセレクトし、ＳＨ＿ｃｏｕｎｔ＝１にリセットする。
【００３８】
なお、黒シェーディングデータ取得時は、何れのカラーチャンネルにおいてもＬＥＤを消灯して信号蓄積を行う。
【００３９】
このように、黒シェーディングデータ取得時の蓄積時間をＲｃｈのみＴｔｙｐを基準とする。そうすることで、エンコーダ同期によりスキャン中におけるＲｃｈの蓄積時間がＴｔｙｐに伸びるラインにおいて（即ちコギングの影響を受けない全てのライン）、黒シェーディング補正ができる。すなわち、本実施例によると、モータの速度変動に同期して一部のチャンネルの蓄積時間が変動する場合、シェーディングデータ取得時の蓄積時間を、他チャンネルと独立して制御することができる。
【００４０】
例えば、図８は、図７に示すＲｃｈのように蓄積時間をＴｔｙｐとしたときの黒シェーディング補正について示している。●点が（Ａ）全画素平均的に発生する暗電流による黒レベルデータで、◆点が（Ｂ）特異画素で発生する暗電流による黒レベルデータである。黒レベルターゲットまで補正するための黒シェーディングデータは、（Ａ）全画素平均的に発生する暗電流による黒レベルデータ＝Ｄａｔ、（Ｂ）特異画素で発生する暗電流による黒レベルデータ＝Ｄｂｔである。そのため、スキャン中の蓄積時間がＴｔｙｐのラインにおいては、（Ａ）全画素平均的に発生する暗電流による黒レベルデータはＤａｔだけ補正でき、（Ｂ）特異画素で発生する暗電流による黒レベルデータにおいてもＤｂｔだけ補正できる。したがって、（Ａ）、（Ｂ）両方の黒レベルデータを、黒レベルターゲットに合わせることができる。即ち、図２に示したように、蓄積時間Ｔｍｉｎを基準とした黒シェーディングで補正しきれなかった、（Ｂ）特異画素で発生する暗電流による黒レベルデータを補正できる。
【００４１】
以下、受光画素ごとの黒および白シェーディングデータを取得し、それらの平均値を採用してシェーディングデータを補正する例について説明する。すなわち、本実施例では、シェーディングデータの補正値は、イメージセンサが有する複数の受光画素の平均データを使用して算出される。また、シェーディングデータの補正値は、複数のカラーチャンネル（ＲＧＢ）で算出される。本スキャンは図５に、シェーディングデータ取得時のタイミングは図７に示したとおりである。
【００４２】
図９は、本実施例における蓄積時間と黒及び白のシェーディングデータのライン単位の平均と線形補間の関係を示す図である。ここで、シェーディングデータ取得時の蓄積時間をＴｓｈｄとし、Ｔｓｈｄに対応する白シェーディングデータをＷｓｈｄ、黒シェーディングデータをＤｓｈｄとする。また、最大の蓄積時間をＴｍａｘとし、Ｔｍａｘに対応する白シェーディングデータをＷｍａｘ、黒シェーディングデータをＤｍａｘとする。図９は、それらの蓄積時間Ｔｓｈｄ、Ｔｍａｘを設定して、それぞれのシェーディングデータＤｓｈｄ、Ｄｍａｘ、Ｗｓｈｄ、Ｗｍａｘから線形関数により任意の蓄積時間Ｔｘに対応するシェーディングデータを求めることを示している。
【００４３】
本実施例では、シェーディングデータのライン平均値を保持する。基準となる蓄積時間Ｔｓｈｄに対する黒シェーディングデータＤｓｈｄ、白シェーディングデータＷｔｙｐを読取モードに応じた解像度分、取得する。取得したシェーディングデータは、受光画素ごとに、圧縮した形で、内蔵メモリや外部メモリに保持してもよい。蓄積時間Ｔｍａｘは、モータの速度変動により変動する蓄積時間の最大値又はそれ以上の値になる蓄積時間に設定する。複数の蓄積時間に対するシェーディングデータは、内部タイマや外部同期信号を起動し、取得する。蓄積時間Ｔｍａｘに対する黒シェーディングデータＤｍａｘ、白シェーディングデータＷｍａｘも読取モードに応じた解像度の有効画素ｘ分、取得しながら平均データ又は加算データのみ記憶する。
【００４４】
蓄積時間Ｔｘは、ＤＣモータ駆動中の任意の蓄積時間を示している。
【００４５】
取得したシェーディングデータの補正手順の一例を下記に示す。
（１）蓄積時間Ｔｓｈｄ時の黒シェーディングデータＤｓｈｄ（ｘ）をメモリに格納し、Ｄｓｈｄ（ｘ）の平均データをメモリ、レジスタ等に記憶する。
（２）蓄積時間Ｔｓｈｄ時の白シェーディングデータＷｓｈｄ（ｘ）をメモリに格納し、Ｗｓｈｄ（ｘ）の平均データをメモリ、レジスタ等に記憶する。
（３）蓄積時間Ｔｍａｘ時の黒シェーディングデータＤｍａｘ（ｘ）の平均データＤｍａｘ＿ａｖｅをメモリ、レジスタ等に記憶する。Ｄｍａｘ＿ａｖｅは、蓄積時間Ｔｍａｘに対応する受光画素ごとの黒シェーディングデータを平均した値である。
（４）蓄積時間Ｔｍａｘ時の白シェーディングデータＷｍａｘ（ｘ）の平均データＷｍａｘ＿ａｖｅをメモリ、レジスタ等に記憶する。Ｗｍａｘ＿ａｖｅは、蓄積時間Ｔｍａｘに対応する受光画素ごとの白シェーディングデータを平均した値である。
（５）任意の蓄積時間に対応する黒シェーディングデータをＤ’（ｘ）として、それを求める関数は以下で示される。  
Ｄ’（ｘ）＝Ｄｓｈｄ（ｘ）＋（Ｄｍａｘ＿ａｖｅ−Ｄｓｈｄ＿ａｖｅ）×（Ｔｘ−Ｔｓｈｄ）／（Ｔｍａｘ−Ｔｓｈｄ）
すなわち、Ｄｓｈｄ（ｘ）、Ｄｍａｘ＿ａｖｅ、Ｔｍａｘ、Ｔｓｈｄそれぞれの値から導かれる線形関数により、補正された黒シェーディングデータが求まる。このＤ’（ｘ）により、黒シェーディングデータ補正を一律平均データで全有効画素に対して行う。
（６）任意の蓄積時間に対応する白シェーディングデータをＷ’（ｘ）とすると、上記（５）と同様に、Ｗ’（ｘ）を求める関数は以下のように表される。  
Ｗ’（ｘ）＝Ｗｓｈｄ（ｘ）＋（Ｗｍａｘ＿ａｖｅ−Ｗｓｈｄ＿ａｖｅ）×（Ｔｘ−Ｔｔｙｐ）／（Ｔｍａｘ−Ｔｓｈｄ）
Ｗｓｈｄ（ｘ）、Ｗｍａｘ＿ａｖｅ、Ｔｍａｘ＿ａｖｅ、Ｔｓｈｄそれぞれの値から導かれる線形関数により、補正されたシェーディングデータが求まる。このＷ’（ｘ）により、白シェーディングデータ補正を一律平均データで全有効画素に対して行う。
【００４６】
上記（５）、（６）の演算回路は、ファームウェア構成、ハードウェア構成、又はファーム／ハードウェアの混在構成の場合も同様に考えられる。また、圧縮データ形式でメモリに格納されている場合は、逐次デコードしながら補正演算を行う。
【００４７】
更に、全有効画素に対してシェーディングデータの補正を行うが、一般的に、画素単位で補正した黒及び白、黒、又は白の補正データで、通常のシェーディング補正も同時に行われる。但し、上記処理手順以外は、システムにより任意であり限定されないため、省略する。
【００４８】
図５の場合と同様にデータ補正の線形性が任意の蓄積時間間隔に制限される場合、複数の蓄積時間間隔で上記の同様の処理を行うことで、対応できることが容易に考えられる。
【００４９】
蓄積時間ＴｓｈｄをＴｎ−１、ＴｍａｘをＴｎとして、任意の蓄積時間Ｔｘが、２点の蓄積時間の格納データ間にあることだけを判別する手段があれば可能である。
【００５０】
また、平均データを用いた上記構成は、入力データを補正するように構成してもよく、その場合、シェーディングブロックに手を入れなくても回路追加で構成できる利点がある。
（７）また、上記補正が、黒シェーディングデータに対してのみ、有効である場合、黒シェーディングに対する上記（１）、（３）、（５）の処理だけで構成してもよい。すなわち、上記（１）、（３）、（５）の蓄積時間でのデータ補正が、黒シェーディングデータに対する補正でよい場合、以下に示す上記（５）の右辺の蓄積時間補正分ΔＤを、入力データＶｉｎから減算する。  
ΔＤ＝（Ｄｍａｘ＿ａｖｅ−Ｄｓｈｄ＿ａｖｅ）×（Ｔｘ−Ｔｓｈｄ）／（Ｔｍａｘ−Ｔｓｈｄ）
（８）ΔＤを入力データＶｉｎから減算することで、例えば下記に示すような蓄積時間のシェーディング補正に書き換えることができる。ここで、補正後の画像読取信号出力をＶｏｕｔ、読み取った画像データの入力信号をＶｉｎ、Ｃｏｎｓｔを補正係数、Ｏｆｆｓｅｔを微調整用の値とする。  
Ｖｏｕｔ＝Ｃｏｎｓｔ＊｛（Ｖｉｎ−ΔＤ）−Ｄｓｈｄ｝／（Ｗｓｈｄ−Ｄｓｈｄ）＋Ｏｆｆｓｅｔ
上記演算方法でも同様に、蓄積時間での黒シェーディング補正を実現することができる。
【００５１】
図１０に、暗電流補正の効果を示す。図７より黒シェーディングデータ取得は蓄積時間Ｔｓｈｄ＝Ｔｔｙｐで行っているため、（Ａ）全画素平均的に発生する暗電流による黒シェーディングデータ＝Ｄａｔ、（Ｂ）特異画素で発生する暗電流による黒シェーディングデータ＝Ｄｂｔである。図５よりＲｃｈにおいてはスキャン中の蓄積時間が、Ｔｔｙｐ-Δｔ＜Ｔｘ＜Ｔｔｙｐ＋Δｔの範囲で変動する。図１０は、Ｔｘ＝Ｔｔｙｐ＋Δｔのラインにおける補正を示している。蓄積時間Ｔｘ＝Ｔｔｙｐ＋Δｔにおける、（Ａ）全画素平均的に発生する暗電流による黒レベルデータ＝Ｄａｔ´、（Ｂ）特異画素で発生する暗電流による黒シェーディングデータ＝Ｄｂｔ´とする。また、１ラインにおける黒シェーディングデータの補正量ΔＤをΔＤａとすると、ΔＤａ＝Ｄａｔ´−Ｄａｔであるため、
（Ａ）全画素平均的に発生する暗電流：
Ｄａｔ´−Ｄａｔ−ΔＤａ＝０
（Ｂ）特異画素で発生する暗電流：
Ｄｂｔ´−Ｄｂｔ−ΔＤａ＝３Ｄａｔ´−３Ｄａｔ−ΔＤａ
＝２ΔＤａ
となる。同様にＴｘ＝Ｔｔｙｐ−Δｔにおいては（不図示）、
（Ａ）全画素平均的に発生する暗電流：
Ｄａｔ´−Ｄａｔ＋ΔＤａ＝０
（Ｂ）特異画素で発生する暗電流：
Ｄｂｔ´−Ｄｂｔ＋ΔＤａ＝３Ｄａｔ´−３Ｄａｔ＋ΔＤａ
＝−２ΔＤａ
従って、コギングが発生するラインにおいて、（Ａ）全画素平均的に発生する暗電流は補正できるが、（Ｂ）特異画素で発生する暗電流は±２ΔＤａだけ補正しきれない。しかしながら、コギングが発生するラインにおける（Ｂ）特異画素というのは、画像としては孤立点として現れ、目立たないため用途上問題にはならない。
【００５２】
また、Ｇｃｈ及びＢｃｈはスキャン中の蓄積時間Ｔｘと黒シェーディングデータ取得時の蓄積時間Ｔｓｈｄが同値（＝Ｔｍｉｎ）となるため、黒シェーディングデータの補正は不要である（黒シェーディングデータの補正量ΔＤ＝０になる）。
（９）同様に、上記補正が、白シェーディングデータに対してのみ、有効である場合、白シェーディングに対する上記（２）、（４）、（６）の処理だけで構成してもよい。すなわち、以下に示す上記（６）の右辺の蓄積時間補正分ΔＷを、入力データＶｉｎから減算する。  
ΔＷ＝（Ｗｍａｘ＿ａｖｅ−Ｗｓｈｄ＿ａｖｅ）×（Ｔｘ−Ｔｓｈｄ）／（Ｔｍａｘ−Ｔｓｈｄ）
（１０）ΔＷを入力データＶｉｎから減算することで、例えば下記に示すような蓄積時間のシェーディング補正に書き換えることができる。ここでも、補正後の画像読取信号出力をＶｏｕｔ、読み取った画像データの入力信号をＶｉｎ、Ｃｏｎｓｔを補正係数、Ｏｆｆｓｅｔを微調整用の値とする。  
Ｖｏｕｔ＝Ｃｏｎｓｔ＊｛（Ｖｉｎ−ΔＷ）−Ｄｓｈｄ｝／（Ｗｓｈｄ−Ｄｓｈｄ）＋Ｏｆｆｓｅｔ
上記演算方法でも同様に、蓄積時間での白シェーディング補正を実現することができる。
【００５３】
更に、黒と白の両方で処理しても同様に蓄積時間でのシェーディング補正が実現できることが容易に考えられる。
【００５４】
このように、異なる２つの蓄積時間に対応する黒、白シェーディングデータのイメージセンサ単位で見た平均値を取得し、任意の蓄積時間に対応する黒、白の補正したシェーディングデータを線形関数により求める。これにより、蓄積時間に適したシェーディングデータを適用して読み取った画像データを適切に補正することができる。
【００５５】
図１１は、本実施例における黒及び白のシェーディングデータのライン単位の平均データでの線形補間法によるシェーディングデータ補正の一例を示すフローチャートである。
【００５６】
まず、ステップＳ８０１において、操作キーを操作することにより、コピー又はスキャン動作を開始する。ステップＳ８０２において、選択されたスキャン／コピー時の読取モード（解像度）を設定する。ステップＳ８０３において、黒及び白、黒又は白の基準になる所定の蓄積時間に対するシェーディングデータを取得する。続いて、ステップＳ８０４において、第１（例えば上記基準の場合）と第２の蓄積時間に対する黒シェーディングデータの平均値を取得する。更に複数の蓄積時間に対応するシェーディングデータが必要な場合は、第Ｎまでの蓄積時間に対する黒シェーディングデータの平均値を取得する。例えば、蓄積時間の短い方からＴ１＜Ｔ２＜Ｔ３＜・・・＜Ｔｎで、対応したシェーディングデータの平均値を取得する。次いで、ステップＳ８０５において、ステップＳ８０４の黒シェーディングの場合と同様に白シェーディングデータも複数取得する。
【００５７】
続いて、ステップＳ８０６において、スキャン動作に移行してＤＣモータ駆動を開始する。モータ駆動が開始されると、ステップＳ８０７において、図５に示したようにエンコーダ信号により、予め設定されたパルス数で読取同期信号が生成される。読取同期信号が蓄積時間周期になっており、イメージセンサへの駆動信号とデータ入力が開始される。ステップＳ８０８において、読取同期信号を毎ライン、ＣＩＳ系は、ＬＥＤ等の単色ラインに対して計測し、蓄積時間を内部レジスタやメモリに保持する。続いて、ステップＳ８０９において、第１と第２の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定し、画素単位で、基準の黒シェーディングデータを読み出す。更に複数必要な場合は、蓄積時間がどの蓄積時間内にあるかを判別して、前後の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定する。そして、選択設定された２点の黒シェーディングデータの平均値と画素単位で基準の黒シェーディングデータを読み出す。ステップＳ８１０において、ステップＳ８０９の黒シェーディングの場合と同様に白シェーディングデータの平均値も選択設定する。
【００５８】
続いて、ステップＳ８１１において、上述したシェーディングデータの補正手順に従い、ライン単位の黒シェーディングデータを線形補間する。ステップＳ８１２において、ステップＳ８１１の黒シェーディングの場合と同様に白シェーディングデータも線形補間する。続いて、ステップＳ８１３において、上記（１）〜（６）のシェーディングデータの補正手順に従い、シェーディング補正を実施する。補正値はライン単位で取得し、基準のシェーディングデータを基に全有効画素に対して補正を行う。続いて、ステップＳ８１４において、最終読取ラインであるかを判別する。最終読取ラインでない場合（Ｎｏ）、ステップＳ８０７に戻り、次のラインの読取同期信号の生成と蓄積時間の計測を繰り返す。最終読取ラインである場合（Ｙｅｓ）、ステップＳ８１５において、コピー／スキャン動作を終了する。
【００５９】
また、上述したように、本発明の一実施例における画像読取装置は、シェーディングデータではなく、入力データを補正するように構成することもできる。
【００６０】
図１２は、本発明の一実施例における黒及び白のシェーディングデータのライン単位の平均データによる線形補間の入力データ補正を示すフローチャートである。
【００６１】
まず、ステップＳ９０１において、操作キーを操作することにより、コピー又はスキャン動作を開始する。ステップＳ９０２において、選択されたスキャン／コピー時の読取モード（解像度）を設定する。ステップＳ９０３において、黒及び白、黒又は白の基準になる所定の蓄積時間に対するシェーディングデータを取得する。続いて、ステップＳ９０４において、第１（例えば上記基準の場合）と第２の蓄積時間に対する黒シェーディングデータの平均値を取得する。更に複数の蓄積時間に対応するシェーディングデータが必要な場合は、第Ｎまでの蓄積時間に対する黒シェーディングデータの平均値を取得する。例えば、蓄積時間の短い方からＴ１＜Ｔ２＜Ｔ３＜・・・＜Ｔｎで、対応したシェーディングデータの平均値を取得する。次いで、ステップＳ９０５において、ステップＳ９０４の黒シェーディングの場合と同様に白シェーディングデータも複数取得する。
【００６２】
続いて、ステップＳ９０６において、スキャン動作のＤＣモータ駆動を開始する。モータ駆動が開始されると、ステップＳ９０７において、図５に示したようにエンコーダ信号により、予め設定されたパルス数で読取同期信号が生成される。読取同期信号が蓄積時間周期になっており、イメージセンサへの駆動信号とデータ入力が開始される。ステップＳ９０８において、読取同期信号を毎ライン、ＣＩＳ系は、ＬＥＤ等の単色ラインに対して計測し、蓄積時間を内部レジスタやメモリに保持する。続いて、ステップＳ９０９において、第１と第２の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定し、画素単位で、基準の黒シェーディングデータを読み出す。更に複数必要な場合は、蓄積時間がどの蓄積時間内にあるかを判別して、前後の蓄積時間に対する黒シェーディングデータの平均値をレジスタ又はメモリ等から読み出し可能に設定する。そして、選択設定された２点の黒シェーディングデータの平均値と画素単位で基準の黒シェーディングデータを読み出す。次いで、ステップＳ９１０において、ステップＳ９０９の黒シェーディングの場合と同様に白シェーディングデータの平均値も選択設定する。
【００６３】
続いて、ステップＳ９１１において、上述した（１）〜（４）、（７）〜（１０）のシェーディングデータの補正手順に従い、ライン単位の黒シェーディングデータの線形補間分入力データを補正する。ステップＳ９１２において、ステップＳ９１１の黒シェーディングの場合と同様に白シェーディングデータの線形補間分、入力データを補正する。補正値はライン単位で取得し、入力データに対してデータ補正を行い、その後、ステップＳ９１３において、例えば前述したシェーディング補正を実施する。続いて、ステップＳ９１４において、最終読取ラインであるかを判別し、最終読取ラインでない場合（Ｎｏ）、ステップＳ９０７に戻り、次のラインの読取同期信号の生成と蓄積時間の計測を繰り返す。一方、最終読取ラインである場合（Ｙｅｓ）、ステップＳ９１５において、コピー／スキャン動作を終了する。
【００６４】
図１３を参照して、本発明による黒シェーディング補正の効果を、特許文献１に記載の技術と比較して説明する。図１３は、蓄積時間が変動するチャンネルにおいて目標とする蓄積時間Ｔｔｙｐにおける、黒シェーディングデータと黒データをスキャンした画像を示す。画像は、紙面上で見やすくするためにトーンカーブ補正がかけられている。
【００６５】
図１３（ａ）は、特許文献１におけるライン単位補正であり、黒シェーディングデータは図２と同様である。図１３（ｂ）は、本発明によるライン単位補正であり、黒シェーディングデータは図８と同様である。図１３（ａ）より、特許文献１においては、蓄積時間Ｔｔｙｐにおいて、（Ａ）全画素平均的に発生する暗電流は補正することができるが、（Ｂ）全画素平均的に発生する暗電流は２ΔＤａだけ補正することができずに、画像には縦スジが現れている。一方、図１３（ｂ）より、本発明においては、蓄積時間Ｔｔｙｐにおいて、（Ａ）全画素平均的に発生する暗電流、及び（Ｂ）全画素平均的に発生する暗電流を補正することができ、画像には縦筋が現れていない。
【００６６】
以上説明したように、本発明では、ＤＣモータによる速度変動の影響を受ける蓄積周期に対応した蓄積時間で黒シェーディングデータを取得する。また、黒レベル又は白レベルのデータに対しライン単位で必要に応じて線形補間によるシェーディングデータの補正方法を選択し、組み合わせる。これにより、ＤＣモータのエンコーダ同期の画像読取装置において、任意の蓄積時間に対するイメージセンサの暗電流成分やデータ変動を最適に補正することができる。また、本発明によるシェーディング補正は、駆動源としてパルスモータを備えた画像読取装置に適用することもできる。
【００６７】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006679418.tif 000002
【図２】
0006679418.tif 000003
【図３】
0006679418.tif 000004
【図４】
0006679418.tif 000005
【図５】
0006679418.tif 000006
【図６】
0006679418.tif 000007
【図７】
0006679418.tif 000008
【図８】
0006679418.tif 000009
【図９】
0006679418.tif 000010
【図１０】
0006679418.tif 000011
【図１１】
0006679418.tif 000012
【図１２】
0006679418.tif 000013
【図１３】
0006679418.tif 000014