図1は本発明の画像読取装置の一実施形態であるスキャナ装置10の構成を示す図である。図2は図1のスキャナ装置10の要部拡大図であり、イメージセンサ36の構成を示す図である。図3はAFE27の構成を示す図である。図4は点順次による読取タイミングを示すタイミングチャートである。図5は線順次による読取タイミングを示すタイミングチャートである。このスキャナ装置10では、内蔵されたキャリッジ30が有するイメージセンサ36で読取面12に載置された読取原稿の画像を副走査方向に走査することにより画像の読取を実行し、取得した画像データをインタフェース(I/F)(本発明の「データ送信手段」に相当)29を介してユーザパソコン(PC)50などの外部機器に送信するように構成されている。
図1に示すように、スキャナ装置10は、ガラス板である読取面12に載置された読取原稿の画像を読取るキャリッジ30と、装置全体の制御を司る制御ユニット20とを備えている。また、このスキャナ装置10は、筐体上面14のキャリッジ30側に設けられた白基準板16と、読取原稿の上方に配置され透過原稿を読取るときに用いられる透過原稿用光源32と、キャリッジ30を移動する駆動モータ39とを備えている。
キャリッジ30は、読取原稿の下方に配置されており、読取面12に載置された原稿に光を照射する反射原稿用光源31と、原稿で反射または透過した光をミラー33および集光レンズ34を介して受けることにより画像を読取るイメージセンサ36とを備えている。反射原稿用光源31および透過原稿用光源32は、1個または複数の白色LEDからの光が線状に読取面12へ照射されるように構成されている。なお、赤色LED、緑色LED、青色LEDや水銀ランプなどにより白色光を照射するものとしてもよい。
また、図2に示すように、イメージセンサ36は、複数の光電変換素子が主走査方向に並設された赤色(R)の信号を出力する第1ラインセンサ36Rと、複数の光電変換素子が主走査方向に並設された緑色(G)の信号を出力する第2ラインセンサ素子列36Gと、複数の光電変換素子が主走査方向に並設された青色(B)の信号を出力する第3ラインセンサ36Bとを備えている。第1ラインセンサ36Rは1画素を構成する光電変換素子であり露光された光を電荷に変換して蓄積する複数のフォトダイオード41a1,41a2,41b1,41b2,41c1,41c2…と、各フォトダイオードごとに形成されフォトダイオードから受け取った電荷を水平方向に転送可能な複数のCCD42a,42b,42c…とを備えている。また、第2ラインセンサ36Gは、第1ラインセンサ36Rと同様に、フォトダイオード43a1,43a2,43b1,43b2,43c1,43c2…と、CCD44a,44b,44c…とを備えている。また、第3ラインセンサ36Bは、第1および第2ラインセンサ36R,36Gと同様に、フォトダイオード45a1,45a2,45b1,45b2,45c1,45c2…と、CCD46a,46b,46c…とを備えている。本実施形態では、複数のフォトダイオード41a1…の全体をフォトダイオード41と称し、複数のCCD42a…の全体をCCD42と称する。また、複数のフォトダイオード43a1…の全体をフォトダイオード43と称し、複数のCCD44a…の全体をCCD44と称する。また、複数のフォトダイオード45a1…の全体をフォトダイオード45と称し、複数のCCD46a…の全体をCCD46と称する。また、CCD42,44,46は、電子シャッタ機能を有しており、この電子シャッタ機能により電荷を図示しない基板へ逃がすことができるように構成されている。なお、図2に示すように、本実施形態では、1個のCCDに対して2個のフォトダイオードを設けて各ラインセンサ36R,36G,36Bを構成しているが、1個のCCDに設けるフォトダイオードの数としては2個に限られず、画像読取りの解像度に応じて任意の数のフォトダイオードを設けることができる。また、各ラインセンサ36R,36G,36Bを構成するCCDを主走査方向に並設させる個数は、画像読取りの解像度やスキャナ装置10の構成に応じて任意の個数を並設することができる。
また、キャリッジ30は、スキャナ装置10の筐体の一端に取り付けられた駆動モータ39と筐体の他端側に取り付けられた従動ローラ38aとの間に架設されたキャリッジベルト38が駆動モータ39によって駆動されるのに伴ってキャリッジ移動方向(副走査方向)へ移動可能に構成されている。そして、キャリッジ30を移動させることにより、読取面12に載置された読取原稿の画像を、イメージセンサ36で主走査方向にほぼ直交する副走査方向に走査して読取ったラインデータを、後述するAFE27に逐次出力する。また、主走査方向に各色のラインセンサ36R,36G,36Bを1列ずつ配列したイメージセンサ36を例に挙げたが、各色のラインセンサを2列以上配列してもよい。
制御ユニット20は、CPU23と、処理プログラムや各種テーブルを記憶するROM24と、イメージセンサ36が出力したラインデータなどのデータを一時的に格納するRAM22bと、RAM22bへの画像データの書込みとRAM22bからの画像データの読出しとを制御するRAM制御部22aと、PC50などの外部機器と接続可能なUSBインターフェース、LANインサーフェース、無線LANインターフェース、IEEE1394規格によるインターフェースなどのインタフェース(I/F)29と、イメージセンサ36を駆動制御するCCDコントローラ25と、イメージセンサ36の種々の動作の開始タイミングなどをイメージセンサ36に出力するタイミングジェネレータ(TG)26と、イメージセンサ36から出力された電気信号を増幅してデジタル信号に変換するアナログフロントエンド(AFE)27と、AFE27から入力した信号にシェーディング補正やガンマ補正など所定の処理を実行してデジタル画像データを作成する画像処理部28とを備え、それぞれバスライン21を介して、制御指令信号や画像データの信号などの各種の信号が入出力が可能に構成されている。
また、制御ユニット20には、I/F29を介してPC50からの読取指令など各種の信号が入力され、制御ユニット20では、反射原稿用光源31や透過原稿用光源32への点灯信号や、駆動モータ39への駆動信号が出力される他、AFE27のゲイン調整、I/F29へのデジタル画像データの信号の出力、CCDコントローラ25へのメインクロックが生成される。また、メインコントローラ21からは、反射原稿用光源31や透過原稿用光源32への点灯信号や、駆動モータ39への駆動信号、AFE27へのゲイン調整信号、I/F29へのデジタル画像データの信号、CCDコントローラ25へのメインクロックや読取指令の信号などが出力される。
CCDコントローラ25は、制御ユニット20で生成されたメインクロックに基づいて作成したイメージセンサ36の電荷の読出開始タイミングに相当する駆動信号などをTG26へ出力するものであり、イメージセンサ36を点順次で駆動する点順次制御部25aとイメージセンサ36を線順次で駆動する線順次制御部25bとを備えている。
なお、図4に示すように、「点順次」とは、第1ラインセンサ36Rに含まれる1番目のCCD42aが有する1番目のフォトダイオード41a1、第2ラインセンサ36Gに含まれる1番目のCCD44aが有する1番目のフォトダイオード43a1、第3ラインセンサ36Bに含まれる1番目のCCD46aが有する1番目のフォトダイオード45a1、第1ラインセンサ36Rに含まれる2番目のCCD42bが有する1番目のフォトダイオード41b1、第2ラインセンサ36Gに含まれる2番目のCCD44bが有する1番目のフォトダイオード43b1、というようにラインセンサ36R,36G,36Bの順でかつ各ラインセンサ36R,36G,36Bに含まれる各フォトダイオード41,43,45の順に蓄積された電荷を読出すことをいう。そして、各CCD42,44,46が有する1番目のフォトダイオードに蓄積された電荷を読出したら、次に、第1ラインセンサ36Rに含まれる1番目のCCD42aが有する2番目のフォトダイオード41a2、第2ラインセンサ36Gに含まれる1番目のCCD44aが有する2番目のフォトダイオード43a2、第3ラインセンサ36Bに含まれる1番目のCCD46aが有する2番目のフォトダイオード45a2、第1ラインセンサ36Rに含まれる2番目のCCD42bが有する2番目のフォトダイオード41b2、第2ラインセンサ36Gに含まれる2番目のCCD44bが有する2番目のフォトダイオード43b2、というように、各CCD42,44,46が有する2番目のフォトダイオードに蓄積された電荷が、ラインセンサ36R,36G,36Bの順で読出される。
具体的には、図4に示すように、CCDコントローラ25は、すべてのラインセンサ36R,36G,36Bへシフト信号を出力する(時刻t1)。すると、すべてのラインセンサ36R,36G,36Bが同じタイミングで読取画像用の電荷の蓄積を開始する。次に、読出開始タイミングに至ると、すべてのラインセンサ36R,36G,36Bへシフト信号と駆動信号とを出力する(時刻t2)。すると、各々のラインセンサ36R,36G,36Bでは、各CCD42,44,46が有する1番目のフォトダイオード41a1,41b1,…,43a1,43b1,…,45a1,45b1,…に蓄積された電荷をCCD42,44,46に移動し、CCD42,44,46に移動した電荷を第1ラインセンサ36R、第2ラインセンサ36Gおよび第3ラインセンサ36Bの順、かつ各ラインセンサ36R,36G,36Bのフォトダイオード41a1,41b1,…,43a1,43b1,…,45a1,45b1,…の主走査方向への並び順に、すなわち点順次で読出す処理を行う(時刻t2〜t3)。そして、次の読出開始タイミングに至ると、すべてのラインセンサ36R,36G,36Bへシフト信号と駆動信号とを出力する(時刻t3)。すると、各々のラインセンサ36R,36G,36Bでは、各CCD42,44,46が有する2番目のフォトダイオード41a2,41b2,…,43a2,43b2,…,45a2,45b2,…に蓄積された電荷をCCD42,44,46に移動し、CCD42,44,46に移動した電荷を第1ラインセンサ36R、第2ラインセンサ36Gおよび第3ラインセンサ36Bの順、かつ各ラインセンサ36R,36G,36Bのフォトダイオード41a2,41b2,…,43a2,43b2,…,45a2,45b2,…の主走査方向への並び順で読出す処理が行われる(時刻t3〜t4)。このように、点順次では、イメージセンサ36からは「R1」「G1」「B1」「R3」「G3」「B3」…、「R2」「G2」「B2」「R4」「G4」「B4」…の順で電荷が出力され、各ラインセンサ36R,36G,36Bからすべての電荷を出力すれば次の電荷の蓄積が開始される。なお、RGBの横の数字は、各ラインセンサ36R,36G,36Bに設けられたフォトダイオードの並び順を示している。
また、図5に示すように、「線順次」とは、第1ラインセンサ36Rに含まれるフォトダイオード41a1、41b1、41c1…の順に蓄積された電荷を第1ラインセンサ36Rからすべて読出したあと、第2ラインセンサ36Gに含まれるフォトダイオード43a1、43b1、43c1…の順に蓄積された電荷を第2ラインセンサ36Gからすべて読出し、第3ラインセンサ36Bに含まれるフォトダイオード45a1、45b1、45c1…の順に蓄積された電荷を第3ラインセンサ36Bからすべて読出し、さらに、第1ラインセンサ36Rに含まれるフォトダイオード41a2、41b2、41c2…の順に蓄積された電荷を第1ラインセンサ36Rからすべて読出したあと、第2ラインセンサ36Gに含まれるフォトダイオード43a2、43b2、43c2…の順に蓄積された電荷を第2ラインセンサ36Gからすべて読出し、第3ラインセンサ36Bに含まれるフォトダイオード45a2、45b2、45c2…の順に蓄積された電荷を第3ラインセンサ36Bからすべて読出すことをいう。
具体的には、図5に示すように、まず、CCDコントローラ25は、第1ラインセンサ36Rへシフト信号を出力する(時刻t8)。すると、第1ラインセンサ36Rが読取画像用の電荷の蓄積を開始する。次に、第1ラインセンサ36Rの読出開始タイミングに至ると第1ラインセンサ36Rへシフト信号および駆動信号を出力すると共に、第2ラインセンサ36Gへシフト信号を出力する(時刻t9)。すると、フォトダイオード41a1,41b1,41c1,…に蓄積された電荷をCCD42に移動し(時刻t9)、CCD42に移動した電荷を読み出すと共に、第2ラインセンサ36Gが読取画像用の電荷の蓄積を開始する(時刻t9〜t11)。そして、次の読出開始タイミングに至ると、第1ラインセンサ36Rへシフト信号および駆動信号を出力する(時刻t10)。すると、フォトダイオード41a2,41b2,41c2,…に蓄積された電荷をCCD42に移動し(時刻t10)、CCD42に移動した電荷を読み出す。続いて、第2ラインセンサ36Gの読出開始タイミングに至ると、第2ラインセンサ36Gへシフト信号および駆動信号を出力すると共に、第3ラインセンサ36Bへシフト信号を出力する(時刻t11)。すると、CCD42からの電荷の読出が終了し、フォトダイオード43a1,43b1,43c1…に蓄積された電荷をCCD44に移動し(時刻t11)、CCD44に移動した電荷を読み出すと共に、第3ラインセンサ36Bが読取画像用の電荷の蓄積を開始する(時刻t11〜t13)。そして、次の読出開始タイミングに至ると、第2ラインセンサ36Gへシフト信号および駆動信号を出力する(時刻t12)。すると、フォトダイオード43a2,43b2,43c2…に蓄積された電荷をCCD44に移動し(時刻t12)、CCD44に移動した電荷を読み出す。
続いて、第3ラインセンサ36Bの読出開始タイミングに至ると、第3ラインセンサ36Bへシフト信号および駆動信号を出力する(時刻t13)。すると、CCD44からの電荷の読出が終了し、フォトダイオード45a1,45b1,45c1…に蓄積された電荷をCCD46移動し(時刻t13)、CCD46に移動した電荷を読み出す(時刻t13〜t14)。そして、次の読出開始タイミングに至ると、第3ラインセンサ36Bへシフト信号および駆動信号を出力する(時刻t14)。すると、フォトダイオード45a2,45b2,45c2…に蓄積された電荷をCCD46移動し(時刻t14)、CCD46に移動した電荷を読み出す。そして、CCD46からの電荷の読出が終了すると、「R」「G」「B」それぞれ1ライン分のラインデータの出力が完了する。このように、線順次では、第1ラインセンサ36R、第2ラインセンサ36Gおよび第3ラインセンサ36Bの電荷を蓄積する時間は同じ蓄積時間であるが、電荷の蓄積開始タイミングおよびCCD42,44,46に移動した電荷を読み出す読出開始タイミングのいずれもが異なるタイミングとなるように設定されている。このように、線順次では、イメージセンサ36から1ライン分の電荷が「R1」「R3」「R5」…「R2」「R4」「R6」…、「G1」「G3」「G5」…「G2」「G4」「G6」…、「B1」「B3」「B5」…「B2」「B4」「B6」…の順で出力される。なお、RGBの横の数字は、各ラインセンサ36R,36G,36Bに設けられたフォトダイオードの並び順を示している。
以上のように、本実施形態では、1画素を構成するフォトダイオードが主走査方向に2個設けられたCCDが主走査方向に複数個並設されることによりラインセンサ36R,36G,36Bが構成されているが、各CCDに設けられた1番目のフォトダイオード41a1,41b1,…,43a1,43b1,…,45a1,45b1,…による画素データをすべて出力し、2番目のフォトダイオード41a2,41b2,…,43a2,43b2,…,45a2,45b2,…による画素データをすべて出力することでラインデータを形成され、このように形成されたラインデータを、ラインセンサ36R,36G,36Bの副走査方向への走査に従って逐次出力するように構成されている。なお、各CCDに3個以上のフォトダイオードが設けられてラインセンサ36R,36G,36Bが構成されているときは、各CCDに設けられたn(nは自然数)番目のフォトダイオードによる各CCDの個数分の画素データをすべて出力し、(n+1)番目のフォトダイオードによる各CCDの個数分の画素データをすべて出力することを繰返すことによりラインデータが形成される。
また、本実施形態では、イメージセンサ36による画像の一のラインの1回の読取りにより、第1〜第3ラインセンサ36R,36B,36Gから3色分のラインデータが出力されるが、この3本のラインデータを合わせて一のライン目のラインデータとして取扱う。各ラインセンサ36R,36G,36Bが出力するラインデータをそれぞれ区別して取扱うことを明示しない限りは、これらの「R」「G」「B」の3色のラインデータを合わせて一のライン目のラインデータと称する。また、CCDコントローラ25は、読取原稿がネガ以外のものであるときは、第1ラインセンサ36R、第2ラインセンサ36Gおよび第3ラインセンサ36Bの電荷の蓄積時間(露光時間)が、1:1:1の比になるよう設定し、読取原稿がネガであるときには、第1ラインセンサ36R,第2ラインセンサ36Gおよび第3ラインセンサ36Bの電荷の蓄積時間が、1:2:3の比になるよう設定する。このような構成とすれば、読取原稿が階調の小さな暗部の領域を多く含むネガの透過原稿であるときは、光が通過しにくい緑および青を読取る第2ラインセンサ36Gおよび第3ラインセンサ36Bの電荷の蓄積時間を通常より長い時間に設定し、電荷を蓄積するようイメージセンサ36を駆動し、十分大きな各色の出力値を得ることができる。
なお、上記したように形成されたラインデータを構成する画素データの並び順は、実際のフォトダイオード41,43,45の並び順と異なったものとなるため、形成されたラインデータを構成する画素データの並び替えを行う必要があるが、この画素データの並び替えについては後で詳細に説明する。
TG26は、シフト信号の出力タイミングなどをイメージセンサ36に出力する。なお、イメージセンサ36は、シフト信号がTG26から入力されると、フォトダイオードに蓄積した電荷をCCDへ移動させ、駆動信号がTG26から入力されると、CCDにある電荷をAFE27へ出力するよう構成されている。
図3に示すように、AFE27はイメージセンサ36から読出された電荷を画像アナログ信号として相関二重サンプラ(CDS)処理回路27aを経てノイズを抑えて読込み、適正な信号レベルに増幅する可変増幅アンプ27bを経てA/D変換部27cにより10〜16ビット程度のデジタル信号に変換するものである。このAFE27では、第1ラインセンサ36R、第2ラインセンサ36Gおよび第3ラインセンサ36Bからの電荷を切替スイッチ27dにより切替えて入力する構成となっている。なお、このスキャナ装置10では、AFE27が3つの素子列を切替えながら電荷を入力することから、イメージセンサ36に蓄積された電荷をイメージセンサ36から読出す読出速度は、AFE27や画像処理部28での処理速度に適した値に設定されている。
画像処理部28は、AFE27から入力したデジタル信号に対して所定の処理を施して画像データを生成したり、シェーディング補正用の白基準データおよび黒基準データを生成したりするものであり、シェーディング補正部、ガンマ補正部、原稿判別部、露光時間設定部(それぞれ図示省略)などを有している。
RAM(本発明の「画像メモリ」に相当)22bは、ラインデータを一時的に保持する第1作業領域22b1と、ラインデータを一時的に保持する第2作業領域22b2と、ラインデータを一時的に保持する第3作業領域22b3とを有している。そして、RAM制御部22aは、AFE27が出力したラインデータを、16バイトをデータ転送単位として第1ないし第3作業領域22b1,22b2,22b3のいずれかに選択的に転送するように構成されている。
CPU23には、RAM制御部22aにより転送されて第1ないし第3作業領域のいずれかに保持された並び替え前のラインデータを、ラインデータを構成する画素データの並び順をラインセンサ36R,36G,36Bに設けられたフォトダイオード41,43,45の並び順に並び替えながら、第1ないし第3作業領域のいずれかに選択的に転送するように構成されたデータ制御部23aが構成されている。すなわち、点順次でラインデータが出力されることにより、「R1」「G1」「B1」「R3」「G3」「B3」…、「R2」「G2」「B2」「R4」「G4」「B4」…の順で並んでいる画素データは、「R1」「G1」「B1」「R2」「G2」「B2」「R3」「G3」「B3」「R4」「G4」「B4」…と並び替えられながらデータ転送される。また、線順次でラインデータが出力されることにより、「R1」「R3」「R5」…「R2」「R4」「R6」…、「G1」「G3」「G5」…「G2」「G4」「G6」…、「B1」「B3」「B5」…「B2」「B4」「B6」…の順で並んでいる画素データは、「R1」「R2」「R3」「R4」「R5」「R6」…、「G1」「G2」「G3」「G4」「G5」「G6」…、「B1」「B2」「B3」「B4」「B5」「B6」…と並び替えられながらデータ転送される。なお、AFE27からのラインデータの転送先と、データ制御部23aによる画素データの並べ替えを行いながらのラインデータの転送先は、第1ないし第3作業領域22b1,22b2,22b3のいずれかのうち、ラインデータが保持されていない領域、すなわち未使用領域がデータ転送先としてRAM制御部22aにより設定される。
また、第1ないし第3作業領域22b1,22b2,22b3のいずれかに保持された、データ制御部23aにより画素データが並び替えられた後のラインデータは、RAM制御部22aにより、16バイトをデータ転送単位として、ラインデータの残りデータのデータサイズが16バイトよりも小さくなるまで逐次I/F29に読出されるように構成されている。
また、RAM22bにはラインデータのうちの残りデータを一時的に保持するバッファ22b4が構成されており、16バイトのデータサイズよりも小さくなったことによりI/F29に送信されなかった残りデータがデータ制御部23aによりバッファに一時的に格納される。そして、データ制御部23aは、画素データの並び替え時のデータ転送先としてRAM制御部22aにより設定された第1ないし第3作業領域22b1,22b2,22b3のいずれかに、画素データの並び替えが開始される前にバッファ22b4に保持された残りデータを転送するように構成されている。なお、RAM制御部22aによるI/F29へは16バイトをデータ転送単位としてラインデータが転送されるため、バッファ22b4は少なくとも15バイトのデータサイズのデータを一時的に保持可能に構成すればよい。また、本実施形態では、16バイトのデータサイズを、AFE27からRAM22bへのデータ転送およびRAM22bからI/F29へのデータ転送のデータ転送単位としてハードウェアとして固定した値として設定したが、データ転送単位としては16バイトのデータサイズに限られず、2バイトのデータサイズ以上で任意にデータ転送単位を設定してハードウェアを設計することができる。
以上のように、キャリッジ30、ミラー33、集光レンズ34、イメージセンサ36、AFE27により本発明の「読取手段」が構成されている。また、RAM制御部22aが本発明の「データ転送手段」、「データ読出手段」、「メモリ管理手段」として機能している。また、RAM22bに構成されたバッファ22b4が本発明の「バッファ手段」として機能している。また、CPU23に構成されたデータ制御部23aが本発明の「データ並び替え手段」、「バッファ手段」、「データ管理手段」として機能している。次に、図6ないし図9を参照して画素データの並び替えについて詳細に説明する。
図6は各CCDに設けられた1番目のフォトダイオード41a1,41b1,…,43a1,43b1,…,45a1,45b1,…による画素データのRAM22bへの書込みを示す概念図ある。図7は各CCDに設けられた2番目のフォトダイオード41a2,41b2,…,43a2,43b2,…,45a2,45b2,…による画素データのRAM22bへの書込みを示す概念図である。図8は次のラインデータのRAM22bへの書込みと画素データの並び替えを示す概念図である。図9は次のラインの画素データの並び替えを示す概念図である。なお、本実施形態では、上記したように1ライン分のラインデータには、イメージセンサ36の各ラインセンサ36R,36G,36Bから出力された「R」「G」「B」の3色分のラインデータが含まれている。しかしながら、以下では説明を簡単にするために、各ラインセンサ36R,36G,36Bのいずれか1つから出力された単色のラインデータの処理についてのみ説明を行うが、他の色のラインデータの処理は、以下で説明する処理と同様であるためその処理の説明は省略する。
図6に示すように、まず、RAM制御部22aにより第1作業領域22b1が、AFE27から出力された1番目のフォトダイオード41a1,41b1,…,43a1,43b1,…,45a1,45b1,…による画素データの転送先として設定される。そして、PC50などからI/F29を介して入力された読出範囲に相当する部分の画素データがRAM制御部22aにより第1作業領域に転送される。このとき、AFE27からRAM22bへのデータ転送単位は16バイトのデータサイズとして設定されている。したがって、転送されるすべての画素データのデータサイズが16バイトの倍数の大きさとなるように、読出範囲の画素データと一緒に読出範囲以外の画素データも第1作業領域22b1へRAM制御部22aにより転送される。
次に、図7に示すように、AFE27から出力された2番目のフォトダイオード41a2,41b2,…,43a2,43b2,…,45a2,45b2,…による画素データのうち、読出範囲に相当する部分の画素データがRAM制御部22aにより第1作業領域22b1に転送される。このとき、上記と同様に、転送されるすべての画素データのデータサイズが16バイトの倍数の大きさとなるように、読出範囲の画素データと一緒に読出範囲以外の画素データも第1作業領域22b1へRAM制御部22aにより転送される。
続いて、図8に示すように、データ制御部23aによる画素データの並び替えにおける画素データの転送先として第2作業領域22b2が設定される。そして、データ制御部23aにより第1作業領域22bに格納された画素データのうち、読出範囲に相当する画素データが、本来のフォトダイオード41,43,45の並び順に並び替えられながら第2作業領域22b2に転送される。このとき、未使用領域である第3作業領域がAFE27からの次のラインデータの転送先としてRAM制御部22aにより設定されて、上記した手順と同様にして、RAM制御部22aによりAFE27から画素データが第3作業領域22b3に転送される。
そして、図9に示すように、第2作業領域22b2に格納された並び替え後の画素データが、16バイトをデータ転送単位として、残りデータのデータサイズが16バイトよりも小さくなるまで逐次I/F29にRAM制御部22aにより転送される。このとき、本実施形態では、並び替え後の画素データをI/F29に転送することにより残りデータが生じるかどうかを、データ制御部23aによりI/F29へのデータ転送に先立って算出するように構成されている。そして、残りデータが生じるときは、データ制御部23aは残りデータをI/F29へのデータ転送に先立ってバッファ22b4に格納する。
一方、図8に示す並び替えが終了したことにより、第1作業領域22b1が未使用領域となるため、RAM制御部22aは、第3作業領域22b3に格納された次のラインデータを構成する画素データのデータ制御部23aによる並べ替え時の画素データの転送先として設定する。このとき、データ制御部23aは、第3作業領域22b3に格納された画素データの並び替えに先立って、バッファ22b4に保持された前のラインの残りデータを第1作業領域22b1に格納するように構成されている。次に、図10ないし図12を参照して画像の読取処理について説明する。なお、上記した説明では省略したが、本実施形態では、一定の速度でキャリッジ30を副走査方向に移動して画像を読取るように構成されている。このとき、AFE27から出力されたラインデータは、一旦、図示省略されたバッファに格納された後、RAM22bに格納される。このように構成すると、AFE27から逐次出力されるラインデータを一旦、図示省略されたバッファに格納することにより、ラインデータを構成する画素データの並び替え処理および画像データの外部機器への送信処理の速さが、スキャナ装置10の画像読取速度(キャリッジ30の移動速度)よりも遅い場合であっても、キャリッジ30を停止させることなく画像を読取ることができる。また、図10ないし図12における各タイミングを示す時刻tの符号はそれぞれの図面において独立したものである。
<画像の読取処理の第1例>
図10は画像の読取処理の一例を示すタイミングチャートであって、画像の主走査方向の読出範囲が比較的広い場合の例を示す図である。図10の「読取ライン」に示すように、スキャナ装置10はL1、L2、L3…各タイミングで各ラインのラインデータの読出し、すなわちRAM22aによるAFE27からRAM22bへのラインデータの転送が可能となるように構成されている。時刻t=t0のタイミングで、RAM制御部22aによりAFE27からのラインデータL1の転送先が第1作業領域22b1に設定されて、ラインデータL1が第1作業領域22b1に転送される。
次に、時刻t=t1のタイミングで、ラインデータL1の第1作業領域22b1への転送が終了すれば、データ制御部23aによるラインデータL1を構成する画素データの並べ替えに伴う当該画素データの転送先として、第2作業領域22b2が設定されて並び替え処理が開始される。そして、時刻t=t2のタイミングで、RAM制御部22aによりAFE27からのラインデータL2の転送先が未使用領域である第3作業領域22b3に設定されて、ラインデータL2が第3作業領域22b3に転送される。続いて、時刻t=3のタイミングで、並び替え後のラインデータL1’のRAM制御部22aによる外部機器(I/F29)へのDMA(Direct Memory Access)転送が開始されるとともに、データ制御部23aにより残りデータがバッファ22b4に格納される。また、RAM制御部22aによりAFE27からのラインデータL3の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL3が第1作業領域22b1に転送される。
次に、時刻t=t4のタイミングで、並び替え後のラインデータL1’の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL2を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。続いて、時刻t=t5のタイミングで、並び替え後のラインデータL2’のRAM制御部22aによる外部機器へのDMA転送が開始されるとともに、データ制御部23aにより残りデータがバッファ22b4に格納される。また、RAM制御部22aによりAFE27からのラインデータL4の転送先が未使用領域である第3作業領域22b3に設定されて、ラインデータL4が第3作業領域22b3に転送される。
次に、時刻t=t6のタイミングで、並び替え後のラインデータL2’の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL3を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。続いて、時刻t=t7のタイミングで、並び替え後のラインデータL3’のRAM制御部22aによる外部機器へのDMA転送が開始されるとともに、データ制御部23aにより残りデータがバッファ22b4に格納される。また、RAM制御部22aによりAFE27からのラインデータL5の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL5が第1作業領域22b1に転送される。
次に、時刻t=t8のタイミングで、並び替え後のラインデータL3’の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL4を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。以下、画像読取が終了するまで同様の処理が繰返される。
<画像の読取処理の第2例>
図11は画像の読取処理の一例を示すタイミングチャートであって、画像の主走査方向の読出範囲が比較的狭い場合の例を示す図である。図11の「読取ライン」に示すように、スキャナ装置10はL1、L2、L3…各タイミングで各ラインのラインデータの読出し、すなわちRAM22aによるAFE27からRAM22bへのラインデータの転送が可能となるように構成されている。時刻t=t0のタイミングで、RAM制御部22aによりAFE27からのラインデータL1の転送先が第1作業領域22b1に設定されて、ラインデータL1が第1作業領域22b1に転送される。
次に、時刻t=t1のタイミングで、ラインデータL1の第1作業領域22b1への転送が終了すれば、データ制御部23aによるラインデータL1を構成する画素データの並べ替えに伴う当該画素データの転送先として、第2作業領域22b2が設定されて並び替え処理が開始される。そして、時刻t=t2のタイミングで、並び替え後のラインデータL1’のRAM制御部22aによる外部機器(I/F29)へのDMA転送が開始されるとともに、データ制御部23aにより残りデータがバッファ22b4に格納される。
次に、時刻t=t3のタイミングで、RAM制御部22aによりAFE27からのラインデータL2の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL2が第1作業領域22b1に転送される。次に、時刻t=t4のタイミングで、データ制御部23aによるラインデータL2を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。
そして、時刻t=t5のタイミングで、並び替え後のラインデータL2’のRAM制御部22aによる外部機器へのDMA転送が開始され、残りデータがデータ制御部23aによりバッファ22b4に格納される。以下、画像読取が終了するまで同様の処理が繰返される。
<画像の読取処理の第3例>
図12は画像の読取処理の一例を示すタイミングチャートであって、I/F29を介した外部機器への画像データの転送速度が比較的遅い場合の例を示す図である。図12の「読取ライン」に示すように、スキャナ装置10はL1、L2、L3…各タイミングで各ラインのラインデータの読出し、すなわちRAM22aによるAFE27からRAM22bへのラインデータの転送が可能となるように構成されている。時刻t=t0のタイミングで、RAM制御部22aによりAFE27からのラインデータL1の転送先が第1作業領域22b1に設定されて、ラインデータL1が第1作業領域22b1に転送される。
次に、時刻t=t1のタイミングで、ラインデータL1の第1作業領域22b1への転送が終了すれば、データ制御部23aによるラインデータL1を構成する画素データの並べ替えに伴う当該画素データの転送先として、第2作業領域22b2が設定されて並び替え処理が開始される。そして、時刻t=t2のタイミングで、並び替え後のラインデータL1’のRAM制御部22aによる外部機器へのDMA転送が開始されるとともに、データ制御部23aにより残りデータがバッファ22b4に格納される。
次に、時刻t=t3のタイミングで、RAM制御部22aによりAFE27からのラインデータL2の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL2が第1作業領域22b1に転送される。次に、時刻t=t4のタイミングで、ラインデータL1の第1作業領域22b1への転送が終了すれば、データ制御部23aによるラインデータL2を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第3作業領域22b3が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第3作業領域22b3に転送される。
そして、時刻t=t5のタイミングで、並び替え後のラインデータL2’のRAM制御部22aによる外部機器へのDMA転送の開始に先立って算出された残りデータが、データ制御部23aによりバッファ22b4に格納される。次に、時刻t=t6のタイミングで、RAM制御部22aによりAFE27からのラインデータL3の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL3が第1作業領域22b1に転送される。そして、時刻t=t7のタイミングで、並び替え後のラインデータL1’の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL3を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。また、並び替え後のラインデータL2’のRAM制御部22aによる外部機器へのDMA転送が開始される。
次に、時刻t=t8のタイミングで、並び替え後のラインデータL3’のRAM制御部22aによる外部機器へのDMA転送の開始に先立って算出された残りデータが、データ制御部23aによりバッファ22b4に格納される。続いて、時刻t=9のタイミングで、RAM制御部22aによりAFE27からのラインデータL2の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL4が第1作業領域22b1に転送される。そして、時刻t=t10のタイミングで、並び替え後のラインデータL3’の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL4を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第3作業領域22b3が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第3作業領域22b3に転送される。また、並び替え後のラインデータL3’のRAM制御部22aによる外部機器へのDMA転送が開始される。
次に、時刻t=t11のタイミングで、並び替え後のラインデータL4’のRAM制御部22aによる外部機器へのDMA転送の開始に先立って算出された残りデータが、データ制御部23aによりバッファ22b4に格納される。また、RAM制御部22aによりAFE27からのラインデータL5の転送先が未使用領域である第1作業領域22b1に設定されて、ラインデータL5が第1作業領域22b1に転送される。そして、時刻t=t12のタイミングで、並び替え後のラインデータL4の外部機器へのDMA転送が終了するとともに、データ制御部23aによるラインデータL5を構成する画素データの並べ替えに伴う当該画素データの転送先として、未使用領域である第2作業領域22b2が設定される。このとき、並び替え処理の開始に先立って、データ制御部23aによりバッファ22b4に保持された残りデータが第2作業領域22b2に転送される。また、並び替え後のラインデータL5’のRAM制御部22aによる外部機器へのDMA転送が開始される。以下、画像読取が終了するまで同様の処理を繰返される。
以上のように、この実施形態では、AFE27から出力されたラインデータは、16バイトをデータ転送単位として、RAM制御部22aにより設定された第1ないし第3作業領域22b1,22b2,22b3のいずれかの領域に転送される。そして、RAM制御部22aにより転送されたラインデータは、データ制御部23aにより、ラインデータを構成する画素データの並び順をラインセンサ36R,36G,36Bに設けられたフォトダイオード41,43,45の並び順に並び替えられながら、RAM制御部22aにより設定された第1ないし第3作業領域22b1,22b2,22b3のいずれかに転送される。したがって、AFE27により出力されたラインデータのRAM22bへのデータ転送単位が16バイトとして予め定められているときであっても、ラインデータを構成する画素データの並び替えを行うことができる。
また、データ制御部22aによる画素データの並び替え時に、画像の副走査方向の次のラインデータの出力がAFE27から開始されたときに、第1ないし第3作業領域22b1,22b2,22b3のいずれかにラインデータが保持されていない領域があれば、すなわち、未使用領域があれば、当該未使用領域がRAM制御部22aにより次のラインデータの転送先として設定されて、当該未使用領域に次のラインデータがRAM制御部22aにより転送される。また、第1ないし3作業領域22b1,22b2,22b3のいずれかにラインデータが保持されている状態であり、残りの作業領域の一方にRAM制御部22aによるラインデータの転送が行われているときに、残りの他方の作業領域が未使用であれば、当該未使用領域がRAM制御部22aによりデータ制御部23aによる画素データの並べ替え時のラインデータの転送先として設定されて、画素データが並べ替えが実行される。このように、第1ないし第3作業領域22b1,22b2,22b3のいずれかが未使用であれば、この未使用領域がRAM制御部22aによるラインデータの転送先か、データ制御部23aによる画素データの転送先として設定されるため、RAM制御部22aによるラインデータの転送と、データ制御部23aによる画素データの並び替えとを同時に行うことができるため、非常に効率がよく、処理の高速化を図ることができる。
また、第1ないし第3作業領域22b1,22b2,22b3のいずれかに保持されたデデータ制御部23aよる並び替え後のラインデータは、RAM制御部22aにより16バイトをデータ転送単位として、ラインデータの残りデータのデータサイズが16バイトよりも小さくなるまで逐次I/F29に読出される。したがって、残りデータのデータサイズが16バイトよりも小さくなれば、並べ替え後のラインデータのI/F29への読出しを終えるため、データ転送単位である16バイトよりもデータサイズが小さい残りデータが読出されることにより、残りデータと一緒にごみとなるデータがI/F29を介してPC50などの外部機器に送信されるのを確実に防止できる。
また、残りデータは、バッファ22b4に一時的に保持されて、バッファ22b4に保持された残りデータは、データ制御部23aによる次のラインデータの並び替え時のデータ転送先としてRAM制御部22aにより設定された第1ないし第3作業領域22b1,22b2,22b3のいずれかに、データ制御部23aによる並び替えが開始される前に転送される。そして、データ制御部23aによる次のラインデータの並び替えが終了すれば、残りデータは、並び替え後のラインデータと一緒に、しかも、並び替え後のラインデータよりも先にI/F29に読出されることとなる。したがって、RAM22bからI/F29へのデータ転送単位が16バイトとして予め定められているときであっても、I/F29を介してPC50などの外部機器に送信される画像データ(ラインデータ)を、画素データを欠かすことなく精度の高い状態で、確実に外部機器に送信することができる。
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記した実施形態では、カラー画像を読取り可能な画像読取装置を例に挙げて説明したが、1つのラインセンサを備えるモノクロ用の画像読取装置に本発明を適用してもよい。
また、上記した実施形態で説明した各ラインセンサ36R,36G,36Bの電荷の蓄積時間、電荷の蓄積開始タイミングおよび電荷の読出しタイミングなどの設定は一例であって、上記した設定に限定されるものではない。これらの設定は、読出原稿の種類、フォトダイオード41,43,45の感度、AFE27の処理速度および全体的な処理時間など、種々の条件に応じて最適な設定とすることができる。また上記した実施形態では、本発明の画像読取装置としてスキャナ装置10を例に挙げて説明したが、本発明の画像読取装置としては、印刷装置を備えたマルチファンクションプリンタとしてもよいし、FAX装置であってもよい。また、上記した実施形態では、RAM22bの一部の領域に本発明の「バッファ手段」として機能するバッファ22b4を構成したが、バッファ22b4をを構成するのはRAM22b上に限られず、残りデータを格納できればどのようにバッファ22b4を構成してもよい。例えば、CPU23が備えるキャッシュをバッファ22b4として利用してもよい。また、バッファ22b4を個別に制御ユニット20に設ける構成でもよい。
10…スキャナ装置(画像読取装置)、22a…RAM制御部(データ転送手段、データ読出手段、メモリ管理手段)、22b…RAM(画像メモリ)、22b1…第1作業領域、22b2…第2作業領域、22b3…第3作業領域、22b4…バッファ(バッファ手段)23a…データ制御部(データ並び替え手段、バッファ手段、データ管理手段)、27…AFE(読取手段)、29…I/F(データ送信手段)、30…キャリッジ(読取手段)、33…ミラー(読取手段)、34…集光レンズ(読取手段)41,43,45…フォトダイオード(光電変換素子)、36…イメージセンサ(読取手段)、36R,36G,36B…ラインセンサ