(57)【要約】【課題】読み取り動作のスループットを向上させる。【解決手段】本発明は、センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力する画像読取部と、前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、を備えた画像読取装置において、前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更することを特徴とする。【選択図】図１５
2008072642.tif 000002
【特許請求の範囲】
【請求項１】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力する画像読取部と、
前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、
を備えた画像読取装置において、
前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更することを特徴とする画像読取装置。
【請求項２】
請求項１に記載の画像読取装置であって、
前記コントローラは、書き込みポインタ及び読み出しポインタに基づいて、前記メモリにバッファされたデータ量を算出することを特徴とする画像読取装置。
【請求項３】
請求項１に記載の画像読取装置であって、
前記コントローラは、前記メモリを制御するメモリ制御部を有し、
前記メモリ制御部は、前記メモリにバッファされたデータ量に応じた信号を出力し、
前記コントローラは、前記信号に基づいて、前記移動速度を変更する
ことを特徴とする画像読取装置。
【請求項４】
請求項１〜３に記載の画像読取装置であって、
前記コントローラは、前記メモリにバッファされたデータ量が所定の範囲を超えたときに、前記移動速度が遅くなるように前記画像読取部を制御することを特徴とする画像読取装置。
【請求項５】
請求項１〜４に記載の画像読取装置であって、
前記コントローラは、前記メモリにバッファされたデータ量が所定量に達しないときに、前記移動速度が速くなるように前記画像読取部を制御することを特徴とする画像読取装置。
【請求項６】
請求項１〜５に記載の画像読取装置であって、
前記コントローラは、
前記原稿の画像を読み取る際に、前記データ量と前記移動速度を記憶し、
記憶された前記データ量と前記移動速度との関係に基づいて、次の読み取り動作時における前記移動速度を制御する
ことを特徴とする画像読取装置。
【請求項７】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力する画像読取部と、
前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、
前記コントローラに制御され、前記データに基づいて前記原稿の画像を印刷する印刷部と、
を備えた印刷装置において、
前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更することを特徴とする印刷装置。
【請求項８】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力し、
前記データをメモリにバッファし、
前記メモリにバッファされたデータ量を検出し、
検出された前記データ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更する
ことを特徴とする画像読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置、印刷装置及び画像読取方法に関する。
【背景技術】
【０００２】
原稿から画像を読み取る読取装置としてスキャナが知られている。一般的なスキャナは、光源やＣＣＤセンサなどを搭載した読取キャリッジを移動させ、原稿全体の画像を読み取る。原稿から画像を読み取る際に、読取キャリッジは、停止状態から加速し、一定速度移動し、減速し、停止する。そして、読取キャリッジが一定速度で移動しているときに、原稿から画像が読み取られる。
【特許文献１】特開平７−３６１２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のスキャナでは、１ライン分のデータが順次転送されてくる。そして、スキャナを制御するコントローラは、転送されてくるデータをメモリにバッファしている。  
バッファが一杯になると、読み取り動作を中断する必要がある。しかし、読み取り動作の中断が繰り返されると、読み取り動作のスループットが低下する。  
本発明は、読み取り動作のスループットを向上することを目的とする。
【課題を解決するための手段】
【０００４】
上記課題を解決するための主たる発明は、読取キャリッジを移動させながら原稿の画像を読み取り、データを出力する画像読取部と、前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、を備えた画像読取装置において、前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記読取キャリッジの移動速度を変更することを特徴とする。
【０００５】
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【０００６】
＝＝＝開示の概要＝＝＝
本明細書及び添付図面の記載により、少なくとも、以下の事項が明らかとなる。
【０００７】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力する画像読取部と、
前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、
を備えた画像読取装置において、
前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更することを特徴とする画像読取装置。  
このような画像読取装置によれば、読み取り動作のスループットを向上できる。
【０００８】
また、前記コントローラは、書き込みポインタ及び読み出しポインタに基づいて、前記メモリにバッファされたデータ量を算出することが望ましい。これにより、バッファされたデータ量をソフトウェア上で検出できる。
【０００９】
また、前記コントローラは、前記メモリを制御するメモリ制御部を有し、前記メモリ制御部は、前記メモリにバッファされたデータ量に応じた信号を出力し、前記コントローラは、前記信号に基づいて、前記移動速度を変更することが望ましい。これにより、バッファされたデータ量をハードウェアで検出できる。
【００１０】
また、前記コントローラは、前記メモリにバッファされたデータ量が所定の範囲を超えたときに、前記移動速度が遅くなるように前記画像読取部を制御することが望ましい。これにより、読み取り動作の中断を回避できる。
【００１１】
また、前記コントローラは、前記メモリにバッファされたデータ量が所定量に達しないときに、前記移動速度が速くなるように前記画像読取部を制御することが望ましい。これにより、読み取り動作のスループットを向上できる。
【００１２】
また、前記コントローラは、前記原稿の画像を読み取る際に、前記データ量と前記移動速度を記憶し、記憶された前記データ量と前記移動速度との関係に基づいて、次の読み取り動作時における前記移動速度を制御することが望ましい。これにより、読み取り動作のスループットを向上できるとともに、読み取り動作の中断を回避できる。
【００１３】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力する画像読取部と、
前記画像読取部を制御するとともに、前記画像読取部から出力されたデータをメモリにバッファするコントローラと、
前記コントローラに制御され、前記データに基づいて前記原稿の画像を印刷する印刷部と、
を備えた印刷装置において、
前記コントローラは、前記メモリにバッファされたデータ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更することを特徴とする印刷装置。  
このような印刷装置によれば、印刷動作のスループットを向上できる。
【００１４】
センサユニットと原稿とを相対的に移動させながら原稿の画像を読み取り、データを出力し、
前記データをメモリにバッファし、
前記メモリにバッファされたデータ量を検出し、
検出された前記データ量に基づいて、前記センサユニットと前記原稿との相対的な移動速度を変更する
ことを特徴とする画像読取方法。  
このような画像読取方法によれば、読み取り動作のスループットを向上できる。
【００１５】
＝＝＝印刷システムの構成＝＝＝
図１は、本実施形態のＳＰＣ複合装置の全体図である。図２は、ＳＰＣ複合装置の構成のブロック図である。本実施形態のＳＰＣ複合装置１は、原稿から画像を読み取るためのスキャナ機能、外部のコンピュータからの印刷データに基づいて画像を紙に印刷するプリンタ機能、スキャナ機能により入力した画像を紙に印刷するコピー機能を有する複合装置である。
【００１６】
このＳＰＣ複合装置１は、プリンタ部１０（印刷部に相当）と、スキャナ部２０（画像読取部に相当）と、パネル部３０と、コントローラ５０と、メモリ６０とを有する。プリンタ部１０の主な構成要素は、ＳＰＣ複合装置１の下部に設けられている。スキャナ部２０は、プリンタ部１０の上方に設けられている。パネル部３０は、ユーザが操作し易いように、ＳＰＣ複合装置１の前面に設けられている。
【００１７】
図３は、ＳＰＣ複合装置１におけるプリンタ部１０の説明図である。プリンタ部１０は、紙を搬送する搬送ユニット（不図示）と、インクを吐出するヘッドを移動させるキャリッジ１６とを有し、搬送ユニットによる搬送動作と、移動するヘッドからインクを吐出するドット形成動作とを交互に繰り返すことにより、いわゆるインクジェット方式により紙に印刷を行う。不図示の搬送ユニットは、ＳＰＣ複合装置１の背面の給紙部１２にセットされた紙を給紙し、ＳＰＣ複合装置１の前面の排紙部１４へ印刷された紙を排紙する。ＳＰＣ複合装置１の上部に設けられたスキャナ部２０を持ち上げると、プリンタ部１０のキャリッジ１６が露出し、キャリッジに搭載されるインクカートリッジ１６２の交換が可能になる。
【００１８】
図４は、ＳＰＣ複合装置１におけるスキャナ部２０の説明図である。スキャナ部２０は、上蓋２１と、載置ガラス２２とを有する。載置ガラス２２に原稿５が置かれたときに上蓋２１を閉じると、原稿５が載置ガラス２２に押圧されて原稿が平らになり、原稿５がスキャナ部２０にセットされる。なお、スキャナ部２０の主な構成については、後述する。
【００１９】
パネル部３０は、液晶ディスプレイと、各種のボタンを有する。ユーザは、各種のボタンを押すことにより、ＳＰＣ複合装置１に対して情報を入力することができる。例えば、ユーザがパネル部３０のコピーボタンを押すことにより、ＳＰＣ複合装置１にコピーを行わせることができる。
【００２０】
コントローラ５０は、プリンタ部１０やスキャナ部２０等を制御し、ＳＰＣ複合装置の全体の制御を行う。このコントローラ５０は、不図示のＣＰＵやＡＳＩＣ等から構成される。また、ＣＰＵの演算領域やプログラムの記憶領域を確保するメモリ６０もコントローラ５０の一部を構成する。後述するコントローラ５０の機能は、ソフトウェアによって実現されても良いし、ハードウェアによって実現されても良いし、ソフトウェア及びハードウェアの協働によって実現されても良い。
【００２１】
＜プリンタ機能について＞
図５は、プリンタ機能時のデータの流れの説明図である。  
コンピュータ３には、予めＳＰＣ複合装置１のプリンタドライバがインストールされている。そして、プリンタドライバは、コンピュータ３に、アプリケーションソフトにより作成された画像データを印刷データに変換させる。この印刷データには、コマンドデータと画素データとが含まれている。コマンドデータは、ＳＰＣ複合装置１のプリンタ部を制御するためのデータである。画素データは、印刷画像を構成するドットの有無・色・階調に関するデータである。そして、プリンタドライバは、コンピュータに、印刷データをＳＰＣ複合装置１に送信させる。  
コントローラ５０は、コンピュータ３から送られてきた印刷データを、コマンドデータと画素データとに分離して、メモリ６０にバッファする。そして、コントローラ５０は、受信したコマンドデータに基づいてプリンタ部１０を制御し、画素データに基づいてヘッドからインクを吐出させ、印刷を行う。これにより、ＳＰＣ複合装置１は、外部のコンピュータ３からの印刷データに基づいて画像を紙に印刷するプリンタとして機能する。
【００２２】
＜スキャナ機能について＞
図６は、スキャナ機能時のデータの流れの説明図である。  
コンピュータ３には、予めＳＰＣ複合装置１のスキャナドライバがインストールされている。また、ユーザは、予めスキャナ部２０に原稿５をセットする。そして、ユーザは、コンピュータ３上でスキャナドライバの設定を行い、例えば読取解像度、白黒・カラー、読み取り範囲などの設定を行う。  
ユーザがコンピュータ上でスキャナドライバによりスキャン開始を指示すると、スキャナドライバは、コンピュータ３に、ユーザの設定内容に応じた制御データをＳＰＣ複合装置１に送信させる。  
コントローラ５０は、受信した制御データに基づいてスキャナ部２０を制御し、スキャナ部２０から原稿５の画像データを取得する。スキャナ部２０から取得した画像データは、メモリ６０に一旦バッファされる。そして、コントローラ５０は、取得した画像データをコンピュータ３に送信する。これにより、ＳＰＣ複合装置１は、原稿５の画像を読み取るスキャナとして機能する。
【００２３】
＜コピー機能について＞
図７は、コピー機能時のデータの流れの説明図である。  
ユーザは、予めスキャナ部２０に原稿５をセットする。そして、ユーザは、パネル部３０を操作して、紙の大きさ、原稿の大きさ、倍率、コピーモード（はやい／きれい）等の設定を行う。
【００２４】
ユーザがパネル部３０のコピーボタンを押すと、印刷開始を示す開始信号がパネル部３０からコントローラ５０へ送られる。コントローラ５０は、ユーザの設定内容に応じた制御データに基づいてスキャナ部２０を制御し、スキャナ部２０から原稿５の画像データを取得する。スキャナ部２０から取得した画像データは、メモリ６０に一旦バッファされる。
【００２５】
スキャナ部２０から取得した画像データは、例えば２５６階調のＲＧＢ（レッド、グリーン、ブルー）のデータである。コントローラ５０は、このデータを、２５６階調のＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）のデータに変換する（色変換する）。なお、色変換に必要な色変換テーブルは、メモリ６０に格納されている。次に、コントローラ５０は、２５６階調のＣＭＹＫデータを２階調のＣＭＹＫデータに変換する（ハーフトーン処理する）。この２階調のＣＭＹＫデータが、印刷データの画素データを構成する。なお、２５６階調のデータを２階調のデータに変換するための変換テーブルも、メモリ６０に格納されている。また、変換された２階調のデータも、メモリ６０にバッファされる。
【００２６】
画像データが印刷データに変換された後、コントローラ５０は、この印刷データに基づいてプリンタ部１０を制御して印刷を行う。これにより、ＳＰＣ複合装置１は、コピー機として機能する。
【００２７】
＝＝＝スキャナ部２０の構成＝＝＝
＜スキャナ部２０の全体構成について＞
図８は、スキャナ部２０の構成の説明図である。スキャナ部２０は、上蓋２１及び載置ガラス２２のほかに、読取キャリッジ２３と、駆動ユニット２４と、エンコーダ２５と、センサユニット７０とを更に有する。
【００２８】
読取キャリッジ２３は、ガイド２３１により移動方向（副走査方向）に沿って移動可能である。この読取キャリッジ２３にはセンサユニット７０が収容されている。  
駆動ユニット２４は、駆動モータ２４１と、プーリ２４２と、タイミングベルト２４３とを有する。駆動モータ２４１が駆動すると、プーリ２４２が回転されて、タイミングベルト２４３も回転する。タイミングベルト２４３の一部が読取キャリッジ２３と接合されており、タイミングベルト２４３が回転すると、読取キャリッジ２３がガイド２３１に沿って移動方向に移動する。  
エンコーダ２５は、駆動モータ２４１の回転量を検出する。エンコーダ２５の検出結果は、コントローラ５０に出力される。コントローラ５０は、駆動モータ２４１の回転量を検出すれば、読取キャリッジ２３の位置を検出することができる。
【００２９】
センサユニット７０は、光源７１と、光学系７２と、ＣＣＤセンサ７３とを有する。光源７１は、原稿５に光を照射する。光源７１は、ＲＧＢの３色のＬＥＤを有し、Ｒ点灯→Ｇ点灯→Ｂ点灯→消灯を順次切り替える。光学系７２は、原稿５からの反射光をＣＣＤセンサ７３へ結像させる。ＣＣＤセンサ７３は、受けた光に応じた信号を出力する。ＣＣＤセンサ７３は、コントローラ５０によって制御され、Ｒデータ→Ｇデータ→Ｂデータを画像データとしてコントローラ５０へ順次出力することになる。  
センサユニット７０は、原稿５において、主走査方向に長いライン状の領域の画像を読み取る。このセンサユニット７０が読取キャリッジ２３により移動方向（副走査方向）に移動することによって、スキャナ部２０は原稿５の全体の画像を読み取ることができる。
【００３０】
＜各種信号について＞
図９は、各種信号のタイミングの説明図である。
【００３１】
Ａ相信号（ＥＮＣ Ａ）及びＢ相信号（ＥＮＣ Ｂ）は、エンコーダ２５から出力される信号である。読取キャリッジ２３が１／４８００インチずつ進むごとに、１パルス分のＡ相信号及びＢ相信号が出力される。なお、Ａ相信号とＢ相信号は、位相が９０度ずれている。
【００３２】
ポジショントリガ信号は、エンコーダ２５の出力に基づいてコントローラ５０がスキャナ部２０へ出力する制御信号である。コントローラ５０は、Ａ相信号の立ち上がりエッジが４回あるごとに、パルス信号をポジショントリガ信号として出力する。つまり、ポジショントリガ信号は、読取キャリッジ２３が１／１２００インチずつ進むごとに出力される。
【００３３】
ポジショントリガ信号がスキャナ部２０に入力されると、光源７１の３色のＬＥＤのうちのＲのＬＥＤが６ｍｓの蓄積時間だけ点灯する。ＲのＬＥＤの点灯後、ＧのＬＥＤが６ｍｓの蓄積時間だけ点灯する。ＧのＬＥＤの点灯後、ＢのＬＥＤが６ｍｓの蓄積時間だけ点灯する。ＢのＬＥＤの点灯後、次のポジショントリガ信号が入力されるまで、光源７１は消灯する。図に示すとおり、ここでは消灯時間はＴoffである。
【００３４】
また、ＲのＬＥＤの点灯後、ＧのＬＥＤの点灯中に、ＣＣＤセンサ７３からＲデータが転送される。ＧのＬＥＤの点灯後、ＢのＬＥＤの点灯中に、ＣＣＤセンサ７３からＧデータが転送される。ＢのＬＥＤの点灯後、消灯時間中に、ＣＣＤセンサ７３からＢデータが転送される。各色のデータの転送は、転送時間Ｔtrnの間に行われる。転送時間Ｔtrnは、６ｍｓよりも短い時間である。
【００３５】
読取キャリッジ２３の移動速度が変わると、ポジショントリガ信号の周期が変わってくる。この結果、光源７１の消灯時間Ｔoffの時間も変わってくる。但し、Ｂデータの転送は、消灯時間中に行われるため、消灯時間Ｔoffは、転送時間Ｔtrnよりも長く設定する必要がある。したがって、読取キャリッジ２３の移動速度Ｖの最高速度Ｖmaxは、この条件（Ｔoff≧Ｔtrn）を満たすように決められている。
【００３６】
スキャナ部２０は、読取キャリッジ２３が１／１２００インチずつ進むごとに、１ライン分のＲＧＢデータを出力することになる。このため、読取キャリッジ２３の移動速度が速くなると、スキャナ部２０から出力されるデータ速度が速くなる。また、読取キャリッジ２３の移動速度が遅くなると、スキャナ部２０から出力されるデータ速度が遅くなる。
【００３７】
＜読取キャリッジ２３の移動制御＞
図１０は、スキャナ部２０の駆動モータ２４１を制御するコントローラ５０の機能的な構成の説明図である。
【００３８】
コントローラ５０は、速度演算部５２４と、減算部５２５と、ＰＩＤ演算部５２６と、ＰＷＭ回路５２７とを有する。図中の構成要素のうちの速度演算部５２４、減算部５２５及びＰＩＤ演算部５２６の機能は、ソフトウェアによって実現される。ＰＷＭ回路５２７はハードウェアによって実現される。このように、図中のコントローラ５０の機能は、ソフトウェアとハードウェアによって実現される。
【００３９】
速度演算部５２４は、エンコーダ２５の出力（ＥＮＣ Ａ、ＥＮＣ Ｂ）のエッジの周期を計時し、この周期に基づいて読取キャリッジ２３の速度（若しくは駆動モータ２４１の回転速度）を演算する。減算部５２５は、目標速度と、速度演算部５２４により検出された速度との差（速度偏差）を演算する。ＰＩＤ演算部５２６は、比例要素５２６Ａと、積分要素５２６Ｂと、微分要素５２６Ｃと、加算要素５２６Ｄとを有する。比例要素５２６Ａは、速度偏差に比例ゲインＧｐを乗算し、比例成分を算出する。積分要素５２６Ｂは、速度偏差に積分ゲインＧｉを乗算したものを積算し、積分成分を算出する。微分要素５２６Ｃは、現在の速度偏差と、１つ前の速度偏差との差に微分ゲインＧｄを乗算し、微分成分を算出する。加算要素５２６Ｄは、比例成分、積分成分及び微分成分を合計する。この合計結果は、デューティ信号として、ＰＷＭ回路５２７へ出力される。ＰＷＭ回路５２７は、ディユーティ信号に基づいて、駆動モータ２４１を制御するための駆動信号を出力する。
【００４０】
図１１は、メモリ６０に格納されているゲインテーブルの説明図である。ゲインテーブルは、目標速度とゲインＧｐ、Ｇｉ、Ｇｄの値とを対応付けたテーブルであり、メモリ６０に格納されている。  
ＰＩＤ制御では、現実の速度（この場合、駆動モータの回転速度又は読取キャリッジ２３の移動速度）が目標速度に精度良く追従するように、目標速度に応じてゲインが設定されている。そして、コントローラ５０は、目標速度をキーにしてゲインテーブルを参照し、参照結果に基づいてＰＩＤ演算部５２６の各ゲインＧｐ、Ｇｉ、Ｇｄの値を決定する。  
後述するように目標速度が変更された場合、コントローラ５０は、目標速度を変更するタイミングで各ゲインＧｐ、Ｇｉ、Ｇｄを変更する。
【００４１】
＝＝＝バッファリング＝＝＝
＜ＦＩＦＯメモリの構成＞
コントローラ５０は、ＳＰＣ複合装置１をスキャナとして機能させるとき、又はＳＰＣ複合装置１をコピー機として機能させるとき、スキャナ部２０から送られてくるデータをメモリ６０にバッファする。このとき、コントローラ５０は、メモリ６０の一部の領域をＦＩＦＯメモリとして活用している。なお、ＦＩＦＯメモリとして活用されるメモリの領域は、原稿の１頁分の画像データを格納するよりも少ないメモリ領域である。
【００４２】
ＦＩＦＯメモリとして活用するためのコントローラ５０の構成は、ソフトウェアでもハードウェアでも構成することができる。ここでは、ソフトウェアで構成する場合について説明する。
【００４３】
図１２Ａ〜図１２Ｄは、ＦＩＦＯメモリの説明図である。図１２Ａは、ポインタの説明図である。図１２Ｂは、書き込むときの動作の説明図である。図１２Ｃは、読み出すときの動作の説明図である。図１２Ｄは、バッファ領域を超えて書き込むときの動作の説明図である。
【００４４】
まず、コントローラ５０は、一定のバッファ領域を確保する。コントローラ５０は、図１２Ａの上ほど新しいデータになるようにデータを格納し、バッファ領域を超えたらはじめに戻るようにし、見かけ上、このバッファ領域をリング状に扱う。また、コントローラ５０は、データをメモリに書き込むためのアドレスを管理する書き込みポインタと、読み出すためのアドレスを管理する読み出しポインタとを用意する。書き込みポインタと読み出しポインタとの間のアドレスには、既にバッファされているデータが格納されている。
【００４５】
図１２Ｂに示すように、データを書き込むとき、コントローラ５０は、書き込みポインタの示すアドレスにデータを格納する。そして、コントローラ５０は、書き込みポインタの示すアドレスを一つ進める（書き込みポインタを上に上げる）。
【００４６】
図１２Ｃに示すように、データを読み出すとき、コントローラ５０は、読み出しポインタの示すアドレスのデータを読み出す。そして、コントローラ５０は、読み出しポインタの示すアドレスを一つ進める（読み出しポインタを上に上げる）。
【００４７】
図１２Ｄに示すように、書き込みポインタがバッファ領域を超えるとき、コントローラ５０は、バッファ領域の先頭アドレスに書き込みポインタを戻す。これにより、先頭アドレスにデータが書き込まれるようになる。同様に、読み出しポインタがバッファ領域を超えるとき、コントローラは、バッファ領域の先頭アドレスに読み出しポインタを戻す。これにより、先頭アドレスからデータが読み出されるようになる。
【００４８】
書き込みポインタと読み出しポインタとの間のアドレスには、既にバッファされているデータが格納されている。このため、コントローラ５０は、書き込みポインタと読み出しポインタを参照すれば、バッファされているデータ量を検出できる。
【００４９】
＜ステータスについて＞
図１３は、バッファされているデータ量とステータスとの関係の説明図である。ここでは、読み出しポインタのアドレスが一番下になるようにリングバッファが描かれている。図中の斜線部分は、バッファされているデータを示している。
【００５０】
バッファ領域一杯までデータが格納されると、ステータスは「ＦＵＬＬ」になる。所定のデータ量を格納するとステータスがＦＵＬＬになる状態のとき、ステータスは「ＮＥＡＲ  ＦＵＬＬ」になる。一方、バッファ領域にデータが格納されていないとき、ステータスは「ＥＭＰＴＹ」になる。また、「ＥＭＰＴＹ」から所定のデータ量を格納した状態のとき、ステータスは「ＮＥＡＲ  ＥＭＰＴＹ」になる。
【００５１】
書き込まれるデータ量と読み出されるデータ量が同じであれば、バッファされるデータ量は一定である。但し、書き込まれるデータ量が読み出されるデータ量よりも多いと、バッファされるデータ量は増える。逆に、書き込まれるデータ量が読み出されるデータ量よりも少ないと、バッファされるデータ量は減る。  
言い換えると、書き込まれるデータの速度が読み出されるデータの速度よりも速いと、バッファされるデータ量は増えていくことになる。また、書き込まれるデータの速度が読み出されるデータの速度よりも遅いと、バッファされるデータ量は減っていくことになる。
【００５２】
なお、図中の「Target_Min」、「Target」及び「Target_Max」については、後述する。
【００５３】
＝＝＝本実施形態の説明＝＝＝
＜参考説明＞
スキャナ部２０から送られてくるデータの転送速度が、ＦＩＦＯメモリからのデータ読み出し速度よりも速い場合、ＦＩＦＯメモリにバッファされるデータ量は増え続けることになる。この状況が続くと、ステータスが「ＮＥＡＲ  ＦＵＬＬ」になる。
【００５４】
ステータスが「ＮＥＡＲ  ＦＵＬＬ」になると、コントローラ５０は、読み取り動作を中断する。具体的には、コントローラ５０は、移動中の読取キャリッジ２３を停止させ、光源７１を消灯する。その後、コントローラ５０は、読取キャリッジ２３の位置を少し戻す。そして、ステータスが「ＮＥＡＲ  ＥＭＰＴＹ」になるまで、コントローラ５０は、この状態で待機する。  
そして、バッファされたデータが読み出された結果、ステータスが「ＮＥＡＲ  ＥＭＰＴＹ」に切り替わると、コントローラ５０は、読取キャリッジ２３を移動方向に移動させ、中断された読み取り位置からの読み取り動作をスキャナ部２０に行わせる。
【００５５】
このように、ステータスが「ＮＥＡＲ  ＦＵＬＬ」になると、スキャン動作の完了が遅れてしまい、スループットが低下する。また、読み取り動作の中断・再開を繰り返すと、読み取り位置の誤差が生じやすくなり、読み取り精度が低下するおそれがある。また、読み取り動作の中断・再開を繰り返すと、光源７１を安定して動作させられず、読み取り結果に色ムラが生じるおそれがある。
【００５６】
＜本実施形態の読み取り動作＞
図１４は、本実施形態の読み取り動作のフロー図である。  
本実施形態では、読取キャリッジ２３の移動速度を変更することによって、スキャナ部２０から送られてくるデータの転送速度を遅くして、メモリにバッファされるデータ量を調整している。これにより、本実施形態によれば、読み取り動作が中断されることを回避している。  
以下、各動作について説明する。
【００５７】
＜１回目の読み取り動作（Ｓ１０１）＞
まず、コントローラ５０は、１回目の読み取り動作を行う（Ｓ１０１）。すなわち、コントローラ５０は、デフォルトの目標速度に基づいて駆動モータ２４１を駆動し、読取キャリッジ２３を移動方向に移動させ、読取キャリッジ２３が１／１２００インチずつ進むごとに１ライン分のＲＧＢデータをスキャナ部２０から取得する。前述の通り、スキャナ部２０から送られてくるデータは、メモリ６０のうちのＦＩＦＯメモリとして定義されているバッファ領域に格納される。そして、スキャナ機能時であれば、コントローラ５０は、バッファされたデータを読み出し、外部のコンピュータ３に送信する（図６参照）。また、コピー機能時であれば、コントローラ５０は、バッファされたデータを読み出して印刷データに変換し、印刷データに基づいてプリンタ部１０を制御して印刷を行う（図７参照）。
【００５８】
１回目の読み取り動作中に、コントローラ５０は、所定周期ごとにタイマー割り込みし、ＦＩＦＯメモリにバッファされているデータ量と目標速度とを対応付けたテーブルをメモリ６０に記憶する。バッファされているデータ量は、前述の通り、書き込みポインタと読み出しポインタに基づいて算出される。  
図１５は、データ量と目標速度とを対応付けたテーブルの説明図である。ここでは、ｎ回の割り込みが行われ、そのときのＦＩＦＯメモリにバッファされているデータ量と目標速度とが対応付けられてテーブルに記憶される。
【００５９】
また、１回目の読み取り動作中に、コントローラ５０は、目標速度の更新を判定する。具体的には、バッファされているデータ量をＬnumとしたときに、コントローラ５０は、Target_Min≦Ｌnum≦Target_Maxの範囲か否かを判定し、Ｌnumがこの範囲内であれば現在の目標速度を維持する。Ｌnumがこの範囲内であれば、読み取り動作を中断せずに済むからである。一方、コントローラ５０は、Ｌnum＜Target_Minであれば、現在の目標速度よりも速い速度になるように目標速度を変更する。これにより、読み取り動作のスループットを向上できる。また、コントローラ５０は、Ｌnum＞Target_Maxであれば、現在の目標速度よりも遅い速度になるように目標速度を変更する。このままではステータスが「ＮＥＡＲ  ＦＵＬＬ」に達してしまい、読み取り動作が中断されるおそれがあるからである。なお、前述の通り、目標速度を変更したとき、ＰＩＤ演算部５２６（図１０参照）のゲインの値も変更される（図１１参照）。
【００６０】
なお、目標速度が変更された結果、読取キャリッジ２３の移動速度が変更されるが、読取キャリッジ２３が１／１２００インチずつ進むごとに１ライン分のＲＧＢデータがスキャナ部２０から出力されることには変わりはない（出力されるデータ速度が変わるだけである）。このため、目標速度が変更されても、読み取り結果である画像データの示す画像が歪むことはない。
【００６１】
＜関係式の算出（Ｓ１０２）＞
次に、コントローラ５０は、図１５のテーブルに基づいて、データ量と目標速度との関係式を算出する。具体的には、コントローラ５０は、最小二乗法に基づいて、データ量と目標速度との一次近似式Ｌnum＝ａ×Ｖ＋ｂの係数ａ、ｂを算出する。なお、係数ａ、ｂは、次式のように求められる。
【数１】
2008072642.tif 000003
【００６２】
＜目標速度の決定（Ｓ１０３）＞
図１６は、目標速度の決定の説明図である。図中のグラフの横軸は目標速度であり、縦軸はデータ量Ｌnumである。図中の黒丸は、Ｓ１０１で記憶したデータ量・目標速度のプロットであり、図中の直線は、Ｓ１０２で算出された近似式Ｌnum＝ａ×Ｖ＋ｂである。
【００６３】
前述の図１５の「Target」は、２回目以降の読み取り動作中のデータ量Ｌnumの理想値である。この「Target」は、「Target_Min」と「Target_Max」の間の値であり、具体的には「Target_Min」と「Target_Max」の中間値である。
【００６４】
コントローラ５０は、次式に基づいて、「Target」に対応する目標速度Ｖ’を算出する。
【数２】
2008072642.tif 000004
【００６５】
なお、目標速度Ｖ’は、最低速度Ｖmin以上、最高速度Ｖmax以下の範囲にしなければならないので、コントローラ５０は、この範囲内で目標速度Ｖ’を決定する。上式で算出された目標速度Ｖ’がこの範囲内であれば、コントローラ５０は、算出された目標速度Ｖ’を、そのまま次の読み取り動作時の目標速度にする。仮に、上式で算出された目標速度Ｖ’が最低速度Ｖminより小さければ、コントローラ５０は、目標速度Ｖ’をＶminに変更する。また、上式で算出された目標速度Ｖ’が最高速度Ｖmaxより大きければ、コントローラ５０は、目標速度Ｖ’をＶmaxに変更する。
【００６６】
＜２回目以降の読み取り動作（Ｓ１０４）＞
次に、コントローラ５０は、２回目以降の読み取り動作を行う。このとき、コントローラ５０は、Ｓ１０３で決定された目標速度Ｖ’に基づいて駆動モータ２４１を駆動する。この目標速度Ｖ’で駆動モータ２４１を駆動して読み取り動作を行えば、読み取り動作中にＦＩＦＯメモリにバッファされるデータ量Ｌnumが、Target_Min≦Ｌnum≦Target_Maxの範囲になる。このため、読み取り動作の中断は生じず、また、読み取り動作速度が必要以上に低速になっていないので、読み取り動作のスループットが向上する。
【００６７】
なお、Ｓ１０３で決定された目標速度Ｖ’に基づいて読み取り動作が行われたにも関わらず、バッファされるデータ量ＬnumがTarget_Min≦Ｌnum≦Target_Maxの範囲から外れた場合、コントローラ５０は、前述のＳ１０１の場合と同様に、目標速度を調整しても良い。また、２回目以降の読み取り動作の際に、コントローラ５０は、前述のＳ１０１〜Ｓ１０３と同様の動作を行い、更に次の読み取り動作時の目標速度を決定しても良い。
【００６８】
＝＝＝その他の実施の形態＝＝＝
上記の実施形態は、主としてＳＰＣ複合装置について記載されているが、その中には、画像読取装置（スキャナ）、画像読取方法等の開示が含まれていることは言うまでもない。
【００６９】
また、一実施形態としてのＳＰＣ複合装置等を説明したが、上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。
【００７０】
＜ＳＰＣ複合装置について＞
前述の実施形態では、画像読取装置の一例としてＳＰＣ複合装置１が説明されている。但し、画像読取装置は、ＳＰＣ複合装置１に限られるものではない。画像読取装置は、いわゆるスキャナ単体であっても良い。  
但し、ＳＰＣ複合装置１に前述の実施形態の読み取り動作を適用することによって、コピー時の印刷動作のスループットを向上させることができる。
【００７１】
＜スキャナ部について＞
前述の実施形態では、読取キャリッジ２３が移動しているため、原稿に対してセンサユニット７０が移動している。しかし、これに限られるものではない。要するに、センサユニットと原稿との間で相対的な移動があればよい。このため、原稿がセンサユニット７０に対して移動しても良い。この場合、原稿を移動させるための原稿移動機構を用意し、センサユニット７０に対する原稿の移動速度を変更することによって、スキャナ部２０から送られてくるデータの転送速度を遅くして、メモリにバッファされるデータ量を調整することになる。
【００７２】
＜ＦＩＦＯメモリについて＞
前述の実施形態では、ＦＩＦＯメモリをソフトウェアで構成している。しかし、これに限られるものではない。コントローラ５０は、ハードウェアで構成されたＦＩＦＯメモリを備えていても良い。この場合、コントローラ５０は、データをバッファするためのメモリと、このメモリを制御するためのメモリコントローラ（メモリ制御部に相当）と呼ばれるＬＳＩとを備える。メモリコントローラは、Full信号、NearFull信号、NearEmpty信号、Empty信号を出力するだけでなく、バッファされたデータ量が前述の「Target_Min」に達したときにＨレベルになるTarget_Min信号や、バッファされたデータ量が前述の「Target_Max」に達したときにＨレベルになるTarget_Max信号を出力するように構成される。
【００７３】
そして、コントローラ５０は、Target_Min信号がＨレベルであり、Target_Max信号がＬレベルであれば、現在の目標速度を維持する。但し、コントローラ５０は、Target_Min信号がＬレベルになれば、目標速度が速くなるようにする。また、Target_Max信号がＨレベルになれば、目標速度が遅くなるようにする。  
このようにすれば、コントローラ５０は、ハードウェアを用いて、メモリにバッファされたデータ量に基づいて目標速度を変更することができる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態のＳＰＣ複合装置の全体図である。
【図２】ＳＰＣ複合装置の構成のブロック図である。
【図３】ＳＰＣ複合装置におけるプリンタ部の説明図である。
【図４】ＳＰＣ複合装置におけるスキャナ部の説明図である。
【図５】プリンタ機能時のデータの流れの説明図である。
【図６】スキャナ機能時のデータの流れの説明図である。
【図７】コピー機能時のデータの流れの説明図である。
【図８】スキャナ部の構成の説明図である。
【図９】各種信号のタイミングの説明図である。
【図１０】スキャナ部２０の駆動モータ２４１を制御するコントローラ５０の機能的な構成の説明図である。
【図１１】メモリ６０に格納されているゲインテーブルの説明図である。
【図１２】図１２Ａ〜図１２Ｄは、ＦＩＦＯメモリの説明図である。図１２Ａは、ポインタの説明図である。図１２Ｂは、書き込むときの動作の説明図である。図１２Ｃは、読み出すときの動作の説明図である。図１２Ｄは、バッファ領域を超えて書き込むときの動作の説明図である。
【図１３】バッファされているデータ量とステータスとの関係の説明図である。
【図１４】本実施形態の読み取り動作のフロー図である。
【図１５】データ量と目標速度とを対応付けたテーブルの説明図である。
【図１６】目標速度の決定の説明図である。
【符号の説明】
【００７５】
１  ＳＰＣ複合装置、３  コンピュータ、５  原稿
１０  プリンタ部、１２  給紙部、１４  排紙部、
１６  キャリッジ、１６２  インクカートリッジ、
２０  スキャナ部、２１  上蓋、２２  載置ガラス、
２３  読取キャリッジ、２３１  ガイド、
２４  駆動ユニット、２４１  駆動モータ、２４２  プーリ、
２４３  タイミングベルト、
２５  エンコーダ、３０  パネル部、
５０  コントローラ、５２４  速度演算部、５２５  減算部、
５２６  ＰＩＤ演算部、５２７  ＰＷＭ回路、
６０  メモリ、７０  センサユニット、
７１  光源、７２  光学系、７３  ＣＣＤセンサ
【図１】
2008072642.tif 000005
【図２】
2008072642.tif 000006
【図３】
2008072642.tif 000007
【図４】
2008072642.tif 000008
【図５】
2008072642.tif 000009
【図６】
2008072642.tif 000010
【図７】
2008072642.tif 000011
【図８】
2008072642.tif 000012
【図９】
2008072642.tif 000013
【図１０】
2008072642.tif 000014
【図１１】
2008072642.tif 000015
【図１２】
2008072642.tif 000016
【図１３】
2008072642.tif 000017
【図１４】
2008072642.tif 000018
【図１５】
2008072642.tif 000019
【図１６】
2008072642.tif 000020