以下、本発明に係る構成を図1から図12に示す実施の形態に基づいて詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係る画像処理装置1の全体構成を示すブロック図である。図1に示すように、本実施形態に係る画像処理装置1は、システムシステムコントローラ100およびエンジン部200により構成される。
システムシステムコントローラ100は、画像処理装置1の本体部分であり、共有メモリ105と、共有メモリ105へのアクセスを制御するアービタ106と、共有メモリ105にアクセスするスキャナ画像転送部101、プロッタ画像転送部102、CPU(Centoral Processing Unit)103、画像処理部104等の各マスターによって構成される。
エンジン部200は、表面スキャナ201、裏面スキャナ206、画像入力部202、ローカルメモリ203、プロッタ204および画像出力部205によって構成され、表面スキャナ201および裏面スキャナ206で読み取ったスキャナ画像をシステムコントローラ100に転送し、システムコントローラ100で画像処理された出力画像を、プロッタ204によって記録媒体に印字する機能を有する。
表面スキャナ201および裏面スキャナ206にて読み取られた原稿データであるスキャナ画像(読取画像)は、画像入力部202において、スキャナ画像補正処理が施された後に、スキャナ画像転送部101を介して、一度共有メモリ105に蓄積される。そして、必要に応じて画像処理部104で画像処理が施されてから、プロッタ画像転送部102を介して、画像出力部205からプロッタ204に出力される。
スキャナ画像転送部101は、エンジン部200の画像入力部202から原稿が読み取られて成されたスキャナ画像を受信し、共有メモリ105に格納する制御を行う。
プロッタ画像転送部102は、プロッタ204において画像形成出力を実行させるために、共有メモリ105に一時的に格納された出力画像を読み出して、画像出力部205に転送する制御を行う。
CPU103は、システムコントローラ100全体の動作を制御するための演算装置(制御手段)であって、スキャナ画像転送部101等の各部やアービタ106への動作モード設定や起動指示、共有メモリ105のアドレス管理等を行う。
画像処理部104は、複数の処理部からなり、それぞれ画像の圧縮伸長機能や画像の回転機能、画像の暗号化機能、画像の加工機能等の処理を実行する。
共有メモリ105は、情報の高速な読み書きが可能な不揮発性記憶媒体からなる主記憶部(メインメモリ)であり、例えば、RAM(Random Access Memory)によって実現される。共有メモリ105は、CPU103が様々な機能を実現するためのプログラムがロードされる他、CPU103が処理するデータを一次的に格納するための作業領域、並びにスキャナ画像転送部101に入力された画像情報の一次的な保存領域として用いられる。
アービタ106は、共有メモリ105にアクセスする各マスターのアクセス順番を制御するデータバスである。システムとして共有メモリ105を効率的に利用できるように優先順位を調停する機能を有している。
表面スキャナ201および裏面スキャナ206は、光学情報を電気信号に変換する光電変換素子を含む画像読取部であって、原稿を光学的に走査して読み取って画像情報を生成する。
画像入力部202は、両面同時読み取りを行う際に、同時に入力される2ページ分のスキャナ画像の内の一方の面(例えば、表面)の読取画像(表面スキャナ画像)を、画像入力部202のスキャナ画像補正処理部306での処理を施してシステムコントローラ100へ送信する制御をするとともに、他方の面(例えば、裏面)の読取画像(裏面スキャナ画像)は、ローカルメモリ203に一次蓄積する。
次いで、一方の面(表面)のスキャナ画像がシステムコントローラ100へ送信完了後に、他方の面(裏面)のスキャナ画像をスキャナ画像補正処理部306での処理を施してシステムコントローラ100へ転送する制御を行う。なお、以下の説明では、表面スキャナ画像をシステムコントローラ100へ送信完了後に、裏面スキャナ画像をスキャナ画像補正処理部306での処理を施してシステムコントローラ100へ転送する場合について説明するが、裏面スキャナ画像をシステムコントローラ100へ送信完了後に、表面スキャナ画像をスキャナ画像補正処理部306での処理を施してシステムコントローラ100へ転送するものであってもよいのは勿論である。
ローカルメモリ203は、画像入力部202がリアルタイムでシステムコントローラ100側に送信しない側の面のスキャナ画像を一次的に記憶する記憶媒体であり、共有メモリ105と同様のRAMや、NV−RAM(Non Volatile-RAM)等が用いられる。
プロッタ204は、入力された画像情報に基づいて画像形成出力を実行するエンジンであり、電子写真方式の画像形成機構や、インクジェット方式の画像形成機構が用いられる。
画像出力部205は、プロッタ画像転送部102から転送される出力画像を受信し、プロッタ204に転送する制御を行う。
尚、図1においては、スキャナ201,206およびプロッタ204を含み、少なくとも複写機として機能する画像処理装置1を例として説明している。この他、例えばネットワークI/F等を備え、PC(Personal Computer)から印刷ジョブを受信して画像形成出力を実行するプリンタとしての機能を持たせることや、HDD(Hard Disk Drive)等の記憶装置を備え、スキャンによって生成された画像情報を蓄積するサーバとしての機能を持たせることも可能である。
図2は、ライン周期とメモリアクセスタイミングとの関係を示すタイミングチャートである。図2は、スキャナの機械的な動作制約を考慮した共有メモリ105に対するアクセスを示すタイミングチャートである。
スキャナ画像転送部101の書き込みアクセスは、共有メモリ105へのアクセスの優先順位を最上位に設定されているため、スキャナ画像が書き込まれている間は、他のマスターは共有メモリ105にアクセスすることはできない。なお、画像データをパケット単位で転送するなどした場合は、スキャナ画像の書き込みに隙間が空くことがあり、この場合は、次の優先順位を与えられているマスターが共有メモリ105にアクセスすることは可能である。
スキャナ画像は一般的に、転送を確実に行うためのラインバッファに一次蓄積されてからシステムコントローラ100に転送される。そこで、システムコントローラ100のアービタ106上のデータは、図2に示すように1ラインの画像転送開始から1ラインの画像転送完了までの間はスキャナ画像の転送で占められ、スキャナ画像の1ライン分の転送完了後に、その他のマスターが共有メモリ105に読み出し、書き出しアクセス可能な期間が発生する。その後、1ライン分の画像読み取り時間が経過すると、次の1ライン分のスキャナ画像の書き込みアクセスが開始されて、アービタ106を占め、1ページの画像転送が完了するまで、共有メモリ105に対して図2のようなアクセスが繰り返される。
図3は、ライン周期とメモリアクセスタイミングとの関係を示すタイミングチャートである。図3は、スキャナ画像をローカルメモリ203に一時蓄積することを前提に、スキャナ画像の書込みを最優先とした場合の共有メモリ105に対するアクセスを示すタイミングチャートである。
図2に示す場合と同様に、スキャナ画像転送部101の書き込みアクセスは、共有メモリ105へのアクセスの優先順位を最上位に設定されているため、スキャナ画像が書き込まれている間は、他のマスターは共有メモリ105にアクセスすることはできない。
図3に示す場合、裏面スキャナ206で読み取られた裏面スキャナ画像はローカルメモリ203に一次蓄積されてからシステムコントローラ100に転送される。このため、システムコントローラ100のアービタ106上のデータは、1ページ分の画像転送完了までの間はスキャナ画像の転送で占められ、その間、他のマスターは待機状態となる。そして、スキャナ画像の1ページ分の転送完了後に、その他のマスターが共有メモリ105に読み出し、書き出しアクセス可能な期間となる。
すなわち、スキャナ画像転送部101以外のマスター、例えば、画像処理部104において、実行するべき画像処理があるにも関わらず、画像情報が格納されている共有メモリ105にアクセスできないために、処理を待機するような状態を生じることとなり、画像処理装置1全体の処理効率の低下を招き、結果的にユーザの利便性を損なうこととなる。
図4は、裏面スキャナ画像データを共有メモリに転送する場合の1ページ単位の処理効率について説明する図である。ここで、(A)は、スキャナ画像の優先順位が最高位に設定されたアービタ106を介して、ローカルメモリ203に一次蓄積した裏面スキャナ画像データを連続で共有メモリ105に転送した場合の1ページ単位の処理効率、(B)は、ローカルメモリ203に一次蓄積した裏面スキャナ画像を疑似ライン周期(分割したデータを転送する周期をいう)単位で間隔を空けて共有メモリ105に転送し、スキャナ画像転送部101以外のマスター(例えば、画像処理部104)に並行してメモリアクセスさせた場合の1ページ単位の処理効率、を示している。
スキャナ画像の優先順位が最高位に設定されたアービタ106を介して、共有メモリ105に対する最大転送帯域に満たない速度で画像処理を行う画像処理部104と、ローカルメモリ203に一次蓄積した裏面スキャナ画像の1ページ分の共有メモリ105への転送が同時に動作した場合、図4(A)に示すような転送帯域の分配となる。
この場合、スキャナ画像に比べて優先順位の低い画像処理部104は、スキャナ画像転送中は動作できずに、1ページ分のスキャナ画像転送完了後に動作が開始される。
一方、図2に示したように、ライン周期に1ライン分のデータを転送し、余剰の時間は他のバスマスターによる共有メモリ105へのアクセスを許可する場合、図4(B)に示すような転送帯域の分配となる。
この場合、スキャナ画像の転送中もページ単位のスケールでは並行動作することが可能となるため、図4(A)の場合に比べ、斜線部aで示すようにメモリ利用効率を向上させることができるとともに、矢印bで示す分、システムとしての生産性を向上させることができる。
このように、本実施形態に係る画像処理装置は、原稿をページ単位で読み取る画像読取装置(表面スキャナ201、裏面スキャナ206)と、画像読取装置で読み取った少なくとも1ページ分の画像データを一次蓄積するローカルメモリ(ローカルメモリ203)と、画像読取装置を含む複数の装置からアクセスされる共有メモリ(共有メモリ105)と、共有メモリへアクセスする複数の装置のアクセス許可を制御する調停手段(アービタ106)と、を備える画像処理装置(画像処理装置1)において、画像読取装置で読み取った画像データを共有メモリへ格納する前に所定の補正処理を施す画像補正手段(スキャナ画像補正処理部306)と、ローカルメモリに一時蓄積された画像データを読み出して、共有メモリへ転送する画像転送手段(転送処理部304、転送中断処理部308、CPU103等)を備え、該画像転送手段は、ローカルメモリに一時蓄積された画像データを、所定のデータサイズに分割するとともに、該分割されたデータを、所定の周期で間欠的に共有メモリへ転送し、調停手段は、間欠的なデータの転送中に画像読取装置以外の他の装置からの共有メモリへのアクセスを許可するものである。なお、括弧内は実施形態での符号、適用例を示す。
すなわち、本実施形態に係る画像処理装置は、ローカルメモリ203に一次蓄積した裏面スキャナ画像を共有メモリ105に転送する際に、擬似的なライン周期を生成し、擬似的な1ライン分のデータを転送することで、システムとしての生産性を向上させるものである。
ここで、擬似的なライン周期と1ライン分のデータサイズとの関係は、裏面スキャナ画像の1ページの転送に許容される期間によって計算される。通常は、次ページの読み取りを開始する前にローカルメモリ203に次ページを書き込む領域を確保するため、次ページの読み取り前に共有メモリ105に転送が完了するよう期間が設定され、それを満足する転送速度になるよう、1ライン単位の周期とデータ量が決定される。
なお、前ページの読み取りに次ページの書き込みが追いつかれないよう制御することで、ローカルメモリ203をリングバッファのように使用し、前ページの画像データをローカルメモリ203から完全に読み出す前に次ページの読み取りを開始しても良い。
また、スキャナの生産性は1分間に読み取ることできるページ枚数で表されることが多いが、ライン単位に一定のデータ量を周期的に転送する仕組みにより、スキャナ画像の転送速度が一定となり、生産性を保証することが可能となる。
図5は、画像処理装置1のスキャナ201,206で読み取った画像がどのように転送されるかを示す説明図である。
表面スキャナ201で読み取った原稿(表面スキャナ画像)は、表面データ受信部301で受信され、データ転送経路切替部305を介して、スキャナ画像補正処理部306に入力される。スキャナ画像補正処理部306において、読み取り時に発生する画像の乱れ等を表面スキャナ201の特有のパラメータで補正した後、スキャナ画像転送部101を介して共有メモリ105に格納される。
一方、裏面スキャナ206で読み取った原稿(表面スキャナ画像)は、裏面データ受信部302で受信され、DDR_I/F303を介して、ローカルメモリ203に一次格納される。
裏面スキャナ画像は、表面スキャナ画像についての画像処理完了が終るまで待ってから、再び、転送処理部304(詳細は後述する)によってDDR_I/F303を介して、読み出される。そして、データ転送経路切替部305を介して、スキャナ画像補正処理部306に入力される。スキャナ画像補正処理部306において、裏面スキャナ206の特有のパラメータで補正した後、スキャナ画像転送部101を介して共有メモリ105に格納される。
図6に、図5を参照して説明した表面スキャナ画像と裏面スキャナ画像の転送処理を時間軸上で示した図を示す。図5を参照して説明した表面スキャナ画像と裏面スキャナ画像の転送処理は、図6に示すようにパイプライン処理される。S101〜S106は、表スキャナ画像についての転送処理、S201〜S210は、裏面スキャナ画像についての転送処理を示しており、各処理については上述のとおりである。
スキャナ画像補正処理部306は、リソースとして1つであるため、スキャナ画像補正処理部306は、表面スキャナ画像についての処理を完了した後、ローカルメモリ203に格納されている裏面スキャナ画像を読み出して、スキャナ画像の補正処理を実行することとなる。
図7は、図1に示した画像処理装置1のブロック図において、裏面スキャナ画像の転送経路であるDDR_I/F303からデータ転送経路切替部305までの構成を詳細に示したブロック図である。
転送中断処理部308は、データ転送中断部401、疑似ライン周期タイマー402、データカウンタ403および転送周期設定部404により構成される。
データ転送中断部401は、ローカルメモリ203から、共有メモリ105へのアクセスを調停するアービタ106までのデータ転送経路に配置される。データ転送中断部401は、データカウンタ403の指示に従って、1ライン分のデータ転送ごとにデータ転送を中断するとともに、疑似ライン周期タイマー402の指示に従って、ライン周期毎にデータ転送を再開する動作を1ページ分のデータ転送が完了するまで繰り返す。
疑似ライン周期タイマー402は、時間を計測するタイマーであって、転送周期設定部404に設定されている1ライン分のデータ転送周期(すなわち、ライン周期)に達するとデータ転送中断部401に転送再開を指示する。
データカウンタ403は、データ転送部405を通過したデータ量をカウントし、転送周期設定部404に設定された1ライン分のデータ量に達するとデータ転送中断部401に転送中断を指示する。
転送周期設定部404には、CPU103によって1ライン分のデータ転送周期(ライン周期)および1ライン分のデータ量の設定値を書き込まれる。転送周期設定部404は、その値を保持して、疑似ライン周期タイマー402及びデータカウンタ403に通知する。
転送処理部304は、データ転送部405および転送パラメータ設定部406により構成される。
データ転送部405は、ローカルメモリ203に一次蓄積された裏面スキャナ画像を読み出して、共有メモリ105に転送する。転送パラメータ設定部406からローカルメモリ203への読み出しアドレスと、読み出しサイズを受け取ってローカルメモリ203への読み込み要求を発行し、読み込んだデータを受信して、スキャナ画像補正処理部306へ転送する。
転送パラメータ設定部406は、CPU103によってローカルメモリ203に蓄積された裏面スキャナ画像のアドレスやデータサイズ情報を書き込まれ、その値を保持してデータ転送部405に通知する。
図7に示す構成によれば、データ転送中断部401によってCPU103にて設定されたライン周期単位で一定のデータ量を転送されるため、共有メモリ105までの経路にあるアービタ106においてスキャナ画像の優先順位が最も高く設定されていても、ライン周期毎にスキャナ画像が転送されない期間が発生する。このため、スキャナ以外の他のマスターが共有メモリ105にアクセスする機会を得ることができ、システムとしての処理効率を向上させることができる。また、スキャナ画像の転送速度はライン周期とラインデータ量(分割データサイズをいう)によって保証されるため、スキャナ画像を取り込むメカの速度に確実に追従することが可能となっている。
図8は、裏面スキャナ画像の転送処理の一例を示すフローチャートである。なお、図8に示すフローチャートにおいて、表面スキャン画像の転送をスタートして表面1ページ分のスキャナ画像補正処理が終了するタイミングがS303である。なお、CPU103による表面スキャナ画像の転送設定や表面スキャナ画像の転送開始指示は、図8には記載していない。
また、図8に示す裏面スキャナ画像の転送処理では、表面スキャナ画像の転送が終了する前(S303の前)に、裏面スキャナ画像の転送アドレスやデータサイズ、転送周期、ラインデータサイズ等の設定を完了させる(S301,S302)とともに、表面スキャナ画像のスキャナ画像補正処理が終了したのを確認した後に、裏面スキャナ画像をローカルメモリ203から共有メモリ105に転送する例を示している。
先ず、CPU103は、裏面スキャナ画像をローカルメモリ203から読み出すためのローカルメモリ203上の転送元アドレスや転送データサイズを転送パラメータ設定部406に設定する(S301)。
次いで、CPU103は、裏面スキャナ画像を分割して転送する分割データサイズと、分割したデータを転送する周期を転送周期設定部404に設定する(S302)。
パイプライン処理される表面スキャナ画像のスキャナ画像補正処理が完了したら(S303:YES)、スキャナ画像補正処理部306はCPU103に完了を通知する割込みを発行する(S304)。
次いで、CPU103は、スキャナ画像補正処理部306からの表面スキャナ画像の画像補正処理完了割り込みを受けて、データ転送経路切替部305を裏面スキャナ画像の転送珪藻に切り替える(S305)。
次いで、CPU103は、スキャナ画像補正処理部306の画像処理パラメータを裏面スキャナ画像用のパラメータに変更する(S306)。
次いで、CPU103は、データ転送部405に裏面スキャナ画像をローカルメモリ203から共有メモリ105への画像転送を開始するよう指示する(S307)。
次いで、データ転送部405は、転送パラメータ設定部406に設定されたパラメータに従って裏面スキャナ画像をローカルメモリ203から読み出して、データ転送中断部401に転送する、いわゆるDMA(ダイレクトメモリアクセス)転送を開始する(S308)。
次いで、データカウンタ403は、データ転送中断部401を通過したデータサイズをカウントし、転送周期設定部404により設定された分割データサイズに達したかどうかを判断する(S309)。
分割データサイズに達した場合(S309:YES)、データカウンタ403は、データ転送中断部401に対して転送中断を指示する(S310)。
次いで、データ転送中断部401はデータカウンタ403からの中断指示を受けてデータ転送部405からのデータ受信を一時的に停止して、データ転送を中断させる(S311)。
次いで、疑似ライン周期タイマー402はデータ転送部405がデータ転送を開始したタイミングでタイマーをスタートさせ、S311でデータ転送が中断した後もタイマーを継続して動作させ、タイマーが転送周期設定部404に設定された分割したデータを転送する周期に達したかどうかを判断する(S312)
この周期に達している場合(S312:YES)、疑似ライン周期タイマー402は、データ転送中断部401に対してデータ転送再開を指示する(S313)。
次いで、データ転送中断部401は、疑似ライン周期タイマー402からのデータ転送再開指示を受けて、次の分割データサイズ分のデータ転送を再開する(S314)。
次いで、データ転送部405は、1ページ分のデータを転送完了したかどうかを判断し(S315)、1ページ分のデータを転送完了した場合(S315:YES)は、データ転送部405は、CPU103に転送完了を通知する割込みを発行して動作を終了する。
なお、上記処理において、1ページ分のデータをローカルメモリ203に保存した後は、スキャナのCCDサイズに依存する1ラインのデータサイズや、CCD(もしくは原稿)が移動する速度に依存するライン周期に合せる必要はなく、ローカルメモリ203に次の原稿を書き込み開始するまでの間に、ローカルメモリ203上に次の裏面画像を保存する領域が確実に確保できる周期、データサイズに分割すればよい。
また、1ラインのデータサイズや、疑似ライン周期は、ページごとに算出することが好ましい。これにより、ページ毎に最適な裏面スキャナ画像の転送速度とすることができ、さらに好適にシステム全体としてのメモリ利用効率を向上させることができる。
また、1ライン分のデータを疑似ライン周期で転送完了できなかった場合は、CPU103に対して、エラーを通知する割り込みを発光することが好ましい。これにより、設定した転送周期中に分断データサイズのデータが転送できなかったことが原因で異常画像が発生した場合に、その原因を容易に特定することができる。
また、1ページ分のデータの総データ転送量を算出し、1ページ分のデータ転送が疑似ライン周期を設定する期間内に、転送が完了しない場合は、疑似ライン周期を追加生成して、1ページ分のデータについてはデータ転送を完了することが好ましい。これにより、生産性は低下するものの、異常画像の発生を防ぐことができる。
以上説明した本実施形態に係る画像処理装置1によれば、簡易な構成により、スキャナ画像のメインメモリ(共有メモリ105)への書き込み速度を保証しつつ、他のマスターによるメインメモリへアクセスするタイミングを確保することで、システム全体としてのメモリ利用効率を向上させることができる。
より詳しくは、画像読取装置(スキャナ)の生産性を達成するためにスキャナ画像を最優先で共有メモリ105に書き込むアービトレーションが行われる画像処理装置において、両面同時読取を実施し、表面スキャナ画像は共有メモリ105に対してリアルタイムに転送し、裏面スキャナ画像はローカルメモリ203に一次蓄積しておいて表面スキャナ画像の転送後に共有メモリに転送する画像転送処理に際して、ローカルメモリ203に蓄積された裏面スキャナ画像を共有メモリ105に書き込む際に、1ライン分の画像データを疑似的なライン周期(水平同期信号周期)で共有メモリ105に間欠的に転送するようにしている。
すなわち、疑似的な1ライン分のデータを、疑似的なライン周期の間隔で転送することで、裏面スキャナ画像は確実に決められた一定の転送速度で共有メモリ105に画像転送されることを保証しつつ、最優先に設定されたスキャナ画像の入力期間中であっても、ライン周期単位で裏面スキャナ画像の共有メモリ105に対する書込みが中断するため、他のマスターが定期的にメモリアクセスするタイミングが確保することができるようになり、他のマスターのメモリアクセスと転送帯域を分け合うことができるようになる。よって、共有メモリ105を利用する全てのマスターを考慮した画像処理装置全体としてのメモリ利用効率を向上することができる。
また、特許文献2の構成では、アービタとして、汎用のアービタを使用することができなかったが、本実施形態に係る画像処理装置1によれば、汎用のアービタを使用することができる。
[第2の実施形態]
以下、本発明に係る画像処理装置の他の実施形態について説明する。なお、上記実施形態と同様の点についての説明は適宜省略する。
図9は、第2の実施形態に係る画像処理装置1における表面スキャナ画像と裏面スキャナ画像のデータ転送時間と、転送量との関係の説明図である。
第2の実施形態では、転送周期設定部404に設定される1ライン分のデータ転送周期(ライン周期)および1ライン分のデータ量の決定方法について説明する。なお、画像処理装置1の構成や制御フローは、第1の実施形態と同様である。ここでは、仮に、1秒間隔で表面と裏面を読み取る場合を例に説明する。
期間Aは、CCD等を用いて実際に原稿を読み取っている期間を示している。原稿の読取速度は、画像読取装置(スキャナ)のメカ的な動作速度によって決定される。ここで、三角形A1は、表面スキャナ201が読み込んだ表面スキャナ画像の1ページ目の共有メモリ105への書き込みの転送量と時間の関係を示しており、斜辺の傾きがデータ転送速度を示している。また、三角形A2は、裏面スキャナ206が読み込んだ裏面スキャナ画像の1ページ目のローカルメモリ203への書き込みの転送量と時間の関係を示しており、斜辺の傾きがデータ転送速度を示している。
このとき、表面スキャナ画像は、表面の読取速度に従って、スキャナ画像補正処理が施されながら共有メモリ105に書き込まれ、裏面スキャナ画像は裏面の読取速度に従って、ローカルメモリ203に書き込まれる。
期間Bは、表面スキャナ画像についての画像補正処理の完了を待って、裏面スキャナを画像補正処理を施しながらローカルメモリ203から共有メモリ105に転送している期間を示している。ここで、三角形B1は、裏面スキャナ画像の1ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係を示している。なお、ローカルメモリ203から共有メモリ105への転送は画像読取装置の動作速度には依存しないため、三角形B1の斜辺の傾きは、疑似ラインサイズと疑似ライン周期の関係により、任意に決定することができる。
図9に示す例では、期間A,B,Cの合計を1秒としている。そして、期間Aは上述のように画像読取装置のメカ的な動作速度によって決定される。よって、期間Cは、任意に決定可能な期間Bの長さに応じて、決定される期間である。
ここで、複数ページの転送を行う場合は、前のページの完了を検知する割込み処理や次ページの制御設定を行う時間が必要となるため、期間Cは、最低限それらの制御時間以上となるように期間Bを決定する必要がある。なお、三角形A3は、表面スキャナ画像の2ページ目の共有メモリ105への書き込みの転送量と時間の関係を示しており、斜辺の傾きがデータ転送速度を示している。また、三角形A4は、裏面スキャナ画像の2ページ目のローカルメモリ203への書き込みの転送量と時間の関係を示しており、斜辺の傾きがデータ転送速度を示している。また、三角形B2は、裏面スキャナ画像の2ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係を示している。
このため、期間Bを決定する方法として、(1)1ページ目と同じ転送周期/転送ラインサイズとする方法、(2)転送に周期的な待機状態(WAIT)を挟まないで連続して転送する方法に加えて、(3)期間Cに最低限必要な時間から逆算して、期間Bに許容される最大時間を決定する方法が考えられる。
(3)の方法とすることで、ローカルメモリ203から共有メモリ105への裏面スキャナ画像の転送以外に、同時に動作している他のマスターが共有メモリ105にアクセスする帯域をより多く確保できるようになる。このため、図4(B)で示したシステム全体の処理効率向上が効果的に見込めると同時に、ローカルメモリ203から共有メモリ105への裏面スキャン画像の転送時間(期間B)も保証されるため、画像読取装置自体の生産性(所定時間内(例えば、上記の1秒間)に表面と裏面の画像読取を行う性能)を満足させることができる。
なお、期間Aと期間Bとの間に、スキャナ画像の画像補正処理に必要なパラメータを表面スキャナ画像用のパラメータから、裏面スキャナ画像用のパラメータ用に切り替える処理が必要となる場合は、期間Bの算出において、この切り替えに必要な期間(設定変更期間)を考慮して算定することが必要となる。
以上説明した第2の実施形態に係る画像処理装置1によれば、画像読取装置(スキャナ)の生産性を保証しつつ、スキャナ画像の共有メモリ105への書き込み以外のメモリアクセスの機会を最大化することができ、システムの動作効率を最大化することができる。
[第3の実施形態]
図10は、第3の実施形態に係る画像処理装置1の全体構成を示すブロック図である。第3の実施形態に係る画像処理装置1では、転送中断処理部308をスキャナ画像補正処理部306の後段に設けている。
図10に示すように、転送中断処理部308をスキャナ画像補正処理部306とアービタ106の間の経路に配置するとともに、スキャナ画像補正処理部306と転送中断処理部308の間に緩衝手段としてのラインバッファ309を配置している。
第1の実施形態において、転送周期設定部404に設定される擬似的な1ライン分のデータ量を裏面スキャナ206で読み取られたラインサイズと異なった値に設定する場合、スキャナ画像補正処理部306の構成によっては、以下のような現象(1),(2)が発生するおそれがある。
(1)画像補正処理を1ライン単位で実施するため、転送周期設定部404に設定した1ライン分のデータ量とは異なる裏面スキャナ206で読み取られたラインサイズ分のデータが入力されるまでスキャナ画像補正処理を開始せず、結果として、アービタ106に入力される周期が転送周期設定部404に設定した疑似ライン周期に従わなくなってしまう。
(2)画像補正処理を1ライン単位で連続して入力されることを期待した回路となっているため、転送周期設定部404へのラインデータ量は裏面スキャナ206で読み取られたラインサイズの整数倍に制約される。
(1)については、図10に示すように、転送中断処理部308をスキャナ画像補正処理部306とアービタ106との間の経路に配置することで解消することができる。すなわち、転送処理部304は連続してデータをローカルメモリ203からスキャナ画像補正処理部306に転送するが、転送中断処理部308で転送を中断させることによりデータ転送を詰まらせることで、転送が一時停止し、結果的に一定の転送速度で共有メモリ105への転送が行われることになる。
図10に示すように、転送中断処理部308をスキャナ画像補正処理部306とアービタ106との間の経路に配置することで、アービタ106に対して入力される時点での周期性を転送周期設定部404に設定した値により近づけることが可能となる。
また、(2)については、ラインバッファ309をスキャナ画像補正処理部306の後段に配置し、1ライン分のデータは一旦受けきった上で、転送中断処理部308の都合に合せたデータサイズにデータを分断して転送することで解消することができる。すなわち、ラインバッファ309への書き込みをライン単位で連続して行う動作とすれば、ラインバッファ309からの読出しサイズは転送中断処理部308が任意に決定できるようになる。
したがって、分断して転送するデータサイズを任意に設定出来る構成においては、疑似ラインサイズをアービタ106に転送するデータのパケットサイズにアライメントすることで、1ページのデータ転送を行う際の転送パケット数を削減して、アービタ106及び共有メモリ105の転送効率を向上させて、システムの処理効率を向上させることができる。
なお、ラインバッファ309はスループットを確保するためにトグル構成とすることもできる。また、スキャナ画像補正処理部306に確実に1ライン分のデータを連続して転送できるようにするため、スキャナ画像補正処理部306の前段にラインバッファを付加することも好ましい。
第3の実施形態に係る画像処理装置1によれば、スキャナ画像の分割転送の周期およびデータサイズをより正確に保ちつつ、共有メモリ105へのアクセスを調停するアービタ106にスキャナ画像を転送することができる。
[第4の実施形態]
図11は、第4の実施形態に係る画像処理装置1の全体構成を示すブロック図である。第4の実施形態に係る画像処理装置1では、表面スキャナ画像および裏面スキャナ画像を両方とも一時的にローカルメモリ203に蓄積してから、共有メモリ105に転送する構成例について説明する。
図11に示す画像処理装置1は、データ転送経路切替部305を有さず、表面データ受信部301は表面スキャナ画像を、ローカルメモリ203に転送する構成となっている。
図12は、第4の実施形態に係る画像処理装置1における表面スキャナ画像と裏面スキャナ画像のデータ転送時間と、転送量との関係の説明図である。
ここで、三角形A1は、表面スキャナ画像の1ページ目のローカルメモリ203への書き込みの転送量と時間の関係、三角形A2は、裏面スキャナ画像の1ページ目のローカルメモリ203への書き込みの転送量と時間の関係、三角形A3は、表面スキャナ画像の2ページ目のローカルメモリ203への書き込みの転送量と時間の関係、三角形A4は、裏面スキャナ画像の2ページ目のローカルメモリ203への書き込みの転送量と時間の関係を示しており、各三角形の斜辺の傾きがデータ転送速度を示している。
また、三角形C1は、表面スキャナ画像の1ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係、三角形C2は、裏面スキャナ画像の1ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係、三角形C3は、表面スキャナ画像の2ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係、三角形C4は、裏面スキャナ画像の2ページ目のローカルメモリ203から共有メモリ105への画像転送の転送量と時間の関係、を示している。なお、ローカルメモリ203から共有メモリ105への転送は画像読取装置の動作速度には依存しないため、三角形B1の斜辺の傾きは、疑似ラインサイズと疑似ライン周期の関係により、任意に決定することができる。
また、期間B1は、表面スキャナを画像補正処理を施しながらローカルメモリ203から共有メモリ105に転送している期間、期間B2は、裏面スキャナを画像補正処理を施しながらローカルメモリ203から共有メモリ105に転送している期間を示している。
第4の実施形態では、表面スキャナ画像についても、一旦ローカルメモリ203に蓄積してから共有メモリ105に転送して、スキャナ画像補正処理を施すことで、画像読取装置(スキャナ)のメカ的な動作速度に依存せず、スキャナ画像補正処理を行う処理速度を決定することができる。
なお、表面スキャナ画像のデータについては、ローカルメモリ203に1ページ溜め終わるのを待たずにスキャナ画像補正処理部306への転送を開始してもよい。表面スキャナ201の読み取り速度よりスキャナ画像補正処理速度が遅い設定では、表面スキャナ画像のローカルメモリ203への書き込みを読み出しが追い越すことはなく、メモリ量を削減することができる。
第4の実施形態に係る画像処理装置1によれば、アービタ106の占有率をより平均化することが出来るため、共有メモリ105にアクセスする他のマスターを含めたシステムとしての処理効率化を図ることできる。
尚、上述の実施形態は本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。