(57)【要約】【課題】ＣＣＤラインセンサを有する画像読取装置において、ラインギャップ補正に使用するＳＤＲＡＭのメモリ帯域が混雑している場合に、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑える。【解決手段】画像読取装置１は、複数色のＣＣＤラインセンサ１１を用い原稿の読み取りを行う原稿読取部と、ＳＤＲＡＭ１８と、ＳＤＲＡＭ１８を用いてラインギャップ補正を行うラインギャップ補正部１４と、ＳＤＲＡＭ１８のメモリ帯域が混雑しているか否かを判定する判定部１６と、ＳＲＡＭ１９と、を備える。ラインギャップ補正部１４は、判定部１６で混雑していると判定されている場合に、原稿読取部での読み取りにより得た各色のデータの一部又は全部を、ＳＤＲＡＭ１８の代わりにＳＲＡＭ１９に一時的に格納させ、ＳＤＲＡＭ１８又はＳＲＡＭ１９に格納された各色のデータに対してラインギャップ補正を行った状態で出力する。【選択図】図１
2014116765.tif 000002
【特許請求の範囲】
【請求項１】
複数色のＣＣＤ（Charge Coupled Device）ラインセンサを用い、各色の読み取りラインにラインギャップをもたせた状態で原稿の読み取りを行う原稿読取部と、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）と、前記原稿読取部での読み取りにより得た各色のデータを該ＳＤＲＡＭに一時的に格納させ、格納された各色のデータに対してラインギャップ補正を行った状態で出力するラインギャップ補正部と、を備えた画像読取装置であって、
前記ＳＤＲＡＭのメモリ帯域が混雑しているか否かを判定する判定部と、ＳＲＡＭ（Static Random Access Memory）と、をさらに備え、
前記ラインギャップ補正部は、前記判定部で混雑していると判定されている場合に、前記原稿読取部での読み取りにより得た各色のデータの一部又は全部を、前記ＳＤＲＡＭの代わりに前記ＳＲＡＭに一時的に格納させ、前記ＳＤＲＡＭ又は前記ＳＲＡＭに格納された各色のデータに対してラインギャップ補正を行った状態で出力することを特徴とする画像読取装置。
【請求項２】
前記判定部は、前記ＳＤＲＡＭのメモリ帯域が混雑している度合いを判定し、
前記ラインギャップ補正部は、前記判定部で判定された混雑している度合いに基づき、混雑している程、前記ＳＲＡＭに一時的に格納するデータの割合を増やすことを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記ラインギャップ補正部は、前記ＳＲＡＭに対し、前記ＳＤＲＡＭへのアクセス単位でアクセスすることを特徴とする請求項１又は２に記載の画像読取装置。
【請求項４】
前記ラインギャップ補正部は、前記原稿読取部での読み取りにより得た各色のデータの内、前記ＳＤＲＡＭへの書き込みから読み出しまでに要する時間が最も短い色のデータを優先して、前記ＳＲＡＭに一時的に格納することを特徴とする請求項１〜３のいずれか１項に記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関し、より詳細には、複数色のＣＣＤ（Charge Coupled Device）ラインセンサを用いてラインギャップをもたせた状態で原稿読み取りを行い、遅延のためのメモリを用いてそのラインギャップを補正して出力する画像読取装置に関する。
【背景技術】
【０００２】
従来から、画像読取装置にはＣＣＤラインセンサを用いて原稿の読み取り（スキャン）を行う装置がある。例えば、特許文献１には、ラインギャップ補正機能を有し、ラインギャップ補正に使用するメモリの容量を増大させないために、スキャン速度が低速の時には読み取ったデータを間引くようにした画像読取装置が開示されている。
【０００３】
その他、特許文献２には、ＣＣＤラインセンサを複数並べて、そのラインギャップに合わせたスキャン速度でスキャンするようにした画像読取装置が開示されている。また、特許文献３には、１ライン以内の色ズレを補正する技術が開示されている。
【０００４】
さらに、特許文献４には、メモリを用いた遅延によりラインギャップを補正すると共に、基準白板を読み取って得たシェーディング補正用データに基づき、原稿を読み取った画像データに対してシェーディング補正を行うことが可能な画像読取装置が開示されている。この画像読取装置では、原稿台に載置された原稿を読み取る場合と原稿自動送り装置で送られる原稿を読み取る場合とで画像のパスを入れ替えることで、画像データとシェーディング補正用データとを正確に対応付けている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２４１４０号公報
【特許文献２】特開２００２−１６７６２号公報
【特許文献３】特開平１１−３０８４４９号公報
【特許文献４】特開２００６−１４２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ラインギャップ補正に使用するメモリとしては、ＳＲＡＭ（Static Random Access Memory）等より低速であるものの価格が安いこともあり、一般的にＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）が採用されている。そして、画像読取装置の制御部の１チップ化に伴うメモリの統一化に伴って、このＳＤＲＡＭはラインギャップ補正以外の処理にも利用されることが多くなってきている。ここで、スキャン処理は、一般的に他の処理よりも優先させて実行されるようになっており、メモリの使用状況によってはスキャン処理の開始により他の処理を中断することになる。
【０００７】
そして、近年、スキャンの高速化、高解像度化、高機能化に伴い、ラインギャップ補正に使用するメモリのメモリ帯域が混雑する傾向にあるため、スキャン処理時における他の処理のパフォーマンスが益々遅くなってしまう。よって、ラインギャップ補正に使用するＳＤＲＡＭのメモリ帯域の混雑を上手く緩和する手段が望まれている。
【０００８】
しかしながら、特許文献１に記載の画像読取装置では、データの間引きによりメモリの使用容量を節約しているだけで、高解像度化に対応できるものではない上に、データを減らすことなくメモリ帯域の混雑を緩和するものではない。なお、特許文献２〜４には、メモリ帯域の混雑を緩和する手法について記載されていない。
【０００９】
本発明は、上述のような実状に鑑みてなされたものであり、その目的は、ＣＣＤラインセンサを有する画像読取装置において、ラインギャップ補正に使用するＳＤＲＡＭのメモリ帯域が混雑している場合に、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑えることにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の第１の技術手段は、複数色のＣＣＤ（Charge Coupled Device）ラインセンサを用い、各色の読み取りラインにラインギャップをもたせた状態で原稿の読み取りを行う原稿読取部と、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）と、前記原稿読取部での読み取りにより得た各色のデータを該ＳＤＲＡＭに一時的に格納させ、格納された各色のデータに対してラインギャップ補正を行った状態で出力するラインギャップ補正部と、を備えた画像読取装置であって、前記ＳＤＲＡＭのメモリ帯域が混雑しているか否かを判定する判定部と、ＳＲＡＭ（Static Random Access Memory）と、をさらに備え、前記ラインギャップ補正部は、前記判定部で混雑していると判定されている場合に、前記原稿読取部での読み取りにより得た各色のデータの一部又は全部を、前記ＳＤＲＡＭの代わりに前記ＳＲＡＭに一時的に格納させ、前記ＳＤＲＡＭ又は前記ＳＲＡＭに格納された各色のデータに対してラインギャップ補正を行った状態で出力することを特徴としたものである。
【００１１】
本発明の第２の技術手段は、第１の技術手段において、前記判定部は、前記ＳＤＲＡＭのメモリ帯域が混雑している度合いを判定し、前記ラインギャップ補正部は、前記判定部で判定された混雑している度合いに基づき、混雑している程、前記ＳＲＡＭに一時的に格納するデータの割合を増やすことを特徴としたものである。
【００１２】
本発明の第３の技術手段は、第１又は２の技術手段において、前記ラインギャップ補正部は、前記ＳＲＡＭに対し、前記ＳＤＲＡＭへのアクセス単位でアクセスすることを特徴としたものである。
【００１３】
本発明の第４の技術手段は、第１〜３のいずれか１の技術手段において、前記ラインギャップ補正部は、前記原稿読取部での読み取りにより得た各色のデータの内、前記ＳＤＲＡＭへの書き込みから読み出しまでに要する時間が最も短い色のデータを優先して、前記ＳＲＡＭに一時的に格納することを特徴としたものである。
【発明の効果】
【００１４】
本発明によれば、ＣＣＤラインセンサを有する画像読取装置において、ラインギャップ補正に使用するＳＤＲＡＭのメモリ帯域が混雑している場合に、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑えることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る画像読取装置の一構成例を示すブロック図である。
【図２】ＣＣＤラインセンサで原稿読み取りを行う原稿読取機構の一例を示す模式図である。
【図３】図１の画像読取装置で実行されるラインギャップ補正処理のうちの書き込み処理の一例を説明するためのフロー図である。
【図４】ＣＣＤラインセンサがＲとＧの間、ＧとＢの間で２ラインのラインギャップを有する場合における、図３の書き込み処理の具体例を示す図で、ＳＤＲＡＭのメモリマップの一例を示す図である。
【図５】図４の具体例におけるＳＲＡＭ用履歴メモリの一例を説明するための図である。
【図６】図４の具体例におけるＳＲＡＭのメモリマップの一例を示す図である。
【図７】図１の画像読取装置で実行されるラインギャップ補正処理のうち読み出し処理の一例を説明するためのフロー図である。
【図８】図３の書き込み処理におけるメモリ帯域の混雑判定処理の一例を説明するためのフロー図である。
【図９】図１の画像処理装置におけるＳＤＲＡＭの実装例を示す図である。
【図１０】図９のＳＤＲＡＭのＷｒｉｔｅ／Ｒｅａｄサイクル数を説明するためのタイミング図である。
【図１１】図９のＳＤＲＡＭのアクセス要求表の一例を示す図である。
【図１２】図３の書き込み処理における書き込み色決定処理の一例を説明するためのフロー図である。
【図１３】図４の具体例におけるＳＲＡＭ用履歴メモリの他の例を説明するための図である。
【図１４】図１２の書き込み色決定処理に用いるＳＤＲＡＭのメモリマップの一例を示す図である。
【図１５】図１２の書き込み色決定処理に用いるＳＲＡＭのメモリマップの一例を示す図である。
【図１６】図１２の書き込み色決定処理に用いるＳＲＡＭのメモリマップの他の例を示す図である。
【図１７】図１２の書き込み色決定処理に用いるＳＲＡＭのメモリマップの他の例を示す図である。
【発明を実施するための形態】
【００１６】
図１は、本発明に係る画像読取装置の一構成例を示すブロック図である。また、図２は、ＣＣＤラインセンサで原稿読み取りを行う原稿読取機構の一例を示す模式図で、ＣＣＤラインセンサを備えた画像読取装置においてラインギャップが生じる原理を説明するための図である。
【００１７】
図１で例示するように、本発明に係る画像読取装置１は、ＣＣＤラインセンサ部１１を有する原稿読取部、ラインギャップ補正部１４、及びＳＤＲＡＭ１８を備える。ＣＣＤラインセンサ部１１は、複数の異なる色についての原稿読み取りが可能なように複数色のＣＣＤラインセンサを有する。各色用のＣＣＤラインセンサはいずれも、対応するカラーフィルタが取り付けられた複数の受光素子（撮像素子）が主走査方向に並べられてなり、これらの複数の受光素子により１ライン分のデータ（対応する色の画像データ）を取得する。
【００１８】
上記複数色としては、一般的にＲ，Ｇ，Ｂの３色が採用され、以下でもそのような例を挙げるが、他の組み合わせの複数色を採用してもよい。図２に例示するＣＣＤラインセンサ部１１は、Ｒ，Ｇ，Ｂの３色それぞれのＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂが長手方向（主走査方向）に垂直な方向（副走査方向）に間隔をあけて配列してなる。
【００１９】
原稿読取部は、図２で例示したように、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂの他、光源３２及びミラー３３を搭載したキャリッジ３１、レンズ３４、及び原稿Ｐを載置する原稿台や自動原稿送り装置（図示せず）などで構成されている。
【００２０】
このような構成により原稿読取部では、光源３２から原稿Ｐに照射された光が原稿Ｐの下面における点３５ｒ，３５ｇ，３５ｂを含む読み取りラインＬｒ，Ｌｇ，Ｌｂで反射し、各ラインでの反射光がそれぞれ、ミラー３３及びレンズ３４を介してＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂに入射する。これにより、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂは、それぞれ対応する色について１ライン分の画像データを取得する。
【００２１】
ここで、ＲＧＢ用のＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂにおいて同時に原稿読み取りを行う原稿Ｐ上の位置は、点３５ｒ，３５ｇ，３５ｂで比べても分かるように同じ位置ではなく副走査方向にずれている。つまり、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂで同時に受光した像は、ラインギャップ分（この例ではラインＬｒとラインＬｇとについてラインギャップ数３６ａ、ラインＬｇとラインＬｂとについてラインギャップ数３６ｂ）だけ副走査方向にずれている。よって、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂでは、このようにラインギャップ分ずれた画像データを読み込んでいることになる。
【００２２】
また、原稿読取部は、図１で例示したようにＡ／Ｄ変換部１２を備える。ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂは、画像データとしてのそれぞれの受光信号をＡ／Ｄ変換部１２に転送する。Ａ／Ｄ変換部１２は、それをＡ／Ｄ変換して後段に渡す。
【００２３】
また、原稿読取部は、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂから画像データが転送された際、キャリッジ３１を図２中の矢視の方向、つまり副走査方向に移動させる。このような転送と副走査方向へのキャリッジ３１の移動を繰り返すことで、原稿読取部は原稿Ｐの全領域についての画像データを得ることができる。以上のように、原稿読取部は、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂを用い、各色の読み取りラインにラインギャップをもたせた状態で原稿Ｐの読み取りを行う。ここで例示しているように複数色がＲＧＢの３色の場合、ＣＣＤラインセンサ部１１は３ライン方式のカラーラインセンサに該当する。
【００２４】
また、ラインギャップ補正部１４は、原稿読取部での読み取りにより得た各色のデータ（画像データ）をＳＤＲＡＭ１８に一時的に格納させ、格納された各色のデータに対してラインギャップ補正を行った状態で出力する。ＳＤＲＡＭ１８としては、ＤＤＲ（Double-Data-Rate）  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ３  ＳＤＲＡＭ、その後継などが挙げられる。画像読取装置１は、ＳＤＲＡＭ１８への読み書きの制御のためにＳＤＲＡＭ制御部１７を備え、ラインギャップ補正部１４はＳＤＲＡＭ制御部１７を介してＳＤＲＡＭ１８への読み書きを行う。
【００２５】
ここで、原稿読取部での読み取りにより得た各色のデータ（画像データ）は、この例ではＡ／Ｄ変換後の各色１ライン分の画像データを指し、まず画像処理部１３に出力され、画像処理部１３からＳＤＲＡＭ１８に格納される。但し、後述するように、本発明ではＳＤＲＡＭ１８の代わりにＳＲＡＭ１９に画像データが格納されることもある。
【００２６】
また、ラインギャップ補正を行った状態とは、同じ読み取り位置（例えば点３５ｒ）についてのＲＧＢの画像データを同時に読み出す状態を指す。つまり、ラインギャップ補正部１４は、ラインギャップを無くすように各色のデータを出力する。なお、本発明は、後述する説明から明らかなように、基本的にＣＣＤラインセンサ部１１におけるラインギャップ数に応じて適用させることができる。
【００２７】
また、図１で例示する画像読取装置１は、ＣＰＵ（Central Processing Unit）１５、画像処理部１３、ＨＤＤ（Hard disk drive）２０、回転部２１、ＪＰＥＧ（Joint Photographic Experts Group）圧縮部２２、及びネットワークＩ／Ｆ２３を備え、これらがラインギャップ補正部１４及びＳＤＲＡＭ制御部１７と共にバス接続されている。ＣＰＵ１５は、特に詳述しないが、原稿読取部での原稿読み取り制御も含め、画像読取装置１の全体を制御する。
【００２８】
画像処理部１３は、例えばシェーディング補正部１３ａ、入力γ補正部１３ｂ、領域分離・フィルタ部１３ｃ、ズーム処理部１３ｄなどを有し、各種画像処理を施す。シェーディング補正部１３ａは、白紙原稿を読み取ったときに読み取りライン上で画像データの画素値が一定値となるように、Ａ／Ｄ変換部１２から出力された画像データの画素毎に補正係数で補正する。入力γ補正部１３ｂは、内部に設けられたＳＲＡＭ等のメモリ（又は後述のＳＲＡＭ１９）を用い、シェーディング補正部１３ａから出力された画像データに対して濃度補正を行い、ラインギャップ補正部１４に渡す。
【００２９】
領域分離・フィルタ部１３ｃは、ラインギャップ補正部１４でラインギャップ補正が施された画像データの濃度の分布から、１画素毎に写真・文字・網点などの種類を判定して、種類毎に異なるフィルタリングを行う。ズーム処理部１３ｄは、領域分離・フィルタ部１３ｃから出力された画像データに対して１次線形補間法などによりズーム処理を施す。
【００３０】
なお、画像処理部１３における各部では、必要に応じて各部の内部メモリ（或いは後述のＳＲＡＭ１９など）を用いればよく、また各部での処理としては既存の技術を用いればよく、またその処理の順序もここで例示したものに限ったものではない。また、どの段階でラインギャップ補正部１４に渡してラインギャップ補正を行うかも任意であるが、領域分離・フィルタ部１３ｃ及びズーム処理部１３ｄでの処理はラインギャップ補正後の画像データを用いることが好ましい。
【００３１】
回転部２１は、原稿読み取り画像に対して複数ページ集約する際や縦横回転処理を行う際、さらには画像読取装置１に接続された図示しない印刷部などから原稿の集約印刷の指示などを受け付けた場合などに、画像データを回転して縦横を変更する。ＪＰＥＧ圧縮部２２は、原稿読み取りがなされた画像データに対してＪＰＥＧ方式で圧縮を行う。ネットワークＩ／Ｆ２３は、接続端子やＬＡＮ（Local Area Network）などを経由して外部に原稿読み取り画像のデータを送信したり、外部から画像データを受け取ることもできる。
【００３２】
回転部２１、ＪＰＥＧ圧縮部２２、及びネットワークＩ／Ｆ２３では、作業メモリとしてＳＤＲＡＭ１８を用いる。つまり、ＳＤＲＡＭ１８は、ラインギャップ補正以外に各部２１〜２３での処理にも用いられる。但し、原稿読み取りを行っている場合にはリアルタイムでの処理が必要であるため、ラインギャップ補正に対して優先的に使用される。なお、回転部２１、ＪＰＥＧ圧縮部２２、及びネットワークＩ／Ｆ２３は、ＳＤＲＡＭ１８を用いて処理を行う、ラインギャップ補正部１４以外の処理部の一例であり、本発明に係る画像処理装置はこのような構成に限ったものではない。
【００３３】
そして、本発明に係る画像読取装置１は、その主たる特徴としてＳＤＲＡＭメモリ帯域判定部１６及びＳＲＡＭ１９を備える。ＳＲＡＭ１９はＣＰＵ１５などと共にバス接続されてなるが、画像読取装置１における各部の接続形態は問わない。ＳＤＲＡＭメモリ帯域判定部１６は、ＳＤＲＡＭ１８の帯域が混雑している判定を行う判定部であり、例えばＳＤＲＡＭ制御部１７へのアクセス要求数をみて、そのアクセス要求数が一定数以上の場合に、混雑していると判定する。
【００３４】
ラインギャップ補正部１４は、ＳＤＲＡＭメモリ帯域判定部１６で混雑していると判定されている場合に、原稿読取部での読み取りにより得た各色のデータの一部又は全部を、ＳＤＲＡＭ１８の代わりにＳＲＡＭ１９に一時的に格納させ、ＳＤＲＡＭ１８又はＳＲＡＭ１９に格納された各色のデータに対してラインギャップ補正を行った状態で出力する。このように、画像読取装置１は、ラインギャップ補正部１４でのラインギャップ補正のために、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂからの画像データを蓄えるＳＤＲＡＭ１８及びＳＲＡＭ１９を備える。
【００３５】
より具体的には、ラインギャップ補正部１４は、画像処理部１３からラインギャップを持った３色の画像データを受信し、それらの画像データに対してアドレス生成部１４ａでアドレスを生成し、生成したアドレスでＳＤＲＡＭ１８若しくはＳＲＡＭ１９へ格納する（書き込む）。書き込みは、例えばラインギャップ補正部１４又はＣＰＵ１５又は画像処理部１３のいずれかがバスマスタとなって上記生成したアドレスに従って実行すればよいが、以下では基本的にラインギャップ補正部１４が書き込みを行うものとして説明する。
【００３６】
ここで、ラインギャップ補正部１４は、ＳＲＡＭ用履歴メモリ１４ｂを有し、ＳＲＡＭ１９への格納を実行した場合には、ＳＲＡＭ用履歴メモリ１４ｂへＳＤＲＡＭ１８の先頭アドレスや格納先であるＳＲＡＭ１９の先頭アドレス等を記憶する。これにより、ラインギャップ補正部１４はＳＤＲＡＭ１８からの画像データの読み出し時において、ＳＤＲＡＭ１８の代わりの格納先となっているＳＲＡＭ１９内の画像データの読み出しも可能となる。ＳＤＲＡＭ１８へのデータの読み書きについてはラインギャップ補正部１４からの指示に従い、ＳＤＲＡＭ制御部１７が実行することになる。なお、この例では、ＳＤＲＡＭ１８がラインギャップ補正部１４等を具備するチップに外付けされることを前提としているため、そのチップ内にＳＤＲＡＭ制御部１７を設けているが、ＳＤＲＡＭ制御部１７を別途設けなくても直接ラインギャップ補正部１４がＳＤＲＡＭ１８へのデータの読み書きを行ってもよい。
【００３７】
そして、ラインギャップ補正部１４は、書き込みによりライン単位で画像データが３色分準備できた段階で、３色分の画像データを読み出し、画像処理部１３へ送信する。画像処理部１３は、その画像データを受信して、ラインギャップ補正後の各処理を実行することになる。なお、最後に受信する色の画像データはＳＤＲＡＭ１８やＳＲＡＭ１９への格納を行わずにそのまま画像処理部１３に返す（若しくはラインギャップ補正部１４への画像処理部１３からの送信すら行わない）こともできるが、各色のデータについて読み出しのタイミングを合わせ易くするためには、ここで例示するように全色について一旦データを書き込むことが好ましい。
【００３８】
上述したように原稿読み取りを行っている場合にはリアルタイムでの処理が必要であるため、従来の構成では、ＳＤＲＡＭ１８を使用する回転部２１等での他の処理については、ＳＤＲＡＭ１８をラインギャップ補正に対して優先的に使用するために後回しにすることしかできなかった。これに対し、本発明では、ラインギャップ補正に使用するＳＤＲＡＭ１８のメモリ帯域が混雑していることを検知して、ＳＲＡＭ１９を用いてＳＤＲＡＭ１８のメモリ帯域を緩和することで、上記他の処理（ラインギャップ補正以外の処理であってそのＳＤＲＡＭ１８を使用する処理）について、パフォーマンスの低下を最小限に抑えること（緩和すること）ができる。無論、上記メモリ帯域が混雑していない場合は、ラインギャップ補正にＳＤＲＡＭ１８だけを用いるため、ＳＲＡＭ１９を他の処理へ割り当てることもできる。
【００３９】
なお、ＳＤＲＡＭ１８とは別のＳＤＲＡＭを追加で接続するような構成でもＳＤＲＡＭ１８での混雑は避けられる。しかしながら、ＳＤＲＡＭはＳＲＡＭに比べて低速である上に、別のＳＤＲＡＭを追加しても上記チップとの接続口を新たに設けないと速度が向上しないため、結局のところ上記チップの接続口を別途増やすためのコストが増してしまう。また、ＳＲＡＭ１９であればＳＤＲＡＭと異なり、チップ内に元々設けてあることが多く、設けてない場合でもチップ内に設けるような設計は容易にできる。
【００４０】
次に、図３〜図６を参照しながら、ラインギャップ補正処理における書き込み処理の一例について説明する。図３は、図１の画像読取装置で実行されるラインギャップ補正処理のうちの書き込み処理の一例を説明するためのフロー図で、図４〜図６は、ＣＣＤラインセンサがＲとＧの間、ＧとＢの間で２ラインのラインギャップを有する場合における、図３の書き込み処理の具体例を示す図である。ここで、図４は、ＳＤＲＡＭのメモリマップの一例を示す図、図５は、履歴データが書き込まれるＳＲＡＭ用履歴メモリの一例を説明するための図、図６は、ＳＲＡＭのメモリマップの一例を示す図である。
【００４１】
まず、ＣＣＤラインセンサ部１１からＲＧＢそれぞれの色の画像データ（以下、単にＲＧＢデータと言う）を取り込む（ステップＳ１）。このＲＧＢデータは上述したように各色についてラインギャップをもっている。
【００４２】
ラインギャップの存在により不要なデータが存在するため、取り込んだＲＧＢデータは全て使用する訳ではない。そのため、ステップＳ１の処理後、各色の画像データが有効範囲内の色のデータであるか否かを判定する（ステップＳ２）。有効範囲外の色のデータ（つまり無効範囲の色のデータ）である場合（ステップＳ２でＮＯの場合）には、ＳＤＲＡＭ１８やＳＲＡＭ１９への書き込まず、そのまま破棄して、その読み取りラインのその色の現アクセス単位についての処理を終了する。
【００４３】
なお、図３では、主走査方向での一度の原稿読み取りの処理のうち１アクセス単位について、つまりＲＧＢデータを１アクセス単位得るために実行される処理について説明している。よって、実際には、図３の処理を１ライン分繰り返し、その後に副走査方向にキャリッジ３１を移動させ、再度、図３の処理を１ライン分繰り返す、といった処理を繰り返し、最終的に１枚の原稿についての画像データがラインギャップ補正されて格納されることになる。
【００４４】
有効範囲内の色のデータである場合（ステップＳ２でＹＥＳの場合）には、アドレス生成部１４ａが対応するＳＤＲＡＭ１８のアドレスを生成する（ステップＳ３）。ステップＳ３におけるアドレスの生成例は、図４に示しているように、まずＳＤＲＡＭ１８上にＲ，Ｇ，Ｂ別にメモリ領域４１ｒ，４１ｇ，４１ｂを確保しておき、ＳＤＲＡＭ１８のアクセス単位でアドレスを発行する。そして、有効範囲内であった場合のアドレスの発行は色別に行う。つまり、ステップＳ３では、有効範囲内のデータについては、対応するＳＤＲＡＭ１８のアドレスを各色別に生成する。
【００４５】
ここで、ＳＤＲＡＭ１８のアクセス単位は、バスの帯域などに基づき予め決めておけばよく、例えば「ＳＤＲＡＭ１８のｂｉｔ幅」×「ＳＤＲＡＭ１８の最大又は十分大きいバースト数のＢｙｔｅ数」で決めることができる。バースト数が長いほどＳＤＲＡＭ１８へ発行するコマンドサイクルが小さくて済むが、データをＷｒｉｔｅ／Ｒｅａｄするバッファーが大きくなるため、効率的なアクセス単位はシステム設計によって異なる。
【００４６】
図４では、このアクセス単位を３２Ｂｙｔｅとし、またＲ−Ｇ―Ｂラインギャップ数をいずれも２ラインとした例を挙げている。また、上述したように実際には原稿１枚を読み取るまで処理がなされるが、図４では説明の簡素化のため、各色について有効範囲内のデータを３ライン分取得した場合の例を挙げている。また、図４において、符号４３は入力されたデータが何ライン目であるか、つまり例えばＲについてはＣＣＤラインセンサ１１ｒからの入力順序を示しており、Ｗは上記のアクセス単位（ここでは３２ｂｙｔｅ）を示している。
【００４７】
Ｒについて説明すると、メモリ領域４１ｒに示すように、Ｒのデータのうち入力１ライン目から４ライン目までは画像の無効範囲４２ｒとなって破棄され、５ライン目から７ライン目までは画像の有効範囲となってＳＤＲＡＭ１８のアドレス（先頭アドレス）ｒａｄ１１〜ｒａｄ３４が順次発行される。例えば、Ｒの５ライン目の先頭データに対しては、ステップＳ３によりｒａｄ１１としてＳＤＲＡＭ１８のアドレスが生成される。図３の例では１ライン毎の処理を説明しており、アドレスは１ライン毎に発行されることになる。例えば、５ライン目のＲのデータについてアドレスｒａｄ１１〜ｒａｄ１４が発行され、副走査方向へのキャリッジ３１の移動により、６ライン目のＲのデータについてアドレスｒａｄ２１〜ｒａｄ２４が発行される。
【００４８】
Ｇ，Ｂについても同様である。メモリ領域４１ｇに示すように、Ｇのデータのうち入力１ライン目から２ライン目までと入力６ライン目から７ライン目までは画像の無効範囲４２ｇとなって破棄され、３ライン目から５ライン目までは画像の有効範囲となってアドレスｇａｄ１１〜ｇａｄ３４が発行される。また、メモリ領域４１ｂに示すように、Ｂのデータのうち入力１ライン目から３ライン目までは画像の有効範囲となってアドレスｂａｄ１１〜ｂａｄ３４が発行され、入力４ライン目から７ライン目までは画像の無効範囲４２ｂとなって破棄される。
【００４９】
このようにして、ＳＤＲＡＭ１８のアドレスが生成された後、ＳＤＲＡＭメモリ帯域判定部１６が、ＳＤＲＡＭ１８のメモリ帯域が混雑しているかを確認して判定する（ステップＳ４）。なお、ステップＳ４の判定例については図８等を参照しながら後述する。混雑している場合（ステップＳ４でＹＥＳの場合）には、ＳＤＲＡＭメモリ判定部１６がＳＲＡＭ１９の空きがあるか否かを判定する（ステップＳ５）。ステップＳ５では、ＳＲＡＭ１９の空きサイズが少なくともＳＲＡＭ１９の１アクセス単位分だけ存在するか否かにより、判定を行う。よって、空きサイズが１アクセス単位より小さい場合にはステップＳ５でＮＯとなる。なお、ステップＳ４とステップＳ５の順序は問わない。
【００５０】
ステップＳ４でＮＯの場合とステップＳ５でＮＯの場合、つまり混雑していないかＳＲＡＭ１９の空きが無い場合には、ラインギャップ補正部１４が、ステップＳ３で生成したアドレスに基づき各色のデータをＳＤＲＡＭ１８へ書き込み（ステップＳ１０）、その読み取りラインの現アクセス単位についての処理を終了する。
【００５１】
一方、ステップＳ４，Ｓ５でＹＥＳとなった場合、つまりメモリ帯域が混雑していた場合には、アドレス生成部１４ａが、図１２等を参照しながら後述する書き込み色決定処理例などを実行して、ＳＲＡＭ１９へ書き込む色を決定する（ステップＳ６）。
【００５２】
次いで、アドレス生成部１４ａは、現在処理しようとしているデータが、その決定に基づきＳＲＡＭ１９へ書き込む色のデータであるか否かを判定する（ステップＳ７）。ＳＲＡＭ１９へ書き込む色のデータでない場合（ステップＳ７でＮＯの場合）には、ラインギャップ補正部１４が、ステップＳ３で生成したアドレスに基づき、その色のデータをＳＤＲＡＭ１８へ書き込み（ステップＳ１０）、その読み取りラインのその色の現アクセス単位についての処理を終了する。
【００５３】
一方で、ＳＲＡＭ１９へ書き込む色のデータである場合（ステップＳ７でＹＥＳの場合）には、アドレス生成部１４ａがＳＲＡＭ用履歴メモリ１４ｂに、有効ｂｉｔ、ＳＤＲＡＭ１８の先頭アドレス、及びＳＲＡＭの先頭アドレスを記録し（ステップＳ８）、ラインギャップ補正部１４がここで指定されたＳＲＡＭ１９の先頭アドレスからその色のデータを書き込む（ステップＳ９）。ステップＳ９の処理により、その読み取りラインのその色の現アクセス単位についての処理を終了する。
【００５４】
ステップＳ８，Ｓ９の具体例について、図５及び図６を参照しながら説明する。ここで、図５で示す各色のメモリ領域４６ｒ，４６ｇ，４６ｂはそれぞれ図４のメモリ領域４１ｒ，４１ｇ，４１ｂと同じであり、図５の符号４３も図４の符号４１と同じく入力順序を示している。図５及び図６では、メモリ領域４６ｒ，４６ｇ，４６ｂのうちアドレスｒａｄ１２，ｇａｄ３３，ｂａｄ３４へ書き込みを行う際にＳＤＲＡＭ１８のメモリ帯域の混雑判定があった場合の例を挙げている。
【００５５】
ＲについてのＳＤＲＡＭ１８のアドレスである先頭アドレスｒａｄ１２の書き込み時に混雑していると判定されて、対応するデータをＳＲＡＭ１９へ書き込む場合の例を説明する。この場合、アドレス生成部１４ａが、ＳＲＡＭ用履歴メモリ１４ｂに図５のＳＲＡＭ用履歴メモリ４７で例示するように、ＳＤＲＡＭ１８の先頭アドレスを記録し（ステップＳ８）、ラインギャップ補正部１４が対象となるデータをＳＲＡＭ１９に格納する（ステップＳ９）。なお、ステップＳ７でＮＯの場合で説明したように、同じＲのデータであっても混在していない場合には、つまりＳＲＡＭ１９へ書き込む色以外の色のデータについては、ＳＤＲＡＭ１８へ書き込む。
【００５６】
ＳＲＡＭ用履歴メモリ４７に記録するＳＤＲＡＭ１８の先頭アドレスは、アドレスｒａｄ１２への書き込みを行う際に混雑していると判定された場合には「ｒａｄ１２」となる。ステップＳ８では、ＳＲＡＭ１９へ書き込む色のデータについて、ＳＤＲＡＭ１８の先頭アドレスのほかに、ＳＲＡＭ用履歴メモリ４７に有効ｂｉｔ＝１及び書き込み先のＳＲＡＭ１９の先頭アドレスを記録する。例えばＳＲＡＭ１９のメモリ領域が全て空いている場合には、ステップＳ９において図６のメモリマップ４８で示すようにステップＳ９で先頭アドレス「０」からｒａｄ１２のデータがＳＲＡＭ１９へ格納されることになるが、その場合、ステップＳ８ではＳＲＡＭ用履歴メモリ４７には書き込み先のＳＲＡＭ１９の先頭アドレスとして「０」がアドレスｒａｄ１２と対応付けて記録する。
【００５７】
また、この例では、ＳＲＡＭ１９への書き込み時にＳＤＲＡＭ１８のアクセス単位と同じアクセス単位を用いることを前提としている。このように、ラインギャップ補正部１４は、ＳＲＡＭ１９に対してＳＤＲＡＭ１８へのアクセス単位でアクセスすること、換言すればＳＤＲＡＭ１８とＳＲＡＭ１９とでデータ格納先を切り替えるデータ単位をＳＤＲＡＭ１８のアクセス単位に合わせることで、ＳＤＲＡＭ１８のメモリ帯域の軽減を効率的に行うことができる。無論、ＳＤＲＡＭ１８のアクセス単位以外のアクセス単位でＳＲＡＭ１９にアクセスするような構成を採用することもできる。そのような構成では、そのアクセス単位を示すアクセスサイズをＳＲＡＭ用履歴メモリ４７に追加しておけばよい。
【００５８】
Ｇ，Ｂについても同様にして、アドレスｇａｄ３３，ｂａｄ３４へ書き込みを行う際にＳＤＲＡＭ１８のメモリ帯域が混雑していると判定された場合には、ステップＳ８においてＳＲＡＭ用履歴メモリ４７に、ＳＤＲＡＭ１８の先頭アドレスとしてそれぞれｇａｄ３３，ｂａｄ３４が記録され、書き込み先のＳＲＡＭ１９の先頭アドレスとしてそれぞれ「３２」，「６４」が記録される。そして、ステップＳ９では、メモリマップ４８に示すようにＳＲＡＭ１９に対し、先頭アドレス３２，６４からそれぞれアドレスｇａｄ３３，ｂａｄ３４に対応するデータが格納される。なお、ＳＲＡＭ１９への書き込み時の先頭アドレスが３２Ｂｙｔｅ毎になっているのは、上述したようにＳＲＡＭ１９へのアクセス単位がＳＤＲＡＭ１８のアクセス単位と同様に３２Ｂｙｔｅに固定されている例を挙げているためである。
【００５９】
次に、図７を併せて参照しながら、このようにしてＳＤＲＡＭ１８又はＳＲＡＭ１９にデータを書き込んだ後に実行される、ラインギャップ補正処理における読み出し処理の一例について説明する。図７は、図１の画像読取装置で実行されるラインギャップ補正処理のうち読み出し処理の一例を説明するためのフロー図である。
【００６０】
まず、ラインギャップ補正部１４が、図５で説明したようなＳＤＲＡＭ１８のメモリマップを参照して、読み出したいラインのＲＧＢデータが全色書き込まれているか否かを判定し（ステップＳ２１）、全色揃うまで（ＹＥＳとなるまで）待つ。次に、アドレス生成部１４ａが、読み出し側の対応するＳＤＲＡＭ１８の先頭アドレスを色別に生成する（ステップＳ２２）。次に、ラインギャップ補正部１４は、その読み出し時の先頭アドレスがＳＲＡＭ用履歴メモリ４７におけるＳＤＲＡＭ１８の先頭アドレスと一致しており且つ対応する有効ｂｉｔが１であるか否かを判定する（ステップＳ２３）。
【００６１】
そのような履歴がある場合（ステップＳ２３でＹＥＳの場合）には、ラインギャップ補正部１４が、メモリマップ４８を参照して対応するＳＲＡＭ１９の先頭アドレスからデータを読み出す（ステップＳ２４）。そして、ＳＲＡＭ１９から読み出した後、アドレス生成部１４ａが、ＳＲＡＭ用履歴メモリ４７におけるその有効ｂｉｔを０にしてＳＲＡＭ１９のそのメモリ領域を解放し（ステップＳ２５）、読み出したいラインについての処理を終了する。
【００６２】
一方、ステップＳ２３でＮＯの場合、つまり読み出し時のＳＤＲＡＭ１８の先頭アドレスが、ＳＲＡＭ用履歴メモリ４７において有効ｂｉｔ＝１で且つＳＤＲＡＭ１８の先頭アドレスに一致するものがない場合には、ラインギャップ補正部１４がそのままＳＤＲＡＭ１８からデータを読み出し（ステップＳ２６）、読み出したいラインについての処理を終了する。
【００６３】
このような読み出し処理により、図４の例で出力ライン毎のアドレス４４を示すように、まず第１の出力ラインについて、アドレスｒａｄ１ｎ，ｇａｄ１ｎ，ｂａｄ１ｎの（ｎ＝１〜４）のデータが同時に出力される。ここで符号４５はラインギャップ補正後の出力順序（出力ラインの順序）を示している。
【００６４】
より具体的に説明すると、まずアドレスｒａｄ１１，ｇａｄ１１，ｂａｄ１１のデータ（ｎ＝１のデータ）が同時に出力され、続いて、アドレスｒａｄ１２，ｇａｄ１２，ｂａｄ１２のデータが同時に出力され、続いてアドレスｒａｄ１３，ｇａｄ１３，ｂａｄ１３のデータが同時に出力され、最後にアドレスｒａｄ１４，ｇａｄ１４，ｂａｄ１４のデータが同時に出力される。このようにして、Ｒについての入力５ライン目データと、Ｇについての入力３ライン目データと、Ｂについての入力１ライン目データとが、ラインギャップ補正後の出力１ライン目のデータとして同時に出力され、有効範囲内のデータのうち各色の１ライン目の読み出しが終了する。
【００６５】
その後、次の出力ラインについてアドレスｒａｄ２ｎ，ｇａｄ２ｎ，ｂａｄ２ｎ（ｎ＝１〜４）が同時に出力され、さらに次のラインについてアドレスｒａｄ３ｎ，ｇａｄ３ｎ，ｂａｄ３ｎ（ｎ＝１〜４）が出力される。なお、ステップＳ２５に関し、図５のＳＲＡＭ用履歴メモリ４７が読み出し処理後にどのように書き換わるかについては、図１３の説明として簡単に後述する。
【００６６】
このようにして、本発明では、ラインギャップ補正に使用するＳＤＲＡＭ１８のメモリ帯域が混雑している場合にＳＲＡＭ１９を用いてＳＤＲＡＭ１８のメモリ帯域を緩和している。これにより、本発明では、回転部２１等における上記他の処理でもＳＤＲＡＭ１８を使用できる可能性を向上させ、上記他の処理のパフォーマンスの低下を最小限に抑えている。
【００６７】
次に、図３のステップＳ４におけるメモリ帯域の混雑判定処理の一例について、図８〜図１１を併せて参照しながら説明する。図８は、図３の書き込み処理におけるメモリ帯域の混雑判定処理の一例を説明するためのフロー図である。また、図９は、図１の画像処理装置におけるＳＤＲＡＭの実装例を示す図、図１０は、図９のＳＤＲＡＭのＷｒｉｔｅ／Ｒｅａｄサイクル数を説明するためのタイミング図、図１１は、図９のＳＤＲＡＭのアクセス要求表の一例を示す図である。なお、混雑判定処理はここで説明する例に限ったものではなく、混雑度合を判定できるものであればよい。
【００６８】
まず、ＳＤＲＡＭメモリ帯域判定部１６は、ＳＤＲＡＭ１８へのアクセス要求毎に、ＳＤＲＡＭ１８のＲｅａｄ／Ｗｒｉｔｅアクセス要求のアクセスサイズ（アクセスＢｙｔｅ数）から、ＳＤＲＡＭ１８で必要なサイクル数を算出する（ステップＳ３１）。
【００６９】
図９〜図１１を参照して、ステップＳ３１の処理例を挙げる。図９のように、図１のＳＤＲＡＭ制御部１７に相当する制御用ＩＣ（Integrated Circuit）１０がＳＤＲＡＭ１８での読み書きを制御している場合で例示する。なお、制御用ＩＣ１０としては、ＳＤＲＡＭ制御部１７を含んでいればよく、例えばチップでの構成について上述したように、画像処理部１３、ラインギャップ補正部１４、ＣＰＵ１５、ＳＤＲＡＭメモリ帯域判定部１６、ＳＤＲＡＭ制御部１７、ＳＲＡＭ１９、回転部２１、ＪＰＥＧ圧縮部２２、及びネットワークＩ／Ｆ２３を含むように構成することもできる。
【００７０】
制御用ＩＣ１０におけるＳＤＲＡＭ１８への制御は、図１０で例示するようなコマンド信号５２やクロック５１により実行される。無論、ＳＤＲＡＭ１８のインターフェースとしては、このようなコマンド信号やクロックを送るライン以外にデータラインを有する。この例では、制御用ＩＣ１０とＳＤＲＡＭ１８とのデータ幅は６４ｂｉｔであるものとして説明する。
【００７１】
コマンド信号５２で例示するように、Ｗｒｉｔｅ用のコマンド信号としては、ＡＣＴ（アクティブコマンド）、ＷＲＩＴ（Ｗｒｉｔｅコマンド）、ＰＲＥ（プリチャージコマンド）が含まれる。制御用ＩＣ１０は、クロック５１に基づきＷｒｉｔｅコマンド発行時にデータラインから対象となるデータをアクセス単位（６４ｂｉｔ幅）でバースト転送する。図１０の例で対象となるデータとは、データ群５３のうちのＷＲＩＴの下に図示したＤ１，Ｄ２，Ｄ３，Ｄ４を指し、それぞれが１回のバースト転送で転送される。
【００７２】
よって、この例では、１回のＷｒｉｔｅアクセスにつき、４バースト分の合計３２Ｂｙｔｅ（６４ｂｉｔ×４）のデータがＳＤＲＡＭ１８に転送されて書き込まれることになる。そして、この例では、この４回のバースト転送分とＡＣＴやＰＲＥの発行とを合わせて、合計８サイクル（８クロック）必要となる。そして、書き込みのデータ量がこの２倍の６４Ｂｙｔｅである場合には、２倍の１６サイクルが必要となることになる。同様に、Ｒｅａｄ用のコマンド信号としては、ＡＣＴ、ＲＥＡＤ（Ｒｅａｄコマンド）、ＰＲＥが含まれ、１回のＲｅａｄアクセスにつき８サイクル必要となる。
【００７３】
このようにＳＤＲＡＭ１８のＷｒｉｔｅやＲｅａｄ用コマンドサイクルはデータ量によって予め決まっている。よって、例えば図１１のＳＤＲＡＭアクセス要求表５５で例示するように、要求毎にアクセスＢｙｔｅ数（又はそれに必要なサイクル数）を制御用ＩＣ１０内に記憶させておき、要求があった場合、このＳＤＲＡＭアクセス要求表５５を参照して、その要求に応じて必要なアクセスＢｙｔｅ数から必要なサイクル数に変換する（又はその要求に必要なサイクル数を読み出す）。例えば、要求１の場合、そのアクセスＢｙｔｅ数（アクセスサイズ）が３２Ｂｙｔｅであり、それに必要なサイクル数は図１０で例示したものと同じで８サイクルとなる。要求３の場合、そのアクセスサイズ（アクセスＢｙｔｅ数）が６４Ｂｙｔｅであり、それに必要なサイクル数は図１０で例示したものの２倍で１６サイクルとなる。
【００７４】
次にＳＤＲＡＭメモリ帯域判定部１６は、全てのアクセス要求について換算して得たサイクル数を合計して（ステップＳ３２）、別途設定した所定の混雑判定サイクル数と比較して大きいか否かを判定する（ステップＳ３３）。ＳＤＲＡＭメモリ帯域判定部１６は、その所定の混雑判定サイクル数より大きかった場合（ステップＳ３３でＹＥＳの場合）には混雑していると判定し（ステップＳ３４）、ステップＳ３３でＮＯの場合には混雑していないと判定する（ステップＳ３５）。
【００７５】
例えば、ＳＤＲＡＭ１８へのアクセス要求が、ＳＤＲＡＭアクセス要求表５５の要求１と要求２と要求３とである場合、ステップＳ３２ではそれらに必要なサイクル数を合計して３２サイクルと算出できる。合計する要求には、ラインギャップ補正以外の処理におけるＳＤＲＡＭ１８へのアクセス要求も含めておくことが好ましい。そして、上記所定の混雑判定サイクル数（閾値）が５０サイクルであった場合には、ステップＳ３３でＮＯとなり、ステップＳ３５のように混雑していないと判定される。アクセスＳＤＲＡＭメモリ帯域判定部１６は、判定の結果をラインギャップ補正部１４に渡し、処理を終了する。
【００７６】
次に、図３のステップＳ６における書き込み色の決定処理の一例について、図１２及び図１３を併せて参照しながら説明する。図１２は、図３の書き込み処理における書き込み色決定処理の一例を説明するためのフロー図で、図１３は、図４の具体例におけるＳＲＡＭ用履歴メモリの他の例を説明するための図である。
【００７７】
まず、次のように言葉を定義する。「（書き込み時間）−（読み出し時間）」が最短の色を「最短格納色」とする。ここで、「（書き込み時間）−（読み出し時間）」とは、書き込み開始から読み出し終了（又は読み出し開始）までに要する時間を指す。また、「（書き込み時間）−（読み出し時間）」が２番目に短い色を「中間格納色」、最も長い色を「最大格納色」とする。また、最短格納色の最大使用メモリサイズを「最短色Size＿all」、最短格納色が現在ＳＲＡＭ１９に使っているメモリサイズを「最短色Size＿used」とする。同様に、中間格納色の最大使用メモリサイズを「中間色Size＿all」、中間格納色が現在ＳＲＡＭ１９に使っているメモリサイズを「中間色Size＿used」とする。
【００７８】
図１２に沿って図３のステップＳ６の処理について説明する。まず、アドレス生成部１４ａは、ＳＲＡＭ１９の空きサイズが「最短色Size＿all−最短色Size＿used」以下であるか否かを判定する（ステップＳ４１）。ステップＳ４１でＹＥＳの場合、最短格納色の１色を選び（ステップＳ４４）、処理を終了する。なお、ステップＳ６は、ステップＳ５でＹＥＳとなった場合に実行されるため、ステップＳ４１の処理時には、ＳＲＡＭ１９の空きサイズが少なくともＳＲＡＭ１９の１アクセス単位分だけ存在することになり、空きサイズが１アクセス単位より小さい場合は存在しない。
【００７９】
図１３を参照して、最短格納色に決定される場合の使用メモリサイズについて説明する。図１３の例では、出力ラインについて書き込み後、直ぐに読み出されるのはＲのデータであるため、Ｒが最短格納色となる。なお、図１３の例では、書き込みから読み出しまでに要する時間が短い色を優先してＳＲＡＭ１９に書き込んだ場合について示しており、また、入力ラインの書き込みに要する時間とラインギャップ補正後の出力ラインの読み出しに要する時間とが等しいものとして説明している。また、Ｂのデータについては書き込み後、Ｒのデータが揃って出力できるようになるまでに２ライン分保持しておく必要があり、Ｇのデータについては書き込み後、Ｒのデータが揃って出力できるようになるまでに１ライン分保持しておく必要がある。よって、Ｂが最大格納色、Ｇが中間格納色となる。
【００８０】
なお、図１３で示す各色のメモリ領域６１ｒ，６１ｇ，６１ｂは、それぞれ図４のメモリ領域４１ｒ，４１ｇ，４１ｂや図５のメモリ領域４６ｒ，４６ｇ，４６ｂと基本的に同じで、ライン数が３から７に増えただけである。また、図１３の符号６３も図４や図５の符号４３と同じく入力順序を示している。また、符号６４も図４の出力ライン毎のアドレス４４と同様であり、符号６５も図４の符号４５と同様である。
【００８１】
まず、１ラインのデータサイズについて説明する。メモリ領域６１ｒにおける有効範囲内の第１ラインのデータサイズで説明すると、先頭アドレスｒａｄ１１〜ｒａｄ１４の４つのデータが１ラインに相当するため、１ラインのデータサイズはアクセス単位の４倍の１２８Ｂｙｔｅとなる。なお、当然、Ｇ，Ｂについても１ラインのデータサイズは、アクセス単位を３２Ｂｙｔｅとするためその４倍の１２８Ｂｙｔｅとなる。
【００８２】
ＳＲＡＭ１９への書き込み色が最短格納色Ｒに決定された場合、先頭アドレスｒａｄ１１に対応するデータがＳＲＡＭ１９へ書き込まれることになり、それにより、図５のＳＲＡＭ用履歴メモリ４７に対応するＳＲＡＭ用履歴メモリ６７にはＳＤＲＡＭ先頭アドレスとしてｒａｄ１１が書き込まれ、有効ｂｉｔ＝１が書き込まれる。
【００８３】
図１３のメモリ領域６１ｒにおいては、Ｒのデータのうち入力順序６３が７番目のデータの書き込み時に、先頭アドレスｒａｄ３１〜ｒａｄ３４の書き込み先としてＳＲＡＭ１９の別のメモリ領域を割り当てるように図示している。
【００８４】
しかし、入力順序６３が６番目のデータの書き込み時には既にｒａｄ１１〜ｒａｄ１４のデータが読み出されている。この読み出しにより、ＳＲＡＭ用履歴メモリ６７の有効ｂｉｔがＳＲＡＭ用履歴メモリ６８で示すように「０」に書き換えられて（図７のステップＳ２５に対応）、ＳＲＡＭ１９及びＳＤＲＡＭ１８の対応するメモリ領域が解放されることになる。よって、先頭アドレスｒａｄ３１〜ｒａｄ３４のデータを先頭アドレスｒａｄ１１〜ｒａｄ１４のデータに上書きすることができる。この上書き時には、ＳＲＡＭ用履歴メモリ６９で示すように、ＳＲＡＭ用履歴メモリ６８の有効ｂｉｔが「１」に書き換えられ、ＳＤＲＡＭ先頭アドレスがｒａｄ３１に書き換えられることになる。
【００８５】
このように、図１３の例においてＲのデータは格納サイクルが２ライン毎となる。よって、この例でＲのデータに対して必要な使用メモリサイズは、最小で１２８Ｂｙｔｅ×２ライン＝２５６Ｂｙｔｅと算出できる。
【００８６】
一方で、ステップＳ４１でＮＯの場合、つまり、ＳＲＡＭ１９の空きサイズが「最短色Size＿all−最短色Size＿used」より大きい場合には、アドレス生成部１４ａは「（最短色Size＿all−最短色Size＿used）＋（中間色Size＿all−中間色Size＿used）」以下であるか否かを判定する（ステップＳ４２）。ステップＳ４２でＮＯの場合、つまりＳＲＡＭ１９の空きサイズが「最短色Size＿all−最短色Size＿used」より大きく且つ「（最短色Size＿all−最短色Size＿used）＋（中間色Size＿all−中間色Size＿used）」より大きい場合には、全３色を選び（ステップＳ４３）、処理を終了する。ステップＳ４２でＹＥＳの場合には、最短格納色と中間色の２色を選び（ステップＳ４５）、処理を終了する。
【００８７】
ここでは、書き込みから読み出しまでに要する時間が短い色を優先してＳＲＡＭ１９へ書き込む例を挙げているが、以下、そのような優先処理を採用する利点について、ＳＲＡＭ１９の使用頻度の観点から説明する。ここでも、図１３を参照しながら最短格納色がＲである場合（つまり、任意の出力ラインで比べたとき、ＣＣＤラインセンサ１１ｒ，１１ｇ，１１ｂのうち最後にデータを読み込む色がＲである場合）を例に挙げて説明する。なお、上述したように図１３の例では、書き込みから読み出しまでに要する時間が短い色を優先してＳＲＡＭ１９に書き込んだ場合について示しており、また、入力ラインの書き込みに要する時間とラインギャップ補正後の出力ラインの読み出しに要する時間とが等しく、ＳＲＡＭ１９へのアクセス単位（格納単位）をＳＤＲＡＭ１８のアクセス単位と同じとして説明する。
【００８８】
図１３のメモリ領域６１ｒに示すようにＲのデータのうち入力順序６３が５番目のデータ（ＳＤＲＡＭ１８の先頭アドレスｒａｄ１１に対応して書き込まれるデータ）をＳＲＡＭ１９へ書き込んでおくと、入力順序６３が６番目のデータの書き込み完了までには既に、出力ライン毎のアドレス６４において１ライン目の出力として示すように、ラインギャップ補正した１ライン目のデータの出力が完了する。これにより、入力順序６３が６番目のデータのＳＤＲＡＭ１８への書き込み中に、先頭アドレスｒａｄ１１に対応してＳＲＡＭ１９に書き込まれたデータが読み出されて、ＳＲＡＭ１９におけるそのメモリ領域が解放できる。そのため、この例では、２ライン単位でＳＲＡＭ１９へのＲｅａｄ／Ｗｒｉｔｅが可能になる。
【００８９】
一方で、書き込みから読み出しまでに要する時間が最も長いＢのデータをＳＲＡＭ１９に格納した場合については、ＳＲＡＭ１９のメモリ領域の開放までにより時間を要する。この点について、具体的に説明する。
【００９０】
ＢのデータをＳＲＡＭ１９に格納した場合、そのデータを書き込んでから読み出すまでの時間が、ラインギャップ数分のラインの書き込みに要する時間（４ライン分）と最初のラインの読み出しに要する時間（１ライン分）と最初に読み出したラインを開放するのに要する時間（１ライン分）とで、合計６ライン分となる。つまり、この場合、６ライン単位でＳＲＡＭ１９へのＲｅａｄ／Ｗｒｉｔｅができることとなり、ＲのデータをＳＲＡＭ１９に格納した場合に比べて、ＳＲＡＭ１９の使用頻度が低くなって、結果としてＳＤＲＡＭ１８のメモリ帯域を緩和できるようなＳＲＡＭ１９へのアクセスが少なくなってしまう。
【００９１】
よって、書き込みから読み出しまでに要する時間が短い色を優先してＳＲＡＭ１９へ書き込むことで、他の色をＳＲＡＭ１９に書き込む場合に比べて、ＳＲＡＭ１９のメモリ解放時間が早くなり、結果としてＳＤＲＡＭ１８のメモリ帯域を効率よく緩和できる。この効果は、代用できるＳＲＡＭ１９のメモリ領域が少ない場合に特に顕著となる。
【００９２】
このように、ラインギャップ補正部１４は、原稿読取部での読み取りにより得た各色のデータの内、ＳＤＲＡＭ１８への書き込みから読み出しまでに要する時間が最も短い色のデータを優先して、ＳＲＡＭ１９に一時的に格納する（ＳＲＡＭ１９に割り当てる）ことが好ましい。これにより、より多くのデータをＳＲＡＭ１９に割り当てることができ、ＳＤＲＡＭのメモリ帯域の軽減に貢献（寄与）できる。
【００９３】
なお、ここでは全てのデータを一旦、ＳＤＲＡＭ１８又はＳＲＡＭ１９のいずれかに書き込むことを前提としているが、この例において「書き込みから読み出しまでに要する時間が最も短い色」に相当するＲについては、書き込みすら行わずにそのまま画像処理部１３に返す（若しくはラインギャップ補正部１４への画像処理部１３からの送信すら行わない）ような構成も可能である。その場合、中間格納色であるＧのデータを優先してＳＲＡＭ１９に割り当てるとよい。
【００９４】
次に、図１２の書き込み色決定処理における具体例について、図１４〜図１７を併せて参照しながら説明する。また、図１４は、図１２の書き込み色決定処理に用いるＳＤＲＡＭのメモリマップ（ＳＲＡＭへの書き込みを行う前のＳＤＲＡＭのメモリマップ）の一例を示す図である。また、図１５〜図１７は、それぞれ、図１２の書き込み色決定処理に用いるＳＲＡＭのメモリマップの例を示す図である。なお、書き込み色決定処理はここで説明する例に限ったものではなく、例えば予め決められた色を書き込むように定めておくなど、他の決定方法に基づくものであってもよい。また、図１５〜図１７において、Ｗはアクセス単位を指す。
【００９５】
図１３等で例示したようにラインギャップがＲとＧで２ライン、ＧとＢで２ラインある場合について説明する。図１４のメモリマップ７０で例示するように、ＳＲＡＭ１９に格納先を置き換える前のＳＤＲＡＭ１８のメモリマップでは、最初のラインのラインギャップ補正後の読み出しが可能となるまで、最短格納色についての格納領域７１ｒとして、１ライン目の１２８Ｂｙｔｅ（３２Ｂｙｔｅ×４）と２ライン目の１２８Ｂｙｔｅとで合計２５６Ｂｙｔｅ必要となる。同様に、中間格納色についての格納領域７１ｇについては、１〜４ライン目のそれぞれについて１２８Ｂｙｔｅ必要となり、合計５１２Ｂｙｔｅ必要となる。同様に、最大格納色についての格納領域７１ｂについては、１〜６ライン目のそれぞれについて１２８Ｂｙｔｅ必要となり、合計７６８Ｂｙｔｅ必要となる。
【００９６】
このようなＳＤＲＡＭ１８のメモリマップ７０をベースとして、ＳＲＡＭ１９の空のサイズと使用済サイズとによる数値例を説明する。
【００９７】
（１）ＳＲＡＭ１９のメモリサイズが最短色Size＿all以下の場合
この例として、ＳＲＡＭ１９のメモリサイズが１２８Ｂｙｔｅ（３２Ｂｙｔｅ×４）である場合について説明する。
【００９８】
（１）−１：未格納時
未格納時には、ＳＲＡＭ１９の空きサイズも１２８Ｂｙｔｅとなる。また、最短色Size＿allは上述したように２５６Ｂｙｔｅである。この場合、最短色Size＿usedが０Ｂｙｔｅ（３２Ｂｙｔｅ×０）であれば、図１２のステップＳ４１の式は、左辺が１２８Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−０Ｂｙｔｅ＝２５６Ｂｙｔｅとなり、ＹＥＳとなる。よって、この場合、最短格納色の１色がＳＲＡＭ１９への書き込み色として決定される。
【００９９】
（１）−２：格納時（判定が１色となる場合）
図１５で例示するように、ＳＲＡＭ１９のメモリマップ８１が最短格納色について３アクセス単位分、使用されていた場合には、ＳＲＡＭ１９の空きサイズは３２Ｂｙｔｅ×１＝３２Ｂｙｔｅとなり、最短色Size＿usedが３２×３＝９６Ｂｙｔｅとなる。また、最短色Size＿allは上述したように２５６Ｂｙｔｅである。よって、この場合のステップＳ４１の式は、左辺が３２Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−９６Ｂｙｔｅ＝１６０Ｂｙｔｅとなり、ＹＥＳとなる。よって、この場合、最短格納色の１色がＳＲＡＭ１９への書き込み色として決定される。
【０１００】
（２）ＳＲＡＭ１９のメモリサイズが、最短色Size＿allより大きく最短色Size＿all＋中間色Size＿all以下の場合
この例として、ＳＲＡＭ１９のメモリサイズが３８４Ｂｙｔｅ（３２Ｂｙｔｅ×１２）である場合について説明する。
【０１０１】
（２）−１：未格納時
未格納時には、ＳＲＡＭ１９の空きサイズも３８４Ｂｙｔｅとなる。この場合、最短色Size＿usedが０Ｂｙｔｅ（３２Ｂｙｔｅ×０）であれば、ステップＳ４１の式は、左辺が３８４Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−０Ｂｙｔｅ＝２５６Ｂｙｔｅとなり、ＮＯとなる。未格納であるため、中間色Size＿usedも０Ｂｙｔｅ（３２Ｂｙｔｅ×０）になる。よって、ステップＳ４２の式は、左辺が３８４Ｂｙｔｅ、右辺が（２５６Ｂｙｔｅ−０Ｂｙｔｅ）＋（５１２Ｂｙｔｅ−０Ｂｙｔｅ）＝７６８Ｂｙｔｅとなり、ＹＥＳとなる。よって、この場合、最短格納色と中間格納色の２色がＳＲＡＭ１９への書き込み色として決定される。
【０１０２】
（２）−２：格納時１（判定が２色となる場合）
図１６（Ａ）で例示するように、ＳＲＡＭ１９のメモリマップ８２が最短格納色について３アクセス単位分、中間格納色について３アクセス単位分、使用されていた場合には、ＳＲＡＭ１９の空きサイズは３２Ｂｙｔｅ×６＝１９２Ｂｙｔｅとなり、最短色Size＿used及び中間色Size＿usedがいずれも３２×３＝９６Ｂｙｔｅとなる。また、最短色Size＿all、中間色Size＿allは上述したようにそれぞれ２５６Ｂｙｔｅ、５１２Ｂｙｔｅである。よって、この場合のステップＳ４１の式は、左辺が１９２Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−９６Ｂｙｔｅ＝１６０Ｂｙｔｅとなり、ＮＯとなる。次にステップＳ４２の式は、左辺が１９２Ｂｙｔｅ、右辺が（２５６Ｂｙｔｅ−９６Ｂｙｔｅ）＋（５１２Ｂｙｔｅ−９６Ｂｙｔｅ）＝５７６Ｂｙｔｅとなり、ＹＥＳとなる。よって、この場合、最短格納色と中間格納色の２色がＳＲＡＭ１９への書き込み色として決定される。
【０１０３】
（２）−３：格納時２（判定が１色となる場合）
図１６（Ｂ）で例示するように、ＳＲＡＭ１９のメモリマップ８３が最短格納色について５アクセス単位分、中間格納色について４アクセス単位分、使用されていた場合には、ＳＲＡＭ１９の空きサイズは３２Ｂｙｔｅ×３＝９６Ｂｙｔｅとなり、最短色Size＿used、中間色Size＿usedがそれぞれ３２×５＝１６０Ｂｙｔｅ、３２×４＝１２８Ｂｙｔｅとなる。また、最短色Size＿all、中間色Size＿allは上述したようにそれぞれ２５６Ｂｙｔｅ、５１２Ｂｙｔｅである。よって、この場合のステップＳ４１の式は、左辺が９６Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−１６０Ｂｙｔｅ＝１６０Ｂｙｔｅとなり、ＹＥＳとなる。よって、この場合、最短格納色の１色がＳＲＡＭ１９への書き込み色として決定される。
【０１０４】
（３）ＳＲＡＭ１９のサイズが、最短色Size＿all＋中間色Size＿allより大きい場合
この例として、ＳＲＡＭ１９のメモリサイズが１０２４Ｂｙｔｅ（３２Ｂｙｔｅ×３２）である場合について説明する。
【０１０５】
（３）−１：未格納時
未格納時には、ＳＲＡＭ１９の空きサイズも１０２４Ｂｙｔｅとなる。この場合、最短色Size＿usedが０Ｂｙｔｅ（３２Ｂｙｔｅ×０）であれば、ステップＳ４１の式は、左辺が１０２４Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−０Ｂｙｔｅ＝２５６Ｂｙｔｅとなり、ＮＯとなる。未格納であるため、中間色Size＿usedも０Ｂｙｔｅ（３２Ｂｙｔｅ×０）になる。よって、ステップＳ４２の式は、左辺が１０２４Ｂｙｔｅ、右辺が（２５６Ｂｙｔｅ−０Ｂｙｔｅ）＋（５１２Ｂｙｔｅ−０Ｂｙｔｅ）＝７６８Ｂｙｔｅとなり、ＮＯとなる。よって、この場合、全３色がＳＲＡＭ１９への書き込み色として決定される。
【０１０６】
（３）−２：格納時１（判定が３色となる場合）
図１７で例示するように、ＳＲＡＭ１９のメモリマップ８４が３色全てについて３アクセス単位分、使用されていた場合には、ＳＲＡＭ１９の空きサイズは３２Ｂｙｔｅ×１９＝６０８Ｂｙｔｅとなり、最短色Size＿used及び中間色Size＿usedがいずれも３２×３＝９６Ｂｙｔｅとなる。また、最短色Size＿all、中間色Size＿allは上述したようにそれぞれ２５６Ｂｙｔｅ、５１２Ｂｙｔｅである。よって、この場合のステップＳ４１の式は、左辺が６０８Ｂｙｔｅ、右辺が２５６Ｂｙｔｅ−９６Ｂｙｔｅ＝１６０Ｂｙｔｅとなり、ＮＯとなる。次にステップＳ４２の式は、左辺が６０８Ｂｙｔｅ、右辺が（２５６Ｂｙｔｅ−９６Ｂｙｔｅ）＋（５１２Ｂｙｔｅ−９６Ｂｙｔｅ）＝５７６Ｂｙｔｅとなり、ＮＯとなる。よって、この場合、全３色がＳＲＡＭ１９への書き込み色として決定される。
【０１０７】
（３）−２：格納時２（判定が２色となる場合）
上記（２）−２と同様に説明ができるため、省略する。
（３）−３：格納時３（判定が１色の場合）
上記（２）−３と同様に説明ができるため、省略する。
【０１０８】
また、上述した様々な形態において、ＳＤＲＡＭメモリ帯域判定部１６は、ＳＤＲＡＭ１８のメモリ帯域が混雑している度合いを判定するように構成してもよい。その場合、ラインギャップ補正部１４は、ＳＤＲＡＭメモリ帯域判定部１６で判定された混雑している度合いに基づき、混雑している程、ラインギャップ補正のためにＳＲＡＭ１９に一時的に格納するデータの割合を増やす。このように、ＳＤＲＡＭ１８のメモリ帯域の混雑度合いに応じて、ラインギャップ補正にＳＲＡＭ１９を活用する割合を高めることで、ＳＤＲＡＭのメモリ帯域の混雑に応じて、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑えることができる。
【０１０９】
以上のように、本発明に係る画像読取装置は、複数色のＣＣＤ（Charge Coupled Device）ラインセンサを用い、各色の読み取りラインにラインギャップをもたせた状態で原稿の読み取りを行う原稿読取部と、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）と、前記原稿読取部での読み取りにより得た各色のデータを該ＳＤＲＡＭに一時的に格納させ、格納された各色のデータに対してラインギャップ補正を行った状態で出力するラインギャップ補正部と、を備えた画像読取装置であって、前記ＳＤＲＡＭのメモリ帯域が混雑しているか否かを判定する判定部と、ＳＲＡＭ（Static Random Access Memory）と、をさらに備え、前記ラインギャップ補正部は、前記判定部で混雑していると判定されている場合に、前記原稿読取部での読み取りにより得た各色のデータの一部又は全部を、前記ＳＤＲＡＭの代わりに前記ＳＲＡＭに一時的に格納させ、前記ＳＤＲＡＭ又は前記ＳＲＡＭに格納された各色のデータに対してラインギャップ補正を行った状態で出力することを特徴としたものである。これにより、ラインギャップ補正に使用するＳＤＲＡＭのメモリ帯域が混雑している場合に、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑えることができる。
【０１１０】
また、前記判定部は、前記ＳＤＲＡＭのメモリ帯域が混雑している度合いを判定し、前記ラインギャップ補正部は、前記判定部で判定された混雑している度合いに基づき、混雑している程、前記ＳＲＡＭに一時的に格納するデータの割合を増やすことが好ましい。これにより、ＳＤＲＡＭのメモリ帯域の混雑に応じて、ラインギャップ補正以外の処理のパフォーマンスの低下を最小限に抑えることができる。
【０１１１】
また、前記ラインギャップ補正部は、前記ＳＲＡＭに対し、前記ＳＤＲＡＭへのアクセス単位でアクセスすることが好ましい。これにより、ＳＤＲＡＭのメモリ帯域の軽減を効率的に行うことができる。
【０１１２】
また、前記ラインギャップ補正部は、前記原稿読取部での読み取りにより得た各色のデータの内、前記ＳＤＲＡＭへの書き込みから読み出しまでに要する時間が最も短い色のデータを優先して、前記ＳＲＡＭに一時的に格納することが好ましい。これにより、より多くのデータをＳＲＡＭに割り当てることができ、ＳＤＲＡＭのメモリ帯域の軽減に貢献（寄与）できる。
【符号の説明】
【０１１３】
１…画像読取装置、１１…ＣＣＤラインセンサ部、１１ｒ，１１ｇ，１１ｂ…ＣＣＤラインセンサ、１２…Ａ／Ｄ変換部、１３…画像処理部、１３ａ…シェーディング補正部、１３ｂ…入力γ補正部、１３ｃ…領域分離・フィルタ部、１３ｄ…ズーム処理部、１４…ラインギャップ補正部、１４ａ…アドレス生成部、１４ｂ…ＳＲＡＭ用履歴メモリ、１５…ＣＰＵ、１６…アクセスＳＤＲＡＭメモリ帯域判定部、１７…ＳＤＲＡＭ制御部、１８…ＳＤＲＡＭ、１９…ＳＲＡＭ、２１…回転部、２２…ＪＰＥＧ圧縮部、２３…ネットワークＩ／Ｆ。
【図１】
2014116765.tif 000003
【図２】
2014116765.tif 000004
【図３】
2014116765.tif 000005
【図４】
2014116765.tif 000006
【図５】
2014116765.tif 000007
【図６】
2014116765.tif 000008
【図７】
2014116765.tif 000009
【図８】
2014116765.tif 000010
【図９】
2014116765.tif 000011
【図１０】
2014116765.tif 000012
【図１１】
2014116765.tif 000013
【図１２】
2014116765.tif 000014
【図１３】
2014116765.tif 000015
【図１４】
2014116765.tif 000016
【図１５】
2014116765.tif 000017
【図１６】
2014116765.tif 000018
【図１７】
2014116765.tif 000019