(57)【要約】【課題】従来よりも精度よくシェーディング補正を実現するための補正データを作成すること。【解決手段】生成部３８は、第二読取ユニット１０により複数の原稿Ｓのサンプリング範囲から収集された所定ライン数のサンプリングデータ４２に基づきシェーディング補正用の補正データ４３を生成する。補正部３９は、補正データ４３を生成するために使用された原稿Ｓよりも後に第二読取ユニット１０により読み取られた原稿Ｓに対して補正データ４３を使用してシェーディング補正を実行する。【選択図】  図４
2017073674.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一ラインずつ原稿を読み取る読取手段と、
前記読取手段により複数の原稿のサンプリング範囲から収集された所定ライン数のサンプリングデータに基づきシェーディング補正用の補正データを生成する生成手段と、
前記補正データを生成するために使用された原稿よりも後に前記読取手段により読み取られた原稿に対して当該補正データを使用してシェーディング補正を実行する補正手段と
を有することを特徴とする画像読取装置。
【請求項２】
前記補正手段により読み出されて使用される前記補正データを記憶する記憶手段をさらに有し、
前記生成手段は、前記複数の原稿から合計で前記所定ライン数のサンプリングデータが収集されると、当該所定ライン数のサンプリングデータを用いて前記補正データを生成するように構成されており、
前記記憶手段は、前記補正手段が一枚の原稿のすべてのラインについてシェーディング補正を完了する前には前記生成手段が生成した前記補正データに更新せず、前記補正手段が当該一枚の原稿のすべてのラインについてシェーディング補正を完了するまで待ってから、前記生成手段により生成された補正データに更新することを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記所定ライン数は、前記補正データを生成するために必要となるライン数に一致していることを特徴とする請求項２に記載の画像読取装置。
【請求項４】
前記所定ライン数は、前記補正データを生成するために必要となるライン数よりも少なく、
前記生成手段は、予め決定された仮のサンプリングデータと原稿から収集された一ライン以上のサンプリングデータとから必要となるライン数のサンプリングデータを形成して前記補正データを生成することを特徴とする請求項２に記載の画像読取装置。
【請求項５】
前記必要となるライン数のサンプリングデータを格納する格納手段をさらに有し、
前記格納手段は、初期状態において前記仮のサンプリングデータを記憶しており、前記読取手段により新しいサンプリングデータが収集されると、前記格納手段に格納されている格納時期の古いサンプリングデータを当該新しいサンプリングデータで上書きすることを特徴とする請求項４に記載の画像読取装置。
【請求項６】
一ラインごとにサンプリングデータが白色条件を満たすかどうかを判定する判定手段をさらに有し、
前記生成手段は、前記判定手段により前記白色条件を満たしていないと判定されたサンプリングデータを除外して前記補正データを生成することを特徴とする請求項１ないし５のいずれか１項に記載の画像読取装置。
【請求項７】
前記白色条件は、前記原稿のサンプリング範囲に汚れが付着していないことであるすることを特徴とする請求項６に記載の画像読取装置。
【請求項８】
前記白色条件は、一ラインを構成する複数の画素から求められたすべての輝度値が第一閾値以上であることを特徴とする請求項７に記載の画像読取装置。
【請求項９】
前記白色条件は、前記サンプリング範囲の色が無彩色で、かつ、一ラインを構成する複数の画素から求められたＲＧＢの各輝度値がそれぞれ第一閾値以上であることを特徴とする請求項６に記載の画像読取装置。
【請求項１０】
前記白色条件のうち前記サンプリング範囲の色が無彩色である条件は、前記一ラインを構成する複数の画素から求められたＲＧＢの各輝度値の統計値のうち最大の統計値と最小の統計値との差分が第二閾値以下であることを特徴とする請求項９に記載の画像読取装置。
【請求項１１】
連続して読み取られた原稿の枚数または読み取り時間が開始条件を満たすと、前記生成手段は前記サンプリングデータの収集を開始することを特徴とする請求項１ないし１０のいずれか１項に記載の画像読取装置。
【請求項１２】
前記補正手段は、前記開始条件が満たされるまでは、予め用意された静的な補正データを用いて前記シェーディング補正を実行し、前記開始条件が満たされ、かつ、前記生成手段により動的な補正データが生成されると、当該動的な補正データを使用して前記シェーディング補正を実行することを特徴とする請求項１１に記載の画像読取装置。
【請求項１３】
前記開始条件が満たされてから一定時間が経過しても前記補正データを生成するために必要となるライン数のサンプリングデータを収集できなかったときに警告を出力する警告手段をさらに有することを特徴とする請求項１１に記載の画像読取装置。
【請求項１４】
前記生成手段は、一ラインを構成する各画素の輝度値の平均値を前記サンプリングデータから求め、各画素の輝度値の平均値を所定のシェーディングターゲット値に一致させるように各画素ごとに補正データを生成することを特徴とする請求項１ないし１３のいずれか１項に記載の画像読取装置。
【請求項１５】
原稿を搬送する搬送手段をさらに有し、
前記読取手段は、前記搬送手段が原稿を搬送している間に当該原稿を読み取ることを特徴とする請求項１ないし１４のいずれか１項に記載の画像読取装置。
【請求項１６】
前記読取手段は、前記原稿の第一面を第一センサで読み取るとともに、前記原稿の第二面を第二センサで読み取る両面読取モードを有し、
前記第一センサと前記第二センサとのうち少なくとも一方に前記補正データが適用されることを特徴とする請求項１ないし１５のいずれか１項に記載の画像読取装置。
【請求項１７】
前記第一センサに適用されるシェーディング補正用の補正データは当該第一センサにより白色基準板を読み取らせることで生成され、
前記第二センサに適用されるシェーディング補正用の補正データは当該第二センサにより複数の原稿のサンプリング範囲を読み取らせることで生成されることを特徴とする請求項１６に記載の画像読取装置。
【請求項１８】
前記第二センサは原稿の搬送路に固定されていることを特徴とする請求項１６または１７に記載の画像読取装置。
【請求項１９】
原稿を搬送する搬送手段と、
前記原稿の第一面を第一センサで読み取るとともに、前記原稿の第二面を第二センサで読み取る両面読取モードを有し、少なくとも一ラインずつ前記原稿を読み取る読取手段と、
前記第二センサにより複数の原稿のサンプリング範囲から収集された所定ライン数のサンプリングデータに基づき、前記第二センサのためのシェーディング補正用の補正データを生成する生成手段と、
前記補正データを生成するために使用された原稿よりも後に前記第二センサにより読み取られる原稿に対して当該補正データを使用してシェーディング補正を実行する補正手段と
を有することを特徴とする画像読取装置。
【請求項２０】
請求項１ないし１９のいずれか１項に記載の画像読取装置と、
前記画像読取装置により読み取られた原稿の画像をシートに形成する画像形成手段と
を有することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置におけるシェーディング補正に用いられる補正データを生成する技術に関する。
【背景技術】
【０００２】
画像読取装置は、画像センサの感度ムラやレンズの透過光量のムラ、照明光源の照度のムラの影響を緩和して各画素の輝度レベルを均一にするためにシェーディング補正を実行する。シェーディング補正に使用される補正データは白色基準板などを読み取ることで作成される。特許文献１では、白色原稿を読み取って補正データを作成することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３３１３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
白色原稿を読み取って補正データを生成すれば、白色基準板を省略できる利点がある。ところで、白色基準板上の汚れを読み取ってしまうと補正データの精度が低下する。白色基準板上の汚れを読み取らないようにするためには、白色基準板と画像読取ユニットとの一方を移動させる機構が必要となるが、白色基準板が省略されていれば、白色基準板の汚れの問題は生じない。また、汚れを避けるために画像読取ユニットを副走査方向に移動させるモータなども不要となる。これは画像読取装置の小型化やコストダウンに寄与するであろう。
【０００５】
しかし、特許文献１では、補正データは１枚の白色原稿の先端部分を読み取って作成されることが前提となっているため、原稿の先端部分には文字等が印刷されていない白色領域が必要となる。したがって、１枚の原稿の先端部分に十分な広さの白色領域が存在しない場合、補正データを作成できなくなってしまう。この場合に、特許文献１では、補正データを作成せずに、予め用意された補正データを使用することになるが、これでは原稿読取時点の画像読取装置の状態を適切に反映したシェーディング補正を実現することができない。画像読取装置は、連続して複数枚の原稿を読み取ると、熱によって光源や撮像素子、光学系の状態が変化することがある。そのため、それを加味した補正データを作成しなければ、精度の良いシェーディング補正を実現することが難しい。そこで、本発明では、従来よりも精度よくシェーディング補正を実現するための補正データを作成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
少なくとも一ラインずつ原稿を読み取る読取手段と、
前記読取手段により複数の原稿のサンプリング範囲から収集された所定ライン数のサンプリングデータに基づきシェーディング補正用の補正データを生成する生成手段と、
前記補正データを生成するために使用された原稿よりも後に前記読取手段により読み取られた原稿に対して当該補正データを使用してシェーディング補正を実行する補正手段と
を有することを特徴とする画像読取装置を提供する。
【発明の効果】
【０００７】
本発明によれば、従来よりも精度よくシェーディング補正を実現するための補正データを作成することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】画像読取装置の断面図
【図２】読取ユニットの構造を示す斜視図
【図３】シェーディングターゲット値、サンプリングデータおよび補正データの関係を示す図
【図４】コントローラの機能を示すブロック図
【図５】補正データの生成処理を示すフローチャート
【図６】汚れ判定を示すフローチャート
【図７】汚れ判定を説明する図
【図８】白色判定を示すフローチャート
【図９】シェーディング補正に使用される補正データの切り替わりを説明する図
【図１０】サンプリングデータの保持方法を説明する図
【図１１】補正データの生成処理を示すフローチャート
【図１２】仮サンプリングデータの決定方法を説明する図
【発明を実施するための形態】
【０００９】
画像読取装置が装備される画像形成装置としては、複写機、ファクシミリおよび複合機などがある。本実施例の画像読取装置は複写機に装備されているが、ファクシミリ、複合機等に装備されてもよい。また、画像読取装置は、画像形成装置に装備されていない、単独のイメージスキャナであってもよい。
【００１０】
＜画像読取装置の構造＞
図１を用いて画像読取装置（リーダー２００）について説明する。図１に示すようにリーダー２００は自動原稿給紙装置（ＡＤＦ１００）を有している。ＡＤＦ１００は、１枚以上の原稿を載置される原稿トレイ１５を有している。原稿センサ１４は原稿トレイ１５に原稿が残っているかどうかを検知するセンサである。原稿センサ１４が原稿Ｓを検知している間は読取ジョブが継続され、原稿センサ１４が原稿Ｓを検知しなくなると読取ジョブが完了する。原稿トレイ１５上に載置された原稿Ｓは給紙ローラ１によってピックアップされ、分離ローラ２で一枚ずつに分離されて搬送路を搬送される。搬送路に設けられた複数の搬送ローラ３は原稿Ｓを上流から下流に搬送する。
【００１１】
リーダー２００は原稿Ｓの第一面（表面）と第二面（裏面）とを読み取る両面読取モードを有している。第一読取ユニット４は第一面を読み取るユニットである。第二読取ユニット１０には第二面を読み取るユニットである。
【００１２】
第一読取ユニット４はプラテンローラ５に対向する位置に移動して停止し、表面ガラス６を介して原稿Ｓの表面を読み取る。プラテンローラ５が原稿Ｓを搬送することで副走査が実現される。画像センサ７は、ミラーや結像レンズを含む光学系を介して結像した原稿Ｓの表面の像を画像信号に変換する。画像センサ７は主走査方向に複数の光電変換素子が並んだいわゆるラインセンサであってもよい。なお、リーダー２００は第一読取ユニット４に白色基準板８を読み取らせることでシェーディング補正用の補正データを生成する。白色基準板は白色部材と呼ばれてもよい。第一読取ユニット４は白色基準板８を読み取るときは白色基準板８の直下に移動する。また、プラテンガラスに載置された原稿Ｓを読み取るときは、第一読取ユニット４が移動することで副走査が実現される。
【００１３】
搬送路には原稿Ｓの搬送位置を検知するための複数の位置センサが設けられてもよい。とりわけ、リーダー２００は、位置センサ９が原稿Ｓの先端を検知したタイミングを起点としてプラテンローラ５の駆動源となるモータ（図示せず）のクロックを計数する。これにより、リーダー２００は原稿Ｓ上のどのラインを読み取っているかを認識する。
【００１４】
第二読取ユニット１０はプラテンローラ５によって搬送される原稿Ｓの第二面を、裏面ガラス１１を介して読み取る。第二読取ユニット１０の対向する位置には白色基準板１２が設けられてもよいが、これは省略されてもよい。白色基準板１２が汚れていたり、省略されていたりするケースで、リーダー２００は、白色基準板１２の代わりに複数の原稿Ｓ上の白色領域（サンプリング範囲）を使用する。補正データを生成するための輝度データは複数の原稿Ｓ上の白色領域をサンプリングすることで生成される。そのため、白色領域はサンプリング範囲と呼ばれ、取得された輝度データはサンプリングデータと呼ばれる。一つのサンプリングデータは一ライン分のＲＧＢの輝度データである。
【００１５】
＜読取ユニットの構造＞
図２は読取ユニットを説明する図である。第一読取ユニット４は原稿Ｓを照明する２つの光源２０を有しており、２つの光源２０の間に画像センサ７へ原稿Ｓから光を取り込むための入射口２１が設けられている。画像センサ７は読取位置Ｐ１に位置している原稿Ｓや白色基準板８を読み取る。この例では、白色基準板８の表面のうち読取位置Ｐ１に位置している部分が読取ラインとなる。なお、精度よく補正データを生成するために、白色基準板８の副走査方向における複数の位置で輝度データがサンプリングされてもよい。第一読取ユニット４が白色基準板８に対して副走査方向に相対的に移動することで、サンプリング範囲２３が順次読み取られる。
【００１６】
第二読取ユニット１０は原稿Ｓを照明する２つの光源２５を有しており、２つの光源２５の間に画像センサ２６が設けられている。画像センサ２６は結像レンズなどの光学系を介して結像した原稿Ｓの裏面の像を画像信号に変換する。画像センサ２６は主走査方向に複数の光電変換素子が並んだいわゆるラインセンサであってもよい。画像センサ２６は読取位置Ｐ２に位置している原稿Ｓの裏面や白色基準板１２を読み取る。白色基準板１２はオプションであり、省略されていてもよい。この例では、白色基準板１２の表面のうち読取位置Ｐ２に位置している部分が読取ラインとなる。なお、精度よく補正データを生成するために、白色基準板１２の副走査方向における複数の位置で輝度データがサンプリングされてもよい。第二読取ユニット１０が白色基準板１２に対して副走査方向に移動することで、サンプリング範囲が順次読み取られる。しかし、第二読取ユニット１０や白色基準板１２に移動機構が備えられていない場合は、第二読取ユニット１０は白色基準板１２上の一ラインしか読み取ることができない。したがって、この一ラインの部分に汚れが生じると、誤った補正データが生成され、シェーディング補正の精度が低下しうる。そこで、本実施例では、白色基準板１２が設置されていないケースや、白色基準板１２が汚れてしまったケースにおいて、第二読取ユニット１０で複数の原稿Ｓのサンプリング範囲を読み取ることで補正データが生成される。この場合、原稿Ｓを搬送することで副走査が実現されるため、１枚の原稿Ｓにおける複数のラインから輝度データを取得することが可能となる。つまり、１枚の原稿Ｓには複数のラインを含むサンプリング範囲が設けられてもよい。
【００１７】
＜シェーディング補正用の補正データの生成について＞
図３（Ａ）は白色基準板１２に汚れがないときに得られた各主走査位置での輝度値ＳＲを示している。ＳＴは予め定められたシェーディングターゲット値である。つまり、各主走査位置での輝度値ＳＲは補正データで補正されることでそれぞれシェーディングターゲット値に一致するようになる。ｉ番目の主走査位置におけるシェーディング補正用の補正データＡｉは、ｉ番目の主走査位置で取得された輝度値ＳＲｉをシェーディングターゲット値ＳＴに補正するような値である。なお、第一読取ユニット４と第二読取ユニット１０とではシェーディングの状態が異なっているため、それぞれ個別に補正データが生成される。ただし、補正データの生成方法については両者に共通である。
【００１８】
白色基準板８、１２の白色度は工場製造時に予め設定された値となるように管理されている。たとえば、第一読取ユニット４で白色基準板８を読み取ることで得られる各画素についてのＲＧＢの輝度値が所定の範囲内の値となるように、白色基準板８の白色度が設計される。同様に、第二読取ユニット１０で白色基準板１２を読み取ることで得られる各画素についてのＲＧＢの輝度値が所定の範囲内の値となるように、白色基準板１２の白色度が設計されている。このように、白色基準板８、１２の表面のうち少なくともサンプリング範囲はＲ輝度、Ｇ輝度、Ｂ輝度のそれぞれが所定範囲の輝度値となること、つまり白色条件を満たす。たとえば、白色基準板８、１２は白色板であってもよいし、プラテンガラスの一部に白色塗料を塗布して製造されてもよいし、白色のシールをプラテンガラスなどに貼付することで製造されてもよい。白色基準板８、１２は少なくとも一部にサンプリング範囲を有する原稿Ｓなどによって代用可能である。
【００１９】
シェーディング補正を実行することで、画像センサ７、２６を構成する各光電変換素子の感度ムラや光学部品の透過光量のムラ、光源の照度のムラなど（これらをシェーディング状態と称す。）の影響が緩和される。つまり、均一の濃度の原稿Ｓを読み取ることで得られる各主走査位置の輝度値が概ね均一な輝度値に補正される。
【００２０】
第一読取ユニット４の補正データと第二読取ユニット１０の補正データは個別にメモリに記憶されて保持される。また、補正データは各主走査位置ごとに用意される。さらに、補正データはＲ輝度、Ｇ輝度、Ｂ輝度のそれぞれに用意される。上述したように、白色基準板８、１２の一ラインだけの輝度値を取得して補正データを生成すると、精度の良い補正データが得られないことがある。たとえば、そのラインに紙粉や糊などの汚れが付着していると、誤った補正データが生成されてしまう。図３（Ｂ）は汚れの影響を説明する図である。この例では、ｉ番目の主走査位置に汚れが付着しており、そのサンプリングデータＳＲｉが本来の値よりも低い値となってしまっている。そのため、ｉ番目の主走査位置についての補正データＡｉ’も本来の補正データＡｉと比較して大きな値となってしまう。よって、汚れの影響を受けた補正データＡｉ’を用いてシェーディング補正を実行すると、輝度値が本来の輝度値よりも大きくなってしまい、白とびなどの原因となり得る。そこで、図２を用いて説明したように白色基準板８、１２上の所定のサンプリング範囲２３における各主走査位置について複数のサンプリングデータを取得して統計処理（例：平均化）することで、ゴミや汚れの影響が低減される。サンプリング範囲２３を読み取るには上述した副走査が必要となる。
【００２１】
なお、補正データは原稿読取前に毎回生成されなくてもよい。たとえば、リーダー２００を工場で生産したときに補正データを生成し、それをデフォルトの補正データとして不揮発メモリに記憶させてもよい。不揮発メモリに記憶されているデフォルトの補正データを用いて原稿画像に対しシェーディング補正が実行されてもよい。
【００２２】
＜原稿を使用した補正データの生成＞
リーダー２００を起動した直後では工場出荷時に設定された補正データによって精度の良いシェーディング補正を実現できる。しかし、多数の原稿Ｓを連続して読み取るようなジョブが発生するとシェーディング補正の精度が低下しうる。このようなジョブが発生すると、第一読取ユニット４や第二読取ユニット１０の温度が上昇し、光源の光量が低下したり、光学部品や支持部材が膨張したりして、シェーディング状態が変化する。つまり、この変化に応じた補正データが必要となる。
【００２３】
上述したように白色基準板８、１２を読み取ることで補正データを作成することは可能である。しかし、白色基準板８、１２が省略されたリーダー２００や、白色基準板８、１２に対して副走査を実行できないリーダー２００では、精度の良い補正データが得られない。
【００２４】
白色の原稿Ｓを読み取って補正データを生成すれば、白色基準板８、１２を省略できる利点がある。あるいは白色基準板８、１２が汚れても補正データを生成できるようになる。さらに、白色基準板と読取ユニットとの双方が固定されている画像読取装置では白色基準板の汚れを回避してサンプリングデータを取得することはできないが、白色の原稿Ｓを読み取って補正データを生成すれば、白色基準板の汚れは補正データに影響しなくなる。また、白色基準板上の汚れを読み取らないようにするために白色基準板と画像読取ユニットとを副走査方向に移動させるモータなども不要となる。あるいは、白色基準板は省略されてもよい。これらは画像読取装置の小型化やコストダウンに寄与するであろう。
【００２５】
しかし、特許文献１では１枚の白色原稿の先端部分を読み取って作成した補正データがその原稿の輝度値を補正するために使用されることが前提となっている。そのため、原稿の先端部分には文字等が印刷されていない十分な面積のサンプリング範囲が必要となる。したがって、１枚の原稿の先端部分に十分な広さのサンプリング範囲が存在しない場合、補正データを作成できなくなってしまう。よって、シェーディング状態が予め想定された状態から逸脱しているにもかかわらず、工場出荷時に設定されたデフォルトの補正データが使用され続けてしまう。
【００２６】
そこで、本実施例では、補正データを作成するために必要ならライン数のサンプリングデータ（輝度データ）を複数の原稿Ｓのサンプリング範囲から収集することを提案する。これにより、１枚の原稿Ｓに求められるサンプリング範囲の面積が削減されるようになる。１枚の原稿Ｓだけでは十分な面積のサンプリング範囲を確保できなくても複数の原稿Ｓからは必要な面積のサンプリング範囲を確保可能なことは多いだろう。よって、リーダー２００のシェーディング状態に応じた補正データの生成が可能となり、シェーディング補正の精度も向上しよう。
【００２７】
第二読取ユニット１０を副走査させるための移動機構を省略することが可能となる。とりわけ、第二読取ユニット１０は、ＡＤＦ１００側に設けられるため、リーダー２００の本体に設けられる第一読取ユニット４と比較すると、移動機構を設置するスペースが制限される。本実施例を採用することで、第二読取ユニット１０の移動機構が省略可能となり、リーダー２００のさらなる小型化やコストダウンも実現されよう。
【００２８】
＜リーダー２００のコントローラ＞
図４はリーダー２００が備えるコントローラ３０が備える機能を示すブロック図である。なお、画像形成装置３００は、原稿Ｓを読み取るリーダー２００とリーダー２００により読み取られた原稿Ｓの画像をシートに形成する画像形成部５０とを有している。
【００２９】
コントローラ３０は、ＣＰＵやＡＳＩＣ（特定用途集積回路）、ＦＰＧＡ（フィールドプログラマブルロジックアレイ）などのハードウエアと、コンピュータプログラムなどのソフトウエアにより実現されうる。記憶部４０は、ＲＡＭやＲＯＭなど揮発性メモリや不揮発性メモリを有しており、コントローラ３０が動作するために必要なプログラムやデータなどを記憶する。プログラムや工場出荷時に設定されたデータは記憶部４０における不揮発性メモリに格納されて保持される。たとえば、工場出荷時に設定された静的なデータであるデフォルトの補正データ４１は不揮発性メモリに格納される。一方で、リーダー２００によって生成された動的な補正データ４３は揮発性メモリに格納される。
【００３０】
コントローラ３０は、第一読取ユニット４を副走査方向に移動させるモータＭ１や搬送ローラ３などを駆動するモータＭ２を制御する。コントローラ３０は、第一読取ユニット４や第二読取ユニット１０により取得された画像データを画像形成部５０に送信することで、画像形成部５０に画像データに応じた画像を形成させる。画像形成部５０が採用する画像形成方式は、電子写真方式、インクジェット方式、感熱方式などどのようなものでもよい。
【００３１】
位置カウンタ３１は、第二読取ユニット１０の読取位置に位置している原稿Ｓ上の副走査位置を特定するためのカウンタである。位置カウンタ３１は、位置センサ９が原稿Ｓの先端を検知すると、モータＭ２に入力されたクロックをカウントする。位置センサ９の検知位置から画像センサ２６の読取位置までの距離は既知であり、この距離に応じたカウント値も既知である。よって、位置カウンタ３１のカウント値から、この距離に対応したカウント値を減算すれば、画像センサ２６が原稿Ｓ上のどのラインを読み取っているかがわかる。モータＭ２がステッピングモータであれば、モータＭ２を駆動するための駆動パルスの数がカウントされる。モータＭ２がエンコーダを有していれば、エンコーダが出力するパルスの数がカウントされる。このように位置カウンタ３１のカウント値は原稿Ｓ上の副走査位置を示している。
【００３２】
開始判定部３２は、シェーディング補正用の補正データの生成処理の開始条件（生成開始条件や収集開始条件と呼ばれてもよい。）が満たされたかどうかを判定する。上述したように、連続して読み取られた原稿Ｓの枚数が増加するにつれてリーダー２００の温度が増加し、シェーディング状態が変化し、工場出荷時に設定されたデフォルトの補正データ４１では十分なシェーディング補正を実行できなくなる。よって、開始条件は、連続して読み取られた原稿Ｓの枚数が閾値枚数を超えたことや、連続読取時間が閾値時間を超えたことなどである。閾値枚数や閾値時間は、補正データが必要となる枚数や時間を工場出荷時に計測することで設定されうる。開始条件が満たされると、開始判定部３２は収集の開始を収集部３３に指示する。開始条件は条件データ４４として記憶部４０に保持されていてもよい。
【００３３】
収集部３３は、第二読取ユニット１０の光源２５や画像センサ２６を制御し、原稿Ｓ上の所定の領域（サンプリング範囲）を読み取り、取得した一ライン分の輝度データをサンプリングデータ４２として記憶部４０に記憶させる。白色判定部３４は、一ラインごとにサンプリングデータが白色条件を満たすかどうかを判定する。白色条件は、たとえば、原稿Ｓのサンプリング範囲に汚れが付着していないことや文字や画像が印刷されていないことであってもよい。また、白色条件は、一ラインを構成する複数の画素の各輝度値が第一閾値以上であることであってもよい。また、白色条件は、原稿Ｓの色が無彩色で、かつ、一ラインを構成する複数の画素についてのＲＧＢの各輝度値がそれぞれ第一閾値以上であることであってもよい。また、白色条件は、一ラインを構成する複数の画素から求められたＲＧＢの各輝度値の統計値のうち最大の統計値と最小の統計値との差分が第二閾値以下であることであってもよい。たとえば、一ライン分の輝度データはＮ個の画素データから構成されており、一つの画素データはＲ輝度、Ｇ輝度、Ｂ輝度から構成されているとする。白色判定部３４は、Ｎ個のＲ輝度の平均値、Ｎ個のＧ輝度の平均値およびＮ個のＢ輝度の平均値を求め、３つの平均値のうちで最大値と最小値を決定し、その差分を求めてもよい。これにより、白色基準板として機能することが可能な原稿Ｓ上の読取領域（ライン）が特定される。収集部３３は白色条件を満たさなかったラインのサンプリングデータ４２を破棄することで、補正データの精度を向上させてもよい。なお、読み取ったラインが無彩色でかつ所定範囲内の輝度値であるかどうかを判定する白色判定と、汚れや印刷文字の有無を判定する汚れ判定とは個別に実行されてもよい。これらの白色条件は条件データ４４として記憶部４０に保持されていてもよい。
【００３４】
ラインカウンタ３５は、収集部３３によって収集されたサンプリングデータ４２のうち白色条件を満たしたサンプリングデータ４２の数（収集ライン数）をカウントする。ライン判定部３６は、補正データ４３を作成するために必要となるサンプリングデータの数（必要ライン数）と収集ライン数とを比較し、収集ライン数が必要ライン数に到達したかどうかを判定する（生成可能条件）。本実施例では複数の原稿Ｓからサンプリングデータ４２が収集され、白色条件を満たさないサンプリングデータ４２は破棄される。よって、収集ライン数が必要ライン数に到達しなければ、原則として、補正データ４３が生成可能となららない。必要ライン数は条件データ４４として記憶部４０に保持されていてもよい。
【００３５】
警告部３７は、開始条件が満たされてから一定時間が経過しても補正データを生成するために必要ライン数のサンプリングデータを収集できなかったときに警告を出力する出力手段である。有彩色の原稿が連続して使用されると、白色条件が満たされないため、必要ライン数分のサンプリングデータ４２がすぐには集まらないことがあろう。しかし、開始条件が満たされてから一定時間が経過すると、熱の影響によってシェーディング状態が変化し、デフォルトの補正データ４１では十分なシェーディング補正を実行できなくなりうる。そこで、警告部３７が警告を出力することで、ユーザーに原稿Ｓの色味や濃度の再現性が変化しうることを報知することが可能となろう。
【００３６】
生成部３８は、第二読取ユニット１０により複数の原稿Ｓのサンプリング範囲から収集された所定ライン数のサンプリングデータ４２に基づきシェーディング補正用の補正データ４３を生成する。補正部３９は、補正データを生成するために使用された原稿Ｓとは異なる原稿Ｓに対して当該補正データを使用してシェーディング補正を実行する。本実施例では、複数の原稿Ｓのサンプリング範囲が収集されたサンプリングデータ４２が必要となる。たとえば、１枚の原稿Ｓに対して１６ライン分のサンプリング範囲が設定され、必要ライン数が３２ラインであったと仮定する。この場合は少なくとも２枚の原稿Ｓが必要となるため、少なくとも１枚目の原稿Ｓに対しては補正データ４３の生成が間に合わない。よって、３枚目以降の原稿Ｓに対して１枚目と２枚目の原稿Ｓを用いて生成された補正データ４３が使用可能となる。
【００３７】
＜フローチャート＞
図５は原稿の読み取りと並行して実行される補正データの生成処理を示すフローチャートである。Ｓ０でコントローラ３０は、操作部などを通じてユーザーなどの操作者により入力された原稿Ｓの読み取りの指示を受け取る。これにより、コントローラ３０は、原稿の読み取りと並行して補正データの生成処理を実行する。なお、原稿Ｓの副走査位置（ライン）を示す変数としてｉを使用する。また、複数の原稿Ｓのトータルでの枚数をＮとし、読み取り対象となっている原稿Ｓが何枚目であるかを示す変数をｎとする。ｉとｎはそれぞれ最初に１に初期化される。また、コントローラ３０は上述した開始条件や白色条件なども記憶部４０から取得しておく。開始条件は、たとえば、第二読取ユニット１０の熱膨張による画像ムラが発生しうる枚数からマージンとなる枚数を減算してえられる閾値枚数に連続読取枚数が到達したことなどである。たとえば、５０枚目の原稿Ｓを読み取ったタイミングで顕著な熱膨張が発生するリーダーでは閾値枚数が４０枚に設定されてもよい。なお、動的な補正データ４３が生成されるまでは、デフォルトの補正データ４１が使用されてシェーディング補正が実行される。なお、４０枚を超えてもなお連続読取が継続している場合、より少ない枚数で開始条件が満たされる。たとえば、開始条件となる閾値枚数は１０枚に削減される。上述したように開始条件は、第二読取ユニット１０の連続駆動時間が閾値時間以上になったことであってもよい。この場合、コントローラ３０は連続駆動時間を計時するタイマーやカウンタを有していてもよい。
【００３８】
Ｓ１でコントローラ３０は第二読取ユニット１０を制御し、ｉ番目のラインを読み取る。ｉは位置カウンタ３１によってカウントされる。コントローラ３０はｉ番目のラインを読み取ることで取得した輝度データをサンプリングデータ４２として記憶部４０に記憶させる。
【００３９】
Ｓ２でコントローラ３０の開始判定部３２は開始条件が満たされたかどうかを判定する。開始条件が満たされていれば（例：ｉ＞＝４０）、コントローラ３０は補正データの生成を開始すべく、Ｓ３に進む。開始条件が満たされていなければ（例：ｉ＜４０）、コントローラ３０は生成に関連した処理をスキップしてＳ８に進む。
【００４０】
Ｓ３でコントローラ３０のライン判定部３６は、収集部３３により収集されたサンプリングデータ４２の数（収集ライン数Ｎｃ）が補正データを生成するために必要となるライン数（必要ライン数Ｎｒ）に到達したかどうかを判定する。上述したようにいくつかのサンプリングデータ４２を複数の原稿Ｓから収集してそれを統計処理（例：平均化）し、統計値（例：平均値）を用いて補正データ４３を作成することで、精度の良い補正データ４３が得られる。よって、必要ライン数は２以上（例：６４ライン）に設定される。ラインカウンタ３５によりカウントされた収集ライン数Ｎｃが必要ライン数Ｎｒに到達したのであれば、コントローラ３０はＳ１２に進む。Ｓ１２で、コントローラ３０の生成部３８は、収集されたサンプリングデータ４２を用いて補正データ４３を生成する。その後、コントローラ３０はＳ８に進む。一方で、収集ライン数Ｎｃが必要ライン数Ｎｒに到達していなければ、コントローラ３０はＳ４に進む。
【００４１】
Ｓ４でコントローラ３０のライン判定部３６は、ｉ番目のラインが上述したサンプリング範囲内かどうかを判定する。図２を用いて白色基準板８のサンプリング範囲２３について説明したが、原稿Ｓにもサンプリング範囲２３が予め定義される。一般に、原稿Ｓの先端付近には文字等が印刷されないヘッダーマージンが確保される。よって、典型的なヘッダーマージンとなる範囲（例：１ライン目からｘ１ライン目までの範囲）がサンプリング範囲に設定されてもよい。たとえば、サンプリング範囲が１６ラインに設定されると、補正データ４３を生成するためには少なくとも４枚の原稿Ｓが必要となる（必要ライン数／サンプリング範囲＝必要枚数）。なお、原稿Ｓの先端付近には原稿Ｓの折り目やしわなど存在し、その部分が影となって読み取られてしまうことがある。そこで、１ラインからｘ１ラインまでの範囲のうち、１ラインからｘ０ラインまでを除いた範囲がサンプリング範囲に設定されてもよい。なお、折り目やしわがすべての原稿Ｓに存在することはまれであるため、サンプリングデータ４２を効率よく収集することが優先されてもよい。この場合には、１ラインからｘ１ラインまでの範囲がサンプリング範囲に設定されるが、上述した平均化によって折り目やしわの影響は低減されよう。ｉ番目のラインがサンプリング範囲内であれば、コントローラ３０はＳ５に進む。ｉ番目のラインがサンプリング範囲外であれば、コントローラ３０はＳ８に進む。
【００４２】
Ｓ５でコントローラ３０の白色判定部３４はサンプリングデータ４２について汚れ条件をみたしているかどうかを判定する。汚れ条件は上述したように白色条件の一部であってもよい。原稿Ｓ上のサンプリング範囲に汚れや印刷された文字が存在することがある。サンプリング範囲が白色基準板上のサンプリング範囲と同等の白色度であれば、補正データ４３の精度が向上する。一方で、サンプリング範囲に汚れや印刷された文字が存在すると、補正データ４３の精度が低下する。これは、白とびの原因となることもある。そこで、白色判定部３４は、ｉ番目のラインから取得されたサンプリングデータ４２を解析し、汚れ等の影響を受けているかどうかを判定する。汚れ等の影響があれば、コントローラ３０は、サンプリングデータ４２を補正データ４３を作成するためには用いずに、Ｓ８に進む。汚れ等の影響がないか小さければ、コントローラ３０は、Ｓ６に進む。
【００４３】
Ｓ６で白色判定部３４はサンプリングデータ４２について白色条件を満たしているかどうかを判定する。上述したように補正データ４３は本来であれば濃度を管理された白色基準板を読み取ることで生成されるものである。よって、原稿Ｓのサンプリング範囲が有彩色であったりすると、適切な補正データ４３が得られない。適切ではない補正データ４３を用いてシェーディング補正が実行されると、原稿Ｓから複写して生成される画像の色味が原稿Ｓの色味から変わってしまう（色味再現性の低下）。白色条件が満たされていれば、コントローラ３０はＳ７に進む。白色条件が満たされていなければ、このサンプリングデータ４２を除外すべく、コントローラ３０はＳ８に進む。
【００４４】
Ｓ７で生成部３８は、サンプリングデータ４２の積算を実行する。積算値は記憶部４０に記憶される。サンプリングデータ４２を積算するのは、平均化処理などの統計処理を実行するためである。
【００４５】
Ｓ８で補正部３９は、ｉライン目の輝度データ（サンプリングデータ）に対してシェーディング補正を実行する。上述したように、第二読取ユニット１０の膨張の影響が５０枚目から発生する場合、１枚目から補正データ４３の生成が完了するｋ枚目までは、補正部３９がデフォルトの補正データ４１が使用する。補正部３９は、ｋ＋１枚目以降の原稿Ｓに対して、ｋ枚目までの原稿Ｓのサンプリング範囲を用いて生成された補正データ４３を使用する。上述したように、補正データ４３を生成するために少なくとも４枚の原稿Ｓが必要になる場合、開始条件が４６枚に設定されてしまうと、補正データ４３の生成が５０枚目には間に合わないケースが発生しうる。このケースは一部のサンプリングデータ４２が白色条件を満たさずに除外されると発生する。そのため、開始条件となる枚数はマージンを考慮して、４０枚に設定されている。これにより、遅くとも５０枚目の原稿Ｓについてシェーディング補正を実行するタイミングまでには、補正データ４３の生成が完了しているであろう。
【００４６】
Ｓ９でコントローラ３０は現在処理対象となっているｎ枚目の原稿Ｓにおけるすべてのラインについて読み取りが完了したかどうかを判定する。たとえば、位置カウンタ３１のカウント値が原稿Ｓにおけるすべてのラインの数（総ライン数Ｌ）に達しているかどうかが判定される。ｎ枚目の原稿Ｓにおけるすべてのラインについて読み取りが完了していなければ、コントローラ３０は、ｉを１つインクリメントして、Ｓ１に戻る。ｎ枚目の原稿Ｓにおけるすべてのラインについて読み取りが完了していれば、コントローラ３０は、Ｓ１０に進む。このように、１枚の原稿Ｓについては各ラインについてＳ１からＳ８までのステップが繰り返し実行される。
【００４７】
Ｓ１０でコントローラ３０はＳ１２で補正データ４３が生成されている場合に、記憶部４０に記憶されている補正データ４３を新しい補正データ４３に更新する。その後、コントローラ３０はＳ１１に進む。新しい補正データ４３が生成されていなければ、Ｓ１０はスキップされる。
【００４８】
Ｓ１１でコントローラ３０は読取ジョブが完了したかどうかを判定する。たとえば、コントローラ３０は原稿センサ１４が原稿Ｓを検知しなくなると、読取ジョブが完了したと判定する。読取ジョブが完了していなければ、コントローラ３０はｎを１つインクリメントして、Ｓ１に戻る。
【００４９】
ここで、Ｓ１２で実行される補正データ４３の生成処理の一例について説明する。生成部３８は、サンプリングデータ４２の積算値を必要ライン数Ｎｒで除算することで平均値を求める。なお、この積算値は各画素におけるＲ輝度の積算値と、Ｇ輝度の積算値と、Ｂ輝度の積算値とである。このようにシェーディング補正は各画素の各色ごとに実行される。生成部３８は生成した補正データ４３をすぐに記憶部４０に書き込まずに、一旦、生成部３８が一時的に保持する。これは、原稿Ｓにおける途中のラインで補正データ４３が更新されてしまうと、そのラインまでとそれ以降のラインとで色味が変わってしまうからである。よって、その原稿Ｓのすべてのラインについてシェーディング補正が完了したタイミングで、生成部３８は、生成した新しい補正データ４３で、記憶部４０に記憶されている古い補正データ４３を上書きする。
【００５０】
上述したように、４０枚目の原稿Ｓから補正データ４３を生成するためのサンプリングデータ４２の収集を開始したにもかかわらず、５０枚目の原稿Ｓの読み取りが開始されるタイミングまでに補正データ４３の生成が完了しないことも考えられる。たとえば、４０枚目以降の原稿Ｓが白色でなかったり、サンプリング範囲に文字や汚れが存在したりすると、５０枚目の原稿Ｓの読み取りが開始されるタイミングまでに補正データ４３の生成が完了しないことがある。このようなケースでは、補正データ４３の生成が完了するまでに原稿Ｓについて十分な精度のシェーディング補正が実行されない可能性がある。そこで、警告部３７は、開始条件が満たされてから一定時間が経過したり、所定枚数の原稿の読取が完了したりしても必要ライン数のサンプリングデータを収集できなかったときに警告を出力してもよい。この警告は音、光（ＬＥＤの点灯や表示装置へのメッセージの表示など）を伴うものであってもよい。
【００５１】
＜汚れ判定＞
Ｓ５の汚れ判定処理ついてさらに詳しく説明する。補正データ４３は原稿Ｓを読み取ることで作成される。原稿Ｓには汚れや文字が存在することがあるため、汚れや文字が補正データ４３に影響してしまうことがある。よって、汚れや文字が存在するラインから取得されたサンプリングデータ４２は除外される。
【００５２】
図６は汚れ判定処理を示すフローチャートである。図７は注目ライン上の各主走査位置における輝度値と汚れ判定閾値との関係を示す図である。Ｓ２１で白色判定部３４が備える汚れ判定機能は、注目ラインであるｉ番目のラインの輝度データ（サンプリングデータ４２）を記憶部４０から読み出し、補正部３９に渡す。Ｓ２２で汚れ判定機能は、補正部３９にｉ番目のラインの輝度データをシェーディング補正させることで、判定用のラインデータを作成する。Ｓ２３で汚れ判定機能は、ラインデータを構成する各画素の輝度値を汚れ判定閾値と比較し、汚れ判定閾値を下回っている輝度値が存在するかどうかを判定する。ある画素の輝度値が汚れ判定閾値を下回っていれば、汚れ判定機能は、ｉ番目のラインが汚れていると判定する（汚れあり）。各画素は、Ｒの輝度値、Ｇの輝度値、Ｂの輝度値で構成されているが、このうちの１つの輝度値でも汚れ判定閾値を下回っていれば、汚れ判定機能はｉ番目のラインが汚れていると判定する。すべての画素についてＲの輝度値、Ｇの輝度値、Ｂの輝度値がいずれも汚れ判定閾値以上であれば、汚れ判定機能はｉ番目のラインが汚れていないと判定する（汚れなし）。
【００５３】
＜白色判定＞
図５に示したＳ６の白色判定の一例について説明する。一般に、白色状態とは白色基準板を読み取って得られる画素毎の平均輝度値が所定値以上である状態をいう。たとえば、あるラインを構成するすべての画素の各輝度値が所定値以上であれば、そのラインは白色状態にあるといえる。一方で、本実施例では白色基準板の代わりに原稿Ｓが使用される。市場には様々な材質の原稿Ｓが存在するため、そのすべての原稿Ｓが白色基準板と同じ白色であるとは限らない。そこで、白色判定部３４は原稿ＳのＲＧＢの各輝度レベルが白色基準板のＲＧＢの各輝度レベルと異なったとしても、その差異が所定範囲内であれば、原稿Ｓが白色状態にあると判定する。白色条件とは、たとえば、原稿Ｓが無彩色でかつ明るい状態であることである。より具体的な白色条件としては、たとえば、Ｒ、Ｇ、Ｂの各輝度レベルとも閾値以上であり、かつ、Ｒ、Ｇ、Ｂ間の輝度レベルの差が閾値以下であることである。Ｒ、Ｇ、Ｂ間の輝度レベルの差とは、たとえば、あるラインを構成するＭ個の画素のＲ輝度の平均値、Ｇ輝度の平均値およびＢ輝度の平均値のうち最大値と最小値との差分が閾値以下であることであってもよい。
【００５４】
図８は白色判定の一例を示すフローチャートである。Ｓ３１とＳ３２は上述したＳ２１とＳ２２と同じであるため、説明を省略する。なお、上述したＳ２１とＳ２２で得られた結果がＳ３３以降のステップで使用されれば、重複した処理を減らすことが可能となろう。
【００５５】
Ｓ３３で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータを記憶部４０から読み出し、各画素のＲ輝度がいずれも明るさ閾値以上であるかどうかを判定する。明るさ閾値未満のＲ輝度が一つも存在しなければ、白色判定部３４はＳ３３に進む。明るさ閾値未満のＲ輝度が一つでも存在すれば、白色判定部３４はｉ番目のラインは白色（白色状態）ではないと判定する。Ｓ３４で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータの各画素のＲ輝度を加算して画素数Ｍで除算することでＲ輝度の平均値を取得する。
【００５６】
Ｓ３５で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータを記憶部４０から読み出し、各画素のＧ輝度がいずれも明るさ閾値以上であるかどうかを判定する。明るさ閾値未満のＧ輝度が一つも存在しなければ、白色判定部３４はＳ３６に進む。明るさ閾値未満のＧ輝度が一つでも存在すれば、白色判定部３４はｉ番目のラインは白色（白色状態）ではないと判定する。Ｓ３６で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータの各画素のＧ輝度を加算して画素数Ｍで除算することでＧ輝度の平均値を取得する。
【００５７】
Ｓ３７で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータを記憶部４０から読み出し、各画素のＢ輝度がいずれも明るさ閾値以上であるかどうかを判定する。明るさ閾値未満のＢ輝度が一つも存在しなければ、白色判定部３４はＳ３８に進む。明るさ閾値未満のＢ輝度が一つでも存在すれば、白色判定部３４はｉ番目のラインは白色（白色状態）ではないと判定する。Ｓ３８で白色判定部３４はシェーディング補正されたｉ番目のラインのサンプリングデータの各画素のＢ輝度を加算して画素数Ｍで除算することでＢ輝度の平均値を取得する。
【００５８】
Ｓ３９で白色判定部３４はＲ輝度の平均値、Ｇ輝度の平均値およびＢ輝度の平均値を比較して最大値と最小値を決定し、最大値と最小値の差分を取得する。Ｓ４０で、白色判定部３４は、この差分が無彩色閾値以下であるかどうかを判定する。たとえば、輝度が２５６レベルで表現される場合、無彩色閾値は３に設定されてもよい。差分が無彩色閾値以下であれば、白色判定部３４は、ｉ番目のラインは白色（白色状態）であると判定する。一方、差分が無彩色閾値を超えていれば、白色判定部３４は、ｉ番目のラインは白色（白色状態）ではないと判定する。
【００５９】
＜補正データの使用判定＞
本実施例では記憶部４０に工場出荷時に決定されたデフォルトの補正データ４１と複数の原稿Ｓのサンプリング範囲から決定された動的な補正データ４３とが記憶されている。上述したように、補正データ４３は、第二読取ユニット１０が熱により膨張してシェーディング状態が変化しうることが予想されたとき（開始条件が満たされたとき）に生成される。よって、補正データ４３が更新されたときはデフォルトの補正データ４１に優先して補正データ４３が使用されるべきであろう。生成部３８は、補正データ４３を更新すると補正データ４３を更新したことを示すフラグをセットしてもよい。補正部３９は、このフラグがセットされていれば補正データ４３を使用し、このフラグがセットされていなければ補正データ４１を使用する。フラグは、第二読取ユニット１０の温度が十分に低下したとき（原稿の読み取りが実行されない期間が所定期間以上になったとき）にリセットされる。あるいは、生成部３８は、補正データ４３を更新すると更新時刻を記憶部４０に格納する。補正部は、更新時刻と現在時刻とを比較し、その差分が時間閾値よりも小さければ、補正データ４３を使用する。更新時刻と現在時刻との差分が時間閾値よりも小さければ、補正データ４３は連続した多数の原稿読取によって最近更新されたものである。つまり、まだ、第二読取ユニット１０は熱を持った状態と考えられるため、補正データ４３が採用される。上述したように連続した多数の原稿読取中は所定枚数（例：１０枚）ごとに補正データ４３が更新されるため、更新時刻と現在時刻との差分は短いものとなる。一方で、補正部３９は、更新時刻と現在時刻との差分が時間閾値以上であれば、補正データ４１を使用する。更新時刻と現在時刻との差分が時間閾値以上であれば、連続した多数の原稿読取は終了し、しかも、第二読取ユニット１０の温度が十分に低下するほどの時間が経過していると考えられる。よって、補正部３９は、更新時刻と現在時刻との差分が時間閾値以上であれば、補正データ４１を使用する。
【００６０】
図９は原稿サンプリングのタイミングと補正データの種別との関係を示すタイミングチャートである。図９は６０枚を超える原稿の読取が実行されていることを示している。この例では説明を分かりやすくするために、原稿Ｓのサンプリング範囲のサンプリングは４５枚目の原稿Ｓから開始され、４６枚目の原稿Ｓで完了するものと仮定する。サンプリング範囲のサンプリングが完了すると、生成部３８が動的な補正データ４３を生成する。ただし、１枚目から４６枚目までは動的な補正データ４３が生成されていないため、補正部３９はデフォルトの補正データ４１を使用している。補正部３９は、４６枚目の原稿Ｓから４７枚目の原稿Ｓに移行するときに動的な補正データ４３が生成されたことをフラグなどに基づき認識し、補正データを切り替える。つまり、補正部３９は、４７枚目以降の原稿Ｓについては生成部３８により生成された動的な補正データ４３を使用してシェーディング補正を実行する。
【００６１】
図９では、２回目のサンプリングの開始条件が１３枚に設定されているため、５８枚目の原稿Ｓから収集部３３が原稿Ｓに設定されたサンプリング範囲についてサンプリングを開始し、５９枚目の原稿Ｓでサンプリングを完了している。補正部３９は５９枚目の原稿Ｓまで一回目に生成された動的な補正データ４３を使用する。補正部３９は、５９枚目の原稿Ｓから６０枚目の原稿Ｓに移行するときに動的な補正データ４３が生成されたことをフラグや更新時刻に基づき認識し、補正データを切り替える。つまり、補正部３９は、６０枚目以降の原稿Ｓについては生成部３８により２回目に生成された動的な補正データ４３を使用してシェーディング補正を実行する。
【００６２】
上述した実施例では、リーダー２００が読み取った原稿Ｓの枚数が所定枚数に達したことをトリガとしてシェーディング補正用の補正データの生成が開始されていた。また、図９を用いて説明した事例では、４７枚目と６０枚目に補正データが切り替えられる。この場合にシェーディング補正された画像の色味が突然変わったといった印象をユーザーに与えるかもしれない。複数の原稿Ｓの下地がいずれもほぼ白色であれば、シェーディング補正された画像の色味の変化は少ない。しかし、原稿Ｓにわずかに下地色がついている場合、補正データ４３は下地色の分だけオフセットされたデータとなる。よって、デフォルトの補正データ４１を用いてシェーディング補正された画像の色味と、動的な補正データ４３を用いてシェーディング補正された画像の色味とが異なってしまうことがあるだろう。
【００６３】
図１０は補正データが切り替わる際の色味の変動を小さくする方法を説明する図である。Ｓ７ではサンプリングデータを取得する度に積算を行っていたが、その部分が変更される。収集部３３は、複数のラインのサンプリングデータを保持するためのバッファを有している。ここでは説明を簡明化するために、バッファは４ラインのサンプリングデータを保持できるものとする。このバッファは記憶部４０に設けられてもよい。収集部３３は、収集したサンプリングデータを順番にバッファに格納する。収集部３３は、新しいサンプリングデータを収集する度に、バッファに格納されているサンプリングデータのうち最も古いサンプリングデータを破棄し、新しいサンプリングデータを格納する。これにより、バッファには最新の４つのラインデータが格納される。なお、バッファのサイズは、補正データ４３を生成するために必要となるラインの数（必要ライン数）に一致している。つまり、図１０に示した事例は必要ライン数が４に設定されている。また、本実施例では複数の原稿Ｓから少なくとも１ラインずつサンプリングデータが収集されるものとする。したがって、原稿Ｓを読み取るたびにバッファに格納されているサンプリングデータが少しずつ更新される。また、必要ライン数が少ないため、より頻繁に補正データ４３が更新されることになり、補正データ４３が切り替わっても色味の変動は小さくなる。また、開始条件を緩和することで（例：Ｓ２を省略するか、開始条件を１枚ごとに設定する）、各原稿Ｓについてサンプリングデータが収集されて、補正データ４３も各原稿Ｓのシェーディング補正が終了する度に生成されて更新されてもよい。
【００６４】
図１１は原稿の読み取りと並行して実行される補正データの生成処理を示すフローチャートである。図１１において図５に示した処理と共通する処理には同一の参照番号を付与することで説明の簡明化を図る。図１１と図５を比較すると分かるように、Ｓ２、Ｓ３が省略されており、コントローラ３０はＳ１の次にＳ４に進み、その後、Ｓ５ないしＳ６を実行してＳ４１に進む。つまり、Ｓ７がＳ４１に置換されている。なお、サンプリング範囲に属するラインの数は、必要ライン数よりも少ない。図１０を用いて説明したように、必要ライン数が４であれば、サンプリング範囲に属するラインの数は１ラインないし３ラインである。
【００６５】
Ｓ４１で収集部３３は、白色条件（例：汚れが無く、かつ、白色状態であること）を満たしたラインのサンプリングデータ４２をバッファに格納する。バッファはラインメモリやラインバッファと呼ばれてもよい。コントローラ３０はＳ４１の次にＳ９に進む。さらに、Ｓ１０はＳ４２に置換されている。Ｓ４２で生成部３８はバッファに格納されているすべてのサンプリングデータを読み出して各画素（主走査位置）ごとの輝度の平均値を求め、平均値とシェーディングターゲット値との差分を補正値として決定する。上述したように、補正値は各主走査位置ごとにＲ、Ｇ、Ｂのそれぞれについて決定される。このようにして新たな補正データ４３を生成すると、生成部３８は記憶部４０に記憶されている古い補正データ４３を新しい補正データ４３に更新する。
【００６６】
ところで、多数の原稿Ｓを読み取るためのジョブが開始された直後（初期状態）には原稿Ｓから収集されたサンプリングデータ４２が存在していない。つまり、収集部３３のバッファは空である。この場合、補正データ４３を作成できないばかりか、デフォルトの補正データ４１から補正データ４３に切り替わったときの色味変動が生じうる。そこで、この場合の色味変動を低減する方法について説明する。
【００６７】
図１２（Ａ）および図１２（Ｂ）は読取ジョブの開始時にバッファに格納される仮サンプリングデータの決定方法を説明するための図である。横軸は主走査位置を示し、縦軸は輝度値を示している。ＳＴは上述したようにシェーディングターゲット値である。Ａｉはデフォルトの補正データ４１に保持されている補正値を示している。上述したように補正データ４３を構成している各補正値は、シェーディングターゲット値と各主走査位置の輝度の平均値との差分である。そこで、収集部３３は、読取ジョブの開始時にバッファに格納される仮サンプリングデータＶＳｉを、シェーディングターゲット値ＳＴとデフォルトの補正データ４１に保持されている補正値Ａｉとの差分として取得する。そして、収集部３３は、バッファのすべてラインに仮サンプリングデータＶＳｉを格納する。４ライン分のサンプリングデータを格納するバッファであれば、４ライン分の仮サンプリングデータＶＳｉが格納される。よって、収集部３３は、１枚目の原稿Ｓから１ライン分のサンプリングデータ４２を取得すると、バッファに格納されている４ライン分の仮サンプリングデータＶＳｉのうちの一つを削除してサンプリングデータ４２を格納する。たとえば、１枚目の原稿Ｓから２ライン分のサンプリングデータ４２が収集された場合、バッファは１枚目の原稿Ｓから収集された２ライン分のサンプリングデータ４２と２ライン分の仮サンプリングデータＶＳｉを保持している。生成部３８は、１枚目の原稿Ｓの読み取りが終了すると、１枚目の原稿Ｓから収集された２ライン分のサンプリングデータ４２と２ライン分の仮サンプリングデータＶＳｉとから補正データ４３を生成する。なお、１枚目の原稿Ｓから取得された画像のシェーディング補正にはデフォルトの補正データ４１が使用されるが、２枚目の原稿Ｓから取得された画像のシェーディング補正には補正データ４３が使用される。補正データ４３にはデフォルトの補正データ４１が反映されているため、１枚目の原稿Ｓの画像の色味と２枚目の原稿Ｓの画像の色味との差が小さくなろう。
【００６８】
＜まとめ＞
図１、図２および図４を用いて説明したように、第一読取ユニット４や第二読取ユニット１０は少なくとも一ラインずつ原稿を読み取る読取手段として機能する。生成部３８は、第二読取ユニット１０などにより複数の原稿Ｓのサンプリング範囲から収集された所定ライン数のサンプリングデータ４２に基づきシェーディング補正用の補正データ４３を生成する生成手段として機能する。図９を用いて説明したように、補正部３９は、補正データ４３を生成するために使用された原稿Ｓよりも後に読み取られた原稿Ｓに対して当該補正データを使用してシェーディング補正を実行する補正手段として機能する。このように、本実施例によれば、複数の原稿Ｓからサンプリングデータが分散収集されるため、一枚当たりの原稿Ｓから取得されるサンプリングデータの数を減らすことができる。つまり、１枚の原稿だけでは必要な数のサンプリングデータを取得できないケースであっても、本実施例では、複数の原稿から必要な数のサンプリングデータを収集できる。そのため、本実施例では、リーダー２００の実際のシェーディング状態に応じた補正データを生成できるようになる。よって、本実施例によれば、従来よりも精度よくシェーディング補正を実現するための補正データを作成することが可能となる。
【００６９】
図４を用いて説明したように、記憶部４０は、補正部３９により読み出されて使用される補正データ４１、４３を記憶する記憶手段として機能する。生成部３８は、複数の原稿から合計で所定ライン数のサンプリングデータが収集されると、当該所定ライン数のサンプリングデータを用いて補正データを生成するように構成されていてもよい。Ｓ１０に関連して説明したように、記憶部４０は、補正部３９が一枚の原稿のすべてのラインについてシェーディング補正を完了する前には古い補正データを生成部３８が生成した補正データに更新しない。つまり、記憶部４０は、補正部３９が当該一枚の原稿のすべてのラインについてシェーディング補正を完了するまで待ってから、古い補正データを生成部３８により生成された補正データに更新してもよい。これにより、一枚の原稿の途中で補正データが切り替わってしまうことを防げるようになり、つまり、原稿から取得された画像の途中で色味が変動してしまうことを抑制できるようになろう。
【００７０】
Ｓ３に関して説明したように、所定ライン数は、補正データ４３を生成するために必要となるライン数に一致していてもよい。これにより補正データ４３を生成するために使用されるすべてのサンプリングデータを原稿由来のデータにすることが可能となる。一方で、図１０ないし図１２に関して説明したように、所定ライン数は、補正データ４３を生成するために必要となるライン数よりも少なくてもよい。この場合、生成部３８は、予め決定された仮のサンプリングデータと原稿から収集された一ライン以上のサンプリングデータとから必要となるライン数のサンプリングデータを形成して補正データ４３を生成してもよい。これにより、原稿から収集されたサンプリングデータの数が不足していても補正データ４３を生成できるようになる。
【００７１】
記憶部４０や収集部３３のバッファは必要となるライン数のサンプリングデータを格納する格納手段として機能する。図１０を用いて説明したように、収集部３３のバッファは、初期状態において仮のサンプリングデータを記憶している。収集部３３のバッファは新しいサンプリングデータを収集するたびに、バッファに格納されている格納時期の古いサンプリングデータを当該新しいサンプリングデータで上書きしてもよい。これにより、新しいサンプリングデータを徐々に補正データ４３に反映させることが可能となり、色味の変動を低減することが可能となろう。
【００７２】
Ｓ５やＳ６に関して説明したように、白色判定部３４は、一ラインごとにサンプリングデータが白色条件を満たすかどうかを判定する判定手段として機能する。図６、図７を用いて説明したように、白色判定部３４は、汚れ判定機能を有していてもよい。図８を用いて説明したように白色判定部３４は、白色判定機能を有していてもよい。生成部３８は、白色判定部３４により白色条件を満たしていないと判定されたサンプリングデータを除外して補正データを生成してもよい。これにより白色基準板を用いて生成された補正データに近い補正データを生成できるようになろう。
【００７３】
図６、図７を用いて説明したように、白色条件は、原稿のサンプリング範囲に汚れが付着していないことであってもよい。図６、図７を用いて説明したように、白色条件は、一ラインを構成する複数の画素から求められたすべての輝度値がそれぞれ第一閾値以上であることであってもよい。図８を用いて説明したように、白色条件は、サンプリング範囲の色が無彩色で、かつ、一ラインを構成する複数の画素から求められたＲＧＢの各輝度値がそれぞれ第一閾値以上であることを特徴としてもよい。図８に関連して説明したように、白色条件のうちサンプリング範囲の色が無彩色であるための条件は、一ラインを構成する複数の画素から求められたＲＧＢの各輝度値の統計値（例：平均値）のうち最大の統計値と最小の統計値との差分が第二閾値以下であることであってもよい。これらの条件のうちの少なくとも一つを白色条件として採用することで、白色基準板を用いて生成された補正データに近い補正データを生成できるようになろう。
【００７４】
Ｓ２などに関して説明したように、生成部３８や収集部３３は、連続して読み取られた原稿の枚数または読み取り時間が開始条件を満たすと、生成部３８はサンプリングデータの収集を開始してもよい。たとえば、開始条件は、第二読取ユニット１０の熱膨張等に起因したシェーディング状態の変動が顕著になる読取枚数やリーダー２００の稼働時間に基づいて決定されてもよい。
【００７５】
補正部３９は、開始条件が満たされるまでは、予め用意された静的な補正データであるデフォルトの補正データ４１を用いてシェーディング補正を実行してもよい。さらに、補正部３９は、開始条件が満たされ、かつ、生成部３８により動的な補正データ４３が生成されると、当該動的な補正データ４３を使用してシェーディング補正を実行してもよい。これにより、開始条件が満たされるまではサンプリングデータ４２の収集や補正データ４３の作成は省略できるため、コントローラ３０は無駄な電力を消費しないようになろう。
【００７６】
警告部３７は、開始条件が満たされてから一定時間が経過しても補正データを生成するために必要となるライン数のサンプリングデータを収集できなかったときに警告を出力してもよい。これによりユーザーに対して色味の変動が生じうることを知らせることが可能となろう。
【００７７】
図３（Ａ）などを用いて説明したように、生成部３８は、一ラインを構成する各画素の輝度値の平均値をサンプリングデータから求め、各画素の輝度値の平均値を所定のシェーディングターゲット値に一致させるように各画素ごとに補正データを生成してもよい。
【００７８】
図１などを用いて説明したように、ＡＤＦ１００は、原稿Ｓを搬送する搬送手段として機能する。第一読取ユニット４や第二読取ユニット１０は、ＡＤＦ１００が原稿Ｓを搬送している間に当該原稿を読み取ってもよい。このように本実施例はおもに流し読みモードを有するリーダー２００に適用可能である。なお、ＡＤＦ１００を備えていないか、またはこれを利用しないリーダー２００であっても白色基準板８に代えて複数の原稿Ｓから補正データを生成してもよい。
【００７９】
リーダー２００は、原稿Ｓの第一面を第一センサである画像センサ７で読み取るとともに、原稿Ｓの第二面を第二センサである画像センサ２６で読み取る両面読取モードを有していてもよい。第一読取ユニット４の一部である画像センサ７について複数の原稿Ｓから補正データ４３が生成されてもよい。第二読取ユニット１０の一部である画像センサ２６について複数の原稿Ｓから補正データ４３が生成されてもよい。また、両方の画像センサについてそれぞれ複数の原稿Ｓから補正データ４３が生成されてもよい。これにより白色基準板を省略したり、読取ユニットの移動機構を省略したりすることが可能となろう。また、白色基準板が汚れてしまったときに原稿Ｓから補正データ４３が生成されてもよい。たとえば、画像センサ７に適用されるシェーディング補正用の補正データは画像センサ７により白色基準板８を読み取らせることで生成されてもよい。また、画像センサ２６に適用されるシェーディング補正用の補正データ４３は画像センサ２６により複数の原稿のサンプリング範囲を読み取らせることで生成されてもよい。図１を用いて説明したように、第二読取ユニット１０の画像センサ２６は原稿の搬送路に固定されていてもよい。画像センサ２６が移動機構を備えていない場合、従来は、白色基準板の移動機構が必要となっていた。一方で、本実施例では、第二読取ユニット１０について白色基準板と移動機構とを省略できるため、ＡＤＦ１００の小型化と低コスト化も実現できるであろう。
【符号の説明】
【００８０】
３００：画像形成装置、２００：リーダー、４：第一読取ユニット、１０：第二読取ユニット、３８：生成部、３９：補正部
【図１】
2017073674.tif 000003
【図２】
2017073674.tif 000004
【図３】
2017073674.tif 000005
【図４】
2017073674.tif 000006
【図５】
2017073674.tif 000007
【図６】
2017073674.tif 000008
【図７】
2017073674.tif 000009
【図８】
2017073674.tif 000010
【図９】
2017073674.tif 000011
【図１０】
2017073674.tif 000012
【図１１】
2017073674.tif 000013
【図１２】
2017073674.tif 000014