(57)【特許請求の範囲】
【請求項１】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置から所定範囲以上離れた位置に設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
前記移動手段により前記読取部を前記待機位置に対する基準位置に向かう方向に移動させながら、当該読取部による前記基準位置の読み取りを行う第２読取手段と、
前記第２読取手段による読み取りにより得られたデータに基づき、前記基準位置を検出する第２検出手段と、
前記第２検出手段により前記基準位置が検出された後、前記移動手段による前記読取部の移動を前記待機位置にて停止する移動停止手段と、
前記第２検出手段による前記基準位置の検出誤差を示す値に応じて前記所定範囲の幅を算出する範囲幅算出手段と、
を備えていることを特徴とする画像読取装置。
【請求項２】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置から所定範囲以上離れた位置に設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
前記移動手段による前記読取部の移動誤差を示す値に応じて前記所定範囲の幅を算出する範囲幅算出手段と、
を備えていることを特徴とする画像読取装置。
【請求項３】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、異常があると検出されたデータ毎に、当該データを読み取った前記読取部の前記副走査方向の位置と当該副走査方向に直交する主走査方向の位置とを前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置として、前記異常があると検出されたデータのうちの１のデータの位置である第１位置と、当該第１位置と異なる、前記１のデータとは別のデータの位置である第２位置が含まれる場合に、前記第１位置と前記第２位置における前記副走査方向の距離が所定の距離以下であり、かつ、前記第１位置と前記第２位置における前記主走査方向の距離が所定の距離以下である場合、前記第１位置と前記第２位置との間を除外して設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
を備えていることを特徴とする画像読取装置。
【請求項４】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置の候補の位置を、前記読取位置として設定可能な範囲内でランダムに選択する第１選択手段と、
前記第１選択手段により前記読取位置の候補として選択された位置が、前記記憶部に記憶される位置から所定範囲以上離れた位置であるかを判断する第１判断手段と、
前記第１判断手段により、前記第１選択手段により選択された位置が前記所定範囲以上離れた位置であると判断された場合、前記選択された位置を、前記読取部の前記副走査方向の読取位置に設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
を備え、
前記第１選択手段は、前記第１判断手段により、前記第１選択手段により選択された位置が前記所定範囲以上離れた位置でないと判断された場合、前記第１判断手段による判断の対象にする前記読取位置の候補の位置を前記第１選択手段により再度ランダムに選択することを特徴とする画像読取装置。
【請求項５】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置から所定範囲以上離れた位置に設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
を備え、
前記読取部は、前記副走査方向に直交する主走査方向に沿ったラインごとに前記原稿を読み取るものであり、
前記移動部は、前記読取部を移動させる駆動源となるステッピングモータを含み、
前記記憶部には、前記移動手段による前記読取部の移動の解像度である移動解像度を規定する移動情報が記憶され、
前記移動手段は、前記読取部が所定数のラインを読む毎の割込処理による１割込みあたり所定の駆動ステップ数で、前記移動情報に従う移動解像度で前記ステッピングモータを駆動させることにより、前記読取部を移動させ、
前記読取位置設定手段は、前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲内の位置であり、かつ、前記記憶部に記憶される位置から、前記所定範囲の幅と、前記１割込あたりの前記駆動ステップ数に応じた前記移動手段による前記移動部の移動量との和だけ離れた位置に設定することを特徴とする画像読取装置。
【請求項６】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備え、
前記制御部は、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶し、更に前記異常があると検出されたデータが複数ある場合、それら複数のデータのうち、前記副走査方向の位置が異なるが、当該副走査方向に直交する主走査方向が一致するデータの位置を、記憶の対象外とする位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置から所定範囲以上離れた位置に設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、
を備えていることを特徴とする画像読取装置。
【請求項７】
前記移動手段により前記読取部を前記待機位置に対する基準位置に向かう方向に移動させながら、当該読取部による前記基準位置の読み取りを行う第２読取手段と、
前記第２読取手段による読み取りにより得られたデータに基づき、前記基準位置を検出する第２検出手段と、
前記第２検出手段により前記基準位置が検出された後、前記移動手段による前記読取部の移動を前記待機位置にて停止する移動停止手段と、
前記第２検出手段による前記基準位置の検出誤差を示す値に応じて前記所定範囲の幅を算出する範囲幅算出手段と、
を備えていることを特徴とする請求項２から６のいずれかに記載の画像読取装置。
【請求項８】
前記制御部は、
前記移動手段による前記読取部の移動誤差を示す値に応じて前記所定範囲の幅を算出する範囲幅算出手段を備えていることを特徴とする請求項１または３から７のいずれかに記載の画像読取装置。
【請求項９】
前記読取部は、前記副走査方向に直交する主走査方向に沿ったラインごとに前記原稿を読み取るものであり、
前記移動部は、前記読取部を移動させる駆動源となるステッピングモータを含み、
前記記憶部には、前記移動手段による前記読取部の移動の解像度である移動解像度を規定する移動情報が記憶され、
前記移動手段は、前記読取部が所定数のラインを読む毎の割込処理による１割込みあたり所定の駆動ステップ数で、前記移動情報に従う移動解像度で前記ステッピングモータを駆動させることにより、前記読取部を移動させ、
前記範囲幅算出手段は、
前記第２読取手段による読み取りの解像度である読取解像度に基づいて、前記基準位置の検出誤差を算出する第１算出手段と、
前記１割込あたりの前記駆動ステップ数と、前記移動手段による移動に適用中の前記移動情報に従う移動解像度とに基づいて、前記移動手段による前記読取部の移動誤差を示す値を算出する第２算出手段と、
前記第１算出手段により算出された前記基準位置の検出誤差を示す値と、前記第２算出手段により算出された前記読取部の移動誤差を示す値との和に応じた値を、前記所定範囲の幅として算出する第３算出手段と、
を含み、
前記読取位置設定手段は、前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲内の位置であり、かつ、前記記憶部に記憶される位置から前記副走査方向の両側にそれぞれ設けられた、前記範囲幅算出手段により算出された幅からなる前記所定範囲以上離れた位置に設定することを特徴とする請求項１または７に記載の画像読取装置。
【請求項１０】
前記範囲幅算出手段は、前記所定範囲の幅を算出するにあたり、前記データの異常を発生させる要因の幅に応じた値として予め準備されている値も用いて、前記所定範囲の幅を算出することを特徴とする請求項１，２または７から９のいずれかに記載の画像読取装置。
【請求項１１】
前記読取位置設定手段は、前記記憶部に記憶される位置として第１位置と当該第１位置と異なる第２位置が含まれる場合に、前記第１位置と前記第２位置との前記副走査方向の距離が所定の距離以下である場合、前記第１位置と前記第２位置との間は、前記読取部の読取位置から除外することを特徴とする請求項１，２または７から１０のいずれかに記載の画像読取装置。
【請求項１２】
前記位置記憶手段は、異常があると検出されたデータ毎に、当該データを読み取った前記読取部の副走査方向の位置と当該副走査方向に直交する主走査方向の位置とを前記記憶部に記憶し、
前記読取位置設定手段は、前記記憶部に記憶される位置として、前記異常があると検出されたデータのうちの１のデータの位置である第１位置と、当該第１位置と異なる、前記１のデータとは別のデータの位置である第２位置が含まれる場合に、前記第１位置と前記第２位置における前記副走査方向の距離が所定の距離以下であり、かつ、前記第１位置と前記第２位置における前記主走査方向の距離が所定の距離以下である場合、前記第１位置と前記第２位置との間は、前記読取部の読取位置から除外することを特徴とする請求項１，２または７から１１のいずれかに記載の画像読取装置。
【請求項１３】
前記制御部は、
前記読取部の前記副走査方向の読取位置の候補の位置を、前記読取位置として設定可能な範囲内でランダムに選択する第１選択手段と、
前記第１選択手段により前記読取位置の候補として選択された位置が、前記記憶部に記憶される位置から前記所定範囲以上離れた位置であるかを判断する第１判断手段と、
を備え、
前記読取位置設定手段は、前記第１判断手段により、前記第１選択手段により選択された位置が前記所定範囲以上離れた位置であると判断された場合、前記選択された位置を、前記読取部の前記副走査方向の読取位置に設定し、
前記第１選択手段は、前記第１判断手段により、前記第１選択手段により選択された位置が前記所定範囲以上離れた位置でないと判断された場合、前記第１判断手段による判断の対象にする前記読取位置の候補の位置を前記第１選択手段により再度ランダムに選択することを特徴とする請求項１から３または７から１２のいずれかに記載の画像読取装置。
【請求項１４】
前記第１判断手段は、前記記憶部に記憶される位置として第１位置と当該第１位置と異なる第２位置が含まれる場合に、前記第１位置と前記第２位置との前記副走査方向の距離が所定の距離以下である場合、前記第１選択手段により前記読取位置の候補として選択された位置が、前記第１位置から前記副走査方向における前記第２位置とは反対側の所定範囲以上離れた位置であり、かつ、前記第２位置から前記副走査方向における前記第１位置とは反対側の前記所定範囲以上離れた位置であるかを判断することを特徴とする請求項４または１３に記載の画像読取装置。
【請求項１５】
前記制御部は、
前記第１選択手段により前記読取位置の候補の位置を選択した回数を計数する計数手段と、
前記計数手段により計数される回数が所定回数に達した場合、前記読取部の前記副走査方向の読取位置の候補の位置を、前記読取位置として設定可能な範囲内でランダムに選択する第２選択手段と、
前記第２選択手段により前記読取位置の候補として選択された位置が、前記記憶部に記憶される位置に一致するかを判断する第３判断手段と、
を備え、
前記読取位置設定手段は、前記第３判断手段により、前記第２選択手段により選択された位置が、前記記憶部に記憶される位置に一致しないと判断された場合、前記選択された位置を、前記読取部の前記副走査方向の読取位置に設定し、
前記第２選択手段は、前記第３判断手段により、前記第２選択手段により選択された位置が前記記憶部に記憶される位置に一致すると判断された場合、前記第３判断手段による判断の対象にする前記読取位置の候補の位置を前記第２選択手段により再度ランダムに選択することを特徴とする請求項４，１３，１４のいずれかに記載の画像読取装置。
【請求項１６】
前記読取部は、前記副走査方向に直交する主走査方向に沿ったラインごとに前記原稿を読み取るものであり、
前記移動部は、前記読取部を移動させる駆動源となるステッピングモータを含み、
前記記憶部には、前記移動手段による前記読取部の移動の解像度である移動解像度を規定する移動情報が記憶され、
前記移動手段は、前記読取部が所定数のラインを読む毎の割込処理による１割込みあたり所定の駆動ステップ数で、前記移動情報に従う移動解像度で前記ステッピングモータを駆動させることにより、前記読取部を移動させ、
前記制御部は、
前記第１選択手段により前記読取位置の候補の位置を選択した回数を計数する計数手段と、
前記移動手段による移動に適用中の前記移動情報について前記計数手段により計数される回数が所定回数に達した場合、前記記憶部に、前記適用中の移動情報に従う移動解像度より高解像度の移動解像度を示す移動情報が記憶されているかを判断する第４判断手段と、
前記第４判断手段により、前記適用中の移動情報に従う移動解像度より高解像度の移動解像度を示す移動情報が記憶されていると判断された場合、前記移動手段による移動に適用する移動情報を前記記憶部に記憶される、前記適用中の移動情報より高解像度の移動解像度を示す移動情報に変更する第２変更手段と、
を備えていることを特徴とする請求項４または１３から１５のいずれかに記載の画像読取装置。
【請求項１７】
前記読取部は、前記副走査方向に直交する主走査方向に沿ったラインごとに前記原稿を読み取るものであり、
前記移動部は、前記読取部を移動させる駆動源となるステッピングモータを含み、
前記記憶部には、前記移動手段による前記読取部の移動の解像度である移動解像度を規定する移動情報が記憶され、
前記移動手段は、前記読取部が所定数のラインを読む毎の割込処理による１割込みあたり所定の駆動ステップ数で、前記移動情報に従う移動解像度で前記ステッピングモータを駆動させることにより、前記読取部を移動させ、
前記読取位置設定手段は、前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲内の位置であり、かつ、前記記憶部に記憶される位置から、前記所定範囲の幅と、前記１割込あたりの前記駆動ステップ数に応じた前記移動手段による前記移動部の移動量との和だけ離れた位置に設定することを特徴とする請求項１，２または７から１０のいずれかに記載の画像読取装置。
【請求項１８】
前記制御部は、
前記記憶部に記憶される位置のうち、前記読取位置として設定可能な範囲のうち前記副走査方向の一端から最も離れた位置を取得する位置取得手段を備え、
前記読取位置設定手段は、前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲内の位置であり、かつ、位置取得手段により取得された位置から、前記副走査方向の一端から離れる側に、前記所定範囲の幅と、前記１割込あたりの前記駆動ステップ数に応じた前記移動手段による前記移動部の移動量との和だけ離れた位置に設定することを特徴とする請求項５または１７に記載の画像読取装置。
【請求項１９】
前記位置記憶手段は、前記異常があると検出されたデータが複数ある場合、それら複数のデータのうち、前記副走査方向の位置が異なるが、当該副走査方向に直交する主走査方向が一致するデータの位置を、記憶の対象外とすることを特徴とする請求項１から５または７から１８のいずれかに記載の画像読取装置。
【請求項２０】
原稿を搬送する原稿搬送部と、
原稿台と、
前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、
前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、
記憶部と、
制御部と、
を備えた画像読取装置の、前記制御部が実行可能な画像読取プログラムであって、
所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、
前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、異常があると検出されたデータ毎に、当該データを読み取った前記読取部の前記副走査方向の位置と当該副走査方向に直交する主走査方向の位置とを前記記憶部に記憶する位置記憶手段と、
前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置として、前記異常があると検出されたデータのうちの１のデータの位置である第１位置と、当該第１位置と異なる、前記１のデータとは別のデータの位置である第２位置が含まれる場合に、前記第１位置と前記第２位置における前記副走査方向の距離が所定の距離以下であり、かつ、前記第１位置と前記第２位置における前記主走査方向の距離が所定の距離以下である場合、前記第１位置と前記第２位置との間を除外して設定する読取位置設定手段と、
原稿の読み取りを開始する指示を受け付ける指示受付手段と、
前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、
前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段として、
前記制御部を機能させることを特徴とする画像読取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置および画像読取プログラムに関する。
【背景技術】
【０００２】
オート・ドキュメント・フィーダー（以下「ＡＤＦ」と称す）を搭載し、ＡＤＦを用いて原稿を搬送させながら、所定の読取位置に固定された読取部を用いて当該原稿の読み取りを行うスキャナがある。かかるスキャナには、原稿の読み取りを行う読取部とＡＤＦにより搬送される原稿との間に、透明な原稿台が設けられている。よって、読取部は、原稿台を介して原稿の読み取りを行う。原稿台にゴミが付着している場合、読取部は、ＡＤＦにより搬送される原稿を読み取る間、原稿台上のゴミを連続して読み取ることになる。そのため、出力画像には、原稿の搬送方向に筋状に延びる黒筋が生じる。
【０００３】
かかる問題に対し、特許文献１には、原稿の読み取りを開始する前に、原稿台に付着したゴミを検出し、検出されたゴミの位置を避けた位置に、読取部であるラインセンサを配置させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−６０４９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載される技術は、１の読取位置でのゴミの検出を行った後、ゴミが検出された場合には、次の読取位置に読取部を移動させ、当該読取部の移動を、ゴミが検出されなくなるまで繰り返す。そのため、読み取り開始が遅くなる虞があった。かかる問題に対し、検出されたゴミの位置を記憶しておき、次回に原稿の読み取りを行う場合に、読取部の読取位置を、記憶されているゴミの位置を避けて設定することが考えられる。
【０００６】
しかしながら、通常、読取部は、原稿の読み取りが完了した後に、待機位置に移動される。よって、次回の原稿の読み取り開始に伴い、読取部を、待機位置から、記憶されているゴミの位置を避けて設定された読取位置に移動させる場合に、移動誤差が生じる可能性があり、読取部が、記憶されている位置のゴミを意図せずに読み取ってしまう虞があった。
【０００７】
本発明は、上述した事情を鑑みてなされたものであり、ゴミなどによる異常画像の発生を高精度に抑制できる画像読取装置および画像読取プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するために、本発明の画像読取装置は、原稿を搬送する原稿搬送部と、原稿台と、前記原稿搬送部により搬送される原稿を前記原稿台を介して読み取る読取部と、前記原稿搬送部による原稿の搬送方向に沿った方向である副走査方向に、前記読取部の読取位置を移動させる移動部と、記憶部と、制御部と、を備え、前記制御部は、所定の読取位置で前記読取部により基準板を読み取り、この読み取りにより得られたデータに異常があるかを検出する第１検出手段と、前記第１検出手段により前記読み取りにより得られたデータに異常があると検出された場合、当該データを読み取った前記読取部の前記副走査方向の位置を前記記憶部に記憶する位置記憶手段と、前記読取部の前記副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、前記記憶部に記憶される位置から所定範囲以上離れた位置に設定する読取位置設定手段と、原稿の読み取りを開始する指示を受け付ける指示受付手段と、前記指示受付手段により前記指示を受け付けた場合、待機位置にて待機中の前記読取部を前記移動部により移動させ、前記読取位置設定手段により設定された位置に配置する移動手段と、前記原稿搬送部により搬送される原稿を、前記移動手段により移動された前記読取部により読み取る第１読取手段と、前記移動手段により前記読取部を前記待機位置に対する基準位置に向かう方向に移動させながら、当該読取部による前記基準位置の読み取りを行う第２読取手段と、前記第２読取手段による読み取りにより得られたデータに基づき、前記基準位置を検出する第２検出手段と、前記第２検出手段により前記基準位置が検出された後、前記移動手段による前記読取部の移動を前記待機位置にて停止する移動停止手段と、前記第２検出手段による前記基準位置の検出誤差を示す値に応じて前記所定範囲の幅を算出する範囲幅算出手段と、を備えている。
【０００９】
なお、本発明は、画像読取装置を制御する制御装置、画像読取システム、画像読取方法、画像読取プログラム、画像読取プログラムを記録する記録媒体等の種々の態様で構成できる。
【発明の効果】
【００１０】
請求項１記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定し、更にその所定範囲の幅を、待機位置に対する基準位置を検出する際の検出誤差を示す値に応じて算出する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。
請求項２記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定し、更にその所定範囲の幅を、読取部の移動誤差を示す値に応じて算出する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。
請求項３記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。更に、異常画像の発生原因となり得る位置として、副走査方向の位置だけでなく、主走査方向の位置も考慮するので、異常画像の発生をより好適に抑制できる。
請求項４記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。更に、読取部の副走査方向の読取位置の候補の位置が、読取位置として設定可能な範囲内でランダムに選択されるので、読取部の読取位置が異常画像の発生原因となり得る位置を避けることができる確率を高めることができる。また、前記ランダムに選択された位置が、記憶部に記憶される位置から所定範囲以上離れた位置でないと判断されたとしても、再度、前記読取位置の候補の位置が、読取位置として設定可能な範囲内でランダムに選択されるので、ゴミなどによる異常画像の発生を抑制できる。
請求項５記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。また、読取部の読取位置が、当該読取位置として設定可能な範囲内の位置であり、かつ、記憶部に記憶される位置から、前記所定範囲の幅と、読取部が所定数のラインを読む毎の割込処理による１割込あたりの駆動ステップ数に応じた移動部の移動量との和だけ離れた位置に設定される。よって、読取部の読取位置を、ゴミなどによる異常画像の発生を高精度に抑制できる位置に、簡易に設定できる。
請求項６記載の画像読取装置によれば、所定の読取位置で基準板を読み取り、この読み取りにより得られたデータに異常があると検出された場合には、当該データを読み取った読取部の副走査方向の位置が記憶部に記憶される。そして、指示受付手段により前記指示が受け付けられた場合に、待機位置にて待機中の読取部が移動部により移動され、読取位置設定手段により設定された位置に配置される。ここで、読取位置設定手段は、読取部の副走査方向の読取位置を、当該読取位置として設定可能な範囲のうち、記憶部に記憶される位置から所定範囲以上離れた位置に設定する。つまり、異常画像の発生原因となり得る副走査方向の位置から所定範囲内を避けた位置に読取位置が設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。また、異常があると検出されたデータが複数ある場合、それら複数のデータのうち、副走査方向の位置が異なるが、当該副走査方向に直交する主走査方向が一致するデータの位置は、記憶の対象から除外される。異常があると検出された複数のデータが、主走査方向に位置する場合には、読取部の読取素子に異常がある可能性がある。読取部の読取素子に異常がある場合には、読取部の位置を移動させたとしても、異常画像の発生は解消されない。よって、かかる場合には、異常があると検出されたデータを記憶部に記憶させないことにより、記憶容量の消費を抑制できる。
【００１１】
請求項７記載の画像読取装置によれば、請求項２から６のいずれかが奏する効果に加え、次の効果を奏する。読取位置設定手段による読取位置の設定に用いる前記所定範囲の幅を、待機位置に対する基準位置を検出する際の検出誤差を示す値に応じて算出できる。
【００１２】
請求項８記載の画像読取装置によれば、請求項１または３から７のいずれかが奏する効果に加え、次の効果を奏する。読取位置設定手段による読取位置の設定に用いる前記所定範囲の幅を、読取部の移動誤差を示す値に応じて算出できる。
【００１３】
請求項９記載の画像読取装置によれば、請求項１または７が奏する効果に加え、次の効果を奏する。基準位置の検出誤差を示す値は、待機位置に対する基準位置を検出するときの読取部の読取解像度に基づいて算出される。読取部の移動誤差を示す値は、読取部が所定数のラインを読む毎の割込処理による１割込あたりの駆動ステップ数と、読取部の移動に適用中の移動情報に従う移動解像度とに基づいて算出される。そして、所定範囲の幅は、基準位置の検出誤差を示す値と、読取部の移動誤差を示す値との和に応じた値として算出される。よって、前記所定範囲の幅を、待機位置に対する基準位置を検出するときの読取部の読取解像度と、読取部の移動誤差とに応じて算出できる。
【００１４】
請求項１０記載の画像読取装置によれば、請求項１，２または７から９のいずれかが奏する効果に加え、次の効果を奏する。前記所定範囲の幅を算出するにあたり、データの異常を発生させる要因の幅に応じた値として予め準備されている値も用いるので、データの異常を発生させる要因のサイズが考慮された前記所定範囲の幅を算出できる。よって、ゴミなどによる異常画像の発生を好適に抑制できる。
【００１５】
請求項１１記載の画像読取装置によれば、請求項１，２または７から１０のいずれかが奏する効果に加え、次の効果を奏する。記憶部に記憶される第１位置と第２位置との副走査方向の距離が所定の距離以下である場合には、第１位置と第２位置との間が、読取部の読取位置から除外される。第１位置と第２位置との副走査方向の距離が所定の距離以下である場合、第１位置と第２位置との間も異常画像の発生原因となり得る可能性が高い。よって、第１位置と第２位置との間を読取部の読取位置から除外することにより、ゴミなどによる異常画像の発生を抑制できる。
【００１６】
請求項１２記載の画像読取装置によれば、請求項１，２または７から１１のいずれかが奏する効果に加え、次の効果を奏する。異常画像の発生原因となり得る位置として、副走査方向の位置だけでなく、主走査方向の位置も考慮するので、異常画像の発生をより好適に抑制できる。
【００１７】
請求項１３記載の画像読取装置によれば、請求項１から３または７から１２のいずれかが奏する効果に加え、次の効果を奏する。読取部の副走査方向の読取位置の候補の位置が、読取位置として設定可能な範囲内でランダムに選択されるので、読取部の読取位置が異常画像の発生原因となり得る位置を避けることができる確率を高めることができる。また、前記ランダムに選択された位置が、記憶部に記憶される位置から所定範囲以上離れた位置でないと判断されたとしても、再度、前記読取位置の候補の位置が、読取位置として設定可能な範囲内でランダムに選択されるので、ゴミなどによる異常画像の発生を抑制できる。
【００１８】
請求項１４記載の画像読取装置によれば、請求項４または１３が奏する効果に加え、次の効果を奏する。記憶部に記憶される第１位置と第２位置との副走査方向の距離が所定の距離以下である場合、読取位置の候補として選択された位置が、第１位置から副走査方向における第２位置とは反対側の所定範囲以上離れた位置であり、かつ、第２位置から副走査方向における第１位置とは反対側の所定範囲以上離れた位置であるかの判断が行われる。よって、読取位置を、第１位置と第２位置との間を読取部の読取位置から除外するとともに、第１位置および第２位置から所定範囲以上離れた位置に設定できるので、ゴミなどによる異常画像の発生を高精度に抑制できる。
【００１９】
請求項１５記載の画像読取装置によれば、請求項４，１３，１４のいずれかが奏する効果に加え、次の効果を奏する。読取位置の候補の位置をランダムに選択した回数が所定回数に達した場合、読取位置の候補として選択された位置が、記憶部に記憶される位置から前記所定範囲以上離れたかの判断に代えて、当該位置が、記憶部に記憶される位置に一致するかの判断が行われる。このような判断の変更によって、読取位置の候補として選択された位置を読取位置として設定できる可能性が高まるので、読取位置が設定できずに、読み取りを行うことができないという状況の発生可能性を抑制できる。また、所定回数を限度として判断の変更が行われるので、読取位置を早期に設定し得る。
【００２０】
請求項１６記載の画像読取装置によれば、請求項４または１３から１５のいずれかが奏する効果に加え、次の効果を奏する。読取位置の候補の位置をランダムに選択した回数が所定回数に達した場合、適用中の移動情報に従う移動解像度より高解像度の移動解像度を示す移動情報が記憶部に記憶されているかが判断される。該当する移動情報が記憶部に記憶されていない場合、読取位置の候補として選択された位置が、記憶部に記憶される位置から前記所定範囲以上離れたかの判断に代えて、当該位置が、記憶部に記憶される位置に一致するかの判断が行われる。このような判断の変更によって、読取位置の候補として選択された位置を読取位置として設定できる可能性が高まるので、読取位置が設定できずに、読み取りを行うことができないという状況の発生可能性を抑制できる。
【００２１】
請求項１７記載の画像読取装置によれば、請求項１，２または７から１０のいずれかが奏する効果に加え、次の効果を奏する。読取部の読取位置が、当該読取位置として設定可能な範囲内の位置であり、かつ、記憶部に記憶される位置から、前記所定範囲の幅と、読取部が所定数のラインを読む毎の割込処理による１割込あたりの駆動ステップ数に応じた移動部の移動量との和だけ離れた位置に設定される。よって、読取部の読取位置を、ゴミなどによる異常画像の発生を高精度に抑制できる位置に、簡易に設定できる。
【００２２】
請求項１８記載の画像読取装置によれば、請求項５または１７が奏する効果に加え、次の効果を奏する。記憶部に記憶される位置のうち、読取位置として設定可能な範囲のうち副走査方向の一端から最も離れた位置が取得される。読取部の前記副走査方向の読取位置が、当該読取位置として設定可能な範囲内の位置であり、かつ、記憶部から取得された位置から、前記副走査方向の一端から離れる側に、前記１割込あたりの駆動ステップ数に応じた移動部の移動量との和だけ離れた位置に設定される。よって、読取部の読取位置を、読取位置として設定可能な範囲のうち副走査方向の一端から離れる方向に順次設定できるので、簡易に読取部の読取位置を設定できる。
【００２３】
請求項１９記載の画像読取装置によれば、請求項１から５または７から１８のいずれかが奏する効果に加え、次の効果を奏する。異常があると検出されたデータが複数ある場合、それら複数のデータのうち、副走査方向の位置が異なるが、当該副走査方向に直交する主走査方向が一致するデータの位置は、記憶の対象から除外される。異常があると検出された複数のデータが、主走査方向に位置する場合には、読取部の読取素子に異常がある可能性がある。読取部の読取素子に異常がある場合には、読取部の位置を移動させたとしても、異常画像の発生は解消されない。よって、かかる場合には、異常があると検出されたデータを記憶部に記憶させないことにより、記憶容量の消費を抑制できる。
【００２４】
請求項２０記載の画像読取プログラムによれば、請求項３の画像読取装置と同様の効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】（ａ）は、スキャナの電気的構成を示すブロック図であり、（ｂ）は、ゴミ記憶領域を説明するための模式図である。
【図２】スキャナの一部を簡略化して示す模式図である。
【図３】ＣＩＳの側から見た、スキャナの筐体におけるＣＩＳと対向する側の面の構成を示す模式図である。
【図４】（ａ）は、ＡＤＦ読取処理を示すフローチャートであり、（ｂ）は、範囲Ｗを説明するための模式図である。
【図５】読取位置設定処理を示すフローチャートである。
【図６】ゴミ検知処理を示すフローチャートである。
【図７】（ａ）は、第２実施形態のゴミ記憶処理を示すフローチャートであり、（ｂ）は、第２実施形態のゴミ記憶領域を説明するための模式図である。
【図８】ＣＩＳ素子破損判定処理を示すフローチャートである。
【図９】第２実施形態の読取位置設定処理を示すフローチャートである。
【図１０】（ａ）〜（ｃ）は、それぞれ、第３実施形態の読取位置設定処理、電源ＯＮ時処理、および定期処理を示すフローチャートである。
【図１１】第６実施形態のＡＤＦ読取処理を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。まず、図１から図６を参照して、本発明の第１実施形態について説明する。図１（ａ）は、本発明の画像読取装置の一実施形態であるスキャナ１０の電気的構成を示すブロック図である。詳細は後述するが、本実施形態のスキャナ１０は、ゴミなどによる異常画像の発生を高精度に抑制できるよう構成される。
【００２７】
スキャナ１０には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＥＥＰＲＯＭ１４、操作部１５、ＬＣＤ１６、ＣＩＳ１７、モータ制御部１８、ＡＤＦ１９、フロントセンサ２０、リアセンサ２１、ＵＳＢインターフェイス（ＵＳＢ＿Ｉ／Ｆ）２２、ネットワークインターフェイス（ネットワークＩ／Ｆ）２３が主に設けられる。これらの各部１１〜２３は、バスライン２４を介して互いに接続される。モータ制御部１８には、モータ１８ａが接続される。
【００２８】
ＣＰＵ１１は、ＲＯＭ１２に記憶される固定値やプログラム、ＲＡＭ１３に記憶されているデータに従って、スキャナ１０の各部を制御する。ＲＯＭ１２は、読み出し専用のメモリである。
【００２９】
ＲＯＭ１２には、スキャナ１０の動作を制御する制御プログラム１２ａや、制御プログラム１２ａを実行する際に参照する定数やテーブルなどが格納される。後述する図４（ａ）、図５、および図６のフローチャートに示す各処理は、ＣＰＵ１１が制御プログラム１２ａに従い実行する処理である。
【００３０】
ＲＡＭ１３は、ＣＰＵ１１の処理に必要な情報を一時的に記憶する書換可能な揮発性のメモリである。ＥＥＰＲＯＭ１４は、書換可能であるとともに、電源遮断後も内容を保持可能な不揮発性のメモリである。ＥＥＰＲＯＭ１４には、後述するゴミ記憶領域１４ａが設けられる。
【００３１】
操作部１５は、スキャナに設定値や指示など入力するためのものである。操作部１５としては、ＬＣＤ１６に重ねて設けられるタッチパネルや、メカニカルキーなどが例示される。ＬＣＤ１６は、各種画面を表示する液晶表示装置である。
【００３２】
ＣＩＳ１７は、コンタクトイメージセンサ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）で原稿を読み取る読取部である。ＣＩＳ１７は、主走査方向に直線状に配列された複数の受光素子を有するリニアイメージセンサ、ＲＧＢ３色の発光ダイオードを有する光源、原稿で反射された反射光をイメージセンサの各受光素子に結像させるロッドレンズアレイなどを有する。
【００３３】
主走査方向とは、プラテンガラス４４，４５（図２参照）の面に平行な方向であり、かつ、ＣＩＳ１７の移動方向に直交する方向である。主走査方向は、ＡＤＦ１９によりプラテンガラス４４，４５上を搬送される原稿の搬送方向に直交する向きでもある。
【００３４】
モータ制御部１８は、ＣＰＵ１１による制御に応じて、モータ１８ａを駆動制御する。モータ１８ａは、ステッピングモータである。モータ１８ａは、ＣＩＳ１７を副走査方向に移動させるための駆動源である。副走査方向とは、ＡＤＦ１９によりプラテンガラス４４，４５上を搬送される原稿の搬送方向に沿った方向であり、矢印Ｆ方向または矢印Ｂ方向（図２参照）である。
【００３５】
より詳細には、モータ制御部１８は、ＣＰＵ１１による制御に応じて、モータ１８ａの回転速度や停止位置などを制御する。ＣＰＵ１１は、ＣＩＳ１７が所定数のラインを読み取る毎に実行する割込処理（以下「ラインエンド割込」と称す）において、ＣＩＳ１７の現在位置を取得して、当該現在位置をＲＡＭ１３に設定するとともに、ＣＩＳ１７の現在位置に応じた加速または減速指示をモータ制御部１８に出力する。
【００３６】
モータ制御部１８は、ＥＥＰＲＯＭ１４に記憶される駆動テーブル（図示せず）に従い、モータ１８ａを駆動制御する。駆動テーブルは、モータ１８ａの駆動条件を規定するテーブルである。駆動テーブルには、モータ駆動条件として、駆動電流値、励磁方法、回転速度などが規定されている。駆動テーブルに規定される駆動条件に従って、モータ１８ａの回転速度と、モータ１８ａの１ステップあたりの移動量とが制御される。
【００３７】
つまり、駆動テーブルに応じて、ＣＩＳ１７の１ステップあたりの移動量が制御されるので、駆動テーブルは、ＣＩＳ１７の移動解像度を規定するテーブルといえる。ＣＩＳ１７の移動解像度は、単位距離あたりのステップ数である。本実施形態では、移動解像度の単位はｄｐｉである。
【００３８】
駆動テーブルは、各種の用途毎に準備されている。用途としては、例えば、待機位置から読取位置までＣＩＳ１７を移動させる場合や、境界検出テープ７０（図２参照）を検出する場合などがある。
【００３９】
ＡＤＦ１９は、原稿トレイ５８（図２参照）にセットされた原稿を、搬送経路５７（図２参照）に沿ってＣＩＳ１７による読取位置まで搬送させるとともに、ＣＩＳ１７による読み取り後の原稿を排紙トレイ５９まで搬送させる。
【００４０】
フロントセンサ２０は、原稿トレイ５８にセットされた原稿を検出するためのセンサである。リアセンサ２１は、ＡＤＦ１９により搬送される原稿を検出するためのセンサである。フロントセンサ２０およびリアセンサ２１は、いずれも、フォトセンサ等から構成される。
【００４１】
フロントセンサ２０およびリアセンサ２１は、それぞれの位置に原稿があるか否かに応じて、出力レベルの異なる信号を出力する。スキャナ１０は、フロントセンサ２０またはリアセンサ２１から出力される信号に基づいて、原稿トレイ５８にセットされた原稿の有無と、リアセンサ２１の位置における原稿の有無を検知できる。
【００４２】
ＵＳＢ＿Ｉ／Ｆ２３は、ＵＳＢプラグを介して、例えば、ＵＳＢメモリなどの記憶媒体や、パーソナルコンピュータやハードディスクなどの他の装置を通信可能に接続するための装置であり、周知の装置で構成される。ネットワーク＿Ｉ／Ｆ２４は、スキャナ１０を、ＬＡＮやインターネットなどのネットワーク（図示せず）に接続するためのインターフェイスである。
【００４３】
図１（ｂ）は、ＥＥＰＲＯＭ１４に設けられるゴミ記憶領域１４ａを説明するための模式図である。ゴミ記憶領域１４ａは、第２プラテンガラス４５上にゴミがあるなど、異常画像を発生させる可能性が検出された場合に、その位置（以下、この位置を「ゴミ検出位置」と称す）を記憶する領域である。本実施形態では、ゴミ検出位置における副走査方向の位置（以下「副走査位置」と称す）をゴミ記憶領域１４ａに記憶する。
【００４４】
ゴミ検出位置Ｑは、ゴミ記憶領域１４ａの先頭Ｐから順次記憶される。ゴミ記憶領域１４ａには、末尾指定値Ｒが記憶される。末尾指定値Ｒは、これより後方にはゴミ検出位置Ｑが存在しないことを示す値である。末尾指定値Ｒは、ゴミ検出位置Ｑとしては取り得ない値が設定されており、本実施形態では、６５５３５である。末尾指定値Ｒは、ゴミ記憶領域１４ａの初期状態において先頭Ｐに記憶される。異常画像を発生させる可能性が検出される毎に、ゴミ検出位置Ｑが末尾指定値Ｒの位置に書き込まれ、末尾指定値Ｒはその後方側に記憶される。
【００４５】
図２は、スキャナ１０の一部を簡略化して示す模式図である。スキャナ１０の筐体４３は、概ね箱型に形成されており、上部に第１プラテンガラス４４と、第２プラテンガラス４５とが並設されている。
【００４６】
原稿カバー４６は、各プラテンガラス４４，４５を覆う閉姿勢と、各プラテンガラス４４，４５を開放する開姿勢とに回動可能に筐体４３に連結されている。原稿カバー４６には、ＡＤＦ１９、原稿トレイ５８、排紙トレイ５９などが設けられている。
【００４７】
ＡＤＦ１９の内部には、分離ローラ５０、分離ローラ５０を軸支する軸に基端側を軸支されたアーム５１の先端部に回転自在に設けられている吸入ローラ５２、複数の搬送ローラ５３，５４、排紙ローラ５５、これらに圧接する複数の従動ローラ５６が設けられている。原稿はこれらのローラに搬送されて搬送経路５７を搬送され、ＣＩＳ１７によって読み取られる位置を通過して、排紙トレイ５９に排紙される。
【００４８】
ＣＩＳ１７は、スキャナ１０の筐体４３の内部に収容されている。ＣＩＳ１７は、ＡＤＦ１９により搬送される原稿を読み取る場合、第２プラテンガラス４５の直下にて停止し、その位置を読取位置として、光源の色を順次切り替えながら、第２プラテンガラス４５を介して原稿を読み取る。一方、ＣＩＳ１７は、第１プラテンガラス４４上に載置される原稿を読み取る場合、読取駆動部１８を用いて、ＣＩＳ１７を副走査方向（矢印Ｆ方向または矢印Ｂ方向）に一定速度で移動させつつ、光源の色を順次切り替えながら原稿を読み取る。
【００４９】
第２プラテンガラス４５を介してＣＩＳ１７に対向する側には、ＣＩＳ１７が第２プラテンガラス４５を介して読み取ることのできる白色の基準板６０が設けられている。本実施形態では、原稿の読み取り後に、ＣＩＳ１７が基準板６０を読み取ることにより、第２プラテンガラス４５上にゴミがあるなど、異常画像を発生させる可能性の検出を行う。
【００５０】
フロントセンサ２０は、原稿トレイ５８にセットされた原稿の有無を検出するセンサとして機能する。一方、リアセンサ２１は、ＣＩＳ１７による原稿の読み取り開始タイミングを計るためのセンサとして機能する。具体的に、スキャナ１０は、フロントセンサ２０が原稿を検出したタイミングから、所定の搬送量だけ原稿が搬送されたタイミングで、ＣＩＳ１７による原稿の読み取りを開始する。
【００５１】
また、リアセンサ２１は、ＣＩＳ１７による原稿の読み取り終了タイミングを計るためのセンサとして機能する。具体的に、スキャナ１０は、リアセンサ２１が原稿を検出しなくなったタイミングから、所定の搬送量だけ原稿が搬送されたタイミングで、ＣＩＳ１７による原稿の読み取りを終了する。
【００５２】
筐体４３のＣＩＳ１７と対向する側の面には、第２プラテンガラス４５より副走査方向の上流側（矢印Ｂ方向）に境界検出テープ７０が設けられる。境界検出テープ７０は、ＣＩＳ１７を待機位置に配置するための基準位置の検出に利用するものである。ＣＰＵ１１は、境界検出テープ７０が検出された基準位置を原点としてＣＩＳ１７の位置を決定する。
【００５３】
図３は、ＣＩＳ１７の側から見た、筐体４３におけるＣＩＳ１７と対向する側の面の構成を示す模式図である。図３に示すように、境界検出テープ７０は、筐体４３のＣＩＳ１７と対向する側の面であって、第２プラテンガラス４５より副走査方向の上流側近傍にあり、第２プラテンガラス４５および第１プラテンガラス４４の主走査方向の長さよりも数ミリ程度長い長方形の板状に構成される。
【００５４】
境界検出テープ７０は、副走査方向に二分されており、上流側が白基準部７１であり、下流側が解像度測定基準部７２である。白基準部７１は、全域が均一な濃度の白色からなる。一方、解像度測定基準部７２は、３つの領域に分割され、主走査方向の両方の端部に黒領域７２ａ，７２ｃが設けられ、黒領域７２ａ，７２ｃの間に白領域７２ｂが設けられる。
【００５５】
黒領域７２ａ，７２ｃおよび白領域７２ｂは、主走査方向、すなわち、矢印Ｆ方向または矢印Ｂ方向に直交する方向に隣接しており、その隣接している境界が、ＣＩＳ１７の位置の主走査方向における読取範囲の基準として用いられる。一方、黒領域７２ａ，７２ｃと白基準部７１との境界が、ＣＩＳ１７を待機位置に配置するための基準位置となる。黒領域７２ａ，７２ｃと白基準部７１との境界から、副走査方向の上流側（矢印Ｂ方向）に所定距離だけ離れた位置が、ＣＩＳ１７の待機位置とされる。
【００５６】
図４（ａ）は、ＣＰＵ１１が制御プログラム１２ａに従って実行するＡＤＦ読取処理を示すフローチャートである。本処理は、ＡＤＦ１９を用いて原稿を搬送しながら、当該原稿を読み取る処理である。ＣＰＵ１１は、ＡＤＦ１９を用いた原稿の読取指示の受け付けを待機する（Ｓ４０１：Ｎｏ）。
【００５７】
ＡＤＦ１９を用いた原稿の読取指示を、ＣＰＵ１１が受け付けた場合（Ｓ４０１：Ｙｅｓ）、ＣＰＵ１１は、読取位置設定処理を実行する（Ｓ４０２）。読取位置設定処理（Ｓ４０２）は、ＣＩＳ１７の副走査方向の読取位置を設定する処理である。詳細は図５を参照して後述するが、読取位置設定処理（Ｓ４０２）では、異常画像を発生させる可能性がある位置を避けた位置に読取位置が設定される。
【００５８】
ＣＰＵ１１は、光量の調整やシェーディング補正などの準備処理を実行する（Ｓ４０３）。ＣＰＵ１１は、モータ制御部１８を駆動することにより、待機位置に位置するＣＩＳ１７を、副走査方向に移動させ、読取位置設定処理（Ｓ４０２）にて設定された読取位置に配置する（Ｓ４０４）。ＣＰＵ１１は、原稿トレイ５８にセットされている原稿の、ＡＤＦ１９による搬送を開始する（Ｓ４０５）。
【００５９】
ＣＰＵ１１は、リアセンサ２１からオン信号が入力されることを待機する（Ｓ４０６：Ｎｏ）。リアセンサ２１は、当該リアセンサ２１が原稿を検出しない場合にオフ信号を出力し、原稿を検出した場合にオン信号を出力する。つまり、ＣＰＵ１１は、ＡＤＦ１９により搬送される原稿の先端が、リアセンサ２１による検出位置に到達することを待機する。
【００６０】
リアセンサ２１からオン信号が入力されたと、ＣＰＵ１１が判断した場合（Ｓ４０６：Ｙｅｓ）、ＣＰＵ１１は、読取開始カウンタであるＣｏｎの設定を行う（Ｓ４０７）。読取開始カウンタＣｏｎは、リアセンサ２１により原稿が検出されてから、ＣＩＳ１７による原稿の読み取りを開始するまで、搬送ローラ５３，５４を駆動するモータ（図示せず）が原稿を搬送するのに要する搬送ステップ数（以下「開始待機ステップ数」と称す）をカウントするカウンタである。具体的に、Ｓ４０７において、ＣＰＵ１１は、読取開始カウンタＣｏｎに対するデフォルト値から、（Ｙｍｉｄ−Ｙ）を差し引いた値を読取開始カウンタＣｏｎに設定する。
【００６１】
Ｙｍｉｄは、図４（ｂ）に示すように、第２プラテンガラス４５の副走査方向（矢印Ｆ方向または矢印Ｂ方向）の範囲内であって、画質を損なわない範囲として予め決められている範囲Ｗにおける、副走査方向の中央位置である。つまり、範囲Ｗにおける副走査方向の始点Ｙｓおよび終点Ｙｅの中点がＹｍｉｄである。なお、範囲Ｗとしては、例えば、スキャナ１０のメーカが定める、ＭＴＦ（Ｍｏｄｕｌａｔｉｏｎ  Ｔｒａｎｓｆｅｒ  Ｆｕｎｃｔｉｏｎ）値の保証範囲、つまり、読取品質の保証範囲を採用できる。
【００６２】
Ｙは、読取位置設定処理（Ｓ４０２）にて設定された副走査方向の読取位置である。デフォルトでのＣＩＳ１７の読取位置はＹｍｉｄである。つまり、Ｓ４０７にて設定された読取開始カウンタＣｏｎの値によりカウントされる開始待機ステップ数は、デフォルトの開始待機ステップ数を、読取位置設定処理（Ｓ４０２）にて設定された読取位置Ｙに応じて補正した期間である。よって、読取位置設定処理（Ｓ４０２）にて設定されるＹの値が変動する構成において、Ｙの値にかかわらず、正しいタイミングで原稿の読み取りを開始できる。
【００６３】
ＣＰＵ１１は、読取開始カウンタＣｏｎの値が０であるかを判断する（Ｓ４０８）。読取開始カウンタＣｏｎの値が０でないと、ＣＰＵ１１が判断した場合（Ｓ４０８：Ｎｏ）、ＣＰＵ１１は、原稿の搬送に伴い読取開始カウンタＣｏｎの値をデクリメントし（Ｓ４２０）、処理をＳ４０８に移行する。読取開始カウンタＣｏｎの値が０であると、ＣＰＵ１１が判断した場合（Ｓ４０８：Ｙｅｓ）、ＣＰＵ１１は、ＣＩＳ１７による原稿の読み取りを開始する（Ｓ４０９）。
【００６４】
ＣＰＵ１１は、リアセンサ２１からオフ信号が入力されることを待機する（Ｓ４１０：Ｎｏ）。つまり、ＣＰＵ１１は、ＡＤＦ１９により搬送される原稿の後端が、リアセンサ２１による検出位置から外れるまで待機する。リアセンサ２１からオフ信号が入力されたと、ＣＰＵ１１が判断した場合（Ｓ４１０：Ｙｅｓ）、ＣＰＵ１１は、読取終了カウンタであるＣｏｆｆの設定を行う（Ｓ４１１）。読取終了カウンタＣｏｆｆは、リアセンサ２１により原稿が検出されなくなってから、ＣＩＳ１７による原稿の読み取りを終了するまで、搬送ローラ５３，５４を駆動するモータ（図示せず）が原稿を搬送するのに要する搬送ステップ数（以下「終了待機ステップ数」と称す）をカウントするカウンタである。
【００６５】
具体的に、Ｓ４１１において、ＣＰＵ１１は、読取終了カウンタＣｏｆｆに対するデフォルト値から、（Ｙｍｉｄ−Ｙ）を差し引いた値をＣｏｆｆに設定する。つまり、Ｓ４１１にて設定された読取終了カウンタＣｏｆｆの値によりカウントされる終了待機ステップ数は、デフォルトの終了待機ステップ数を、読取位置設定処理（Ｓ４０２）にて設定された読取位置Ｙに応じて補正した期間である。よって、読取位置設定処理（Ｓ４０２）にて設定されるＹの値が変動する構成において、Ｙの値にかかわらず、正しいタイミングで原稿の読み取りを終了できる。
【００６６】
ＣＰＵ１１は、読取終了カウンタＣｏｆｆの値が０であるかを判断する（Ｓ４１２）。読取終了カウンタＣｏｆｆの値が０でないと、ＣＰＵ１１が判断した場合（Ｓ４１２：Ｎｏ）、ＣＰＵ１１は、原稿の搬送に伴い読取終了カウンタＣｏｆｆの値をデクリメントし（Ｓ４２１）、処理をＳ４１２に移行する。読取終了カウンタＣｏｆｆの値が０であると、ＣＰＵ１１が判断した場合（Ｓ４１２：Ｙｅｓ）、ＣＰＵ１１は、ＣＩＳ１７による原稿の読み取りを終了する（Ｓ４１３）。
【００６７】
ＣＰＵ１１は、フロントセンサ２０からオン信号が入力されているかを判断する（Ｓ４１４）。フロントセンサ２０は、当該フロントセンサ２０が原稿を検出しない場合にオフ信号を出力し、原稿を検出した場合にオン信号を出力する。つまり、ＣＰＵ１１は、原稿トレイ５８に原稿がセットされているか否かを判断する。
【００６８】
フロントセンサ２０からオン信号が入力されたと、ＣＰＵ１１が判断した場合（Ｓ４１４：Ｙｅｓ）、これは原稿トレイ５８に原稿がセットされていることを示す。よって、かかる場合、ＣＰＵ１１は、処理をＳ４０６に移行し、次の原稿について、Ｓ４０６〜Ｓ４１３，Ｓ４２０，Ｓ４２１の処理を実行する。一方、フロントセンサ２０からオン信号が入力されていない、すなわち、オフ信号が入力されていると、ＣＰＵ１１が判断した場合（Ｓ４１４：Ｎｏ）、ＣＰＵ１１は、ＡＤＦ１９による原稿の搬送を終了する（Ｓ４１５）。
【００６９】
ＣＰＵ１１は、Ｓ４１５の処理後、ゴミ記憶処理を実行する（Ｓ４１６）。詳細は図６を参照して後述するが、ゴミ記憶処理（Ｓ４１６）は、第２プラテンガラス４５上にゴミがあるなど、異常画像を発生させる可能性が検出された場合に、その位置（すなわち、ゴミ検出位置）を、ＥＥＰＲＯＭ１４のゴミ記憶領域１４ａに記憶する処理である。
【００７０】
ＣＰＵ１１は、ゴミ記憶処理（Ｓ４１６）の実行後、モータ制御部１８を駆動することにより、ＣＩＳ１７を、境界検出テープ７０における黒領域７２ａ，７２ｃと白基準部７１との境界の検出を開始する（Ｓ４１７）。具体的に、ＣＰＵ１１は、モータ制御部１８を駆動して、ＣＩＳ１７を、副走査方向の上流側（矢印Ｂ方向）に移動させながら、ＣＩＳ１７による読み取りを１ライン分ずつ実行する。
【００７１】
ＣＰＵ１１は、ＣＩＳ１７による読み取りにより得られた画像データに基づいて、黒領域７２ａ，７２ｃと白基準部７１との境界が検出されるまで、当該境界が検出されたかを判断する（Ｓ４１８：Ｎｏ）。黒領域７２ａ，７２ｃと白基準部７１との境界が検出されたと、ＣＰＵ１１が判断した場合（Ｓ４１８：Ｙｅｓ）、ＣＰＵ１１は、ＣＩＳ１７を、当該境界の検出位置から、副走査方向の上流側（矢印Ｂ方向）に所定距離だけ離れた位置まで移動させ（Ｓ４１９）、本処理を終了する。具体的に、ＣＰＵ１１は、モータ制御部１８を駆動して、モータ１８ａを、ＣＩＳ１７を副走査方向の上流側に移動させる向きに、所定距離に相当するステップ数だけ回転させる。Ｓ４１９の処理の結果、ＣＩＳ１７の待機位置への移動が完了する。
【００７２】
図５は、上述した読取位置設定処理（Ｓ４０２）を示すフローチャートである。処理回数カウンタであるＣｎｔの値をゼロに設定する（Ｓ５０１）。処理回数カウンタＣｎｔは、Ｓ５０２にてランダムにＹの値を決定する回数をカウントするカウンタである。
【００７３】
ＣＰＵ１１は、ランダムにＹの値を決定する（Ｓ５０２）。ただし、Ｙの値は、範囲Ｗの範囲内の値とする。ＣＰＵ１１は、ばらつきＢを算出する（Ｓ５０３）。ばらつきＢは、待機位置に位置するＣＩＳ１７を、Ｓ５０２にて決定されたＹの位置に移動させた場合に、ＣＩＳ１７が実際に到達する位置の誤差を示す値である。この誤差は、主に、待機位置の検出誤差Ｅ１と、ＣＩＳ１７の移動誤差Ｅ２との和に依存する。本実施形態では、ばらつきＢ＝待機位置の検出誤差Ｅ１＋ＣＩＳ１７の移動誤差Ｅ２とする。
【００７４】
待機位置の検出誤差Ｅ１は、Ｓ４１８にて境界を検出する際の読取解像度の逆数に応じた値である。一方、ＣＩＳ１７の移動誤差Ｅ２は、現在適用中の駆動テーブルにより規定されるＣＩＳ１７の移動解像度の逆数に、ＣＰＵ１１がモータ制御部１８を制御するために行うラインエンド割込処理による１割込あたりの、モータ制御部１８により駆動されるモータ１８ａのステップ数を乗じた値である。
【００７５】
例えば、Ｓ４１８にて境界を検出する際の読取解像度が６００ｄｐｉである場合、待機位置の検出誤差Ｅ１は、ミリメートル単位で、（１／６００）×２５．４である。なお、２５．４は、インチ単位をミリメートル単位に換算するために乗ずる値である。一方、ＣＩＳ１７の移動解像度が４８００ｄｐｉであり、ラインエンド割込処理による１割込あたりのモータ１８ａのステップ数が３２ステップである場合、ＣＩＳ１７の移動誤差Ｅ２は、ミリメートル単位で、（１／４８００）×３２×２５．４である。
【００７６】
ＣＰＵ１１は、変数Ａとして、ゴミ記憶領域１４ａの先頭Ｐに記憶されている値を設定する（Ｓ５０４）。なお、ゴミ記憶領域１４ａにゴミ検出位置が記憶されていない場合、すなわち、ゴミ記憶領域１４ａの先頭Ｐに末尾指定値Ｒが記憶されている場合には、ＣＰＵ１１は、処理をＳ５１０に移行する。つまり、ＣＰＵ１１は、読取位置をＹに設定する。ＣＰＵ１１は、処理回数カウンタＣｎｔをインクリメントする（Ｓ５０５）。
【００７７】
ＣＰＵ１１は、処理回数カウンタＣｎｔの値がＮａであるかを判断する（Ｓ５０６）。Ｎａは、後述するＳ５０７による判断を実行するか否かを決定するための閾値であり、予め決められている。例えば、Ｎａの値は１０である。処理回数カウンタＣｎｔの値がＮａでないと、ＣＰＵ１０が判断した場合（Ｓ５０６：Ｎｏ）、ＣＰＵ１１は、Ｓ５０７の判断を実行する。つまり、ＣＰＵ１１は、Ｓ５０４にて設定された変数Ａの値が、Ｙ−（Ｂ＋Ｃ）＜Ａ＜Ｙ＋Ｂ＋Ｃの範囲を満たすかを判断する（Ｓ５０７）。Ｓ５０７の不等式は、換言すると、Ｓ５０１にてランダムに決定されたＹの値が、変数Ａの値、すなわち、ゴミ記憶領域１４ａに記憶されているゴミ検出位置Ｑから、副走査方向に（Ｂ＋Ｃ）の範囲内に存在するか否かを判断する式に相当する。
【００７８】
Ｓ５０７の不等式において、Ｂは、Ｓ５０３にて算出されたＢの値であり、Ｃは、異常画像を発生させる要因（例えば、ゴミ）の幅に応じた値として予め準備されている値である。本実施形態では、異常画像を発生させる要因の全幅を２画素と仮定し、その半分の１画素をＣの値として準備する。
【００７９】
変数Ａの値がＳ５０７の不等式を満たすと、ＣＰＵ１１が判断した場合（Ｓ５０７：Ｙｅｓ）、ＣＰＵ１１は、処理をＳ５０２に移行する。つまり、Ｓ５０１にて決定されたＹの値が、変数Ａの値から副走査方向に（Ｂ＋Ｃ）の範囲内に存在する場合、ＣＰＵ１１は、Ｙの値を再度ランダムに決定する。
【００８０】
一方、変数Ａの値がＳ５０７の不等式を満たさないと、ＣＰＵ１１が判断した場合（Ｓ５０７：Ｎｏ）、ＣＰＵ１１は、変数Ａとして、ゴミ記憶領域１４ａにおける次の値を設定する（Ｓ５０８）。ＣＰＵ１１は、Ｓ５０８にて設定された変数Ａの値が、末尾指定値Ｒに等しいかを判断する（Ｓ５０９）。両者が等しくないとＣＰＵ１１が判断した場合（Ｓ５０９：Ｎｏ）、ＣＰＵ１１は、処理をＳ５０７に移行する。
【００８１】
一方、Ｓ５０８にて設定された変数Ａの値が末尾指定値Ｒに等しいと、ＣＰＵ１１が判断した場合（Ｓ５０９：Ｙｅｓ）、ＣＰＵ１１は、読取位置をＹに設定し（Ｓ５１０）、本処理を終了する。
【００８２】
Ｓ５０６において、処理回数カウンタＣｎｔの値がＮａであると、ＣＰＵ１０が判断した場合（Ｓ５０７：Ｎｏ）、ＣＰＵ１１は、現在適用中の駆動テーブルより、ＣＩＳ１７の移動解像度が高解像度である駆動テーブルに切り替え可能であるかを判断する（Ｓ５１１）。つまり、ＣＰＵ１１は、待機位置から読取位置までＣＩＳ１７を移動させる場合の駆動テーブルとして、現在適用中の駆動テーブルにより規定される移動解像度より高解像度の移動解像度を規定する駆動テーブルがあるかを判断する。
【００８３】
駆動テーブルの切り替えが可能であると、ＣＰＵ１１が判断した場合（Ｓ５１１：Ｙｅｓ）、ＣＰＵ１１は、待機位置から読取位置までＣＩＳ１７を移動させる場合の駆動テーブルを、現在適用中の駆動テーブルにより規定される移動解像度より高解像度の移動解像度を規定する駆動テーブルに変更し（Ｓ５１７）、処理をＳ５０１に移行する。
【００８４】
一方、駆動テーブルの切り替えが可能でないと、ＣＰＵ１１が判断した場合（Ｓ５１１：Ｎｏ）、ＣＰＵ１１は、Ｓ５０１と同様に、ランダムにＹの値を決定する（Ｓ５１２）。ＣＰＵ１１は、変数Ａとして、ゴミ記憶領域１４ａの先頭Ｐに記憶されている値を設定する（Ｓ５１３）。
【００８５】
ＣＰＵ１１は、変数Ａの値が、Ｓ５１２にて決定されたＹの値に等しいかを判断する（Ｓ５１４）。両者が等しいとＣＰＵ１１が判断した場合（Ｓ５１４：Ｙｅｓ）、ＣＰＵ１１は、処理をＳ５１２に移行する。つまり、Ｓ５０１にて決定されたＹの値が、ゴミ検出位置Ｑとしてゴミ記憶領域１４ａに記憶されている場合には、ＣＰＵ１１は、Ｙの値を再度ランダムに決定する。
【００８６】
一方、変数Ａの値とＳ５１２にて決定されたＹの値とが等しくないと、ＣＰＵ１１が判断した場合（Ｓ５１４：Ｎｏ）、ＣＰＵ１１は、変数Ａとして、ゴミ記憶領域１４ａにおける次の値を設定する（Ｓ５１５）。ＣＰＵ１１は、Ｓ５１５にて設定された変数Ａの値が、末尾指定値Ｒに等しいかを判断する（Ｓ５１６）。両者が等しくないとＣＰＵ１１が判断した場合（Ｓ５１６：Ｎｏ）、ＣＰＵ１１は、処理をＳ５１４に移行する。つまり、Ｓ５１５にて設定された変数Ａの値がゴミ検出位置Ｑである場合には、そのゴミ検出位置Ｑと現在のＹの値とが等しいかの判断を行う。
【００８７】
一方、Ｓ５１５にて設定された変数Ａの値が末尾指定値Ｒに等しいと、ＣＰＵ１１が判断した場合（Ｓ５１６：Ｙｅｓ）、ＣＰＵ１１は、読取位置をＹに設定し（Ｓ５１０）、本処理を終了する。
【００８８】
読取位置設定処理（Ｓ４０２）によれば、ＣＩＳ１７の読取位置が、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑから、所定範囲、より詳細には、副走査方向に（Ｂ＋Ｃ）の範囲以上に離れた位置に設定される。よって、待機位置から読取位置に移動するＣＩＳ１７が、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑを読み取る可能性を低減できるので、ゴミなどによる異常画像の発生を高精度に抑制できる。
【００８９】
特に、ゴミ検出位置Ｑに対し、ＣＩＳ１７の読取位置から除外する範囲が（Ｂ＋Ｃ）であるので、待機位置から読取位置に移動するＣＩＳ１７が実際に到達する位置の誤差や、異常画像を発生させる要因（例えば、ゴミ）の大きさによる影響を除外できる。よって、ＣＩＳ１７の読取位置を、異常画像の発生を高精度に抑制できる好適な位置に設定できる。
【００９０】
また、ＣＩＳ１７の読取位置は、画質を損なわない範囲として予め決められている範囲Ｗの範囲内に収められるので、ゴミ検出位置Ｑを避けたことに伴う画質の劣化を生じない。また、ランダムにＹの値を決定するので、ゴミ検出位置Ｑを早期に避ける確率を高めることができるので、Ｙの値を早期に決定できる。
【００９１】
ランダムにＹの値を決定する処理（Ｓ５０２）が（Ｎａ−１）回実行された場合に、Ｓ５１１にて切り替え可能であると判断された場合には、現在適用中の駆動テーブルが、当該駆動テーブルにより規定される移動解像度より高解像度の移動解像度を規定する駆動テーブルに変更される。これにより、ばらつきＢの算出に関わるＣＩＳ１７の移動誤差Ｅ２の値を小さくできるので、ばらつきＢの値を小さくできる。よって、ゴミ検出位置Ｑに対し、ＣＩＳ１７の読取位置から除外する範囲を狭めることができる。当該範囲が狭い程、ＣＩＳ１７の読取位置を設定し易いので、ある程度の回数で駆動テーブルを切り替える構成としたことにより、ＣＩＳ１７の読取位置を早期に設定し得る。
【００９２】
一方、Ｓ５１１にて駆動テーブルの切り替えができないと判断された場合には、ゴミ検出位置Ｑに対する範囲設けることなく、ＣＩＳ１７の読取位置が、ゴミ検出位置Ｑに一致しない位置に設定される。ゴミ検出位置Ｑに対する範囲設けないことにより、ＣＩＳ１７の読取位置を設定できない可能性を低減できるので、読取位置が設定できずに、読み取りを行うことができないという状況の発生可能性を抑制できる。
【００９３】
図６は、上述したゴミ記憶処理（Ｓ４１６）を示すフローチャートである。ＣＰＵ１１は、ゴミ検知フラグに０を設定する（Ｓ６０１）。「ゴミ検知フラグ」は、第２プラテンガラス４５上にゴミなどの異物があるなど、異常画像を発生させる可能性が検出されたか否かを特定するフラグであり、ＲＡＭ１３に設けられる。ゴミ検知フラグに１が設定されている場合、ゴミが検出されたことを示す。一方、ゴミ検知フラグに０が設定されている場合、ゴミが検出されていないことを示す。
【００９４】
ＣＰＵ１１は、ＣＩＳ１７に、現在の読取位置で、第２プラテンガラス４５を介してＣＩＳ１７に対向する位置に設けられている白色の基準板６０を１ライン分読み取らせる（Ｓ６０２）。なお、基準板６０は、白色の基準板に限らず、灰色の基準板などであってもよい。ＣＰＵ１１は、Ｓ６０２の読み取りによって得られた画像データにおける先頭の画素を対象画素に設定する（Ｓ６０３）。
【００９５】
ＣＰＵ１１は、対象画素の画素値が閾値を超えるかを判断する（Ｓ６０４）。対象画素の画素値が閾値を超えないと、ＣＰＵ１１が判断した場合（Ｓ６０４：Ｎｏ）、ＣＰＵ１１は、基準板６０を読み取った画像データに異常がある、すなわち、異常画像を発生させる可能性が検出されたとして、ゴミ検知フラグに１を設定し（Ｓ６０５）、処理をＳ６０６に移行する。一方、対象画素の画素値が閾値を越えると、ＣＰＵ１１が判断した場合（Ｓ６０４：Ｙｅｓ）、ＣＰＵ１１は、Ｓ６０５の処理をスキップして、処理をＳ６０６に移行する。
【００９６】
Ｓ６０６において、ＣＰＵ１１は、Ｓ６０２の読み取りによって得られた画像データを構成する全画素についてＳ６０４の判断を行ったかを判断する（Ｓ６０６）。ＣＰＵ１１がＳ６０６の判断を否定した場合（Ｓ６０６：Ｎｏ）、ＣＰＵ１１は、対象画素を次の画素に移動し（Ｓ６０９）、処理をＳ６０４に移行する。
【００９７】
ＣＰＵ１１がＳ６０６の判断を肯定した場合（Ｓ６０６：Ｙｅｓ）、ＣＰＵ１１は、ゴミ検知フラグに１が設定されているかを判断する（Ｓ６０７）。ゴミ検知フラグに１が設定されていないと、ＣＰＵ１１が判断した場合（Ｓ６０７：Ｎｏ）、ＣＰＵ１１は、本処理を終了する。
【００９８】
一方、ゴミ検知フラグに１が設定されていると、ＣＰＵ１１が判断した場合（Ｓ６０７：Ｙｅｓ）、ＣＰＵ１１は、異常画像を発生させる可能性が検出された位置、すなわち、画素値が閾値を超えない画素の位置について、その副走査位置を、ゴミ検出位置Ｑとしてゴミ記憶領域１４ａに記憶し（Ｓ６０８）、本処理を終了する。なお、画素値が閾値を超えない画素が複数ある場合、ＣＰＵ１１は、それらの各副走査位置をそれぞれゴミ記憶領域１４ａに記憶する。
【００９９】
上記第１実施形態によれば、上述した通り、ＣＩＳ１７の読取位置が、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑから、副走査方向に（Ｂ＋Ｃ）の範囲以上に離れた位置に設定されるので、ゴミなどによる異常画像の発生を高精度に抑制できる。
【０１００】
また、原稿を読み取った後の期間に検出したゴミ検出位置Ｑを、次回以降の読み取りにおけるＣＩＳ１７の読取位置に反映させるので、ゴミなどによる異常画像の発生を抑制しつつ、原稿の読み取りを早期に開始できる。また、ＣＰＵ１１が読取指示を受け付ける毎に、すなわち、１の読取ジョブ毎に、ＣＩＳ１７の読取位置を、異常画像を発生させる可能性がある位置を避けて設定するので、１の読取ジョブを好適に実施できる。
【０１０１】
次に、図７から図９を参照して、第２実施形態について説明する。第１実施形態では、ゴミ検出位置Ｑとして、主走査方向の位置（以下「主走査位置」と称す）については考慮しない構成であった。第２実施形態では、ゴミ検出位置Ｑとして主走査位置も考慮する。第２実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。なお、以下の図６から図８の各フローチャートに示す各処理は、第２実施形態の制御プログラム１２ａに従いＣＰＵ１１により実行される。
【０１０２】
図７（ａ）は、第２実施形態のゴミ記憶処理（Ｓ４１６）を示すフローチャートである。なお、本実施形態では、ＥＥＰＲＯＭ１４に設けられるゴミ記憶領域１４ａは、図７（ｂ）に示すように、ゴミ検出位置Ｑの主走査位置を記憶する第１領域１４ａ１と、ゴミ検出位置Ｑの副走査位置を記憶する第２領域１４ａ２とから構成される。
【０１０３】
本実施形態では、ゴミ検出位置Ｑは、その主走査方向の位置（すなわち、主走査位置）、および、副走査方向の位置（以下「副走査位置」と称す）が、それぞれ、第１領域１４ａ１および第２領域１４ａ２の先頭Ｐから順次記憶される。つまり、第１領域１４ａ１および第２領域１４ａ２のそれぞれにおいて、先頭Ｐから数えてＫ番目に記憶される値は、１のゴミ検出位置Ｑの主走査位置と副走査位置を示す値である。なお、第１領域１４ａ１および第２領域１４ａ２には、第１実施形態と同様に、末尾指定値Ｒが記憶される。
【０１０４】
図７（ａ）のフローチャートについて、第１実施形態のゴミ記憶処理（図６）との相違点を中心に説明する。Ｓ６０７において、ゴミ検知フラグに１が設定されていると、ＣＰＵ１１が判断した場合（Ｓ６０７：Ｙｅｓ）、ＣＰＵ１１は、画素値が閾値を超えない画素の位置について、主走査位置ＢＸおよび副走査位置ＢＹをＲＡＭ１３に記憶する（Ｓ７０１，Ｓ７０２）。
【０１０５】
ＣＰＵ１１は、ＣＩＳ素子破損判定処理を実行する（Ｓ７０３）。詳細は図８を参照して後述するが、ＣＩＳ素子破損判定処理（Ｓ７０３）は、基準板６０を読み取った画像データにおける異常が、ＣＩＳ１７を構成するイメージセンサの受光素子の異常によるものであるかを判定する処理である。
【０１０６】
ＣＩＳ素子破損判定処理（Ｓ７０３）にて、画像データの異常が受光素子の破損によるものでないと、ＣＰＵ１１が判定した場合（Ｓ７０４：Ｎｏ）、ＣＰＵ１１は、ＲＡＭ１３に記憶されている主走査位置ＢＸを、ゴミ記憶領域１４ａにおける第１領域１４ａ１に記憶する（Ｓ７０５）。次に、ＣＰＵ１１は、ＲＡＭ１３に記憶されている副走査位置ＢＹを、ゴミ記憶領域１４ａにおける第２領域１４ａ２に記憶し（Ｓ７０６）、本処理を終了する。
【０１０７】
一方、ＣＩＳ素子破損判定処理（Ｓ７０３）にて、画像データの異常が受光素子の破損によるものであると、ＣＰＵ１１が判定した場合（Ｓ７０４：Ｙｅｓ）、ＣＰＵ１１は、表示部１６に表示するなど、所定のエラー報知を実行し（Ｓ７０７）、本処理を終了する。
【０１０８】
Ｓ７０４〜Ｓ７０７の処理によれば、画像データの異常が受光素子の破損によるものであると判定された場合には、異常が検出された位置がゴミ記憶領域１４ａに記憶されない。画像データの異常が受光素子の破損によるものである場合、当該異常のあると検出された位置を避けるように読取位置を設定したとしても、異常画像の発生が解消されることはない。よって、かかる場合には、異常があると検出されたデータをゴミ記憶領域１４ａに記憶させないことにより、ＥＥＰＲＯＭ１４の記憶容量の消費を抑制できる。また、かかる場合にエラーを報知することにより、スキャナ１０を早期に修理に出すことができ、早期に正常な状態に戻すことができる。
【０１０９】
図８は、上述したＣＩＳ素子破損判定処理（Ｓ７０３）を示すフローチャートである。ＣＰＵ１１は、ゴミ記憶領域１４ａの第２領域１４ａ２に記憶される各副走査位置の値を、ＧＹ配列としてＲＡＭ１３に格納する（Ｓ８０１）。ＣＰＵ１１は、ゴミ記憶領域１４ａの第１領域１４ａ１に記憶される各主走査位置の値を、ＧＸ配列としてＲＡＭ１３に格納する（Ｓ８０２）。
【０１１０】
ＣＰＵ１１は、変数ｉを０に設定する（Ｓ８０３）。ＣＰＵ１１は、ＧＸ配列におけるＧＸ［ｉ］の値が、過去のゴミ記憶処理によるＳ７０５にてＲＡＭ１３に記憶された主走査位置ＢＸの値に等しいかを判断する（Ｓ８０４）。両値が等しいとＣＰＵ１１が判断した場合（Ｓ８０４：Ｙｅｓ）、ＣＰＵ１１は、−Ｎ＜ＧＹ［ｉ］−ＢＹ＜Ｎが満たされるかを判断する（Ｓ８０５）。閾値Ｎの単位は画素である。つまり、ＣＰＵ１１は、ＧＹ配列におけるＧＹ［ｉ］とＳ７０６にてＲＡＭ１３に記憶された副走査位置ＢＹとの間の距離が、Ｎ画素未満であるかを判断する。なお、閾値Ｎの値としては、読取解像度の値に応じて異なる。例えば、読取解像度が３００ｄｐｉである場合には、Ｎ＝１０（画素）である。この場合、読取解像度が６００ｄｐｉになると、Ｎ＝２０（画素）となる。
【０１１１】
−Ｎ＜ＧＹ［ｉ］−ＢＹ＜Ｎが満たされないと、ＣＰＵ１１が判断した場合、すなわち、ＧＹ［ｉ］と副走査位置ＢＹとの間の距離がＮ画素以上離れている場合（Ｓ８０５：Ｎｏ）、ＣＰＵ１１は、ＧＸ［ｉ］とＧＹ［ｉ］とにより特定される位置と、主走査位置ＢＸの値と副走査位置ＢＹの値とにより特定される位置における画像データの異常を、受光素子の破損によるものであるとみなす。よって、かかる場合、ＣＰＵ１１は、Ｓ８０６〜Ｓ８０９の処理を実行し、本処理を終了する。
【０１１２】
具体的に、ＣＰＵ１１は、ＧＸ配列からＧＸ［ｉ］を削除し、ＧＹ配列からＧＹ［ｉ］を削除する（Ｓ８０６）。ＣＰＵ１１は、主走査位置ＢＸの値および副走査位置ＢＹの値をＲＡＭ１３から削除する（Ｓ８０７）。ＣＰＵ１１は、ゴミ記憶領域１４ａの第１領域１４ａ１および第２領域１４ａ２から、Ｓ８０６にて削除したＧＸ［ｉ］およびＧＹ［ｉ］に相当する各値を削除する（Ｓ８０８）。ＣＰＵ１１は、ゴミ記憶領域１４ａの第１領域１４ａ１および第２領域１４ａ２において、各値を先頭側に詰める（Ｓ８０９）。
【０１１３】
一方、ＧＸ［ｉ］の値と主走査位置ＢＸの値とが等しくないと、ＣＰＵ１１が判断した場合（Ｓ８０４：Ｎｏ）、ＣＰＵ１１は、処理をＳ８１０に移行する。−Ｎ＜ＧＹ［ｉ］−ＢＹ＜Ｎが満たされると、ＣＰＵ１１が判断した場合（Ｓ８０５：Ｙｅｓ）、ＣＰＵ１１は、処理をＳ８１０に移行する。
【０１１４】
Ｓ８１０において、ＣＰＵ１１は、変数ｉに１を加算する（Ｓ８１０）。ＣＰＵ１１は、ＧＸ［ｉ］の値が、末尾指定値Ｒの６５５３５であるかを判断する（Ｓ８１１）。ＧＸ［ｉ］の値が６５５３５でないと、ＣＰＵ１１が判断した場合（Ｓ８１１：Ｎｏ）、ＣＰＵ１１は、処理をＳ８０４に移行する。一方、ＧＸ［ｉ］の値が６５５３５であると、ＣＰＵ１１が判断した場合（Ｓ８１１：Ｙｅｓ）、ＣＰＵ１１は、本処理を終了する。
【０１１５】
上記ＣＩＳ素子破損判定処理（Ｓ７０３）によれば、主走査位置ＢＸと主走査方向に同じ位置であり、かつ、副走査位置ＢＹと閾値Ｎ以上離れた位置が、ゴミ記憶領域１４ａの第１領域１４ａ１および第２領域１４ａ２にゴミ検出位置Ｑとして記憶されている場合には、ＣＰＵ１１は、受光素子が破損したと判定する。
【０１１６】
なお、主走査位置ＢＸと副走査位置ＢＹとの組が複数組存在する場合には、各組について、主走査位置が一致し、副走査方向ＢＹの距離が閾値Ｎ以上離れているかを判断する。該当する場合には、受光素子が破損したと判定する。
【０１１７】
図９は、第２実施形態の読取位置設定処理（Ｓ４０２）を示すフローチャートである。ＣＰＵ１１は、ゴミ記憶領域１４ａの第２領域１４ａ２に記憶される各副走査位置の値を、ＧＹ配列としてＲＡＭ１３に格納する（Ｓ９０１）。ＣＰＵ１１は、ゴミ記憶領域１４ａの第１領域１４ａ１に記憶される各主走査位置の値を、ＧＸ配列としてＲＡＭ１３に格納する（Ｓ９０２）。なお、第２実施形態の読取位置設定処理において、ゴミ記憶領域１４ａにゴミ検出位置が記憶されていない場合、すなわち、ゴミ記憶領域１４ａの先頭Ｐに末尾指定値Ｒが記憶されている場合には、ＣＰＵ１１は、Ｓ９１１およびＳ９１７の処理のみを実行する。
【０１１８】
ＣＰＵ１１は、ＧＹ配列を昇順に並び替える（Ｓ９０３）。ＣＰＵ１１は、ＧＸ配列をＧＹ配列に合わせて並び変える（Ｓ９０４）。ＣＰＵ１１は、上述したＳ５０３と同様、ばらつきＢを算出する（Ｓ９０５）。つまり、ＣＰＵ１１は、待機位置の検出誤差Ｅ１とＣＩＳ１７の移動誤差Ｅ２との和を、ばらつきＢとして算出する。ＣＰＵ１１は、変数ｉおよび変数ｊをいずれも０に設定する（Ｓ９０６）。
【０１１９】
ＣＰＵ１１は、Ｎ＞ＧＹ［ｉ＋１］−ＧＹ［ｉ］が満たされるかを判断する（Ｓ９０７）。閾値Ｎは、上述したＣＩＳ素子破損判定処理（図８）のＳ８０５にて用いた閾値と同じものである。よって、ＣＰＵ１１は、Ｓ９０７において、昇順に並び替えられたＧＹ配列における隣接する位置の距離がＮ画素未満であるかを判断する。
【０１２０】
Ｎ＞ＧＹ［ｉ＋１］−ＧＹ［ｉ］が満たされないと、ＣＰＵ１１が判断した場合（Ｓ９０７：Ｎｏ）、ＣＰＵ１１は、ＧＹ［ｉ］の値を、ＧＡ配列におけるＧＡ［ｊ］の値として設定する（Ｓ９０８）。ＧＡ配列とは、ゴミ検出位置Ｑの間隔を考慮して再配列した、ゴミ検出位置Ｑの副走査位置を示す配列である。ＧＡ配列はＲＡＭ１３に格納される。ＣＰＵ１１は、Ｓ９０８の処理後、変数ｉおよび変数ｊの値にそれぞれ１を加算し（Ｓ９０９）、処理をＳ９１０に移行する。
【０１２１】
一方、Ｎ＞ＧＹ［ｉ＋１］−ＧＹ［ｉ］が満たされると、ＣＰＵ１１が判断した場合（Ｓ９０７：Ｙｅｓ）、ＣＰＵ１１は、Ｍ＞ＧＸ［ｉ＋１］−ＧＸ［ｉ］が満たされるかを判断する（Ｓ９１８）。閾値Ｍは、閾値Ｎと同じく単位は画素であり、読取解像度の値に応じて異なる。例えば、読取解像度が３００ｄｐｉである場合には、Ｍ＝１０（画素）である。この場合、読取解像度が６００ｄｐｉになると、Ｍ＝２０（画素）となる。
【０１２２】
Ｍ＞ＧＸ［ｉ＋１］−ＧＸ［ｉ］が満たされないと、ＣＰＵ１１が判断した場合（Ｓ９１８：Ｎｏ）、ＣＰＵ１１は、処理をＳ９０８に移行する。一方、Ｍ＞ＧＸ［ｉ＋１］−ＧＸ［ｉ］が満たされると、ＣＰＵ１１が判断した場合（Ｓ９１８：Ｙｅｓ）、ＣＰＵ１１は、ＧＹ［ｉ］とＧＸ［ｉ］とにより特定されるゴミ検出位置Ｑと、ＧＹ［ｉ＋１］とＧＸ［ｉ＋１］とにより特定されるゴミ検出位置Ｑが、１まとまりのゴミに基づくものであるとみなす。よって、かかる場合、ＣＰＵ１１は、Ｓ９１９〜Ｓ９２１の処理を実行する。
【０１２３】
具体的に、ＣＰＵ１１は、ＧＡ［ｊ］として、（ＧＹ［ｉ＋１］＋ＧＹ［ｉ］−Ｎ）／２を設定する（Ｓ９１９）。ＣＰＵ１１は、ＧＡ［ｊ＋１］に６５５３４を設定する（Ｓ９２０）。ＣＰＵ１１は、ＧＡ［ｊ＋２］として、（ＧＹ［ｉ＋１］＋ＧＹ［ｉ］＋Ｎ）／２を設定する（Ｓ９２１）。ＣＰＵ１１は、Ｓ９２１の処理後、変数ｉおよび変数ｊの値にそれぞれ２を加算し（Ｓ９２２）、処理をＳ９１０に移行する。
【０１２４】
Ｓ９２０にてＧＡ［ｊ＋１］に設定される「６５５３４」という値は、ＧＡ［ｊ］からＧＡ［ｊ＋２］までの範囲が一連のゴミ領域であることを示す値（以下、この値を「連続領域指定値」と称す）である。なお、連続領域指定値としては、「６５５３４」のように、ゴミ検出位置Ｑとしては取り得ない値が採用される。
【０１２５】
よって、Ｓ９１９〜Ｓ９２１の処理によれば、ＧＹ［ｉ］とＧＹ［ｉ＋１］との距離がＮ画素より短く、かつ、ＧＸ［ｉ］とＧＸ［ｉ＋１］との距離がＭ画素より短い場合には、ＧＹ［ｉ］とＧＹ［ｉ＋１］との中心から、副走査方向に±（Ｎ／２）の範囲が一連のゴミ領域であることがＧＡ配列に設定される。
【０１２６】
Ｓ９１０において、ＣＰＵ１１は、ＧＹ［ｉ］の値が、末尾指定値Ｒの６５５３５であるかを判断する（Ｓ９１０）。ＧＹ［ｉ］の値が６５５３５でないと、ＣＰＵ１１が判断した場合（Ｓ９１０：Ｎｏ）、ＣＰＵ１１は、処理をＳ９０７に移行する。一方、ＧＹ［ｉ］の値が６５５３５であると、ＣＰＵ１１が判断した場合（Ｓ９１０：Ｙｅｓ）、ＣＰＵ１１は、上述したＳ５０２と同様に、ランダムにＹの値を決定する（Ｓ９１１）。
【０１２７】
ＣＰＵ１１は、変数ｊを０に設定する（Ｓ９１２）。ＣＰＵ１１は、ＧＡ配列におけるＧＡ［ｊ］の値が、Ｙ−（Ｂ＋Ｃ）＜ＧＡ［ｊ］＜Ｙ＋Ｂ＋Ｃの範囲を満たすかを判断する（Ｓ９１３）。Ｓ９１３の不等式は、換言すると、Ｓ９１１にてランダムに決定されたＹの値が、ＧＡ［ｊ］の値から、副走査方向に（Ｂ＋Ｃ）の範囲内に存在するか否かを判断する式に相当する。なお、Ｓ９１３の不等式において、Ｂは、Ｓ９０５にて算出されたＢの値である。Ｃは、Ｓ５０７と同様、異常画像を発生させる要因（例えば、ゴミ）の幅に応じた値として予め準備されている値である。
【０１２８】
ＧＡ［ｊ］の値がＳ９１３の不等式を満たすと、ＣＰＵ１１が判断した場合（Ｓ９１３：Ｙｅｓ）、ＣＰＵ１１は、処理をＳ９１１に移行する。つまり、Ｓ９１１にて決定されたＹの値が、ＧＡ［ｊ］の値から副走査方向に（Ｂ＋Ｃ）の範囲内に存在する場合、ＣＰＵ１１は、Ｙの値を再度ランダムに決定する。
【０１２９】
一方、ＧＡ［ｊ］の値がＳ９１３の不等式を満たさないと、ＣＰＵ１１が判断した場合（Ｓ９１３：Ｎｏ）、ＣＰＵ１１は、ＧＡ［ｊ］の値が連続領域指定値（本実施形態では、６５５３４）であるかを判断する（Ｓ９１４）。ＧＡ［ｊ］＝６５５３４であると、ＣＰＵ１１が判断した場合（Ｓ９１４：Ｙｅｓ）、ＣＰＵ１１は、ＧＡ［ｊ］＜Ｙ＜ＧＡ［ｊ＋２］＋Ｂ＋Ｃが満たされるかを判断する（Ｓ９２３）。
【０１３０】
Ｓ９２３の不等式は、換言すると、Ｓ９１１にてランダムに決定されたＹの値が、ＧＡ［ｊ］と、ＧＡ［ｊ＋２］から副走査方向におけるＧＡ［ｊ］とは反対側に（Ｂ＋Ｃ）だけ離れた位置との間に存在するか否かを判断する式に相当する。Ｙの値がＳ９２３の不等式を満たすと、ＣＰＵ１１が判断した場合（Ｓ９２３：Ｙｅｓ）、ＣＰＵ１１は、処理をＳ９１１に移行する。つまり、Ｓ９１１にて決定されたＹの値が、ＧＡ［ｊ］からＧＡ［ｊ＋２］までの範囲の両端から、それぞれ副走査方向に（Ｂ＋Ｃ）の範囲内に存在する場合、ＣＰＵ１１は、Ｙの値を再度ランダムに決定する。
【０１３１】
一方、Ｙの値がＳ９２３の不等式を満たさないと、ＣＰＵ１１が判断した場合（Ｓ９２３：Ｎｏ）、ＣＰＵ１１は、変数ｊの値に２を加算する（Ｓ９２４）。また、Ｓ９１４において、ＧＡ［ｊ］＝６５５３４でないと、ＣＰＵ１１が判断した場合（Ｓ９１４：Ｎｏ）、ＣＰＵ１１は、変数ｊの値に１を加算する（Ｓ９１５）。
【０１３２】
ＣＰＵ１１は、Ｓ９１５またはＳ９２４の処理後、ＧＡ［ｊ］の値が、末尾指定値Ｒの６５５３５であるかを判断する（Ｓ９１６）。ＧＡ［ｊ］の値が６５５３５でないと、ＣＰＵ１１が判断した場合（Ｓ９１６：Ｎｏ）、ＣＰＵ１１は、処理をＳ９１３に移行する。つまり、ＧＡ配列における次の値について、Ｓ９１３の処理を実行する。一方、ＧＡ［ｊ］の値が６５５３５であると、ＣＰＵ１１が判断した場合（Ｓ９１６：Ｙｅｓ）、ＣＰＵ１１は、読取位置をＹに設定し（Ｓ９１７）、本処理を終了する。
【０１３３】
上記第２実施形態によれば、ゴミ検出位置Ｑの副走査位置だけでなく、主走査位置も考慮するので、異常画像の発生をより好適に抑制できる。また、主走査位置を考慮したことにより、原稿台の汚れと、ＣＩＳ１７の受光素子の破損とを区別して処理することができる。
【０１３４】
また、２つのゴミ検出位置Ｑが近い位置にある場合には、それらのゴミ検出位置Ｑは共通するゴミに起因する可能性が高い。よって、２つのゴミ検出位置Ｑの距離が短い場合には、それらのゴミ検出位置Ｑの間もＣＩＳ１７の読取位置の候補から除外することにより、異常画像の発生を好適に抑制し得る。
【０１３５】
また、２つのゴミ検出位置Ｑが近い位置にある場合であっても、ＣＩＳ１７の読取位置が、一方のゴミ検出位置Ｑから副走査方向に（Ｂ＋Ｃ）の範囲以上に離れ、かつ、他方のゴミ検出位置Ｑから副走査方向に（Ｂ＋Ｃ）の範囲以上に離れた位置に設定される。よって、本実施形態においても、第１実施形態と同様に、ゴミなどによる異常画像の発生を高精度に抑制できる。
【０１３６】
次に、図１０（ａ）を参照して、第３実施形態について説明する。上述した第１実施形態では、読取位置の候補としてランダムに選択されたＹの値が、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑから所定範囲以上離れていることを条件として、選択されたＹの値を読取位置として決定する構成とした。
【０１３７】
第３実施形態では、異常画像を発生させる可能性が検出される毎に、読取位置を、第２プラテンガラス４５の副走査方向における原点（例えば、矢印Ｂ方向の端）の側から、当該原点から離れる側に所定範囲だけ離れた位置に移動させる。つまり、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑが示す位置のうち、第２プラテンガラス４５の副走査方向における原点から最も離れた位置から所定範囲だけ離れた位置に、読取位置を移動させる。第３実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。
【０１３８】
図１０（ａ）は、第３実施形態の読取位置設定処理（Ｓ４０２）を示すフローチャートである。本処理は、第３実施形態の制御プログラム１２ａに従いＣＰＵ１１により実行される。ＣＰＵ１１は、ゴミ記憶領域１４ａに記憶される値のうち、最終のゴミ検出位置Ｑを、変数Ａに設定する（Ｓ１００１）。具体的に、ＣＰＵ１１は、ゴミ記憶領域１４ａに記憶される値のうち、末尾指定値Ｒの直前に記憶されているゴミ検出位置Ｑを取得する。
【０１３９】
なお、ゴミ記憶領域１４ａにゴミ検出位置が記憶されていない場合、ＣＰＵ１１は、Ｓ１００１において、読み取りの初期位置として予め決められている値を変数Ａに設定する。読み取りの初期位置は、範囲Ｗ内の値であることが条件であり、例えば、範囲Ｗにおける最も原点側の値である「０」や、範囲Ｗにおける副走査方向の中央の値を例示できる。あるいは、範囲Ｗの範囲内の値であれば、原点や中央などの特定の位置でなく、「２００」などの適当な値を読み取りの初期位置としてもよい。
【０１４０】
なお、本実施形態では、異常画像を発生させる可能性が検出される毎に、読取位置が、第２プラテンガラス４５の副走査方向における原点の側から、当該原点から離れる側に順次移動するので、Ｓ１００１にて取得される値は、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑのうち、第２プラテンガラス４５の副走査方向における原点から最も離れた位置を示すゴミ検出位置Ｑである。
【０１４１】
ＣＰＵ１１は、上述したＳ５０３と同様、ばらつきＢを算出する（Ｓ１００２）。つまり、ＣＰＵ１１は、待機位置の検出誤差Ｅ１とＣＩＳ１７の移動誤差Ｅ２との和を、ばらつきＢとして算出する。ＣＰＵ１１は、Ｓ１００１にて設定された変数Ａの値と、Ｓ１００２にて算出されたばらつきＢの値と、ラインエンド割込処理による１割込あたりのモータ１８ａのステップ数Ｉとの和を、読取位置Ｙとして設定する（Ｓ１００３）。
【０１４２】
ＣＰＵ１１は、Ｓ１００３にて設定されたＹの値が、範囲Ｗの範囲内であるかを判断する（Ｓ１００４）。Ｙの値が範囲Ｗの範囲内であると、ＣＰＵ１１が判断した場合（Ｓ１００４：Ｙｅｓ）、ＣＰＵ１１は、読取位置をＹに設定し（Ｓ１００５）、本処理を終了する。
【０１４３】
一方、Ｙの値が範囲Ｗの範囲内でないと、ＣＰＵ１１が判断した場合（Ｓ１００４：Ｎｏ）、ＣＰＵ１１は、表示部１６に表示するなど、所定のエラー報知を実行し（Ｓ１００６）、本処理を終了する。なお、本実施形態では、Ｓ１００６のエラー報知が実行された場合、ＣＰＵ１１は、図４のＡＤＦ読取処理におけるＳ４０３以降の処理を実行しないものとする。
【０１４４】
上記第３実施形態によれば、ＣＩＳ１７の読取位置が、ゴミ記憶領域１４ａに記憶されるゴミ検出位置Ｑから、（Ｂ＋Ｃ）と、ラインエンド割込処理による１割込あたりのモータ１８ａのステップ数Ｉとの和だけ離れた位置に設定される。よって、ＣＩＳ１７の読取位置を、ゴミなどによる異常画像の発生を高精度に抑制できる位置に、簡易に設定できる。
【０１４５】
特に、第２プラテンガラス４５の副走査方向における原点から最も離れた位置を示すゴミ検出位置Ｑを用いるので、ＣＩＳ１７の読取位置を、第２プラテンガラス４５の副走査方向における原点側から副走査方向に離れる方向に順次設定できる。よって、ゴミ検出位置Ｑから容易にＣＩＳ１７の読取位置決定できる。
【０１４６】
次に、図１０（ｂ）を参照して、第４実施形態について説明する。本実施形態では、スキャナ１０の電源がオンに切り替えられたタイミングで、異常画像を発生させる可能性がある位置を検出する。第４実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。
【０１４７】
図１０（ｂ）は、電源ＯＮ時処理を示すフローチャートである。本処理は、スキャナ１０の電源をオフからオンに切り替えた場合に開始される。本処理は、第４実施形態の制御プログラム１２ａに従いＣＰＵ１１により実行される。なお、ＣＰＵ１１は、本処理が行われている間は、読取指示を受け付けないものとする。
【０１４８】
ＣＰＵ１１は、初期化処理を実行する（Ｓ１０２１）。初期化処理では、ＣＩＳ１７を初期位置に設定する処理や、ＡＤＦ１９に残っている原稿を排紙する処理などが実行される。ＣＰＵ１１は、読取位置設定処理（Ｓ１０２２）を実行する。読取位置設定処理（Ｓ１０２２）は、上述した読取位置設定処理（Ｓ４０２）と同様の処理である。ＣＰＵ１１は、読取駆動部１８を用いて、ＣＩＳ１７を、読取位置設定処理（Ｓ１０２２）にて設定された読取位置に配置する（Ｓ１０２３）。
【０１４９】
ＣＰＵ１１は、ゴミ記憶処理（Ｓ１０２４）を実行する。ゴミ記憶処理（Ｓ１０２４）は、上述したゴミ記憶処理（Ｓ４１６）と同様の処理である。ＣＰＵ１１は、ゴミ記憶処理（Ｓ１０２４）を実行後、上述したＳ４１７〜Ｓ４１９と同様に、Ｓ１０２５〜Ｓ１０２７の処理を実行し、本処理を終了する。なお、本実施形態では、Ｓ１０２５において、ＣＰＵ１１は、モータ制御部１８を駆動して、ＣＩＳ１７を、電源投入時の初期位置から、副走査方向の下流側（矢印Ｆ方向）に移動させながら、ＣＩＳ１７による読み取りを１ライン分ずつ実行する。
【０１５０】
上記第４実施形態によれば、スキャナ１０の電源がオンに切り替えられたタイミングで、読取指示が行われる前に、異常画像を発生させる可能性がある位置を検出する。よって、スキャナ１０の電源がオンに切り替えられた後、最初の読取指示に基づく原稿の読み取りを好適に行うことができる。
【０１５１】
次に、図１０（ｃ）を参照して、第５実施形態について説明する。本実施形態では、予め決められたタイミングで、異常画像を発生させる可能性がある位置を検出する。第５実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。
【０１５２】
図１０（ｃ）は、定期処理を示すフローチャートである。本処理は、所定期間（例えば、１日）毎に開始される。本処理は、第５実施形態の制御プログラム１２ａに従いＣＰＵ１１により実行される。
【０１５３】
ＣＰＵ１１は、読取位置設定処理（Ｓ１０４１）を実行する。読取位置設定処理（Ｓ１０４１）は、上述した読取位置設定処理（Ｓ４０２）と同様の処理である。ＣＰＵ１１は、読取駆動部１８を用いて、ＣＩＳ１７を、読取位置設定処理（Ｓ１０４１）にて設定された読取位置に配置する（Ｓ１０４２）。
【０１５４】
ＣＰＵ１１は、ゴミ記憶処理（Ｓ１０４３）を実行する。ゴミ記憶処理（Ｓ１０４３）は、上述したゴミ記憶処理（Ｓ４１６）と同様の処理である。ＣＰＵ１１は、上述したＳ４１７〜Ｓ４１９と同様に、Ｓ１０４４〜Ｓ１０４５の処理を実行し、本処理を終了する。なお、本実施形態では、Ｓ１０４４において、ＣＰＵ１１は、モータ制御部１８を駆動して、ＣＩＳ１７を、待機位置から、副走査方向の下流側（矢印Ｆ方向）に移動させながら、ＣＩＳ１７による読み取りを１ライン分ずつ実行する。
【０１５５】
上記第５実施形態によれば、定期的なタイミングで、読取指示が行われる前に、異常画像を発生させる可能性がある位置を検出する。よって、定期的なタイミングで、ゴミ検出位置Ｑをゴミ検出領域１４ａに記憶することができるので、読取指示に基づく原稿の読み取りを常に良い状態で行うことができる。なお、原稿カバー４６が開姿勢となった場合など、予め決められたタイミングで上記の定期処理を実行する構成としてもよい。
【０１５６】
次に、図１１を参照して、第６実施形態について説明する。第１実施形態では、１の読取ジョブ毎に、ＣＩＳ１７の読取位置を、異常画像を発生させる可能性がある位置を避けて設定する構成とした。これに代えて、第６実施形態では、１ページ分の原稿の読み取り毎に、異常画像を発生させる可能性がある位置を検出し、検出された位置を、次ページの原稿の読み取り時に反映させる。
【０１５７】
第６実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。図１１は、第６実施形態のＡＤＦ読取処理を示すフローチャートである。本処理は、第６実施形態の制御プログラム１２ａに従いＣＰＵ１１により実行される。
【０１５８】
第１実施形態のＡＤＦ読取処理（図４）との相違点を中心に説明する。１ページ分の原稿の読み取りの完了後、フロントセンサ２０からオン信号が入力されたと、ＣＰＵ１１が判断した場合（Ｓ４１４：Ｙｅｓ）、ＣＰＵ１１は、ゴミ記憶処理を実行する（Ｓ１１０１）。ゴミ記憶処理（Ｓ１００１）は、上述したゴミ記憶処理（Ｓ４１６）と同様の処理である。
【０１５９】
次に、ＣＰＵ１１は、読取位置設定処理を実行する（Ｓ１１０２）。読取位置設定処理（Ｓ１１０２）は、上述した読取位置設定処理（Ｓ４０２）と同様の処理である。ＣＰＵ１１は、読取駆動部１８を用いて、ＣＩＳ１７を、副走査方向に移動させ、読取位置設定処理（Ｓ１１０２）にて設定された読取位置に配置する（Ｓ１１０３）。ＣＰＵ１１は、Ｓ１１０３の処理後、処理をＳ４０６に移行する。
【０１６０】
上記第６実施形態によれば、１ページ分の読み取り毎に、ＣＩＳ１７の読取位置を、ゴミ検出位置Ｑを避けた位置に配置することができる。よって、１ページを読み取った際に第２プラテンガラス４５にゴミなどが付着することがあっても、その影響を避けることができる。これにより、各ページの原稿の読み取りを好適に行うことができる。
【０１６１】
上記実施形態において、スキャナ１０が、画像読取装置の一例である。制御プログラム１２ａが、画像読取プログラムの一例である。ＣＰＵ１１が、制御部の一例である。ＡＤＦ１９が、原稿搬送部の一例である。第２プラテンガラス４５が、原稿台の一例である。ＣＩＳ１７が、読取部の一例である。モータ制御部１８，モータ１８ａが、移動部の一例である。モータ１８ａが、ステッピングモータの一例である。ＥＥＰＲＯＭ１４が、記憶部の一例である。駆動テーブルが、移動情報の一例である。基準板６０が、基準板の一例である。黒領域７２ａ，７２ｃと白基準部７１との境界が、基準位置の一例である。範囲Ｗが、読取許容範囲の一例である。
【０１６２】
Ｓ６０１〜Ｓ６０６，Ｓ６０９の処理を実行するＣＰＵ１１が、第１検出手段の一例である。Ｓ６０８，Ｓ７０５，Ｓ７０６処理を実行するＣＰＵ１１が、位置記憶手段の一例である。Ｓ４０２，Ｓ１１０２の処理を実行するＣＰＵ１１が、読取位置設定手段の一例である。Ｓ４０１の処理を実行するＣＰＵ１１が、指示受付手段の一例である。Ｓ４０４，Ｓ１１０３の処理を実行するＣＰＵ１１が、移動手段の一例である。Ｓ４０９の処理を実行するＣＰＵ１１が、第１読取手段の一例である。
【０１６３】
Ｓ４１７，Ｓ１０２５，Ｓ１０４４の処理を実行するＣＰＵ１１が、第２読取手段の一例である。Ｓ４１８，Ｓ１０２６，Ｓ１０４５の処理を実行するＣＰＵ１１が、第２検出手段の一例である。Ｓ４１９，Ｓ１０２７，Ｓ１０４６の処理を実行するＣＰＵ１１が、移動停止手段の一例である。Ｓ５０３，Ｓ９０５，Ｓ１００２の処理を実行するＣＰＵ１１が、範囲幅算出手段，第１算出手段，第２算出手段，第３算出手段の一例である。Ｓ５０２，Ｓ９１１の処理を実行するＣＰＵ１１が、第１選択手段の一例である。Ｓ５０７，Ｓ９１３の処理を実行するＣＰＵ１１が、第１判断手段の一例である。
【０１６４】
Ｓ５０６の処理を実行するＣＰＵ１１が、計数手段の一例である。Ｓ５１２の処理を実行するＣＰＵ１１が、第２選択手段の一例である。Ｓ５１４の処理を実行するＣＰＵ１１が、第３判断手段の一例である。Ｓ５１１の処理を実行するＣＰＵ１１が、第４判断手段の一例である。Ｓ５１７の処理を実行するＣＰＵ１１が、第２変更手段の一例である。Ｓ１００１の処理を実行するＣＰＵ１１が、位置取得手段の一例である。
【０１６５】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【０１６６】
例えば、上記実施形態では、本発明の画像読取装置として、スキャナ１０を例示したが、ＡＤＦを用いた原稿の読み取りを実行可能な装置であれば、多機能周辺装置など種々の装置を採用できる。
【０１６７】
上記第２実施形態では、２つのゴミ検出位置Ｑについて、主走査位置間の距離が所定距離以下であり、かつ、副走査位置間の距離が所定距離以下である場合に、これら２つのゴミ検出位置Ｑの間が、ＣＩＳ１７の読取位置から除外されるよう構成した。これに代えて、２つのゴミ検出位置Ｑについて、主走査位置間の距離または副走査位置間の距離のいずれか一方が所定距離以下である場合に、これら２つのゴミ検出位置Ｑの間が、ＣＩＳ１７の読取位置から除外されるようにしてもよい。
【０１６８】
上記実施形態では、ＣＩＳ１７の読取位置は、画質を損なわない範囲として予め決められている範囲Ｗ内で設定する構成としたが、範囲Ｗ内にゴミ検出位置Ｑを副走査方向に避ける領域が存在しない場合には、ＣＩＳ１７の読取位置を、第２プラテンガラス４５の副走査方向の範囲であり、かつ、ＣＩＳ１７の読取位置を範囲Ｗの外に設定する構成としてもよい。よって、範囲Ｗ内にゴミ検出位置Ｑを副走査方向に避ける領域が存在しない場合であっても、原稿の読み取りが実行されないという状況を抑制できる。また、範囲Ｗを考慮せず、第２プラテンガラス４５の副走査方向の範囲内で、ＣＩＳ１７の読取位置を設定する構成としてもよい。
【０１６９】
上記第１〜第３および第６施形態では、原稿を読み取った後の期間にゴミ記憶処理（Ｓ４１６）を実行する構成としたが、原稿を読み取る前に、ゴミ記憶処理（Ｓ４１６）を実行する構成としてもよい。
【０１７０】
上記第３実施形態では、異常画像を発生させる可能性が検出される毎に、読取位置を、第２プラテンガラス４５の副走査方向における原点の側から、当該原点から離れる側に所定範囲だけ離れた位置に移動させる構成であった。これに代えて、異常画像を発生させる可能性が検出される毎に、読取位置を、第２プラテンガラス４５の副走査方向における原点とは反対の端側から、当該端から離れる側に所定範囲だけ離れた位置に移動させる構成であってもよい。本変形例では、Ｓ１００３において、ＣＰＵ１１は、Ａ−（Ｂ−Ｃ−Ｉ）を、Ｙとして算出する。
【０１７１】
上記第２実施形態においても、第１実施形態と同様に、Ｓ９１１にてランダムにＹの値を決定する回数を計数し、所定回数を越えた場合に、駆動テーブルを切り替えたり、ゴミ検出位置Ｑに対する範囲設けることなく、ＣＩＳ１７の読取位置がゴミ検出位置Ｑに一致するかを判断したりする構成としてもよい。
【０１７２】
上記第３実施形態では、Ｓ１００４において、Ｙの値が範囲Ｗの範囲内でないと、ＣＰＵ１１が判断した場合に、エラー報知が実行される構成とした。エラー報知でなく、第１実施形態と同様、ＣＩＳ１７の移動解像度が適用中のものより高解像度となるよう、駆動テーブルを切り替える構成としてもよい。
【０１７３】
上記実施形態では、ゴミ検出位置Ｑに対し、ＣＩＳ１７の読取位置から除外する範囲が（Ｂ＋Ｃ）としたが、Ｃを考慮せず、ばらつきＢのみとしてもよい。また、上記実施形態では、ばらつきＢ＝待機位置の検出誤差Ｅ１＋ＣＩＳ１７の移動誤差Ｅ２として算出したが、ばらつきＢ＝待機位置の検出誤差Ｅ１や、ばらつきＢ＝ＣＩＳ１７の移動誤差Ｅ２としてもよい。また、ばらつきＢを、待機位置の検出誤差Ｅ１とＣＩＳ１７の移動誤差Ｅ２との和に所定のマージンを加えた値としたり、Ｅ１とＥ２にそれぞれ所定の係数を掛けたものの和としてもよい。
【０１７４】
上記実施形態では、ＣＰＵ１１が、図４（ａ），図５，図６，図７（ａ），図８〜図１１に記載される各処理を実行する構成として説明したが、これら各図に記載される各処理を、複数のＣＰＵが協同的に実行する構成としてもよい。また、ＡＳＩＣなどのＩＣが、単独で、または、複数によって協働的に、上記各図に記載される各処理を実行する構成してもよい。また、ＣＰＵ１１とＡＳＩＣなどのＩＣとが協同して、上記各図に記載される各処理を実行する構成してもよい。
【０１７５】
図４（ａ），図５，図６，図７（ａ），図８〜図１１に記載される各処理のうち、一部の処理を、特許請求の範囲における独立請求項から逸脱しない範囲で、省略または変更してもよい。例えば、図５において、Ｓ５１１，Ｓ５１７の処理を省略する構成としてもよい。また、Ｓ５１２〜Ｓ５１６の処理を省略する構成としてもよい。また、上記実施形態により説明した各特徴や、上述した各変形例を適宜組み合わせて実施する構成としてもよい。
【符号の説明】
【０１７６】
１０：スキャナ，１２ａ：制御プログラム
【図１】
0006405841.tif 000002
【図２】
0006405841.tif 000003
【図３】
0006405841.tif 000004
【図４】
0006405841.tif 000005
【図５】
0006405841.tif 000006
【図６】
0006405841.tif 000007
【図７】
0006405841.tif 000008
【図８】
0006405841.tif 000009
【図９】
0006405841.tif 000010
【図１０】
0006405841.tif 000011
【図１１】
0006405841.tif 000012