以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサが主走査方向に沿って配置されたリニアイメージセンサにより原稿を読み取るスキャナユニットが備えられた画像処理装置を例として説明する。
また、本実施形態に係る画像処理装置は、スキャナユニットにおけるスキャン動作において、リニアイメージセンサで読み取った読取画像データを、主走査ライン毎に一定の間隔(以下、「ライン単位」とする)で生成し、生成した主走査ライン毎の読取画像データ(以下、「ラインデータ」とする)を、一定の周期(以下、「ライン周期」とする)で画像処理モジュールへ転送して画像処理を施すように構成されている。
また、本実施形態に係る画像処理装置は、情報処理を行う際に作業領域として用いるメインメモリとは別に、ライン単位で読取画像データを格納することができるラインメモリを備える。尚、本実施形態において、メインメモリは、ラインメモリを構成するメモリ、例えば、SRAM(Static Random Access Memory)等よりも、回路が単純で回路規模が小さく、また、消費電力が小さい上に、単位記憶容量あたりの単価が安価ではあるが、画像処理モジュールからのアクセス速度は遅いメモリ、例えば、DRAM(Dynamic Random Access Memory)等により構成されているものとする。
また、本実施形態に係る画像処理装置は、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う際にラインメモリの記憶容量が不足するようなことがないように、メインメモリを用いるように構成されている。
この際、本実施形態に係る画像処理装置は、生成したラインデータを画像処理モジュールへ転送する際、生成したラインデータを先頭から順番に一旦ラインメモリに入力して格納し、所定量が格納された時点でメインメモリに転送して格納する。そして、本実施形態に係る画像処理装置は、画像処理に必要となるライン数分のラインデータがメインメモリに格納されると、それらのラインデータをメインメモリから順番にラインメモリに読み出し、ラインメモリを介して画像処理モジュールに入力する。
このような構成により、本実施形態に係る画像処理装置は、ラインメモリを、上述したような理由によりメインメモリを用いる際のアクセス速度の低下を緩衝させるためのバッファメモリとして機能させることができる。
これにより、本実施形態に係る画像処理装置は、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う際にラインメモリの記憶容量が不足するようなことがないようにメインメモリを用いる場合であっても、処理速度を低下させることなく画像処理を行うことが可能となる。従って、本実施形態に係る画像処理装置によれば、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う場合において、処理効率を向上させることが可能となる。以下、詳細に説明する。
まず、本実施形態に係る画像処理装置1のハードウェア構成について、図1を参照して説明する。図1は、本実施形態に係る画像処理装置1のハードウェア構成を摸式的に示すブロック図である。図1に示すように、本実施形態に係る画像処理装置1は、スキャナユニット100、プロッタユニット200、HDD(Hard Disc Drive)300、内部メモリ400、画像処理モジュール500、外部メモリアクセス要求部600、アービタ700、外部メモリアクセスコントローラ800、外部メモリ900含む。
スキャナユニット100は、原稿を光学的に走査して読み取って読取画像データを生成する画像読取装置である。本実施形態に係るスキャナユニット100は、上述したように、CCDやCMOS等のイメージセンサが主走査方向に沿って配置されたリニアイメージセンサにより原稿を読み取る。
そのため、本実施形態に係るスキャナユニット100は、一度のスキャン動作で主走査方向に一ライン分の読み取りしかできないため、上述したように、スキャン動作により読み取った原稿の読取画像データをライン単位で一定の間隔(ライン間隔)毎に生成する。そして、このようにライン間隔毎に生成されたライン単位の画像(以下、ラインデータ)は、内部メモリ及400及び外部メモリ900を介して画像処理モジュール500に転送される。スキャナユニット100は、このような動作を全ラインについて行うことにより、即ち、副走査方向に順次行うことにより、原稿1枚分の読み取り動作を完了する。
尚、本実施形態においては、スキャナユニット100は、読取解像度が600dpiで、1画素当たり1バイトの画素情報を有する読取画像データを生成する。
プロッタユニット200は、入力された画像情報に基づいて用紙に対して画像形成出力を実行する画像形成装置であり、電子写真方式の画像形成機構や、インクジェット方式の画像形成機構が用いられる。
HDD300は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納される。
内部メモリ400は、情報の高速な読み書きが可能な不揮発性記憶媒体であり、情報処理が行われる際に作業領域として用いられるメインメモリである外部メモリ900を構成するDRAM等のメモリより、回路が複雑で回路規模が大きく、また、消費電力が大きい上に、単位記憶容量あたりの単価が高価ではあるが、画像処理モジュールからのアクセス速度は速いメモリ、例えば、SRAM等により構成されている。
この内部メモリ400は、ラインメモリ410〜430を含み、各ラインメモリ410〜430は、上述したように、読取画像データをライン単位で格納することができるラインメモリであり、スキャナユニット100により生成された読取画像データをライン単位で格納する。即ち、本実施形態においては、ラインメモリ410〜430が、第一の記憶媒体として機能する。本実施形態においては、各ラインメモリ410〜430は夫々、8Kバイト(8192バイト)の記憶容量を備えるものとする。
尚、各ラインメモリ410〜430は、内部メモリ400が論理的に分割されて実現されても良いし、内部メモリ400に設けられた物理的に区別される個々のメモリにより実現されても良い。また、本実施形態においては、内部メモリ400にはラインメモリ410〜430の3個のラインメモリが備えられる例について説明するが、その数はこの限りではなく、画像処理モジュール500が行う画像処理の種類に応じた数だけ備えられていても良い。
画像処理モジュール500は、画像処理部510及び内部メモリアクセスコントローラ520を含む。画像処理部510は、スキャナユニット100によって原稿が読み取られて生成された読取画像データを処理して保存用の保存画像データを生成する機能や、プロッタユニット200による画像形成出力用の出力画像データを生成する。
また、画像処理部510は、出力画像データや保存画像データの生成のための画像処理だけではなく、生成した出力画像データや保存画像データに対する回転処理や拡大/縮小処理、画質の変換処理等の、画像処理装置1が備える機能に対応した画像処理を行う。
内部メモリアクセスコントローラ520は、スキャナユニット100からライン単位で転送されてきた読取画像データ(ラインデータ)を一定の周期(ライン周期)で内部メモリ400に転送するための制御を行う。また、内部メモリアクセスコントローラ520は、内部メモリ400に格納されている一時的に記憶されている読取画像データ(ラインデータ)を画像処理部510に転送するための制御を行う。即ち、本実施形態においては、内部メモリアクセスコントローラ520が、第二の記憶制御部として機能する。
外部メモリアクセス要求部600は、DMAC(Direct Memory Access Controller)610、DMAC620、DMAC630を含み、各DMAC610〜630は、CPU(Central Processing Unit)等のプロセッサを介すことなくデータ転送を行うDMA(Direct Memory Access)転送において、通信の制御を行う専用の集積回路であり、アービタ700に外部メモリ900へのメモリアクセス要求を行い、アービタ700によってメモリアクセスが許可されると、外部メモリ900へのアクセスを実行する。即ち、本実施形態においては、外部メモリアクセス要求部600が、ラインデータ転送部として機能する。
本実施形態においては、メモリアクセスには2種類あり、一つは、外部メモリ900への読取画像データの書き込みであるライトアクセスであり、もう一つは、外部メモリ900からの読取画像データの読み出しであるリードアクセスである。従って、各DMAC610〜630がアービタ700に行うメモリアクセス要求は、外部メモリ900への読取画像データの書き込みを要求するライトアクセス要求と、部メモリ900からの読取画像データの読み出しを要求するリードアクセス要求とがある。
本実施形態に係る各DMAC610〜630はそれぞれ、ラインメモリ410〜430に格納されているラインデータを外部メモリ900へ転送するが、その際、格納されているラインデータのデータ量が所定量(本実施形態においては2048バイトであるがこれに限らない)に達すると、外部メモリ900へ転送するように構成されている。
このような構成により、本実施形態に係る画像処理装置1は、ラインメモリ410〜430の記憶容量がなくなる前に、ラインデータをラインメモリ410〜430から外部メモリ900に転送することが可能となる。
尚、このとき、各DMAC610〜630はそれぞれ、アービタ700にライトアクセスを要求する際、一つのライトコマンドにより要求するように構成されていても良いし、複数のライトコマンドに分割して要求するように構成されていても良い。後者の構成の場合、内部メモリ400から外部メモリ900へのラインデータの転送時に、そのデータ量が大きくメモリ転送帯域がラインデータの転送に占有されてしまう場合に有効となる。これは、外部メモリ900に対して一度に大量のデータ転送が発生すると、外部メモリ900への他のアクセス帯域を圧迫することになるためである。
また、各DMAC610〜630はそれぞれ、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900へラインデータを書き込む際、外部メモリ900における格納先が連続となるようにアドレスを指定する。
また、本実施形態に係る各DMAC610〜630はそれぞれ、画像処理モジュール500による画像処理のタイミングを見計らって、外部メモリ900に格納されているラインデータをラインメモリ410〜430に読み出す。その際、各DMAC610〜630はそれぞれ、読み出すラインデータのデータ量が所定量(本実施形態においては1024バイト分であるがこれに限らない)となるようにラインメモリ410〜430に読み出すように構成されている。
このような構成により、本実施形態に係る画像処理装置1は、ラインメモリ410〜430の空き容量に格納できる分だけのラインデータを、外部メモリ900からラインメモリ410〜430に読み出すことが可能となる。
尚、本実施形態においては、上述したように、各DMAC610〜630はそれぞれ、画像処理モジュール500による画像処理のタイミングを見計らって、外部メモリ900に格納されているラインデータをラインメモリ410〜430に読み出すように構成されている例について説明するが、ラインメモリ410〜430に空き容量がある限り、上記タイミングに関係なく読み出すように構成されていても良い。
アービタ700は、図示しない複数のポートを有し、夫々のポートにDMAC610、DMAC620、DMAC630が接続されている。また、アービタ700には外部メモリ900が接続されており、夫々のポートに接続されたDMAC610、DMAC620、DMAC630からの外部メモリ900へのメモリアクセス要求を調停してアクセスの順番を制御する。
外部メモリアクセスコントローラ800は、アービタ700から転送されてきた読取画像データ(ラインデータ)を一定の周期(ライン周期)で外部メモリ900に転送するための制御を行う。また、外部メモリアクセスコントローラ800は、外部メモリ900に一時的に記憶されている読取画像データ(ラインデータ)をアービタ700に転送するための制御を行う。即ち、本実施形態においては、外部メモリアクセスコントローラ800が、第二の記憶制御部として機能する。
外部メモリ900は、情報の高速な読み書きが可能な不揮発性記憶媒体であり、情報処理が行われる際に作業領域として用いられるメインメモリである。外部メモリ900は、上述したように、内部メモリ400を構成するSRAM等のメモリより、回路が単純で回路規模が小さく、また、消費電力が小さい上に、単位記憶容量あたりの単価が安価ではあるが、画像処理モジュールからのアクセス速度は遅いメモリ、例えば、DRAM等により構成されている。即ち、本実施形態においては、外部メモリ900が、第二の記憶媒体として機能する。
また、本実施形態に係る画像処理装置1は上記ハードウェア構成の他、演算手段であり、画像処理装置1全体の動作を制御するCPU(Central Processing Unit)、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されているROM(Read Only Memory)を備える。
このようなハードウェア構成において、ROMやHDD300若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムが外部メモリ900に読み出され、CPUが外部メモリ900にロードされたプログラムに従って演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像処理装置1の機能を実現する機能ブロックが構成される。
このような画像処理装置1が複写機として動作する場合、まず、画像処理装置1は、ユーザの操作に基づいてスキャナユニット100が原稿のスキャンを実行し、ラインデータを生成する。画像処理装置1は、スキャナユニット100によって生成されたラインデータを、先頭から順番に一旦内部メモリ400に入力して格納し、内部メモリ400に所定量が格納された時点で外部メモリ900に転送して格納する。そして、画像処理装置1は、画像処理に必要となるライン数分のラインデータが外部メモリ900に格納されると、それらのラインデータを外部メモリ900から順番に内部メモリ400に読み出し、内部メモリ400を介して画像処理モジュール500に入力する。
画像処理モジュール500は、画像形成出力用の出力画像データ若しくは保存用の保存画像データを生成するための画像処理を、入力されたラインデータに基づいて実行する。画像処理モジュール500による画像処理によって生成された画像形成出力用の出力画像データは、プロッタユニット200に送信される。これにより、プロッタユニット200において画像形成出力が実行される。また、画像処理モジュール500による画像処理によって生成された保存用の保存画像データは、HDD300に送信されて格納される。
尚、図1においては、スキャナユニット100、プロッタユニット200、HDD300を含み、少なくとも複写機として機能する画像処理装置1を例として説明している。この他、例えばネットワークI/F等を備え、PC(Personal Computer)から印刷ジョブを受信して画像形成出力を実行するプリンタとしての機能を持たせることも可能である。
また、本実施形態に係る画像処理装置1は、ユーザが画像処理装置1の状態を確認するための視覚的ユーザインタフェースとなるLCD(Liquid Crystal Display)や、キーボードやマウス等、ユーザが画像処理装置1に情報を入力するためのユーザインタフェースとなる操作部を備えるように構成されていても良い。
また、画像処理モジュール500は、画像処理の種類毎に備えられるように構成されていても良く、このような構成の場合、各画像処理モジュール毎に内部メモリ400及び外部メモリアクセス要求部600が備えられる。
次に、本実施形態に係るスキャナユニット100が読み取る原稿の原稿サイズとラインメモリ410〜430の記憶容量との関係について、図2を参照して説明する。図2は、本実施形態に係るスキャナユニット100が読み取る原稿の原稿サイズとラインメモリ410〜430の記憶容量との関係を説明するための図である。
上述したように、本実施形態に係るスキャナユニット100は、600dpiで、1画素当たり1バイトの画素情報を有する読取画像データをライン単位で生成するように構成されている。そのため、図2に示すように、本実施形態に係るスキャナユニット100が、A3サイズ(297mm×420mm=11.693inch×16.536inch)の原稿を読み取る場合、1ライン当たり7016画素が含まれ、そのラインデータのデータ量は7016バイトとなる。これは、ラインメモリ410〜430の記憶容量(8192バイト)以下であるため、ラインメモリ410〜430は、1ライン分全てを格納することが可能となる。
一方、図2に示すように、本実施形態に係るスキャナユニット100が、A2サイズ(420mm×594mm=16.536inch×23.386inch)の原稿を読み取る場合、1ライン当たり9922画素が含まれ、そのラインデータのデータ量は9922バイトとなる。これは、ラインメモリ410〜430の記憶容量(8192バイト)を超えるため、ラインメモリ410〜430は、1ライン分全てを格納することができない。即ち、ラインメモリ410〜430の記憶容量が、9922−8192=1730バイト分だけ不足することになる。
そこで、本実施形態に係る画像処理装置1は、このような問題を回避するために、生成された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように、外部メモリ900を用いるように構成されている。
ところが、上述したように、画像処理モジュール500からのアクセス速度は、SRAM等により構成された内部メモリ400よりも、DRAM等により構成された外部メモリ900の方が低速であるため、外部メモリ900を用いた処理の際には、処理速度が低下してしまい、処理効率が悪くなってしまう。
従って、本実施形態に係る画像処理装置1は、生成された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように外部メモリ900を用いる場合であっても、処理速度を低下させることなく画像処理を行うことができるように構成されている。
具体的には、本実施形態に係る画像処理装置1は、生成したラインデータを画像処理モジュール500へ入力する際、生成したラインデータを先頭から順番に一旦内部メモリ400に入力して格納し、所定量が格納された時点で外部メモリ900に転送して格納する。そして、本実施形態に係る画像処理装置1は、画像処理に必要となるライン数分のラインデータが外部メモリ900に格納されると、それらのラインデータを外部メモリ900から順番に内部メモリ400に読み出し、内部メモリ400を介して画像処理モジュール500に入力する。
このような構成により、本実施形態に係る画像処理装置1は、内部メモリ400を、上述したような理由により外部メモリ900を用いる際のアクセス速度の低下を緩衝させるためのバッファメモリとして機能させることができる。
これにより、本実施形態に係る画像処理装置1は、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように外部メモリ900を用いる場合であっても、処理速度を低下させることなく画像処理を行うことが可能となる。従って、本実施形態に係る画像処理装置1によれば、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う場合において、処理効率を向上させることが可能となる。
次に、本実施形態に係るスキャナユニット100が生成する読取画像データのデータ構造について、図3及び図4を参照して説明する。図3及び図4は、本実施形態に係るスキャナユニット100が生成する読取画像データのデータ構造を摸式的に示す図である。尚、図3及び図4に示す領域は、読取画像データのデータ構造を摸式的に示すために、説明の都合上設定した領域であって、読取画像データは実際にはこのように分割されて取り扱われるわけではない。
図3に示すように、本実施形態に係るスキャナユニット100が生成する読取画像データは、主走査方向に、即ち、各ライン毎に複数の領域に分割されており、図3に示す例においてはその領域数は10である。
従って、スキャナユニット100は、スキャナ動作時、「101」→「102」→・・・→「109」→「110」、といった順番で原稿を読み取って、その順番で読取画像データを生成する。そして、1ライン目のラインデータの生成が完了すると、同様にして次のラインのラインデータの読み取りを開始する。スキャナユニット100は、このような動作を全ラインについて行うことにより、即ち、副走査方向に順次行うことにより、原稿1枚分の読み取り動作を完了する。
また、図3に示した各領域は、図4に示すように、1024個の画素が主走査方向に配列されて構成されている。従って、図3に示した各領域には、1024バイト分の画像情報が含まれていることになる。尚、図4は、図3における「101」で表される領域を示している。
このように、図3に示した各領域には、1024バイト分の画像情報が含まれるため、各ラインメモリ410〜430の記憶容量(8192バイト)を考慮すると、各ラインメモリ410〜430には最大で8領域分(8192バイト分)だけ記憶することができる。
次に、本実施形態に係る画像処理モジュール500が行う画像処理について、図5を参照して説明する。図5は、本実施形態に係る画像処理モジュール500が画像処理を行う様子を示す図である。図5(a)に示すように、本実施形態に係る画像処理モジュール500はまず、1ライン目及び2ライン目のすべてのラインデータが揃い、その上で、3ライン目の5画素目が読み取られて入力された時点で、その中央に位置する注目画素「201−0003」に対する画像処理を実行する。
そして、本実施形態に係る画像処理モジュール500は、図5(b)に示すように、上記注目画素「201−0003」に対する画像処理が終了して3ライン目の6画素目「301−0006」が読み取られて入力されると、図5(c)に示すように、注目画素「201−0004」に対する画像処理を実行する。
本実施形態に係る画像処理モジュール500は、このような処理を繰り返すことにより読取画像データに含まれる全画素に対しての画像処理を実行するように構成されている。
尚、本実施形態においては、図5に示したように、3画素×5画素のその中央に位置する画素に対して画像処理を行う例について説明したが、図6に示すように、3画素×5画素のその全てについてまとめて画像処理を行うように構成されていても良いし、もっと多くの画素を含む領域単位で画像処理を行うように構成されていても良い。
このように、本実施形態に係るスキャナユニット100は、ライン単位で原稿を読み取るため、少なくとも、2ライン分(図5における1ライン目と2ライン目)+3ライン目における5画素の読み取りが完了するまで、画像処理モジュール500は、画像処理を行うことができない。
そのため、本実施形態に係るラインメモリ410〜430は、本来なら、少なくとも、2ライン分(図5における1ライン目と2ライン目)+3ライン目における5画素の読み取りが完了するまで、ラインデータを記憶しておかなければならないが、本実施形態に係るラインメモリ410〜430の記憶容量は、8192バイトしかないため、それを超えるデータ量を持つラインデータについては記憶することができない。
そこで、本実施形態に係る画像処理装置1は、このような問題を回避するために、生成された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように、外部メモリ900を用いるように構成されている。
ところが、上述したように、画像処理モジュール500からのアクセス速度は、SRAM等により構成された内部メモリ400よりも、DRAM等により構成された外部メモリ900の方が低速であるため、外部メモリ900を用いた処理の際には、処理速度が低下してしまい、処理効率が悪くなってしまう。
従って、本実施形態に係る画像処理装置1は、生成された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように外部メモリ900を用いる場合であっても、処理速度を低下させることなく画像処理を行うことができるように構成されている。
具体的には、本実施形態に係る画像処理装置1は、生成したラインデータを画像処理モジュール500へ入力する際、生成したラインデータを先頭から順番に一旦内部メモリ400に入力して格納し、所定量が格納された時点で外部メモリ900に転送して格納する。そして、本実施形態に係る画像処理装置1は、画像処理に必要となるライン数分のラインデータが外部メモリ900に格納されると、それらのラインデータを外部メモリ900から順番に内部メモリ400に読み出し、内部メモリ400を介して画像処理モジュール500に入力する。
このような構成により、本実施形態に係る画像処理装置1は、内部メモリ400を、上述したような理由により外部メモリ900を用いる際のアクセス速度の低下を緩衝させるためのバッファメモリとして機能させることができる。
これにより、本実施形態に係る画像処理装置1は、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように外部メモリ900を用いる場合であっても、処理速度を低下させることなく画像処理を行うことが可能となる。従って、本実施形態に係る画像処理装置1によれば、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う場合において、処理効率を向上させることが可能となる。
次に、本実施形態に係る画像処理装置1が、スキャナユニット100により原稿を読み取って読取画像データを生成し、生成した読取画像データを画像処理モジュール500に転送するまでのその読取画像データの流れについて、図7〜15を参照して説明する。図7〜図15は、本実施形態に係るスキャナユニット100によるスキャナ動作時のラインメモリ410〜430及び外部メモリ900における読取画像データの記憶状態を示す図である。尚、図7〜15に示す読取画像データ(ラインデータ)の各領域に付された数字は、図3に示した各領域に対応するものとする。
まず、本実施形態に係る画像処理装置1が、スキャナユニット100により原稿を読み取って読取画像データを生成し、生成した読取画像データを格納するまでの処理について、図7〜図9を参照して説明する。このときの前提として、図7(a)に示すように、ラインメモリ410〜430はそれぞれ、全記憶領域についてデータを記憶していないものとする。
その前提のもとに、スキャナユニット100がライン単位で読取画像データの生成を開始すると、図7(b)に示すように、内部メモリアクセスコントローラ520は、スキャナユニット100により生成された「101」及び「102」に対応する領域分のラインデータをラインメモリ410に格納する。
そして、図7(c)に示すように、DMAC610は、アービタ700にライトアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900へラインデータ「101」及び「102」を転送する。これと同時に、内部メモリアクセスコントローラ520は、スキャナユニット100により新たに生成された「103」及び「104」に対応する領域分のラインデータをラインメモリ410に格納する。
尚、このとき、上述したように、メモリアクセス速度は外部メモリ900よりもラインメモリ410の方が速いため、内部メモリアクセスコントローラ520からラインメモリ410に格納されるラインデータよりも、ラインメモリ410から外部メモリ900に転送されるラインデータの方が少ない。
そして、図7(d)に示すように、DMAC610は、アービタ700にライトアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900へラインデータ「102」の残り及び「103」を転送する。これと同時に、内部メモリアクセスコントローラ520は、スキャナユニット100により新たに生成された「105」及び「106」に対応する領域分のラインデータをラインメモリ410に格納する。
尚、このとき、上記と同様に、メモリアクセス速度は外部メモリ900よりもラインメモリ410の方が速いため、内部メモリアクセスコントローラ520からラインメモリ410に格納されるラインデータよりも、ラインメモリ410から外部メモリ900に転送されるラインデータの方が少ない。
そして、図8(a)〜(d)に示すように、本実施形態に係る画像処理装置1は、このような処理を同じライン(1ライン目)に属する他のラインデータについても同様に行うことにより、1ライン目のラインデータについての読み取りを完了する。その結果、図9(a)に示すように、1ライン目のラインデータが全て外部メモリ900に格納される。
1ライン目のラインデータについての読み取りが完了すると、図9(b)に示すように、本実施形態に係る画像処理装置1は、2ライン目についても同様の処理を行うことにより、その結果、2ライン目のラインデータについても全て外部メモリ900に格納される。
このようにして、2ライン分(1ライン目+2ライン目)のラインデータが外部メモリ900に格納されると、図10(a)に示すように、内部メモリアクセスコントローラ520は、スキャナユニット100により生成された「301」、「302」、「303」の一部に対応する領域分のラインデータをラインメモリ430に格納する。これと同時に、DMAC610及びDMAC620は、アービタ700にリードアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900からラインデータ「101」及び「201」をそれぞれラインメモリ410及び420に読み出す。
尚、このとき、上述したように、メモリアクセス速度は外部メモリ900よりもラインメモリ410の方が速いため、内部メモリアクセスコントローラ520からラインメモリ430に格納されるラインデータよりも、外部メモリ900からラインメモリ410及び420に読み出されるラインデータの方が少ない。
そして、図10(b)に示すように、内部メモリアクセスコントローラ520は、ラインメモリ410〜430からそれぞれ、ラインデータ「101」、「201」、「301」を画像処理部510に読み出す。これにより、画像処理部510は、ラインデータ「101」、「201」、「301」を用いて、「201」に対する画像処理を実行することができる。このときの画像処理の様子は、図5、図6に示した通りである。
これと同時に、内部メモリアクセスコントローラ520は、スキャナユニット100により生成された「303」の残り及び「304」に対応する領域分のラインデータをラインメモリ430に格納する。さらに、これと同時に、DMAC630は、アービタ700にライトアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900へラインデータ「301」を転送する。
このとき、ラインメモリ410から画像処理部510に読み出されたラインデータ「101」、及び、外部メモリ900からラインメモリ410に読み出されたラインデータ「101」は今後、画像処理に用いられることはないため、内部メモリアクセスコントローラ520の制御によりラインメモリ410から削除され、また、外部メモリアクセスコントローラ800の制御により外部メモリ900から削除される。
これにより、本実施形態に係る画像処理装置1は、生成された読取画像データに対して画像処理を行う際に、内部メモリ400の記憶容量が不足することを回避すると共に、外部メモリ900の記憶領域を効率的に使用することができる。
また、ラインメモリ420から画像処理部510に読み出されたラインデータ「201」は、4ライン目が画像処理に用いられるまで必要ないので、即ち、ラインデータ「201」、「301」、「401」を用いる画像処理が行われるまで必要ないので、内部メモリアクセスコントローラ520の制御によりラインメモリ420から削除されるが、外部メモリ900からは削除されない。これにより、本実施形態に係る画像処理装置1は、生成された読取画像データに対して画像処理を行う際に、内部メモリ400の記憶容量が不足することを回避することが可能となる。
そして、図10(c)に示すように、内部メモリアクセスコントローラ520は、スキャナユニット100により生成された「304」の残り、「305」、「306」に対応する領域分のラインデータをラインメモリ430に格納する。これと同時に、DMAC610及びDMAC620は、アービタ700にリードアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900からラインデータ「102」及び「202」をそれぞれラインメモリ410及び420に読み出す。
尚、このとき、上述したように、メモリアクセス速度は外部メモリ900よりもラインメモリ410の方が速いため、内部メモリアクセスコントローラ520からラインメモリ430に格納されるラインデータよりも、外部メモリ900からラインメモリ410及び420に読み出されるラインデータの方が少ない。
そして、図10(d)に示すように、内部メモリアクセスコントローラ520は、ラインメモリ410〜430からそれぞれ、ラインデータ「102」、「202」、「303」を画像処理部510に読み出す。これにより、画像処理部510は、ラインデータ「102」、「202」、「302」を用いて、「202」に対する画像処理を実行することができる。このときの画像処理の様子は、図5に示した通りである。
これと同時に、内部メモリアクセスコントローラ520は、スキャナユニット100により生成された「307」に対応する領域分のラインデータをラインメモリ430に格納する。さらに、これと同時に、DMAC630は、アービタ700にライトアクセスを要求して、アービタ700の調停に従った外部メモリアクセスコントローラ800の制御により外部メモリ900へラインデータ「302」を転送する。
このとき、上記と同様に、ラインメモリ410から画像処理部510に読み出されたラインデータ「102」、及び、外部メモリ900からラインメモリ410に読み出されたラインデータ「102」は今後、画像処理に用いられることはないため、内部メモリアクセスコントローラ520の制御によりラインメモリ410から削除され、また、外部メモリアクセスコントローラ800の制御により外部メモリ900から削除される。
また、上記と同様に、ラインメモリ420から画像処理部510に読み出されたラインデータ「202」は、4ライン目が画像処理に用いられるまで必要ないので、即ち、ラインデータ「202」、「302」、「402」を用いる画像処理が行われるまで必要ないので、内部メモリアクセスコントローラ520の制御によりラインメモリ420から削除されるが、外部メモリ900からは削除されない。
そして、図11〜図14に示すように、本実施形態に係る画像処理装置1は、このような処理を、1ライン目、2ライン目、3ライン目を用いた画像処理が完了するまで行うことにより、2ライン目に対する画像処理が完了する。その結果、図15に示すように、1ライン目は外部メモリ900からすべて削除され、2ライン目及び3ライン目のラインデータが全て外部メモリ900に格納される。
尚、図11〜図15においては、各DMAC610〜630はそれぞれ、画像処理モジュール500による画像処理のタイミングを見計らって、外部メモリ900に格納されているラインデータをラインメモリ410〜430に読み出すように構成されている例について説明したが、ラインメモリ410〜430に空き容量がある限り、上記タイミングに関係なく読み出すように構成されていても良い。
このように、本実施形態に係る画像処理装置1は、ラインデータのデータ量がラインメモリ410〜430の記憶容量を超える場合、若しくは、ラインメモリ410〜430の記憶容量が不足するような画像処理を行う場合であっても、外部メモリ900を使用することでラインメモリ410〜430の記憶容量に空き領域を作ることができる。この際、本実施形態に係る画像処理装置1は、内部メモリ400を、外部メモリ900を用いる際のアクセス速度の低下を緩衝させるためのバッファメモリとして機能させるように構成されている。
これにより、本実施形態に係る画像処理装置1は、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う際に内部メモリ400の記憶容量が不足するようなことがないように外部メモリ900を用いる場合であっても、処理速度を低下させることなく画像処理を行うことが可能となる。従って、本実施形態に係る画像処理装置1によれば、主走査方向にライン毎に読み取られて入力された読取画像データに対して画像処理を行う場合において、処理効率を向上させることが可能となる。
尚、本実施形態においては、ラインメモリ410〜430の記憶容量とスキャナユニット100により生成されたラインデータのデータ量との大小に関係なく、若しくは、ラインメモリ410〜430の記憶容量が不足するような画像処理を行うか否かに関係なく、外部メモリ900を使用する例について説明した。この他、スキャナユニット100により生成されたラインデータのデータ量がラインメモリ410〜430の記憶容量を超える場合、若しくは、ラインメモリ410〜430の記憶容量が不足するような画像処理を行う場合にのみ、外部メモリ900を使用するように構成されていても良い。
このような場合、画像処理装置1は、図16に示すように、判断部1000を備えるように構成される。従って、画像処理装置1は、判断部1000において、スキャナユニット100により生成されるラインデータのデータ量がラインメモリ410〜430の記憶容量を超えるか否かを判断し、若しくは、ラインメモリ410〜430の記憶容量が不足するような画像処理を行うか否かを判断し、判断結果を外部メモリアクセス要求部600に通知するように構成される。
このような構成とすることにより、スキャナユニット100により生成されたラインデータのデータ量がラインメモリ410〜430の記憶容量を超える場合、若しくは、ラインメモリ410〜430の記憶容量が不足するような画像処理を行う場合以外に外部メモリ900は使用されないので、消費電力のさらなる低減を図ることが可能となる。
また、本実施形態においては、DRAMとSRAMの2種類のメモリを備える画像処理装置1について説明したが、更に、TCM(Tightly Coupled Memory)等のSRAMよりも画像処理モジュール500からの読み込み速度の速いメモリや、DRAMよりも読み込み速度の遅いメモリを備える画像処理装置であっても良い。本実施形態において説明した作用効果と同様の作用効果を得ることができる。
また、本実施形態においては、スキャナを備える画像処理装置について説明したが、これに限らず、CCDやCMOS等のイメージセンサ主走査方向等の特定の方向沿って配置されたリニアイメージセンサが備えられた画像読取装置、例えば、デジタルカメラやカメラ機能付き携帯情報端末等でも同様に適用することが可能である。