画像読取装置及びその制御方法、プログラム
【課題】原稿分離性能を損なわずに、良好な品質の画像データを取得できる画像読取装置及びその制御方法、プログラムを提供する。
【解決手段】画像読取装置は、原稿を給紙する給紙部と、給紙される原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、装置の動作を制御する制御部とを備える。画像読取装置は、読取部によって得られる原稿の画像データを圧縮し、得られる圧縮画像データを記憶部に記憶する。画像読取装置は、得られる圧縮画像データの圧縮画像データサイズを検出して、給紙部によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する。画像読取装置は、給紙部によって新たな原稿を給紙しようとする際に、最大の圧縮画像データサイズが記憶部の空き容量未満である場合、給紙部による新たな原稿の給紙を許可する。
【解決手段】画像読取装置は、原稿を給紙する給紙部と、給紙される原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、装置の動作を制御する制御部とを備える。画像読取装置は、読取部によって得られる原稿の画像データを圧縮し、得られる圧縮画像データを記憶部に記憶する。画像読取装置は、得られる圧縮画像データの圧縮画像データサイズを検出して、給紙部によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する。画像読取装置は、給紙部によって新たな原稿を給紙しようとする際に、最大の圧縮画像データサイズが記憶部の空き容量未満である場合、給紙部による新たな原稿の給紙を許可する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、原稿の画像を読み取る画像読取装置及びその制御方法、プログラムに関するものである。
【背景技術】
【0002】
一般的に知られている画像読取装置は、固定された画像読取センサの読取面近傍に原稿を搬送、通過させ、画像読取センサから得られた画像データを、装置内部に搭載されたRAM等の記憶部に一時的に蓄える。そして、画像読取装置は、蓄えた画像データを、ホストコンピュータ等の情報処理装置へUSBやSCSI等の転送部を用いて転送する。
【0003】
画像読取装置に搭載されるCISやCCD等の画像読取センサは、一塊の画像データを規定の速度で一時に読み出さなければ動作しないため、画像読取装置内部に搭載したRAM等の記憶部に空き容量がなければ、画像読取動作を行うことができない。このため、円滑な画像読取動作を行うには、画像読取装置内部に大容量の記憶部を搭載することが望まれる。
【0004】
しかし、画像読取装置に搭載される記憶部は、筐体の小型化によるサイズの制約や低価格化によるコストの制約からその容量が制限される。このため、画像読取装置には、原稿一枚分の原稿画像を蓄えられるだけの記憶容量を持たない、小容量の記憶部しか搭載していないものがある。
【0005】
このような画像読取装置では、情報処理装置への画像データの転送速度が低下すると、画像読取動作の途中で記憶部の空きがなくなってしまうことがある。この場合、原稿の搬送を一時停止させて画像読取動作を中断し、情報処理装置が記憶部に蓄えられた画像データを読み出して、記憶部に空き容量が生まれるのを待ってから、画像読取動作を再開させる必要がある。
【0006】
このように、画像読取中に原稿の搬送を一時停止させると、搬送部に存在する機械的なガタにより、画像読取部による画像読取処理と、搬送部による原稿の搬送処理を完全に同期させることが極めて困難になり、画像データの品質が劣化してしまう問題がある。
【0007】
この問題を防ぐため、複写機等の高価格な画像読取装置では、記憶部の空き容量が低下した場合には、原稿が画像読取部の前を通過する以前に画像読取速度を低下させ、一枚の原稿画像の途中で画像読取を中断させないようにするものがある(特許文献1)。
【0008】
一方、近年の画像読取装置では、より高速に画像読取動作を実行するため、画像読取センサから画像データを取得した直後、ハードロジック等のハードウェアによってJPEG等の圧縮形式で画像データを即座に圧縮する。そして、この画像読取装置は、その圧縮画像データを記憶部に一時的に蓄えてから、ホストコンピュータ等の情報処理装置へ転送することが可能である。
【0009】
このような画像読取装置では、記憶部に一時的に蓄えられる画像データのサイズを節約できるため、より効率良く記憶部の容量を活用できる。加えて、画像読取装置と情報処理装置間のデータ転送速度の影響を受けて画像読取速度が低下する可能性が減り、より良好な速度で原稿束の画像読取を行うことができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平6―315072号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記の原稿搬送速度を可変させる従来の技術を、簡易な搬送機構を持つ安価な画像読取装置に適用すると、原稿束を分離する原稿分離機構の駆動速度も同時に可変してしまうものがある。簡易な原稿分離機構は、特定の搬送速度で効率良く動作するように設計されていることが多く、その駆動速度を可変にすると、原稿分離性能が低下し、重送やジャム、原稿破損等の問題を引き起こすことがある。
【0012】
本発明の目的は、原稿分離性能を損なわずに、良好な品質の画像データを取得できる画像読取装置及びその制御方法、プログラムを提供することにある。
【課題を解決するための手段】
【0013】
上記の目的を達成するための本発明による画像読取装置は以下の構成を備える。即ち、
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備える。
【発明の効果】
【0014】
本発明によれば、原稿分離性能を損なわずに、良好な品質の画像データを取得できる画像読取装置及びその制御方法、プログラムを提供できる。
【図面の簡単な説明】
【0015】
【図1】実施形態1の画像読取装置の外観を示す斜視図である。
【図2】実施形態1の画像読取装置の概略断面図である。
【図3】実施形態1の画像読取装置の内部構成を示すブロック図である。
【図4】実施形態1の画像読取装置の画像読取動作を表すフローチャートである。
【図5】実施形態1の画像読取装置の画像転送動作を表すフローチャートである。
【図6】実施形態1の最大画像サイズ検出部の動作を表すフローチャートである。
【図7】実施形態1の給紙許可判定動作を表すフローチャートである。
【図8】実施形態2の画像読取装置の内部構成を示すブロック図である。
【図9】実施形態2の給紙許可空き容量記憶部と給紙時空き容量記憶部を用いる画像読取装置の動作を表すフローチャートである。
【図10】実施形態2の給紙許可判定動作を表すフローチャートである。
【図11】画像圧縮部の動作を表す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
<実施形態1>
図1は実施形態1の画像読取装置の外観を示す斜視図である。
【0017】
図1において、画像読取装置200は、複数枚の原稿(シートを含む)401を載置可能な原稿台402と、排紙された原稿401が載置される排紙台403と、原稿401の載置位置を規制する原稿規制板405とで構成される。
【0018】
図2は実施形態1の画像読取装置200の概略断面図である。
【0019】
画像読取装置200は、搬送部として、原稿を装置内部へ給紙する給紙部の一例である給紙ローラ503に追従して回転すると共に、原稿401が重送された時に逆回転して分離する分離ローラ502と、原稿401を画像読取センサ507の読取面近傍へ搬送するレジストローラ513を備える。また、画像読取装置200は、レジストローラ513に追従して回転するレジスト従動ローラ514と、搬送路上の原稿401の有無を検知する給紙センサ504と、原稿401の通過有無を検知するレジストセンサ506を備える。また、画像読取装置200は、原稿401の画像を読み取る読取部の一例である画像読取センサ507と、原稿401の排紙の有無を検知する排紙センサ511と、排紙ローラ510に追従して回転する排紙従動ローラ512とを備える。また、画像読取装置200は、給紙ローラ503、レジストローラ513、及び排紙ローラ510を駆動するメインモータ509を備える。
【0020】
図3は実施形態1の画像読取装置200の内部構成を示すブロック図である。
【0021】
図3において、画像読取装置200は、原稿401の画像を読み取る画像読取センサ507を備える。また、画像読取装置200は、読み取った画像データに対して色調補正等の所定の画像処理を行う画像処理部203と、画像処理された画像データを記憶する所定サイズの記憶部である画像メモリ204とを備える。
【0022】
さらに、画像読取装置200は、原稿401を搬送するために、メインモータ509を駆動するモータ駆動制御部205と、給紙センサ504、レジストセンサ506及び排紙センサ511を制御する原稿検知センサ制御部206とを備える。また、画像読取装置200は、本装置を制御するCPU208を備える。また、画像読取装置200は、CPU208が実行する各種制御プログラムを保持するフラッシュメモリ207と、演算結果等を一時的に保持するワークメモリ209とを備える。ワークメモリ209は、最大画像サイズ検出部(検出手段)270で検出される、一連の原稿401の束(原稿束)の内の1枚の読取原稿に対応する圧縮画像データサイズを記憶する画像サイズ記憶部219を備える。また、ワークメモリ209は、最大画像サイズ検出部270で検出される、一連の原稿401の束それぞれの読取原稿に対応する圧縮画像データサイズの内、最大の圧縮画像データサイズを記憶する最大画像サイズ記憶部220を備える。
【0023】
更に、画像読取装置200は、通信インタフェースを介して、外部装置として情報処理装置の一例であるホストコンピュータ214に画像データを送信する通信制御部210を備える。この通信制御部210による通信インタフェースは、例えば、USB、SCSI、IEEE1394等を使用できる。
【0024】
最大画像サイズ検出部270は、一連の原稿401の束の中で、最大の圧縮画像データサイズを検出する。尚、図3では、最大画像サイズ検出部270は、便宜上、1つの構成要素として示している。この最大画像サイズ検出部270は、CPU208によって実行されるソフトウェアとして実現されても良いし、専用のハードウェアとして実現されても良いし、あるいはそれらを組み合わせて実現されても良い。また、最大画像サイズ検出部270は、原稿の画像を読み取る毎に、最大の圧縮画像データサイズを検出する。
【0025】
ホストコンピュータ214には、画像読取装置200を制御するためのドライバや画像キャプチャアプリケーションがインストールされており、これらにより画像読取装置200に画像を読み取らせることが可能となっている。また、ホストコンピュータ214は、画像読取装置200と通信インタフェースで接続されており、一方で、マウス/キーボード221及びディスプレイ222に接続されている。
【0026】
次に、実施形態1の画像読取装置が行う画像読取動作について説明する。
【0027】
画像読取装置200の利用者は、まず、ホストコンピュータ214にインストールされたキャプチャアプリケーションから画像読取装置200へ、解像度や画像フォーマット等の画像読取設定を含む画像読取開始コマンドを発行する。これにより、画像読取設定を含む画像読取開始コマンドは設定データとして通信インタフェースを通して通信制御部210へと伝わる。画像読取装置200のCPU208は、通信制御部210に受信した設定データに従い、モータ駆動制御部205、画像処理部203、原稿検知センサ制御部206へ、利用者が所望する解像度、画像フォーマットで原稿401の画像を取得するための設定を行う。その後、画像読取装置200は、図4のフローチャートに示す画像読取動作と、図5のフローチャートに示す画像転送動作を実行する。
【0028】
まず、図4のフローチャートで示す画像読取動作について、詳細に説明する。
【0029】
ステップS1001で、画像読取装置200は、原稿台402に原稿401がセットされているか判定する。具体的には、一般的なメカニカルスイッチや赤外線センサ等で構成される給紙センサ504を原稿検知センサ制御部206によって制御し、状態を取得する。画像読取装置200が、原稿台402に原稿401がセットされていないと判定した場合(ステップS1001でNO)、画像読取動作を中断する。このとき、ホストコンピュータ214に原稿401がセットされていない旨を通信制御部210を制御してホストコンピュータ214に通知する。これを受けて、ホストコンピュータ214は、原稿がセットされていないことを、ディスプレイ222上にエラーメッセージとして表示しても良い。
【0030】
一方、画像読取装置200が、原稿台402に原稿401がセットされていると判定した場合(ステップS1001でYES)、ステップS1002に進む。ステップS1002で、画像読取装置200は、搬送部を駆動し、原稿401を画像読取装置200の内部へ給紙しても良いか判定する。特に、実施形態1では、後述の最大画像サイズ検出部270の出力に基づいて、給紙の可否を判定する
画像読取装置200が、給紙して良くないと判定した場合(ステップS1002でNO)、給紙して良いと判定されるまで待機する。一方、画像読取装置200が、給紙して良いと判定した場合(ステップS1002でYES)、ステップS1003に進む。
【0031】
ステップS1003で、画像読取装置200は、給紙処理を行う。まず、モータ駆動制御部205に対してメインモータ509を駆動するための制御をCPU208から行う。メインモータ509がステッピングモータ等の一般的なパルスモータである場合、モータ駆動制御部205は、メインモータ509に与える励磁パルスの出力間隔を、所定の搬送速度を実現する回転速度に到達するまで徐々に狭めていく動作を行う。メインモータ509によって給紙ローラ503及び、それに追従して回転する分離ローラ502が回転し、原稿台402に積載された原稿401の束から一枚が分離され、画像読取装置200の内部へと取り込まれる。
【0032】
ステップS1004で、画像読取装置200は、原稿401の画像データを取得すべき原稿401上の領域の先頭が画像読取センサ507の前面に到達したか判定する。この判定は、原稿401の先頭がレジストセンサ506の前面を通過した時から、メインモータ509が一定量回転したかを判定することによって行う。メインモータ509にステッピングモータ等のパルスモータを使用している場合、原稿401がレジストセンサ506を通過してから一定のパルス数をモータ駆動制御部205が出力したことをCPU208で検知する。
【0033】
画像読取装置200が、画像読取センサ507の前面に到達していないと判定した場合(ステップS1004でNO)、到達するまで待機する。一方、画像読取装置200が、画像読取センサ507の前面に到達したと判定した場合(ステップS1004でYES)、ステップS1005に進む。
【0034】
ステップS1005で、画像読取装置200は、画像メモリ204に空き容量が存在するか判定する。例えば、画像メモリ204の空き容量を一意の閾値と比較し、画像メモリ204の空き容量がその閾値以上であったら、空き容量が存在すると判定し、その閾値未満であったら、空き容量がないと判定する。
【0035】
画像読取装置200が、空き容量が存在しないと判定した場合(ステップS1005でNO)、ステップS1007に進む。ステップS1007で、画像読取装置200は、メインモータ509を停止させる処理を行う。すでにメインモータ509が停止していることがモータ駆動制御部205の状態から明らかな場合には、何も実行せずにステップS1101へ進む。一方、メインモータ509が回転しているときには、モータ駆動制御部205にメインモータ509の回転を停止する指示をCPU208から出す。モータ駆動制御部205がこの指示を受けると、メインモータ509がステッピングモータ等の一般的なパルスモータであった場合、メインモータ509に与える励磁パルスの出力間隔を、回転が停止するまで徐々に広めていく動作を行う。
【0036】
一方、画像読取装置200が、空き容量が存在すると判定した場合(ステップS1005でYES)、ステップS1006に進む。ステップS1006で、画像読取装置200は、メインモータ509を回転させる処理を行う。すでにメインモータ509が回転していることがモータ駆動制御部205の状態から明らかな場合には、何も実行せずに、ステップS1101に進む。一方、メインモータ509が回転していない場合には、モータ駆動制御部205にメインモータ509の回転を開始する指示をCPU208から出す。モータ駆動制御部205がこの指示を受けると、ステップS1003で説明した制御を行い、メインモータ509を回転させる。
【0037】
ステップS1101で、画像読取装置200は,メインモータ509が回転中であるか判定を行う。メインモータ509が停止中であった場合(ステップS1101でNO)、ステップS1005に戻る。一方、メインモータ509が回転中であった場合(ステップS1101でYES)、ステップS1008に進み、画像読取装置200は、画像読取センサ507から画像データを取得する処理を行う。実施形態1で使用する画像読取センサ507は1ライン分の画像読取素子を備えたものであり、画像処理部203によってこれらを制御することにより、画像読取センサ507の読取面近傍の画像を一時に1ライン分取得する。
【0038】
実施形態1の画像読取装置200は、CPU208によって画像処理部203へ1ライン分の画像読取コマンドを発行する時間間隔を、モータ駆動制御部205の状態に同期させて制御することによって、2次元の画像データを取得する。メインモータ509がステッピングモータ等の一般的なパルスモータであった場合、モータ駆動制御部205が規定回数だけ励磁パルスを出力するのを待って、画像処理部203へ画像読取コマンドを発行する。
【0039】
具体的には、モータ駆動制御部205がより高速でメインモータ509を回転させている場合、CPU208からより短い時間間隔で画像処理部203へ1ライン分の画像読取コマンドを発行することになる。一方、モータ駆動制御部205がより低速でメインモータ509を回転させている場合、CPU208からより長い時間間隔で画像処理部203へ1ライン分の画像読取コマンドを出すことになる。
【0040】
このように、画像読取装置200は、CPU208によってモータ回転と画像読取の同期処理を実行する。これにより、例えば、ステップS1006及びステップS1007で、画像読取途中にメインモータ509が停止及び回転再開し、所定の原稿搬送速度を実現する回転速度以外で加速、減速中であったとしても、途切れや伸びの少ない画像データを取得できる。
【0041】
ステップS1100で、画像読取装置200は、ステップS1008の処理によって取得した画像データを、画像圧縮部273によって圧縮し、随時、画像メモリ204に書き込む。画像圧縮部273の動作については、図11を用いて詳細に説明する。画像読取装置200は、画像メモリ204及びワークメモリ209で表される記憶部は、装置の仕様上、搬送部で搬送可能な(あるいは給紙部で給紙可能な)最大サイズの原稿の全領域の画像データを一時に蓄えることができない所定サイズとなっている。そのため、ステップS1008で画像読取センサ507から取得した画像データに対して逐次圧縮処理を実行するとともに、後述する画像転送動作を同時期に実行する。
【0042】
ステップS1009で、画像読取装置200は、画像データを取得すべき原稿401上原稿401の領域の後端が画像読取センサ507の前面を通過したか判定する。つまり、画像データの取得が終了したか判定する。この判定は、原稿401の先頭がレジストセンサ506の前面を通過したときから、メインモータ509が一定量回転したかを判定することによって行う。メインモータ509の回転量の判定方法については、ステップS1004で説明したとおりである。
【0043】
画像読取装置200が、画像データの取得が終了してないと判定した場合(ステップS1009でNO)、ステップS1005に戻る。一方、画像読取装置200が、画像取得が終了したと判定した場合(ステップS1009でYES)、ステップS1010に進む。
【0044】
上述したステップS1005からステップS1009までの処理を順次繰り返すことによって、画像読取装置200は、原稿401の一枚分の圧縮画像データを画像メモリ204へ書き込むことができる。
【0045】
ステップS1010で、画像読取装置200は、ステップS1100で画像圧縮部273によって変換出力された、原稿一枚分の圧縮画像データサイズをワークメモリ209の画像サイズ記憶部219に記憶する。これは、ステップS1005からステップS1009の処理を繰り返す間に、画像圧縮部273が出力した圧縮画像データサイズを、画像圧縮部273に問い合わせ、その結果をワークメモリ209の画像サイズ記憶部219に記憶する。
【0046】
ステップS1010の処理後、画像読取装置200は、再びステップS1001に戻り、給紙センサ504によって原稿台402に原稿401が存在するか判定する。
【0047】
以上の処理を実行することによって、画像読取装置200は、原稿台402に積載された原稿401の束を全て読み取り終わるまで、画像メモリ204の空き容量に追従しながら、画像読取動作を継続することになる。
【0048】
次に、ステップS1100及びステップS1010で使用する、画像圧縮部273の一例として、JPEG圧縮を行う場合の処理について詳細に説明する。
【0049】
図11の700aは、ステップS1008で画像読取センサ507が読み取るN枚目の原稿の全体領域を示したものである。画像圧縮部273は、この全体領域700aから1ライン分の画像データ700bをワークメモリ209へ一時的に格納する。以降、1ライン分の画像データの読取を繰り返し、JPEG圧縮可能な最小ライン数である8ライン分の部分領域701aの読取が終了し、8ライン分の画像データ701bがワークメモリ209に蓄積するまでこの処理を繰り返す。
【0050】
ワークメモリ209に8ライン分の画像データが格納されると、画像圧縮部273は一般的に知られるJPEG圧縮処理を実行する。この処理により得られた、画像データ701bに対応する圧縮画像データ701cを画像メモリ204へ書き込む。このとき、この圧縮画像データ701cのデータサイズを、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数に加算する。
【0051】
原稿401の部分領域702a及び703aについても同様の処理を繰り返し、得られる圧縮画像データ702c及び703cを画像メモリ204へ連続的に書き込む。これらの圧縮画像データ702c及び703cのデータサイズも、圧縮画像データ701cの場合と同様に、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数にそれぞれ累積加算する。
【0052】
画像メモリ204は、リングバッファとして使用し、画像圧縮部273が出力する圧縮画像データが画像メモリ204の終端部まで達したら、画像メモリ204の先端部に戻り、再び圧縮画像データの書込を継続する。
【0053】
この画像圧縮部273による圧縮画像データの書込と同時に、後述する画像転送動作を実行し、逐次、画像メモリ204に出力された圧縮画像データを、ホストコンピュータ214へ転送する。
【0054】
次に、ステップS1010に示した、画像読取装置200が原稿一枚分の画像データの読取を終了する時の動作について説明する。画像圧縮部273は、一枚の原稿の内、最後部の部分領域704aの画像データをワークメモリ209へ格納し、この画像データの圧縮画像データ704cを作成し、そのデータサイズを更新する。その後、画像圧縮部273は、このときのデータサイズ(圧縮画像データサイズを表す変数の値)をワークメモリ209の画像サイズ記憶部219に変数として保持する。この値が、N枚目の原稿401一枚分の圧縮画像データサイズとなる。この原稿一枚分の圧縮画像データサイズを、ステップS1010、及び後述の最大画像サイズ検出部270による処理で使用する。
【0055】
N+1枚目の原稿401についても同様に、部分領域801aで表される、JPEG圧縮可能な最小ライン数の画像データがワークメモリ209に格納されたら画像圧縮処理を行う。そして、得られた圧縮画像データ801cを画像メモリ204へ書き込むと共に、そのデータサイズを、原稿一枚分の処理が終了するまで、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数へ随時累積加算する。
【0056】
次に、図5のフローチャートに示す画像転送動作について、詳細に説明する。
【0057】
ステップS2001で、画像読取装置200は、ホストコンピュータ214から画像データ取得コマンドを受信したか判定する。CPU208で通信制御部210の状態を監視し、ホストコンピュータ214にインストールされたドライバから、画像データ取得コマンドのコマンドデータ列が通信インタフェースを通して送信されてきたか判定する。
【0058】
画像読取装置200が、画像データ取得コマンドを受信していないと判定した場合(ステップS2001でNO)、画像データ取得コマンドを取得するまで待機する。一方、画像読取装置200が、画像データ取得コマンドを受信したと判定した場合(ステップS2001でYES)、ステップS2002に進む。
【0059】
ステップS2002で、画像読取装置200は、画像メモリ204にホストコンピュータ214へ送信すべき圧縮画像データが存在するか判定する。CPU208で画像処理部203及び画像メモリ204の状態を監視し、ステップS1100の画像圧縮処理によって、画像メモリ204に圧縮画像データが書き込まれているか判定する。
【0060】
画像読取装置200が、圧縮画像データが存在しないと判定した場合(ステップS2002でNO)、図4のフローチャートで示す画像読取動作が先行して行われ、圧縮画像データが画像メモリ204に書き込まれるまで待機する。一方、画像読取装置200が、画像メモリ204に圧縮画像データが存在すると判定した場合(ステップS2002でYES)、ステップS2003に進む。
【0061】
ステップS2003で、画像読取装置200は、ホストコンピュータ214へ圧縮画像データを転送する。CPU208で通信制御部210を制御し、画像メモリ204に一時的に記憶されている圧縮画像データを読み出し、ホストコンピュータ214へ送信する。また、ワークメモリ209の画像サイズ記憶部219からから読み取った圧縮画像データサイズは画像処理部203へ通知され、ステップS1005で行う画像メモリ204の空き容量の監視処理へ状態が反映される。
【0062】
ステップS2004で、画像読取装置200は、全ての圧縮画像データの読取が終了したか判定する。CPU208で画像処理部203の状態を監視し、画像メモリ204に転送すべき圧縮画像データがなくなったか判定する。
【0063】
画像読取装置200が、圧縮画像データの読取が終了していないと判定した場合(ステップS2004でNO)、ステップS2001に戻る。一方、画像読取装置200が、圧縮画像データの読取が終了したと判定した場合(ステップS2004でYES)、画像データの転送を終了する。
【0064】
上述のように、実施形態1では、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を同時期に実行する。これにより、画像読取装置200は、原稿台402に積載された原稿401の束を一枚ずつ分離しながら、全ての原稿401の圧縮画像データをホストコンピュータ214へと転送することができる。複数のフローチャートで示す処理を同時に実行する機能としては、例えば、一般的に知られるリアルタイムOSをCPU208上で実行し、OSが備えるタスクスイッチ機能を使用してそれぞれの処理を実行すればよい。
【0065】
次に、実施形態1のステップS1001で実行する最大画像サイズ検出部270の動作を図6のフローチャートを用いて詳細に説明する。
【0066】
画像読取装置200は、ホストコンピュータ214から画像読取開始コマンドを受信し、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を開始するタイミングで、図6の処理を実行する。尚、図6中に示す「Max_size」は、一連の原稿401の束の中で、最大の圧縮画像データサイズ(画像データの容量)を表す変数である。また、「Size」は、ステップS1010で、ワークメモリ209の画像サイズ記憶部219に記憶した原稿一枚分の圧縮画像データサイズを表す変数である。
【0067】
ステップS3001で、最大画像サイズ検出部270は、変数Max_sizeを0で初期化する。これは、CPU208によってプログラムコードを実行し、ワークメモリ209の最大画像サイズ記憶部220に割り当てた変数Max_sizeに0を書き込む。
【0068】
ステップS3002で、最大画像サイズ検出部270は、一枚分の原稿読取が終了したか判定する。この処理については、図4のステップS1009で詳細に説明したとおりである。図4のフローチャートでは、ステップS1009の判定を行った後で、ステップS1010で取得した圧縮画像データサイズをワークメモリ209の画像サイズ記憶部219に記憶する。この圧縮画像データサイズを変数Sizeとする。最大画像サイズ検出部270は、ステップS1010で、変数Sizeの値が更新されたことを検知して、ステップS3003を実行する。
【0069】
ステップS3003で、最大画像サイズ検出部270は、Max_sizeとSizeを比較して、Max_sizeがSize未満であるか判定する。原稿401の束の1枚目の読取を開始した直後、初めてステップS3003を実行する時にはMax_sizeは0となっているので、必ず比較結果はSizeの方が大きくなる。つまり、最大画像サイズ検出部270は、Max_sizeがSize未満であると判定し(ステップS3003でYES)、ステップS3004に進む。そして、ステップS3004で、最大画像サイズ検出部270は、最大画像サイズ記憶部220に割り当てられているMax_sizeをSizeに更新する。
【0070】
一方、ステップS3003の処理を、原稿401の束の読取を開始してから既に1回以上実行している場合には、最大画像サイズ検出部270は、ステップS3004によって更新されたMax_sizeとSizeの値を比較する。最大画像サイズ検出部270が、Max_sizeがSize未満でないと判定した場合(ステップS3003でNO)、ステップS3002に戻る。一方、最大画像サイズ検出部270が、Max_sizeがSize未満であると判定した場合(ステップS3003でYES)、ステップS3004に進み、最大画像サイズ記憶部220に割り当てられているMax_sizeをSizeに更新する。
【0071】
ステップS3005で、最大画像サイズ検出部270は、原稿台402に積載された一連の原稿401の束の画像読取動作が終了したか判定する。この判定方法の詳細については、ステップS1001で説明したとおりである。最大画像サイズ検出部270が、画像読取動作が終了していないと判定した場合(ステップS3005でNO)、ステップS3002に戻る。一方、最大画像サイズ検出部270が、画像読取動作が終了したと判定した場合(ステップS3005でYES)、処理を終了する。
【0072】
図6のフローチャートによって、最大画像サイズ記憶部220に割り当てられているMax_sizeには、一連の原稿401の束の中で、最大の圧縮画像データサイズが記憶されることになる。換言すれば、原稿の画像を読み取る毎に、得られる圧縮画像データの圧縮画像データサイズを検出して、新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出することになる。
【0073】
次に、ステップS1002による、最大画像サイズ検出部270による給紙許可判定動作を図7のフローチャートに示す。尚、図7中に示す「Max_size」は、上述の最大の圧縮画像データサイズを表す変数であり、「Free_size」は、画像メモリ204の空き容量を表す変数である。
【0074】
ステップS4001で、最大画像サイズ検出部270は、Max_sizeとFree_sizeの値を比較して、Max_sizeがFree_size未満(空き容量未満)であるか判定する。Free_sizeの値は、CPU208によって画像メモリ204の状態を画像処理部203に問い合わせ、取得し更新した値である。最大画像サイズ検出部270が、Max_sizeがFree_size未満であると判定した場合(ステップS4001でYES)、ステップS4002で、給紙許可の指示を行う。具体的には、CPU208を制御し、図4のフローチャートの処理に対してステップS1002からステップS1003の処理へ移るように指示を行う。
【0075】
一方、最大画像サイズ検出部270が、Max_sizeがFree_size未満でないと判定した場合(ステップS4001でNO)、ステップS4001に戻る。ここで、図5に示す画像転送動作が実行されると、Free_sizeが大きくなっていくことは容易に想像できるであろう。
【0076】
以上説明したように、実施形態1によれば、画像メモリ204の空き容量が低下し、原稿の搬送途中で画像読取操作を中断しなければならないことが予想されるときには給紙動作を停止する。これによって、外部接続される情報処理装置へ画像データを転送するための時間を容易に確保できるようになり、搬送機構の速度を可変速にしなくても、画像読取動作を途中で中断する可能性が極めて低くなる。即ち、回路規模等の制約や低価格化によるコストの制約から小容量の画像メモリ204しか搭載できない画像読取装置においても、原稿分離性能を損なわずに、良好な品質の画像データを取得できる。
【0077】
より具体的には、画像読取装置200は、原稿台402に積載された原稿401の束を処理する過程で最大の圧縮画像データサイズ以上の空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行うことができる。これによって、一枚の原稿画像を取得している途中で、画像メモリ204の空き容量不足により画像読取動作を中断しなければならない問題が発生するのを極力回避しながら、少ない容量の画像メモリで良好な画像読取動作を実現することができる。
【0078】
尚、実施形態1では、変数Max_size及び変数Sizeをそれぞれ、ワークメモリ209の画像サイズ記憶部219及び最大画像サイズ記憶部220に記憶する構成としているが、これに限定されない。例えば、CPU208の演算結果を保持可能なメモリ(フラッシュメモリ207、画像メモリ204等)の任意の場所に設けても良い。また、変数Free_sizeは、ワークメモリ209に設けても良いし、CPU208の演算結果を保持可能なメモリ(フラッシュメモリ207、画像メモリ204等)の任意の場所に設けても良い。
【0079】
<実施形態2>
実施形態1では、原稿台402に積載された原稿401の束を処理する過程で最大の圧縮画像データサイズ以上の空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行う構成としているが、これに限定されない。
【0080】
例えば、圧縮画像データを記憶部(画像メモリ)に蓄える画像読取装置では、ハードロジックによる画像圧縮処理を実際に行い、圧縮画像データを出力するまで、画像メモリの空き容量を得ることができない。そのため、記憶部(画像メモリ)の空き容量から画像読取を停止する最適なタイミングを決定するのが難しい場合がある。
【0081】
そこで、実施形態2では、原稿401の給紙時に画像メモリ204の空き容量に応じて、その原稿の給紙を制御する構成について説明する。この構成を実現するための画像読取装置200の内部構成は、例えば、図8のようになる。
【0082】
図8は実施形態2の画像読取装置200の内部構成を示すブロック図である。
【0083】
尚、図8において、実施形態1の図3と同一の構成要素については、同一の参照番号を付加し、その詳細については省略する。
【0084】
図8では、ワークメモリ209に、給紙許可空き容量記憶部271(第1記憶領域)と給紙時空き容量記憶部272(第2記憶領域)を備える。給紙許可空き容量記憶部271は、給紙を許可する画像メモリ204の空き容量を記憶する。給紙時空き容量記憶部272は、給紙時の画像メモリ204の空き容量を記憶する。
【0085】
実施形態2における画像読取動作は、実施形態1の図4のフローチャートに示す画像読取動作に準じ、実施形態1とでは、ステップS1001の処理内容が異なる。
【0086】
そこで、実施形態2のステップS1001で実行する、給紙許可空き容量記憶部271と給紙時空き容量記憶部272を用いる画像読取装置200の動作を図9のフローチャートを用いて詳細に説明する。
【0087】
画像読取装置200(CPU208)は、ホストコンピュータ214から画像読取開始コマンドを受信し、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を開始するタイミングで、図9の処理を実行する。尚、図9中に示す「Allow_free_size」は、原稿401の給紙を許可する画像メモリ204の給紙許可空き容量を表す変数である。また、「Pick_free_size」は、原稿401の給紙時の画像メモリ204の給紙時空き容量を表す変数である。更に、αは0以上の任意の定数である。
【0088】
ステップS5001で、画像読取装置200は、変数Allow_free_sizeを0で初期化する。これにより、画像メモリ204の空き容量がいかなる状態であっても、ステップS1005で給紙が実行される状態となる。
【0089】
ステップS5002で、画像読取装置200は、一枚分の原稿読取が終了したか判定する。この処理は、図4のステップS1009で詳細に説明したとおりである。実施形態2では、ステップS1009の判定を行った後で、ステップS1010で画像読取装置200が取得した圧縮画像データサイズをワークメモリ209の給紙時空き容量記憶部272に割り当てた変数Pick_free_Sizeに記憶する。Pick_free_Sizeの値が更新されたことを検知して、ステップS5003を実行する。
【0090】
ステップS5003で、画像読取装置200は、画像読取中にメインモータ509を停止したか判定する。この処理は、ステップS1006及びステップS1007でモータを停止したか否かを、ワークメモリ209に変数を設けるなどしてあらかじめ記憶しておき、判定する。この判定は、一枚の原稿を読み取る途中に画像メモリ204の空き容量が低下して、メインモータ509を停止したか否かで判定する。
【0091】
画像読取装置200が、画像読取中にメインモータ509を停止したと判定した場合(ステップS5003でYES)、ステップS5004に進む。ステップS5004で、画像読取装置200は、ワークメモリ209の給紙許可空き容量記憶部271に割り当てたAllow_free_sizeにPick_free_size+αの値を代入する。
【0092】
一方、画像読取装置200が、画像読取中にメインモータ509を停止していないと判定した場合(ステップS5003でNO)、ステップS5005に進む。
【0093】
ステップS5005で、画像読取装置200は、原稿台402に積載された一連の原稿401の束の画像読取動作が終了したか判定する。この判定方法の詳細については、ステップS1001で説明したとおりである。画像読取装置200が、画像読取動作が終了していないと判定した場合(ステップS5005でNO)、ステップS5002に戻る。一方、画像読取装置200が、画像読取動作が終了したと判定した場合(ステップS5005でYES)、処理を終了する。
【0094】
これにより、給紙許可空き容量記憶部271には、一枚の画像読取動作中にメインモータ509を停止しなければならない状態に陥った原稿給紙時の画像メモリ204の給紙時空き容量と同等あるいは給紙時空き容量以上の値が設定される。
【0095】
次に、ステップS1002で実行する、給紙許可空き容量記憶部271と給紙時空き容量記憶部272による給紙許可判定動作を図10のフローチャートに示す。尚、図10中に示す「Free_size」は、画像メモリ204の空き容量を表す変数である。
【0096】
ステップS6001で、画像読取装置200は、Allow_free_sizeとFree_sizeの値を比較して、Allow_free_sizeがFree_size未満であるか判定する。Free_sizeの値は、CPU208によって画像メモリ204の状態を画像処理部203に問い合わせ、取得し更新した値である。画像読取装置200は、この2つの値を比較して、画像読取装置200が、Allow_free_sizeがFree_size未満でないと判定した場合(ステップS6001でNO)、ステップS6001に戻る。ここで、図5に示す画像転送動作が実行されるとFree_sizeが大きくなっていくことは容易に想像できるであろう。
【0097】
一方、画像読取装置200が、Allow_free_sizeがFree_size未満であると判定した場合(ステップS6001でYES)、ステップS6002に進む。ステップS6002で、画像読取装置200は、Pick_free_sizeにFree_sizeの値を代入する。
【0098】
ステップS6003で、画像読取装置200は、給紙許可の指示を行う。具体的には、CPU208を制御し、図4のフローチャートの処理に対してステップS1002からステップS1003の処理へ移るように指示を行う。
【0099】
以上説明したように、実施形態2によれば、画像メモリ204へ蓄える圧縮画像データが、処理完了までデータサイズの確定しない圧縮画像データであっても、最適なタイミングで給紙を行うことができる。これにより、画像データの読取途中で画像取得動作を停止することなく、より高品質な画像データを取得できる。
【0100】
より具体的には、画像読取動作を行う前の原稿給紙時での画像メモリ204の空き容量を一時的に保持しておく。そして、画像読取途中でメインモータ509を停止させなければならない状態に陥ってしまった時には、その状態が発生した時よりも、より大きいサイズの空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行うことができる。
【0101】
これによって、一枚の原稿画像を取得している途中で、画像メモリの空き容量不足により画像読取動作を中断しなければならない問題を極力回避しながら、少ない容量の画像メモリで良好な画像読取動作を実現することができる。
【0102】
<実施形態3>
実施形態1と実施形態2は、別々の構成として説明しているが、用途や目的に応じて、両者を組み合わせて実現するようにしても良い。
【0103】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、原稿の画像を読み取る画像読取装置及びその制御方法、プログラムに関するものである。
【背景技術】
【0002】
一般的に知られている画像読取装置は、固定された画像読取センサの読取面近傍に原稿を搬送、通過させ、画像読取センサから得られた画像データを、装置内部に搭載されたRAM等の記憶部に一時的に蓄える。そして、画像読取装置は、蓄えた画像データを、ホストコンピュータ等の情報処理装置へUSBやSCSI等の転送部を用いて転送する。
【0003】
画像読取装置に搭載されるCISやCCD等の画像読取センサは、一塊の画像データを規定の速度で一時に読み出さなければ動作しないため、画像読取装置内部に搭載したRAM等の記憶部に空き容量がなければ、画像読取動作を行うことができない。このため、円滑な画像読取動作を行うには、画像読取装置内部に大容量の記憶部を搭載することが望まれる。
【0004】
しかし、画像読取装置に搭載される記憶部は、筐体の小型化によるサイズの制約や低価格化によるコストの制約からその容量が制限される。このため、画像読取装置には、原稿一枚分の原稿画像を蓄えられるだけの記憶容量を持たない、小容量の記憶部しか搭載していないものがある。
【0005】
このような画像読取装置では、情報処理装置への画像データの転送速度が低下すると、画像読取動作の途中で記憶部の空きがなくなってしまうことがある。この場合、原稿の搬送を一時停止させて画像読取動作を中断し、情報処理装置が記憶部に蓄えられた画像データを読み出して、記憶部に空き容量が生まれるのを待ってから、画像読取動作を再開させる必要がある。
【0006】
このように、画像読取中に原稿の搬送を一時停止させると、搬送部に存在する機械的なガタにより、画像読取部による画像読取処理と、搬送部による原稿の搬送処理を完全に同期させることが極めて困難になり、画像データの品質が劣化してしまう問題がある。
【0007】
この問題を防ぐため、複写機等の高価格な画像読取装置では、記憶部の空き容量が低下した場合には、原稿が画像読取部の前を通過する以前に画像読取速度を低下させ、一枚の原稿画像の途中で画像読取を中断させないようにするものがある(特許文献1)。
【0008】
一方、近年の画像読取装置では、より高速に画像読取動作を実行するため、画像読取センサから画像データを取得した直後、ハードロジック等のハードウェアによってJPEG等の圧縮形式で画像データを即座に圧縮する。そして、この画像読取装置は、その圧縮画像データを記憶部に一時的に蓄えてから、ホストコンピュータ等の情報処理装置へ転送することが可能である。
【0009】
このような画像読取装置では、記憶部に一時的に蓄えられる画像データのサイズを節約できるため、より効率良く記憶部の容量を活用できる。加えて、画像読取装置と情報処理装置間のデータ転送速度の影響を受けて画像読取速度が低下する可能性が減り、より良好な速度で原稿束の画像読取を行うことができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平6―315072号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記の原稿搬送速度を可変させる従来の技術を、簡易な搬送機構を持つ安価な画像読取装置に適用すると、原稿束を分離する原稿分離機構の駆動速度も同時に可変してしまうものがある。簡易な原稿分離機構は、特定の搬送速度で効率良く動作するように設計されていることが多く、その駆動速度を可変にすると、原稿分離性能が低下し、重送やジャム、原稿破損等の問題を引き起こすことがある。
【0012】
本発明の目的は、原稿分離性能を損なわずに、良好な品質の画像データを取得できる画像読取装置及びその制御方法、プログラムを提供することにある。
【課題を解決するための手段】
【0013】
上記の目的を達成するための本発明による画像読取装置は以下の構成を備える。即ち、
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備える。
【発明の効果】
【0014】
本発明によれば、原稿分離性能を損なわずに、良好な品質の画像データを取得できる画像読取装置及びその制御方法、プログラムを提供できる。
【図面の簡単な説明】
【0015】
【図1】実施形態1の画像読取装置の外観を示す斜視図である。
【図2】実施形態1の画像読取装置の概略断面図である。
【図3】実施形態1の画像読取装置の内部構成を示すブロック図である。
【図4】実施形態1の画像読取装置の画像読取動作を表すフローチャートである。
【図5】実施形態1の画像読取装置の画像転送動作を表すフローチャートである。
【図6】実施形態1の最大画像サイズ検出部の動作を表すフローチャートである。
【図7】実施形態1の給紙許可判定動作を表すフローチャートである。
【図8】実施形態2の画像読取装置の内部構成を示すブロック図である。
【図9】実施形態2の給紙許可空き容量記憶部と給紙時空き容量記憶部を用いる画像読取装置の動作を表すフローチャートである。
【図10】実施形態2の給紙許可判定動作を表すフローチャートである。
【図11】画像圧縮部の動作を表す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
<実施形態1>
図1は実施形態1の画像読取装置の外観を示す斜視図である。
【0017】
図1において、画像読取装置200は、複数枚の原稿(シートを含む)401を載置可能な原稿台402と、排紙された原稿401が載置される排紙台403と、原稿401の載置位置を規制する原稿規制板405とで構成される。
【0018】
図2は実施形態1の画像読取装置200の概略断面図である。
【0019】
画像読取装置200は、搬送部として、原稿を装置内部へ給紙する給紙部の一例である給紙ローラ503に追従して回転すると共に、原稿401が重送された時に逆回転して分離する分離ローラ502と、原稿401を画像読取センサ507の読取面近傍へ搬送するレジストローラ513を備える。また、画像読取装置200は、レジストローラ513に追従して回転するレジスト従動ローラ514と、搬送路上の原稿401の有無を検知する給紙センサ504と、原稿401の通過有無を検知するレジストセンサ506を備える。また、画像読取装置200は、原稿401の画像を読み取る読取部の一例である画像読取センサ507と、原稿401の排紙の有無を検知する排紙センサ511と、排紙ローラ510に追従して回転する排紙従動ローラ512とを備える。また、画像読取装置200は、給紙ローラ503、レジストローラ513、及び排紙ローラ510を駆動するメインモータ509を備える。
【0020】
図3は実施形態1の画像読取装置200の内部構成を示すブロック図である。
【0021】
図3において、画像読取装置200は、原稿401の画像を読み取る画像読取センサ507を備える。また、画像読取装置200は、読み取った画像データに対して色調補正等の所定の画像処理を行う画像処理部203と、画像処理された画像データを記憶する所定サイズの記憶部である画像メモリ204とを備える。
【0022】
さらに、画像読取装置200は、原稿401を搬送するために、メインモータ509を駆動するモータ駆動制御部205と、給紙センサ504、レジストセンサ506及び排紙センサ511を制御する原稿検知センサ制御部206とを備える。また、画像読取装置200は、本装置を制御するCPU208を備える。また、画像読取装置200は、CPU208が実行する各種制御プログラムを保持するフラッシュメモリ207と、演算結果等を一時的に保持するワークメモリ209とを備える。ワークメモリ209は、最大画像サイズ検出部(検出手段)270で検出される、一連の原稿401の束(原稿束)の内の1枚の読取原稿に対応する圧縮画像データサイズを記憶する画像サイズ記憶部219を備える。また、ワークメモリ209は、最大画像サイズ検出部270で検出される、一連の原稿401の束それぞれの読取原稿に対応する圧縮画像データサイズの内、最大の圧縮画像データサイズを記憶する最大画像サイズ記憶部220を備える。
【0023】
更に、画像読取装置200は、通信インタフェースを介して、外部装置として情報処理装置の一例であるホストコンピュータ214に画像データを送信する通信制御部210を備える。この通信制御部210による通信インタフェースは、例えば、USB、SCSI、IEEE1394等を使用できる。
【0024】
最大画像サイズ検出部270は、一連の原稿401の束の中で、最大の圧縮画像データサイズを検出する。尚、図3では、最大画像サイズ検出部270は、便宜上、1つの構成要素として示している。この最大画像サイズ検出部270は、CPU208によって実行されるソフトウェアとして実現されても良いし、専用のハードウェアとして実現されても良いし、あるいはそれらを組み合わせて実現されても良い。また、最大画像サイズ検出部270は、原稿の画像を読み取る毎に、最大の圧縮画像データサイズを検出する。
【0025】
ホストコンピュータ214には、画像読取装置200を制御するためのドライバや画像キャプチャアプリケーションがインストールされており、これらにより画像読取装置200に画像を読み取らせることが可能となっている。また、ホストコンピュータ214は、画像読取装置200と通信インタフェースで接続されており、一方で、マウス/キーボード221及びディスプレイ222に接続されている。
【0026】
次に、実施形態1の画像読取装置が行う画像読取動作について説明する。
【0027】
画像読取装置200の利用者は、まず、ホストコンピュータ214にインストールされたキャプチャアプリケーションから画像読取装置200へ、解像度や画像フォーマット等の画像読取設定を含む画像読取開始コマンドを発行する。これにより、画像読取設定を含む画像読取開始コマンドは設定データとして通信インタフェースを通して通信制御部210へと伝わる。画像読取装置200のCPU208は、通信制御部210に受信した設定データに従い、モータ駆動制御部205、画像処理部203、原稿検知センサ制御部206へ、利用者が所望する解像度、画像フォーマットで原稿401の画像を取得するための設定を行う。その後、画像読取装置200は、図4のフローチャートに示す画像読取動作と、図5のフローチャートに示す画像転送動作を実行する。
【0028】
まず、図4のフローチャートで示す画像読取動作について、詳細に説明する。
【0029】
ステップS1001で、画像読取装置200は、原稿台402に原稿401がセットされているか判定する。具体的には、一般的なメカニカルスイッチや赤外線センサ等で構成される給紙センサ504を原稿検知センサ制御部206によって制御し、状態を取得する。画像読取装置200が、原稿台402に原稿401がセットされていないと判定した場合(ステップS1001でNO)、画像読取動作を中断する。このとき、ホストコンピュータ214に原稿401がセットされていない旨を通信制御部210を制御してホストコンピュータ214に通知する。これを受けて、ホストコンピュータ214は、原稿がセットされていないことを、ディスプレイ222上にエラーメッセージとして表示しても良い。
【0030】
一方、画像読取装置200が、原稿台402に原稿401がセットされていると判定した場合(ステップS1001でYES)、ステップS1002に進む。ステップS1002で、画像読取装置200は、搬送部を駆動し、原稿401を画像読取装置200の内部へ給紙しても良いか判定する。特に、実施形態1では、後述の最大画像サイズ検出部270の出力に基づいて、給紙の可否を判定する
画像読取装置200が、給紙して良くないと判定した場合(ステップS1002でNO)、給紙して良いと判定されるまで待機する。一方、画像読取装置200が、給紙して良いと判定した場合(ステップS1002でYES)、ステップS1003に進む。
【0031】
ステップS1003で、画像読取装置200は、給紙処理を行う。まず、モータ駆動制御部205に対してメインモータ509を駆動するための制御をCPU208から行う。メインモータ509がステッピングモータ等の一般的なパルスモータである場合、モータ駆動制御部205は、メインモータ509に与える励磁パルスの出力間隔を、所定の搬送速度を実現する回転速度に到達するまで徐々に狭めていく動作を行う。メインモータ509によって給紙ローラ503及び、それに追従して回転する分離ローラ502が回転し、原稿台402に積載された原稿401の束から一枚が分離され、画像読取装置200の内部へと取り込まれる。
【0032】
ステップS1004で、画像読取装置200は、原稿401の画像データを取得すべき原稿401上の領域の先頭が画像読取センサ507の前面に到達したか判定する。この判定は、原稿401の先頭がレジストセンサ506の前面を通過した時から、メインモータ509が一定量回転したかを判定することによって行う。メインモータ509にステッピングモータ等のパルスモータを使用している場合、原稿401がレジストセンサ506を通過してから一定のパルス数をモータ駆動制御部205が出力したことをCPU208で検知する。
【0033】
画像読取装置200が、画像読取センサ507の前面に到達していないと判定した場合(ステップS1004でNO)、到達するまで待機する。一方、画像読取装置200が、画像読取センサ507の前面に到達したと判定した場合(ステップS1004でYES)、ステップS1005に進む。
【0034】
ステップS1005で、画像読取装置200は、画像メモリ204に空き容量が存在するか判定する。例えば、画像メモリ204の空き容量を一意の閾値と比較し、画像メモリ204の空き容量がその閾値以上であったら、空き容量が存在すると判定し、その閾値未満であったら、空き容量がないと判定する。
【0035】
画像読取装置200が、空き容量が存在しないと判定した場合(ステップS1005でNO)、ステップS1007に進む。ステップS1007で、画像読取装置200は、メインモータ509を停止させる処理を行う。すでにメインモータ509が停止していることがモータ駆動制御部205の状態から明らかな場合には、何も実行せずにステップS1101へ進む。一方、メインモータ509が回転しているときには、モータ駆動制御部205にメインモータ509の回転を停止する指示をCPU208から出す。モータ駆動制御部205がこの指示を受けると、メインモータ509がステッピングモータ等の一般的なパルスモータであった場合、メインモータ509に与える励磁パルスの出力間隔を、回転が停止するまで徐々に広めていく動作を行う。
【0036】
一方、画像読取装置200が、空き容量が存在すると判定した場合(ステップS1005でYES)、ステップS1006に進む。ステップS1006で、画像読取装置200は、メインモータ509を回転させる処理を行う。すでにメインモータ509が回転していることがモータ駆動制御部205の状態から明らかな場合には、何も実行せずに、ステップS1101に進む。一方、メインモータ509が回転していない場合には、モータ駆動制御部205にメインモータ509の回転を開始する指示をCPU208から出す。モータ駆動制御部205がこの指示を受けると、ステップS1003で説明した制御を行い、メインモータ509を回転させる。
【0037】
ステップS1101で、画像読取装置200は,メインモータ509が回転中であるか判定を行う。メインモータ509が停止中であった場合(ステップS1101でNO)、ステップS1005に戻る。一方、メインモータ509が回転中であった場合(ステップS1101でYES)、ステップS1008に進み、画像読取装置200は、画像読取センサ507から画像データを取得する処理を行う。実施形態1で使用する画像読取センサ507は1ライン分の画像読取素子を備えたものであり、画像処理部203によってこれらを制御することにより、画像読取センサ507の読取面近傍の画像を一時に1ライン分取得する。
【0038】
実施形態1の画像読取装置200は、CPU208によって画像処理部203へ1ライン分の画像読取コマンドを発行する時間間隔を、モータ駆動制御部205の状態に同期させて制御することによって、2次元の画像データを取得する。メインモータ509がステッピングモータ等の一般的なパルスモータであった場合、モータ駆動制御部205が規定回数だけ励磁パルスを出力するのを待って、画像処理部203へ画像読取コマンドを発行する。
【0039】
具体的には、モータ駆動制御部205がより高速でメインモータ509を回転させている場合、CPU208からより短い時間間隔で画像処理部203へ1ライン分の画像読取コマンドを発行することになる。一方、モータ駆動制御部205がより低速でメインモータ509を回転させている場合、CPU208からより長い時間間隔で画像処理部203へ1ライン分の画像読取コマンドを出すことになる。
【0040】
このように、画像読取装置200は、CPU208によってモータ回転と画像読取の同期処理を実行する。これにより、例えば、ステップS1006及びステップS1007で、画像読取途中にメインモータ509が停止及び回転再開し、所定の原稿搬送速度を実現する回転速度以外で加速、減速中であったとしても、途切れや伸びの少ない画像データを取得できる。
【0041】
ステップS1100で、画像読取装置200は、ステップS1008の処理によって取得した画像データを、画像圧縮部273によって圧縮し、随時、画像メモリ204に書き込む。画像圧縮部273の動作については、図11を用いて詳細に説明する。画像読取装置200は、画像メモリ204及びワークメモリ209で表される記憶部は、装置の仕様上、搬送部で搬送可能な(あるいは給紙部で給紙可能な)最大サイズの原稿の全領域の画像データを一時に蓄えることができない所定サイズとなっている。そのため、ステップS1008で画像読取センサ507から取得した画像データに対して逐次圧縮処理を実行するとともに、後述する画像転送動作を同時期に実行する。
【0042】
ステップS1009で、画像読取装置200は、画像データを取得すべき原稿401上原稿401の領域の後端が画像読取センサ507の前面を通過したか判定する。つまり、画像データの取得が終了したか判定する。この判定は、原稿401の先頭がレジストセンサ506の前面を通過したときから、メインモータ509が一定量回転したかを判定することによって行う。メインモータ509の回転量の判定方法については、ステップS1004で説明したとおりである。
【0043】
画像読取装置200が、画像データの取得が終了してないと判定した場合(ステップS1009でNO)、ステップS1005に戻る。一方、画像読取装置200が、画像取得が終了したと判定した場合(ステップS1009でYES)、ステップS1010に進む。
【0044】
上述したステップS1005からステップS1009までの処理を順次繰り返すことによって、画像読取装置200は、原稿401の一枚分の圧縮画像データを画像メモリ204へ書き込むことができる。
【0045】
ステップS1010で、画像読取装置200は、ステップS1100で画像圧縮部273によって変換出力された、原稿一枚分の圧縮画像データサイズをワークメモリ209の画像サイズ記憶部219に記憶する。これは、ステップS1005からステップS1009の処理を繰り返す間に、画像圧縮部273が出力した圧縮画像データサイズを、画像圧縮部273に問い合わせ、その結果をワークメモリ209の画像サイズ記憶部219に記憶する。
【0046】
ステップS1010の処理後、画像読取装置200は、再びステップS1001に戻り、給紙センサ504によって原稿台402に原稿401が存在するか判定する。
【0047】
以上の処理を実行することによって、画像読取装置200は、原稿台402に積載された原稿401の束を全て読み取り終わるまで、画像メモリ204の空き容量に追従しながら、画像読取動作を継続することになる。
【0048】
次に、ステップS1100及びステップS1010で使用する、画像圧縮部273の一例として、JPEG圧縮を行う場合の処理について詳細に説明する。
【0049】
図11の700aは、ステップS1008で画像読取センサ507が読み取るN枚目の原稿の全体領域を示したものである。画像圧縮部273は、この全体領域700aから1ライン分の画像データ700bをワークメモリ209へ一時的に格納する。以降、1ライン分の画像データの読取を繰り返し、JPEG圧縮可能な最小ライン数である8ライン分の部分領域701aの読取が終了し、8ライン分の画像データ701bがワークメモリ209に蓄積するまでこの処理を繰り返す。
【0050】
ワークメモリ209に8ライン分の画像データが格納されると、画像圧縮部273は一般的に知られるJPEG圧縮処理を実行する。この処理により得られた、画像データ701bに対応する圧縮画像データ701cを画像メモリ204へ書き込む。このとき、この圧縮画像データ701cのデータサイズを、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数に加算する。
【0051】
原稿401の部分領域702a及び703aについても同様の処理を繰り返し、得られる圧縮画像データ702c及び703cを画像メモリ204へ連続的に書き込む。これらの圧縮画像データ702c及び703cのデータサイズも、圧縮画像データ701cの場合と同様に、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数にそれぞれ累積加算する。
【0052】
画像メモリ204は、リングバッファとして使用し、画像圧縮部273が出力する圧縮画像データが画像メモリ204の終端部まで達したら、画像メモリ204の先端部に戻り、再び圧縮画像データの書込を継続する。
【0053】
この画像圧縮部273による圧縮画像データの書込と同時に、後述する画像転送動作を実行し、逐次、画像メモリ204に出力された圧縮画像データを、ホストコンピュータ214へ転送する。
【0054】
次に、ステップS1010に示した、画像読取装置200が原稿一枚分の画像データの読取を終了する時の動作について説明する。画像圧縮部273は、一枚の原稿の内、最後部の部分領域704aの画像データをワークメモリ209へ格納し、この画像データの圧縮画像データ704cを作成し、そのデータサイズを更新する。その後、画像圧縮部273は、このときのデータサイズ(圧縮画像データサイズを表す変数の値)をワークメモリ209の画像サイズ記憶部219に変数として保持する。この値が、N枚目の原稿401一枚分の圧縮画像データサイズとなる。この原稿一枚分の圧縮画像データサイズを、ステップS1010、及び後述の最大画像サイズ検出部270による処理で使用する。
【0055】
N+1枚目の原稿401についても同様に、部分領域801aで表される、JPEG圧縮可能な最小ライン数の画像データがワークメモリ209に格納されたら画像圧縮処理を行う。そして、得られた圧縮画像データ801cを画像メモリ204へ書き込むと共に、そのデータサイズを、原稿一枚分の処理が終了するまで、ワークメモリ209内の画像サイズ記憶部219に設けた圧縮画像データサイズを表す変数へ随時累積加算する。
【0056】
次に、図5のフローチャートに示す画像転送動作について、詳細に説明する。
【0057】
ステップS2001で、画像読取装置200は、ホストコンピュータ214から画像データ取得コマンドを受信したか判定する。CPU208で通信制御部210の状態を監視し、ホストコンピュータ214にインストールされたドライバから、画像データ取得コマンドのコマンドデータ列が通信インタフェースを通して送信されてきたか判定する。
【0058】
画像読取装置200が、画像データ取得コマンドを受信していないと判定した場合(ステップS2001でNO)、画像データ取得コマンドを取得するまで待機する。一方、画像読取装置200が、画像データ取得コマンドを受信したと判定した場合(ステップS2001でYES)、ステップS2002に進む。
【0059】
ステップS2002で、画像読取装置200は、画像メモリ204にホストコンピュータ214へ送信すべき圧縮画像データが存在するか判定する。CPU208で画像処理部203及び画像メモリ204の状態を監視し、ステップS1100の画像圧縮処理によって、画像メモリ204に圧縮画像データが書き込まれているか判定する。
【0060】
画像読取装置200が、圧縮画像データが存在しないと判定した場合(ステップS2002でNO)、図4のフローチャートで示す画像読取動作が先行して行われ、圧縮画像データが画像メモリ204に書き込まれるまで待機する。一方、画像読取装置200が、画像メモリ204に圧縮画像データが存在すると判定した場合(ステップS2002でYES)、ステップS2003に進む。
【0061】
ステップS2003で、画像読取装置200は、ホストコンピュータ214へ圧縮画像データを転送する。CPU208で通信制御部210を制御し、画像メモリ204に一時的に記憶されている圧縮画像データを読み出し、ホストコンピュータ214へ送信する。また、ワークメモリ209の画像サイズ記憶部219からから読み取った圧縮画像データサイズは画像処理部203へ通知され、ステップS1005で行う画像メモリ204の空き容量の監視処理へ状態が反映される。
【0062】
ステップS2004で、画像読取装置200は、全ての圧縮画像データの読取が終了したか判定する。CPU208で画像処理部203の状態を監視し、画像メモリ204に転送すべき圧縮画像データがなくなったか判定する。
【0063】
画像読取装置200が、圧縮画像データの読取が終了していないと判定した場合(ステップS2004でNO)、ステップS2001に戻る。一方、画像読取装置200が、圧縮画像データの読取が終了したと判定した場合(ステップS2004でYES)、画像データの転送を終了する。
【0064】
上述のように、実施形態1では、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を同時期に実行する。これにより、画像読取装置200は、原稿台402に積載された原稿401の束を一枚ずつ分離しながら、全ての原稿401の圧縮画像データをホストコンピュータ214へと転送することができる。複数のフローチャートで示す処理を同時に実行する機能としては、例えば、一般的に知られるリアルタイムOSをCPU208上で実行し、OSが備えるタスクスイッチ機能を使用してそれぞれの処理を実行すればよい。
【0065】
次に、実施形態1のステップS1001で実行する最大画像サイズ検出部270の動作を図6のフローチャートを用いて詳細に説明する。
【0066】
画像読取装置200は、ホストコンピュータ214から画像読取開始コマンドを受信し、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を開始するタイミングで、図6の処理を実行する。尚、図6中に示す「Max_size」は、一連の原稿401の束の中で、最大の圧縮画像データサイズ(画像データの容量)を表す変数である。また、「Size」は、ステップS1010で、ワークメモリ209の画像サイズ記憶部219に記憶した原稿一枚分の圧縮画像データサイズを表す変数である。
【0067】
ステップS3001で、最大画像サイズ検出部270は、変数Max_sizeを0で初期化する。これは、CPU208によってプログラムコードを実行し、ワークメモリ209の最大画像サイズ記憶部220に割り当てた変数Max_sizeに0を書き込む。
【0068】
ステップS3002で、最大画像サイズ検出部270は、一枚分の原稿読取が終了したか判定する。この処理については、図4のステップS1009で詳細に説明したとおりである。図4のフローチャートでは、ステップS1009の判定を行った後で、ステップS1010で取得した圧縮画像データサイズをワークメモリ209の画像サイズ記憶部219に記憶する。この圧縮画像データサイズを変数Sizeとする。最大画像サイズ検出部270は、ステップS1010で、変数Sizeの値が更新されたことを検知して、ステップS3003を実行する。
【0069】
ステップS3003で、最大画像サイズ検出部270は、Max_sizeとSizeを比較して、Max_sizeがSize未満であるか判定する。原稿401の束の1枚目の読取を開始した直後、初めてステップS3003を実行する時にはMax_sizeは0となっているので、必ず比較結果はSizeの方が大きくなる。つまり、最大画像サイズ検出部270は、Max_sizeがSize未満であると判定し(ステップS3003でYES)、ステップS3004に進む。そして、ステップS3004で、最大画像サイズ検出部270は、最大画像サイズ記憶部220に割り当てられているMax_sizeをSizeに更新する。
【0070】
一方、ステップS3003の処理を、原稿401の束の読取を開始してから既に1回以上実行している場合には、最大画像サイズ検出部270は、ステップS3004によって更新されたMax_sizeとSizeの値を比較する。最大画像サイズ検出部270が、Max_sizeがSize未満でないと判定した場合(ステップS3003でNO)、ステップS3002に戻る。一方、最大画像サイズ検出部270が、Max_sizeがSize未満であると判定した場合(ステップS3003でYES)、ステップS3004に進み、最大画像サイズ記憶部220に割り当てられているMax_sizeをSizeに更新する。
【0071】
ステップS3005で、最大画像サイズ検出部270は、原稿台402に積載された一連の原稿401の束の画像読取動作が終了したか判定する。この判定方法の詳細については、ステップS1001で説明したとおりである。最大画像サイズ検出部270が、画像読取動作が終了していないと判定した場合(ステップS3005でNO)、ステップS3002に戻る。一方、最大画像サイズ検出部270が、画像読取動作が終了したと判定した場合(ステップS3005でYES)、処理を終了する。
【0072】
図6のフローチャートによって、最大画像サイズ記憶部220に割り当てられているMax_sizeには、一連の原稿401の束の中で、最大の圧縮画像データサイズが記憶されることになる。換言すれば、原稿の画像を読み取る毎に、得られる圧縮画像データの圧縮画像データサイズを検出して、新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出することになる。
【0073】
次に、ステップS1002による、最大画像サイズ検出部270による給紙許可判定動作を図7のフローチャートに示す。尚、図7中に示す「Max_size」は、上述の最大の圧縮画像データサイズを表す変数であり、「Free_size」は、画像メモリ204の空き容量を表す変数である。
【0074】
ステップS4001で、最大画像サイズ検出部270は、Max_sizeとFree_sizeの値を比較して、Max_sizeがFree_size未満(空き容量未満)であるか判定する。Free_sizeの値は、CPU208によって画像メモリ204の状態を画像処理部203に問い合わせ、取得し更新した値である。最大画像サイズ検出部270が、Max_sizeがFree_size未満であると判定した場合(ステップS4001でYES)、ステップS4002で、給紙許可の指示を行う。具体的には、CPU208を制御し、図4のフローチャートの処理に対してステップS1002からステップS1003の処理へ移るように指示を行う。
【0075】
一方、最大画像サイズ検出部270が、Max_sizeがFree_size未満でないと判定した場合(ステップS4001でNO)、ステップS4001に戻る。ここで、図5に示す画像転送動作が実行されると、Free_sizeが大きくなっていくことは容易に想像できるであろう。
【0076】
以上説明したように、実施形態1によれば、画像メモリ204の空き容量が低下し、原稿の搬送途中で画像読取操作を中断しなければならないことが予想されるときには給紙動作を停止する。これによって、外部接続される情報処理装置へ画像データを転送するための時間を容易に確保できるようになり、搬送機構の速度を可変速にしなくても、画像読取動作を途中で中断する可能性が極めて低くなる。即ち、回路規模等の制約や低価格化によるコストの制約から小容量の画像メモリ204しか搭載できない画像読取装置においても、原稿分離性能を損なわずに、良好な品質の画像データを取得できる。
【0077】
より具体的には、画像読取装置200は、原稿台402に積載された原稿401の束を処理する過程で最大の圧縮画像データサイズ以上の空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行うことができる。これによって、一枚の原稿画像を取得している途中で、画像メモリ204の空き容量不足により画像読取動作を中断しなければならない問題が発生するのを極力回避しながら、少ない容量の画像メモリで良好な画像読取動作を実現することができる。
【0078】
尚、実施形態1では、変数Max_size及び変数Sizeをそれぞれ、ワークメモリ209の画像サイズ記憶部219及び最大画像サイズ記憶部220に記憶する構成としているが、これに限定されない。例えば、CPU208の演算結果を保持可能なメモリ(フラッシュメモリ207、画像メモリ204等)の任意の場所に設けても良い。また、変数Free_sizeは、ワークメモリ209に設けても良いし、CPU208の演算結果を保持可能なメモリ(フラッシュメモリ207、画像メモリ204等)の任意の場所に設けても良い。
【0079】
<実施形態2>
実施形態1では、原稿台402に積載された原稿401の束を処理する過程で最大の圧縮画像データサイズ以上の空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行う構成としているが、これに限定されない。
【0080】
例えば、圧縮画像データを記憶部(画像メモリ)に蓄える画像読取装置では、ハードロジックによる画像圧縮処理を実際に行い、圧縮画像データを出力するまで、画像メモリの空き容量を得ることができない。そのため、記憶部(画像メモリ)の空き容量から画像読取を停止する最適なタイミングを決定するのが難しい場合がある。
【0081】
そこで、実施形態2では、原稿401の給紙時に画像メモリ204の空き容量に応じて、その原稿の給紙を制御する構成について説明する。この構成を実現するための画像読取装置200の内部構成は、例えば、図8のようになる。
【0082】
図8は実施形態2の画像読取装置200の内部構成を示すブロック図である。
【0083】
尚、図8において、実施形態1の図3と同一の構成要素については、同一の参照番号を付加し、その詳細については省略する。
【0084】
図8では、ワークメモリ209に、給紙許可空き容量記憶部271(第1記憶領域)と給紙時空き容量記憶部272(第2記憶領域)を備える。給紙許可空き容量記憶部271は、給紙を許可する画像メモリ204の空き容量を記憶する。給紙時空き容量記憶部272は、給紙時の画像メモリ204の空き容量を記憶する。
【0085】
実施形態2における画像読取動作は、実施形態1の図4のフローチャートに示す画像読取動作に準じ、実施形態1とでは、ステップS1001の処理内容が異なる。
【0086】
そこで、実施形態2のステップS1001で実行する、給紙許可空き容量記憶部271と給紙時空き容量記憶部272を用いる画像読取装置200の動作を図9のフローチャートを用いて詳細に説明する。
【0087】
画像読取装置200(CPU208)は、ホストコンピュータ214から画像読取開始コマンドを受信し、図4のフローチャートに示す画像読取動作、及び図5のフローチャートに示す画像転送動作を開始するタイミングで、図9の処理を実行する。尚、図9中に示す「Allow_free_size」は、原稿401の給紙を許可する画像メモリ204の給紙許可空き容量を表す変数である。また、「Pick_free_size」は、原稿401の給紙時の画像メモリ204の給紙時空き容量を表す変数である。更に、αは0以上の任意の定数である。
【0088】
ステップS5001で、画像読取装置200は、変数Allow_free_sizeを0で初期化する。これにより、画像メモリ204の空き容量がいかなる状態であっても、ステップS1005で給紙が実行される状態となる。
【0089】
ステップS5002で、画像読取装置200は、一枚分の原稿読取が終了したか判定する。この処理は、図4のステップS1009で詳細に説明したとおりである。実施形態2では、ステップS1009の判定を行った後で、ステップS1010で画像読取装置200が取得した圧縮画像データサイズをワークメモリ209の給紙時空き容量記憶部272に割り当てた変数Pick_free_Sizeに記憶する。Pick_free_Sizeの値が更新されたことを検知して、ステップS5003を実行する。
【0090】
ステップS5003で、画像読取装置200は、画像読取中にメインモータ509を停止したか判定する。この処理は、ステップS1006及びステップS1007でモータを停止したか否かを、ワークメモリ209に変数を設けるなどしてあらかじめ記憶しておき、判定する。この判定は、一枚の原稿を読み取る途中に画像メモリ204の空き容量が低下して、メインモータ509を停止したか否かで判定する。
【0091】
画像読取装置200が、画像読取中にメインモータ509を停止したと判定した場合(ステップS5003でYES)、ステップS5004に進む。ステップS5004で、画像読取装置200は、ワークメモリ209の給紙許可空き容量記憶部271に割り当てたAllow_free_sizeにPick_free_size+αの値を代入する。
【0092】
一方、画像読取装置200が、画像読取中にメインモータ509を停止していないと判定した場合(ステップS5003でNO)、ステップS5005に進む。
【0093】
ステップS5005で、画像読取装置200は、原稿台402に積載された一連の原稿401の束の画像読取動作が終了したか判定する。この判定方法の詳細については、ステップS1001で説明したとおりである。画像読取装置200が、画像読取動作が終了していないと判定した場合(ステップS5005でNO)、ステップS5002に戻る。一方、画像読取装置200が、画像読取動作が終了したと判定した場合(ステップS5005でYES)、処理を終了する。
【0094】
これにより、給紙許可空き容量記憶部271には、一枚の画像読取動作中にメインモータ509を停止しなければならない状態に陥った原稿給紙時の画像メモリ204の給紙時空き容量と同等あるいは給紙時空き容量以上の値が設定される。
【0095】
次に、ステップS1002で実行する、給紙許可空き容量記憶部271と給紙時空き容量記憶部272による給紙許可判定動作を図10のフローチャートに示す。尚、図10中に示す「Free_size」は、画像メモリ204の空き容量を表す変数である。
【0096】
ステップS6001で、画像読取装置200は、Allow_free_sizeとFree_sizeの値を比較して、Allow_free_sizeがFree_size未満であるか判定する。Free_sizeの値は、CPU208によって画像メモリ204の状態を画像処理部203に問い合わせ、取得し更新した値である。画像読取装置200は、この2つの値を比較して、画像読取装置200が、Allow_free_sizeがFree_size未満でないと判定した場合(ステップS6001でNO)、ステップS6001に戻る。ここで、図5に示す画像転送動作が実行されるとFree_sizeが大きくなっていくことは容易に想像できるであろう。
【0097】
一方、画像読取装置200が、Allow_free_sizeがFree_size未満であると判定した場合(ステップS6001でYES)、ステップS6002に進む。ステップS6002で、画像読取装置200は、Pick_free_sizeにFree_sizeの値を代入する。
【0098】
ステップS6003で、画像読取装置200は、給紙許可の指示を行う。具体的には、CPU208を制御し、図4のフローチャートの処理に対してステップS1002からステップS1003の処理へ移るように指示を行う。
【0099】
以上説明したように、実施形態2によれば、画像メモリ204へ蓄える圧縮画像データが、処理完了までデータサイズの確定しない圧縮画像データであっても、最適なタイミングで給紙を行うことができる。これにより、画像データの読取途中で画像取得動作を停止することなく、より高品質な画像データを取得できる。
【0100】
より具体的には、画像読取動作を行う前の原稿給紙時での画像メモリ204の空き容量を一時的に保持しておく。そして、画像読取途中でメインモータ509を停止させなければならない状態に陥ってしまった時には、その状態が発生した時よりも、より大きいサイズの空き容量が画像メモリ204になければ、給紙動作を一時停止させる処理を行うことができる。
【0101】
これによって、一枚の原稿画像を取得している途中で、画像メモリの空き容量不足により画像読取動作を中断しなければならない問題を極力回避しながら、少ない容量の画像メモリで良好な画像読取動作を実現することができる。
【0102】
<実施形態3>
実施形態1と実施形態2は、別々の構成として説明しているが、用途や目的に応じて、両者を組み合わせて実現するようにしても良い。
【0103】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備えることを特徴とする画像読取装置。
【請求項2】
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記給紙手段による前記原稿の給紙を許可する前記記憶手段の給紙許可空き容量を記憶する給紙許可空き容量記憶手段と、
前記給紙手段による前記原稿の給紙時の前記記憶手段の給紙時空き容量を記憶する給紙時空き容量記憶手段と、
前記読取手段による前記原稿の読取中に前記記憶手段の空き容量が低下することによって読取を中断した場合、前記給紙手段による前記原稿の給紙時の前記給紙時空き容量を前記給紙時空き容量記憶手段から取得し、該給紙時空き容量以上の値を前記給紙許可空き容量として前記給紙許可空き容量記憶手段に設定する設定手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記設定手段で設定された給紙許可空き容量が前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備えることを特徴とする画像読取装置。
【請求項3】
外部接続される情報処理装置から受信するコマンドに応じて、前記記憶手段に記憶された圧縮画像データを前記情報処理装置へ転送する転送手段を更に備える
ことを特徴とする請求項1または2に記載の画像読取装置。
【請求項4】
前記検出手段は、前記読取手段で原稿の画像を読み取る毎に、前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する
ことを特徴とする請求項1に記載の画像読取装置。
【請求項5】
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを記憶するサイズ記憶手段であって、前記読取手段で前記原稿の画像を読み取る毎に、既に記憶されている圧縮画像データサイズを新たに検出された圧縮画像データサイズに更新しながら記憶するサイズ記憶手段と、
前記最大の圧縮画像データサイズを記憶する最大画像サイズ記憶手段とを更に備え、
前記検出手段は、前記サイズ記憶手段に記憶するべき新たに検出した圧縮画像データが、前記最大画像サイズ記憶手段に記憶されている最大の圧縮画像データサイズよりも大きい場合に、前記最大画像サイズ記憶手段に記憶されている前記最大の圧縮画像データサイズを該新たに検出された圧縮画像データで更新する
ことを特徴とする請求項1に記載の画像読取装置。
【請求項6】
前記記憶手段は、リングバッファとして使用されるメモリであり、
前記所定サイズは、前記給紙手段で給紙可能な最大サイズの原稿の全領域の画像データを一時に蓄えることができるサイズより小さい
ことを特徴とする請求項1乃至5のいずれか1項に記載の画像読取装置。
【請求項7】
原稿を装置内部へ給紙する給紙部と、前記給紙部で給紙される前記原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、装置の動作を制御する制御部とを備える画像読取装置の制御方法であって、
前記画像圧縮部が、前記読取部によって得られる前記原稿の画像データを圧縮する画像圧縮工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データを前記記憶部に記憶する記憶工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙部によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出工程と、
前記制御部が、前記給紙部によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶部の空き容量未満である場合、前記給紙部による前記新たな原稿の給紙を許可する制御工程と
を有することを特徴とする画像読取装置の制御方法。
【請求項8】
原稿を装置内部へ給紙する給紙部と、前記給紙部で給紙される前記原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、データを一時的に記憶するメモリと、装置の動作を制御する制御部とを備える画像読取装置の制御方法であって、
前記画像圧縮部が、前記読取部によって得られる前記原稿の画像データを圧縮する画像圧縮工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データを前記記憶部に記憶する記憶工程と、
前記制御部が、前記給紙部による前記原稿の給紙を許可する前記記憶部の給紙許可空き容量を前記メモリの第1記憶領域に記憶する給紙許可空き容量記憶工程と、
前記制御部が、前記給紙部による前記原稿の給紙時の前記記憶部の給紙時空き容量を前記メモリの第2記憶領域に記憶する給紙時空き容量記憶工程と、
前記制御部が、前記読取部による前記原稿の読取中に前記記憶部の空き容量が低下することによって読取を中断した場合、前記給紙部による前記原稿の給紙時の前記給紙時空き容量を前記メモリの第1記憶領域から取得し、該給紙時空き容量以上の値を前記給紙許可空き容量として前記メモリの第2記憶領域に設定する設定工程と、
前記制御部が、前記給紙部によって新たな原稿を給紙しようとする際に、前記設定工程で設定された給紙許可空き容量が前記記憶部の空き容量未満である場合、前記給紙部による前記新たな原稿の給紙を許可する制御工程と
を備えることを特徴とする画像読取装置の制御方法。
【請求項9】
請求項7または8に記載の方法を、コンピュータに実行させるためのプログラム。
【請求項1】
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備えることを特徴とする画像読取装置。
【請求項2】
原稿の画像を読み取る画像読取装置であって、
原稿を装置内部へ給紙する給紙手段と、
前記給紙手段で給紙される前記原稿の画像を読み取る読取手段と、
前記読取手段によって得られる前記原稿の画像データを圧縮する画像圧縮手段と、
前記画像圧縮手段で得られる圧縮画像データを記憶する所定サイズの記憶手段と、
前記給紙手段による前記原稿の給紙を許可する前記記憶手段の給紙許可空き容量を記憶する給紙許可空き容量記憶手段と、
前記給紙手段による前記原稿の給紙時の前記記憶手段の給紙時空き容量を記憶する給紙時空き容量記憶手段と、
前記読取手段による前記原稿の読取中に前記記憶手段の空き容量が低下することによって読取を中断した場合、前記給紙手段による前記原稿の給紙時の前記給紙時空き容量を前記給紙時空き容量記憶手段から取得し、該給紙時空き容量以上の値を前記給紙許可空き容量として前記給紙許可空き容量記憶手段に設定する設定手段と、
前記給紙手段によって新たな原稿を給紙しようとする際に、前記設定手段で設定された給紙許可空き容量が前記記憶手段の空き容量未満である場合、前記給紙手段による前記新たな原稿の給紙を許可する制御手段と
を備えることを特徴とする画像読取装置。
【請求項3】
外部接続される情報処理装置から受信するコマンドに応じて、前記記憶手段に記憶された圧縮画像データを前記情報処理装置へ転送する転送手段を更に備える
ことを特徴とする請求項1または2に記載の画像読取装置。
【請求項4】
前記検出手段は、前記読取手段で原稿の画像を読み取る毎に、前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙手段によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する
ことを特徴とする請求項1に記載の画像読取装置。
【請求項5】
前記画像圧縮手段で得られる圧縮画像データの圧縮画像データサイズを記憶するサイズ記憶手段であって、前記読取手段で前記原稿の画像を読み取る毎に、既に記憶されている圧縮画像データサイズを新たに検出された圧縮画像データサイズに更新しながら記憶するサイズ記憶手段と、
前記最大の圧縮画像データサイズを記憶する最大画像サイズ記憶手段とを更に備え、
前記検出手段は、前記サイズ記憶手段に記憶するべき新たに検出した圧縮画像データが、前記最大画像サイズ記憶手段に記憶されている最大の圧縮画像データサイズよりも大きい場合に、前記最大画像サイズ記憶手段に記憶されている前記最大の圧縮画像データサイズを該新たに検出された圧縮画像データで更新する
ことを特徴とする請求項1に記載の画像読取装置。
【請求項6】
前記記憶手段は、リングバッファとして使用されるメモリであり、
前記所定サイズは、前記給紙手段で給紙可能な最大サイズの原稿の全領域の画像データを一時に蓄えることができるサイズより小さい
ことを特徴とする請求項1乃至5のいずれか1項に記載の画像読取装置。
【請求項7】
原稿を装置内部へ給紙する給紙部と、前記給紙部で給紙される前記原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、装置の動作を制御する制御部とを備える画像読取装置の制御方法であって、
前記画像圧縮部が、前記読取部によって得られる前記原稿の画像データを圧縮する画像圧縮工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データを前記記憶部に記憶する記憶工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データの圧縮画像データサイズを検出して、前記給紙部によって新たな原稿を給紙するまでに検出した圧縮画像データサイズの内の最大の圧縮画像データサイズを検出する検出工程と、
前記制御部が、前記給紙部によって新たな原稿を給紙しようとする際に、前記最大の圧縮画像データサイズが前記記憶部の空き容量未満である場合、前記給紙部による前記新たな原稿の給紙を許可する制御工程と
を有することを特徴とする画像読取装置の制御方法。
【請求項8】
原稿を装置内部へ給紙する給紙部と、前記給紙部で給紙される前記原稿の画像を読み取る読取部と、画像データを圧縮する画像圧縮部と、所定サイズの記憶部と、データを一時的に記憶するメモリと、装置の動作を制御する制御部とを備える画像読取装置の制御方法であって、
前記画像圧縮部が、前記読取部によって得られる前記原稿の画像データを圧縮する画像圧縮工程と、
前記制御部が、前記画像圧縮工程で得られる圧縮画像データを前記記憶部に記憶する記憶工程と、
前記制御部が、前記給紙部による前記原稿の給紙を許可する前記記憶部の給紙許可空き容量を前記メモリの第1記憶領域に記憶する給紙許可空き容量記憶工程と、
前記制御部が、前記給紙部による前記原稿の給紙時の前記記憶部の給紙時空き容量を前記メモリの第2記憶領域に記憶する給紙時空き容量記憶工程と、
前記制御部が、前記読取部による前記原稿の読取中に前記記憶部の空き容量が低下することによって読取を中断した場合、前記給紙部による前記原稿の給紙時の前記給紙時空き容量を前記メモリの第1記憶領域から取得し、該給紙時空き容量以上の値を前記給紙許可空き容量として前記メモリの第2記憶領域に設定する設定工程と、
前記制御部が、前記給紙部によって新たな原稿を給紙しようとする際に、前記設定工程で設定された給紙許可空き容量が前記記憶部の空き容量未満である場合、前記給紙部による前記新たな原稿の給紙を許可する制御工程と
を備えることを特徴とする画像読取装置の制御方法。
【請求項9】
請求項7または8に記載の方法を、コンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−222625(P2012−222625A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−86730(P2011−86730)
【出願日】平成23年4月8日(2011.4.8)
【出願人】(000104652)キヤノン電子株式会社 (876)
【Fターム(参考)】
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願日】平成23年4月8日(2011.4.8)
【出願人】(000104652)キヤノン電子株式会社 (876)
【Fターム(参考)】
[ Back to top ]