(57)【要約】【課題】機能拡張の有無に応じて画像処理時間が変動する場合にも、異常な画像データを生成することなく、画像データの転送性能の低下を防止する。【解決手段】画像処理装置は、第１の画像処理手段と、機能拡張時に追加される第２の画像処理手段とを有し、機能拡張時、第１の画像処理手段と第２の画像処理手段とを画像データの転送経路で接続し、第１の画像処理手段による画像処理時間に応じて、次のラインの画像データの第１のメモリからの読み出しを許可する第１の許可信号を生成し、第２の画像処理手段による画像処理時間に応じて、次のラインの画像データの第１のメモリからの読み出しを許可する第２の許可信号を生成し、第１の許可信号と第２の許可信号とに基づいて、次のラインの画像データの第１のメモリからの読み出しを許可する第３の許可信号をメモリ制御手段に出力する。【選択図】図１
2020071733.tif 000002
【特許請求の範囲】
【請求項１】
画像読み取り部により生成される画像データを保持する第１のメモリと、
前記第１のメモリにアクセスするメモリ制御手段と、
前記画像データの画像処理を１ラインずつ実行する第１の画像処理手段と、
機能拡張時に追加され、前記画像データの画像処理を１ラインずつ実行する第２の画像処理手段と、
前記機能拡張時、前記第１の画像処理手段と前記第２の画像処理手段とを画像データの転送経路で接続する接続手段と、
前記第１の画像処理手段による画像処理時間に応じて、次のラインの画像データの前記第１のメモリからの読み出しを許可する第１の許可信号を生成する第１の生成手段と、
前記第２の画像処理手段による画像処理時間に応じて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第２の許可信号を生成する第２の生成手段と、
前記第１の許可信号と前記第２の許可信号とに基づいて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第３の許可信号を前記メモリ制御手段に出力する許可手段と、を有する画像処理装置。
【請求項２】
前記許可手段は、前記第１の許可信号と前記第２の許可信号のうち、生成タイミングが遅い許可信号に基づいて、前記第３の許可信号を出力し、
前記メモリ制御手段は、前記第３の許可信号に基づいて、前記第１のメモリから前記次のラインの画像データを読み出し、ライン毎の画像データの出力タイミングを示す主走査同期信号とともに出力することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の生成手段は、前記第２の許可信号を、前記主走査同期信号に基づいて不許可状態に設定し、前記第２の画像処理手段により画像処理した１ラインの画像データの受信の完了に基づいて許可状態に設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記メモリ制御手段は、前記第３の許可信号に基づいて前記主走査同期信号を生成することで、前記主走査同期信号の生成周期が予め設定した最小周期より短くなる場合、前記第３の許可信号にかかわらず、前記最小周期で前記主走査同期信号を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記第２の画像処理手段が画像処理により生成した画像データを保持する第２のメモリを有し、
前記第１の画像処理手段は、前記接続手段により直列に接続可能な複数のサブ画像処理手段を有し、
前記第２の画像処理手段は、前記接続手段により、前記複数のサブ画像処理手段のうちの２つの間に接続され、
前記第２の画像処理手段が出力する画像データの画像処理を実行するサブ画像処理手段は、前記第２の画像処理手段により画像処理した１ラインの画像データが前記第２のメモリに格納される周期の次の周期に、前記第２のメモリから読み出される画像データの画像処理を実行することを特徴とする請求項１ないし請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
前記第２の画像処理手段が出力する画像データを受けて画像処理を実行する前記サブ画像処理手段は、画像処理を実行する周期より前の周期に、ダミーの画像データの画像処理を実行することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第２の画像処理手段による画像処理が、複数の周期をまたいで実行される場合、前記第２の生成手段は、前記複数の周期のうちの最後の周期を除き、前記第２の許可信号を許可状態に維持することを特徴とする請求項１ないし請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
前記機能拡張されない場合、前記第１の画像処理手段を使用して周期毎に１ラインの画像処理が実行され、
前記機能拡張時、前記第１の画像処理手段および前記第２の画像処理手段を使用して複数の周期で１ラインの画像処理が実行され、
前記第１の生成手段は、周期毎に前記第１の許可信号を生成し、前記第２の生成手段は、周期毎に前記第２の許可信号を生成し、前記許可手段は、周期毎に前記第３の許可信号を出力することを特徴とする請求項１ないし請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
画像読み取り部により生成される画像データを保持する第１のメモリと、前記第１のメモリにアクセスするメモリ制御手段と、前記画像データの画像処理を１ラインずつ実行する第１の画像処理手段と、機能拡張時に追加され、前記画像データの画像処理を１ラインずつ実行する第２の画像処理手段とを有する画像処理装置の制御方法において、
前記機能拡張時、前記第１の画像処理手段と前記第２の画像処理手段とを画像データの転送経路で接続し、
前記第１の画像処理手段による画像処理時間に応じて、次のラインの画像データの前記第１のメモリからの読み出しを許可する第１の許可信号を生成し、
前記第２の画像処理手段による画像処理時間に応じて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第２の許可信号を生成し、
前記第１の許可信号と前記第２の許可信号とに基づいて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第３の許可信号を前記メモリ制御手段に出力することを特徴とする画像処理装置の制御方法。
【請求項１０】
画像読み取り部により生成される画像データを保持する第１のメモリと、前記第１のメモリにアクセスするメモリ制御手段と、前記画像データの画像処理を１ラインずつ実行する第１の画像処理手段と、機能拡張時に追加され、前記画像データの画像処理を１ラインずつ実行する第２の画像処理手段とを有する画像処理装置に搭載されるコンピュータに、
前記機能拡張時、前記第１の画像処理手段と前記第２の画像処理手段とを画像データの転送経路で接続する処理と、
前記第１の画像処理手段による画像処理時間に応じて、次のラインの画像データの第１のメモリからの読み出し許可のタイミングを設定する処理と、
前記第２の画像処理手段による画像処理時間に応じて、前記次のラインの画像データの前記第１のメモリからの読み出し許可のタイミングを設定する処理と、
前記第１の画像処理手段による画像処理時間に応じて設定されたタイミングと、前記第２の画像処理手段による画像処理時間に応じて設定されたタイミングとに基づいて前記次のラインの画像データの前記第１のメモリからの読み出しを許可する処理と、を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、表裏両面の画像を同時に読み取る機能を有する複合機（ＭＦＰ：MultiFunction Printer）等の画像処理装置が開発されている。この種の画像処理装置は、同時に読み取られた表面と裏面の画像データを、画像処理を実施するエンジン内のメモリに一旦蓄積し、メモリに蓄積した表面、裏面の画像を１ラインずつ順次読み取り、画像処理を実施する。この際、１ラインの画像処理を実行中に、次のラインの画像データをエンジン内のメモリから読み出すための許可信号を出力することで、画像処理の周期を短縮でき、画像データの転送効率が向上する（特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
例えば、機能拡張により、従前の画像処理に新たな画像処理の機能を追加する場合、画像処理のレイテンシが変動するため、上記許可信号の出力タイミングは、機能拡張の有無に応じて変更する必要がある。しかしながら、機能拡張の有無に応じて許可信号の出力タイミングを変更する手法は提案されていない。許可信号の出力タイミングが早すぎ、画像処理中に次の画像データが転送されると、異常な画像データが生成されるおそれがある。また、新たな画像処理モジュールを画像処理装置に接続することで機能拡張が実現される場合、画像処理装置の本体部と新たな画像処理モジュールとの間で画像データを通信する必要がある。この場合、通信状態による通信レートの変動に応じて許可信号の出力タイミングを調整する必要がある。
【０００４】
本発明は、機能拡張の有無に応じて画像処理時間が変動する場合にも、異常な画像データを生成することなく、画像データの転送性能の低下を防止することを目的とする。
【課題を解決するための手段】
【０００５】
上記技術的課題を解決するため、本発明の一形態の画像処理装置は、画像読み取り部により生成される画像データを保持する第１のメモリと、前記第１のメモリにアクセスするメモリ制御手段と、前記画像データの画像処理を１ラインずつ実行する第１の画像処理手段と、機能拡張時に追加され、前記画像データの画像処理を１ラインずつ実行する第２の画像処理手段と、前記機能拡張時、前記第１の画像処理手段と前記第２の画像処理手段とを画像データの転送経路で接続する接続手段と、前記第１の画像処理手段による画像処理時間に応じて、次のラインの画像データの前記第１のメモリからの読み出しを許可する第１の許可信号を生成する第１の生成手段と、前記第２の画像処理手段による画像処理時間に応じて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第２の許可信号を生成する第２の生成手段と、前記第１の許可信号と前記第２の許可信号とに基づいて、前記次のラインの画像データの前記第１のメモリからの読み出しを許可する第３の許可信号を前記メモリ制御手段に出力する許可手段と、を有することを特徴とする。
【発明の効果】
【０００６】
機能拡張の有無に応じて画像処理時間が変動する場合にも、異常な画像データを生成することなく、画像データの転送性能の低下を防止することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の一実施形態に係る画像処理装置を示すブロック図である。
【図２】図２は、図１のセレクタ部の例を示すブロック図である。
【図３】図３は、図１の画像処理装置の動作の例を示すフローチャートである。
【図４】図４は、図１の画像処理装置の動作の例を示すタイミング図である。
【図５】図５は、図１の画像処理装置の動作の別の例を示すタイミング図である。
【図６】図６は、図１の画像処理装置の動作のさらなる別の例を示すタイミング図である。
【図７】図７は、図１の画像処理装置のハードウェア構成図である。
【図８】図８は、他の画像処理装置の動作の例（比較例）を示すタイミング図である。
【図９】図９は、本発明の別の実施形態に係る画像処理装置の動作の例を示すタイミング図である。
【図１０】図１０は、本発明の別の実施形態に係る画像処理装置を示すブロック図である。
【図１１】図１１は、図１０の画像処理装置の動作の例を示すタイミング図である。
【発明を実施するための形態】
【０００８】
以下、図面を用いて実施形態を説明する。以下では、データ線または信号線を示す符号は、データまたは信号を示す符号としても使用される。
【０００９】
図１は、本発明の一実施形態に係る画像処理装置のブロック図である。図において、太い実線の矢印は画像データ等のデータを示し、破線の矢印は制御信号を示し、細い実線の矢印は、例えば、高速シリアル信号を示す。例えば、高速シリアル信号が伝送される信号線は、ＰＣＩ（Peripheral Component Interconnect）バスまたはＵＳＢ（Universal Serial Bus）等である。なお、細い実線の矢印に高速シリアルバスインタフェース以外の通信インタフェースが使用されてもよい。
【００１０】
図１に示す画像処理装置１は、例えば、複写機能、プリンタ機能、スキャナ機能およびファクシミリ機能等を有するデジタル複合機に含まれ、原稿等を読み取ることで生成される画像データに画像処理を施す機能を有している。なお、画像処理装置１は、スキャナ機能付きのプリンタまたは複写機でもよい。
【００１１】
画像処理装置１は、エンジン１００、画像読み取り部２００、コントローラ３００および追加画像処理部４００を有する。画像読み取り部２００は、例えば、原稿の表面を読み取るＣＣＤ（Charge Coupled Device）と、原稿の裏面を読み取るＣＩＳ（Contact Image Sensor）とを有する。画像読み取り部２００は、原稿の表面と裏面とを同時に読み取って、表面の画像データと裏面の画像データとを生成可能である。なお、画像読み取り部２００は、原稿の片面を読み取るものでもよい。エンジン１００は、画像読み取り部２００により生成される画像データの画像処理を実行する。
【００１２】
コントローラ３００は、画像処理装置１の全体を制御し、エンジン１００から出力される画像処理された画像データ（画像）を回転するなどの加工機能を有する。なお、コントローラ３００は、画像処理された画像データを、用紙に印刷するために図示しないプリンタユニットに出力してもよい。
【００１３】
エンジン１００は、主画像処理部１１０、メモリ１２０およびコンピュータの一例であるＣＰＵ（Central Processing unit）１３０を有する。主画像処理部１１０は、画像処理部１０、メモリコントローラ５０、転送制御部６０、メモリ７２を含む機能拡張インタフェース部７０、出力イネーブル生成部８０および出力イネーブル合成部９０を有する。
【００１４】
画像処理部１０は、複数の画像処理モジュールＭＤ（ＭＤ１、ＭＤ２、ＭＤ３）およびセレクタ部２０を有する。画像処理モジュールＭＤの数は３つに限定されない。第１の画像処理手段およびサブ画像処理手段の一例である画像処理モジュールＭＤ１−ＭＤ３は、画像の色の変換処理、階調処理、変倍処理、画像特性の補正処理など、互いに異なる種類の画像処理を実行する機能を有する。例えば、画像処理モジュールＭＤ１−ＭＤ３は、直列に接続され、画像読み取り部２００が生成した画像データを順に画像処理する。なお、動作させる画像処理モジュールＭＤは、画像処理装置１を使用するユーザの指定に基づいて、ＣＰＵ１３０の制御により選択可能である。以下では、画像処理モジュールＭＤは、単にモジュールＭＤとも称される。
【００１５】
接続手段の一例であるセレクタ部２０は、画像処理モジュールＭＤ１−ＭＤ３の接続を制御し、さらに、追加画像処理部４００の接続を制御する。セレクタ部２０の例は、図２に示す。図１では、モジュールＭＤ１、ＭＤ２間が太い矢印で接続され、モジュールＭＤ２、ＭＤ３間が太い矢印で接続されているが、モジュールＭＤ１−ＭＤ３間は、セレクタ部２０を介して接続されてもよい。また、破線で示す制御信号も、セレクタ部２０を介してモジュールＭＤ１−ＭＤ３に伝送されてもよい。
【００１６】
メモリ制御手段の一例であるメモリコントローラ５０は、エンジン１００に搭載されるメモリ１２０にアクセスする機能を有する。メモリコントローラ５０は、画像読み取り部２００から受信する画像データを主走査方向に沿った１ラインずつメモリ１２０に書き込み、メモリ１２０に書き込まれた画像データを１ラインずつ読み出して画像処理部１０に出力する。
【００１７】
例えば、メモリコントローラ５０は、主走査同期信号出力イネーブルＯＥＮの受信に応じてメモリ１２０からの１ライン分の画像データを読み出し、読み出した画像データを主走査同期信号ＨＳＹＮＣ０とともに出力する。主走査同期信号ＨＳＹＮＣ０は、画像データのライン毎の出力タイミングを示す。メモリコントローラ５０は、原稿毎に最初の1ライン分の画像データを出力する場合、主走査同期信号ＨＳＹＮＣ０だけでなく副走査同期信号ＶＳＹＮＣ０を出力する。副走査同期信号ＶＳＹＮＣ０は、画像読み取り部２００で読み取る原稿の送り方向である副走査方向に対する同期信号であり、例えば、原稿の１枚毎に生成される。主走査同期信号ＨＳＹＮＣ０は、副走査方向に直行する主走査方向に沿う１ラインの画像データ毎に生成される。特に限定されないが、メモリ１２０は、ＤＲＡＭ（Dynamic Random Access Memory）でもよい。
【００１８】
転送制御部６０は、エンジン１００とコントローラ３００との間の高速シリアル転送を制御する。第２の生成手段の一例である機能拡張インタフェース部７０は、追加画像処理部４００との間の通信を制御するとともに、主走査同期信号出力イネーブルＯＥＮ２を生成する機能を有する。機能拡張インタフェース部７０に含まれるメモリ７２は、追加画像処理部４００で画像処理された画像データを一時的に保持する。例えば、メモリ７２は、ＳＲＡＭ（Static Random Access Memory）でもよい。機能拡張インタフェース部７０は、追加画像処理部４００からの１ライン分の画像データをメモリ７２に書き込んだことに基づいて、主走査同期信号出力イネーブルＯＥＮ２をイネーブル状態に設定する。
【００１９】
追加画像処理部４００は、例えば、プリント基板等に実装され、図示しないコネクタ等を介してエンジン１００に着脱自在に接続される。なお、追加画像処理部４００を含む半導体チップやプリント基板が、エンジン１００を搭載するプリント基板等に直接実装されてもよい。追加画像処理部４００は、画像処理の機能拡張時にエンジン１００に電気的に接続される。
【００２０】
例えば、追加画像処理部４００は、高速シリアル信号の伝送路ＴＸ、ＲＸを介して機能拡張インタフェース部７０に接続される。伝送路ＴＸは、機能拡張インタフェース部７０から追加画像処理部４００への画像データの送信に使用され、伝送路ＲＸは、追加画像処理部４００から出力される画像データの機能拡張インタフェース部７０による受信に使用される。
【００２１】
追加画像処理部４００は、第２の画像処理手段の一例である画像処理部４０と、転送制御部４２とを有する。例えば、画像処理部４０は、エンジン１００から転送される画像データを１ラインずつ画像処理する。転送制御部４２は、エンジン１００から転送される画像データの１ラインずつの受信を制御し、画像処理部４０により処理された画像データのエンジン１００への１ラインずつの転送を制御する。
【００２２】
特に限定されないが、画像処理部４０が実行する画像処理は、偽造防止処理や透かし処理等、モジュールＭＤで実施される画像処理に比べて特殊性の高い処理である。この種の画像処理は、使用するユーザが限られるため、標準機能としてエンジン１００に搭載するのではなく、必要に応じて機能拡張（オプション）としてエンジン１００に接続されることが望ましい。これにより、必要とするユーザにのみに画像処理部４０による画像処理を提供することができ、画像処理装置１のコストを削減することができる。なお、画像処理装置１の開発後に、新たな画像処理機能を搭載する場合、新たな画像処理機能を含む画像処理部４０を有する追加画像処理部４００が画像処理装置１に接続されてもよい。
【００２３】
追加画像処理部４００がエンジン１００に接続されない場合、すなわち、画像処理の機能拡張が行われない場合、機能拡張インタフェース部７０は、主走査同期信号出力イネーブルＯＥＮ２を、イネーブル状態に固定する。
【００２４】
第１の生成手段の一例である出力イネーブル生成部８０は、画像処理の状況に基づいて画像処理部１０が生成する遅延情報ＤＬＹに基づいて、主走査同期信号出力イネーブルＯＥＮ１を生成する。例えば、遅延情報ＤＬＹは、画像処理部１０での画像処理の完了タイミングを示す。
【００２５】
許可手段の一例である出力イネーブル合成部９０は、出力イネーブル生成部８０からの主走査同期信号出力イネーブルＯＥＮ１と、機能拡張インタフェース部７０からの主走査同期信号出力イネーブルＯＥＮ２とに基づいて、主走査同期信号出力イネーブルＯＥＮを生成する。例えば、出力イネーブル合成部９０は、主走査同期信号出力イネーブルＯＥＮ１、ＯＥＮ２のうち、アサートの生成タイミングが遅いほうに基づいて、主走査同期信号出力イネーブルＯＥＮをアサートする。主走査同期信号出力イネーブルＯＥＮ１、ＯＥＮ２、ＯＥＮは、許可信号の一例である。
【００２６】
主走査同期信号出力イネーブルＯＥＮは、主走査同期信号出力イネーブルＯＥＮ１、ＯＥＮ２のうち、イネーブル状態への遷移が遅い方に応じて、イネーブル状態に設定される。以下では、主走査同期信号出力イネーブルＯＥＮ、ＯＥＮ１、ＯＥＮ２は、単に出力イネーブルＯＥＮ、ＯＥＮ１、ＯＥＮ２とも称される。
【００２７】
ＣＰＵ１３０は、図示しないメモリに格納された制御プログラムを実行することで、エンジン１００の全体を制御する。なお、出力イネーブル生成部８０により出力イネーブルＯＥＮ１の生成タイミングを設定する機能は、ＣＰＵ１３０が実行する制御プログラムにより実現されてもよい。機能拡張インタフェース部７０により出力イネーブルＯＥＮ２の生成タイミングを設定する機能は、ＣＰＵ１３０が実行する制御プログラムにより実現されてもよい。出力イネーブル合成部９０により出力イネーブルＯＥＮの生成タイミングを設定する機能は、ＣＰＵ１３０が実行する制御プログラムにより実現されてもよい。
【００２８】
図２は、図１のセレクタ部２０の例を示すブロック図である。セレクタ部２０は、メモリコントローラ５０、モジュールＭＤ１、ＭＤ２、ＭＤ３、追加画像処理部４００および転送制御部６０との間で転送される画像データの転送経路を決めるための複数のセレクタＳＥＬ０−ＳＥＬ９を有する。セレクタＳＥＬ０−ＳＥＬ９の動作は、ＣＰＵ１３０が実行する制御プログラムにより制御される。
【００２９】
セレクタＳＥＬ０−ＳＥＬ９の動作により、画像処理部４０をメモリコントローラ５０、モジュールＭＤ１−ＭＤ３および転送制御部６０の間の任意の個所に挿入することができる。すなわち、セレクタＳＥＬ０−ＳＥＬ９は、モジュールＭＤ１−ＭＤ３と画像処理部４０とを直列に接続可能にする。なお、セレクタ部２０は、主走査同期信号ＨＳＹＮＣ０等の制御信号の送信先および送信元を選択するセレクタを有してもよい。制御信号の送信先を選択するセレクタは、複数の送信先に制御信号を並列に出力する機能を有してもよい。
【００３０】
セレクタＳＥＬ０は、メモリコントローラ５０からの画像データをモジュールＭＤ１または追加画像処理部４００に向けて転送する。セレクタＳＥＬ１は、メモリコントローラ５０からの画像データまたは追加画像処理部４００からの画像データを、モジュールＭＤ１に転送する。
【００３１】
セレクタＳＥＬ２は、モジュールＭＤ１からの画像データをモジュールＭＤ２または追加画像処理部４００に向けて転送する。セレクタＳＥＬ３は、モジュールＭＤ１からの画像データまたは追加画像処理部４００からの画像データを、モジュールＭＤ２に転送する。
【００３２】
セレクタＳＥＬ４は、モジュールＭＤ２からの画像データをモジュールＭＤ３または追加画像処理部４００に向けて転送する。セレクタＳＥＬ５は、モジュールＭＤ２からの画像データまたは追加画像処理部４００からの画像データを、モジュールＭＤ３に転送する。
【００３３】
セレクタＳＥＬ６は、モジュールＭＤ３からの画像データを転送制御部６０または追加画像処理部４００に向けて転送する。セレクタＳＥＬ７は、モジュールＭＤ３からの画像データまたは追加画像処理部４００からの画像データを、転送制御部６０に転送する。
【００３４】
セレクタＳＥＬ８は、メモリコントローラ５０またはモジュールＭＤ１−ＭＤ３のいずれかからの画像データを追加画像処理部４００に向けて転送する。セレクタＳＥＬ９は、追加画像処理部４００からの画像データをモジュールＭＤ１−ＭＤ３のいずれか、または転送制御部６０に転送する。
【００３５】
なお、図２に示すセレクタ部２０は、追加画像処理部４００が接続されない場合、メモリコントローラ５０と転送制御部６０との間に、モジュールＭＤ１、ＭＤ２、ＭＤ３を直列に接続する。しかしながら、セレクタ部２０は、追加画像処理部４００の接続／非接続にかかわりなく、メモリコントローラ５０と転送制御部６０との間に、ユーザが希望する機能を実現する任意のモジュールＭＤを接続してもよい。
【００３６】
この場合、例えば、セレクタ部２０は、例えば、メモリコントローラ５０の出力を、モジュールＭＤ１、ＭＤ２、ＭＤ３の入力のいずれに接続するかを選択するセレクタを有してもよい。セレクタ部２０は、モジュールＭＤ１の出力を、モジュールＭＤ２、ＭＤ３の入力または転送制御部６０の入力のいずれに接続するかを選択するセレクタを有してもよい。セレクタ部２０は、モジュールＭＤ２の出力を、モジュールＭＤ３の入力または転送制御部６０の入力のいずれに接続するかを選択するセレクタを有してもよい。
【００３７】
図３は、図１の画像処理装置１の動作の例を示すフローチャートである。すなわち、図３は、画像処理装置１の制御方法の例を示す。図３に示すフローチャートは、ＣＰＵ１３０が実行する制御プログラムに基づいて、画像処理装置１内のハードウェアが動作することで実現される。また、図３に示すフローチャートは、原稿の読み取り毎に実行される。例えば、図３では、原稿の表面と裏面との両方が読み取られるが、片面のみの読み取りでもよい。
【００３８】
まず、ステップＳ１０において、画像処理装置１は、原稿を読み取ることで得られる画像データに施す画像処理の指示を、画像処理装置１を操作するユーザから受け、実行する画像処理に関する各種のパラメータを設定する。例えば、ユーザは、画像処理装置１に搭載されているタッチパネル等を操作することで、画像に施す画像処理を指定（選択）する。
【００３９】
次に、ステップＳ１２において、画像処理装置１は、ユーザによる画像処理の指定に基づいて、動作させるモジュールＭＤおよび追加画像処理部４００をセレクタ部２０を介して接続する。
【００４０】
次に、ステップＳ１４において、画像処理装置１は、ユーザがタッチパネル等を操作して開始ボタン等を押下したことに基づいて、原稿の読み取りを開始する。例えば、原稿の読み取りは、原稿の送り方向である副走査方向にＣＣＤ等または原稿を移動しながら、副走査方向に直行する主走査方向に沿う画像を１ラインずつ読み取ることで実行される。これにより、原稿の画像データは、１ラインずつ生成される。メモリコントローラ５０は、生成された画像データを１ラインずつメモリ１２０に書き込む。
【００４１】
次に、ステップＳ１６において、画像処理装置１は、所定数のラインの画像データをメモリ１２０に書き込むまで待ち、所定数のラインの画像データをメモリ１２０に書き込んだ場合、処理をステップＳ１８に移行する。ステップＳ１６の処理により、画像データの画像処理中に、メモリ１２０から読み出すライン毎の画像データが不足することが防止される。
【００４２】
ステップＳ１８において、画像処理装置１は、追加画像処理部４００がエンジン１００に接続されている場合、処理をステップＳ２０に移行し、追加画像処理部４００がエンジン１００に接続されていない場合、処理をステップＳ２２に移行する。なお、ステップＳ１０によるパラメータの設定により、追加画像処理部４００による画像処理を実行しない場合、追加画像処理部４００がエンジン１００に接続されている場合にも、処理はステップＳ２２に移行される。
【００４３】
ステップＳ２０において、画像処理装置１は、出力イネーブルＯＥＮ２のマスクを解除し、処理をステップＳ２２に移行する。ここで、マスクとは、出力イネーブルＯＥＮ２をイネーブル状態に固定し、出力イネーブルＯＥＮが出力イネーブルＯＥＮ２の影響を受けないようにすることである。マスクの解除とは、追加画像処理部４００による画像処理の状態に基づいて、出力イネーブルＯＥＮ２を生成可能な状態にすることである。なお、出力イネーブルＯＥＮ２は、フローチャートの開始時において、イネーブル状態に固定されたマスク状態になっている。
【００４４】
ステップＳ２２において、画像処理装置１は、メモリ１２０から画像データの読み出しを開始する。そして、画像処理装置１は、セレクタ部２０で選択されたモジュールＭＤおよび画像処理部４０の少なくともいずれかを用いて画像処理を１ラインずつ実行する。画像処理装置１が画像処理を実行する例は、図４から図６で説明される。
【００４５】
次に、ステップＳ２４において、画像処理装置１は、画像読み取り部２００で読み取る原稿の最終ラインの画像データをメモリコントローラ５０に転送するまで待ち、原稿１枚分の画像処理された画像データの転送が完了した場合、処理をステップＳ２６に移行する。ステップＳ２６において、画像処理装置１は、出力イネーブルＯＥＮ２をイネーブル状態に固定することで、マスク状態に設定し、原稿の読み取り動作を終了する。
【００４６】
図４は、図１の画像処理装置１の動作の例を示すタイミング図である。図４は、セレクタ部２０により、モジュールＭＤ１、画像処理部４０、モジュールＭＤ２、ＭＤ３が順に接続された場合の動作を示している。図４では、主走査同期信号ＨＳＹＮＣ０の出力間隔は、周期Ｔで示される。周期Ｔは、１ラインの画像データの画像処理を実行する基本の周期であり、画像処理時間に応じて変化する可変の周期である。なお、追加画像処理部４００がエンジン１００に接続された場合、１ラインの画像データの画像処理は、追加画像処理部４００がエンジン１００に接続されない場合の１ラインの画像データの画像処理の周期Ｔの２つ分を使用して実行される。
【００４７】
実線の矩形で示す"Ｖａｌｉｄ"は、原稿の読み取りにより生成された画像データ（主走査方向のラインデータ）が有効であることを示し、矩形内に括弧で示す符号はライン（ラインａ、ラインｂ、ラインｃ、ラインｄ）を示す。ラインａ、ｂ、ｃ、ｄは、副走査方向に順番に並ぶラインである。破線の矩形で示す"Ｉｎｖａｌｉｄ"は、画像データが無効であることを示す。
【００４８】
図４の例では、追加画像処理部４００の画像処理部４０による画像処理のレイテンシＬＴは、ラインａ、ｂ、ｃ毎に異なり、ラインａが最も大きく、ラインｂが最も小さい。図４では、レイテンシＬＴを、画像データを伝送路ＴＸに出力してから画像データを伝送路ＲＸで受信するまでの期間としている。なお、レイテンシＬＴは、伝送路ＴＸ、ＲＸの帯域の変動により変化する場合もある。
【００４９】
まず、モジュールＭＤ１は、メモリコントローラ５０から出力される同期信号ＨＳＹＮＣ０とラインａの画像データとを受ける（図４（ａ））。モジュールＭＤ１は、入力画像データの画像処理の開始に基づいて同期信号ＨＳＹＮＣ１を出力し、ラインａの各画素の画像処理を順次実行し、出力画像データとして順次出力する（図４（ｂ）、（ｃ））。同期信号ＨＳＹＮＣ１は、モジュールＭＤ２と、機能拡張インタフェース部７０とに供給される。なお、以下では、主走査同期信号ＨＳＹＮＣ０、ＨＳＹＮＣ１等は、同期信号ＨＳＹＮＣとも称される。
【００５０】
機能拡張インタフェース部７０は、同期信号ＨＳＹＮＣ１に応答して出力イネーブルＯＥＮ２をロウレベルにネゲートする（図４（ｄ））。ロウレベルの出力イネーブルＯＥＮ２は、ディセーブル状態であり、メモリコントローラ５０によるメモリ１２０からの画像データの読み出しの不許可状態を示す。ここで、出力イネーブルＯＥＮ２をネゲートする同期信号は、画像処理部４０の入力側に接続されるモジュールＭＤが出力する主走査同期信号ＨＳＹＮＣである。モジュールＭＤが出力する主走査同期信号ＨＳＹＮＣは、メモリコントローラ５０が出力する主走査同期信号ＨＳＹＮＣ０に基づいて生成される。なお、画像処理部４０の入力がメモリコントローラ５０に直接接続される場合、出力イネーブルＯＥＮ２をネゲートする同期信号は、主走査同期信号ＨＳＹＮＣ０である。
【００５１】
機能拡張インタフェース部７０は、モジュールＭＤ１により画像処理された１ラインの画像データを、セレクタ部２０を介して受信し、受信した画像データを、伝送路ＴＸを介して追加画像処理部４００の画像処理部４０に出力する（図４（ｅ））。画像処理部４０は、受信した画像データの画像処理を実行し、画像処理により生成した画像データを、伝送路ＲＸを介して機能拡張インタフェース部７０に送信する。
【００５２】
機能拡張インタフェース部７０は、画像処理部４０から画像データ（画素データ）を受信する毎に、受信した画像データをメモリ７２に順次書き込む（図４（ｆ））。機能拡張インタフェース部７０は、画像処理部４０からの１ライン分の画像データの受信の完了に応答して出力イネーブルＯＥＮ２をハイレベルにアサートする（図４（ｇ））。ハイレベルの出力イネーブルＯＥＮ２は、イネーブル状態であり、メモリコントローラ５０によるメモリ１２０からの画像データの読み出しの許可状態を示す。
【００５３】
このように、出力イネーブルＯＥＮ２は、同期信号ＨＳＹＮＣに基づいてネゲート（不許可）され、画像処理部４０からの画像データの受信の完了に基づいてアサート（許可）される。このため、画像処理部４０による画像処理中に、メモリ１２０からの次のラインの画像データの読み出しが禁止される。したがって、画像処理部４０による画像処理時間が変動する場合にも、画像処理部４０による画像処理中にメモリ１２０からの次のラインの画像データの読み出しを確実に禁止することができる。
【００５４】
一方、モジュールＭＤ２は、同期信号ＨＳＹＮＣ１の受信に基づいてダミーの画像データの画像処理の実行を開始し、同期信号ＨＳＹＮＣ２を出力する（図４（ｈ））。モジュールＭＤ３は、同期信号ＨＳＹＮＣ２の受信に基づいてダミーの画像データの画像処理の実行を開始し、同期信号ＨＳＹＮＣ３を出力する（図４（ｉ））。
【００５５】
出力イネーブル生成部８０は、同期信号ＨＳＹＮＣ０に応答して出力イネーブルＯＥＮ１をロウレベルにネゲートする（図４（ｊ））。出力イネーブル生成部８０は、図示しない遅延情報ＤＬＹに基づいてモジュールＭＤ３による出力画像データの転送完了を検出して出力イネーブルＯＥＮ１をハイレベルにアサートする（図４（ｋ））。ロウレベルの出力イネーブルＯＥＮ１は、ディセーブル状態であり、メモリコントローラ５０によるメモリ１２０からの画像データの読み出しの不許可を示す。ハイレベルの出力イネーブルＯＥＮ１は、イネーブル状態であり、メモリコントローラ５０によるメモリ１２０からの画像データの読み出しの許可を示す。
【００５６】
有効な画像データを受けない場合に、ダミーの画像データを用いて画像処理を実行することで、画像処理部１０は、有効な画像データを処理する場合と同様に遅延情報ＤＬＹを出力イネーブル生成部８０に出力できる。これにより、出力イネーブル生成部８０は、有効な画像データを処理する場合と同様に出力イネーブルＯＥＮ１をアサートすることができる。これに対して、ダミーの画像データを用いて画像処理を実行しない場合、画像処理部１０は、遅延情報ＤＬＹを出力することができず、出力イネーブル生成部８０は、出力イネーブルＯＥＮ１をアサートできない。この結果、出力イネーブル合成部９０は、出力イネーブルＯＥＮ２がアサートされた後、出力イネーブルＯＥＮ１のアサートを待ち続け、デッドロック状態に陥ってしまう。すなわち、ダミーの画像データを用いて画像処理を実行することで、画像処理装置１の誤動作を防止することができる。
【００５７】
出力イネーブル合成部９０は、例えば、出力イネーブルＯＥＮ１、ＯＥＮ２の負論理のオアをとり、出力イネーブルＯＥＮとして出力する（図４（ｌ））。これにより、メモリコントローラ５０によるメモリ１２０からの画像データの読み出しの許可タイミングである出力イネーブルＯＥＮのアサートタイミングは、図４の例では、アサートタイミングが遅い出力イネーブルＯＥＮ２に合わせられる。
【００５８】
２周期目におけるモジュールＭＤ１の動作は、１周期目と同様であり、画像処理部４０の動作は、画像データの処理時間が１周期目に比べて短いことを除き、１周期目と同様である。機能拡張インタフェース部７０は、画像処理部４０からの１ライン分の画像データの受信の完了に応答して出力イネーブルＯＥＮ２をアサートする（図４（ｍ））。
【００５９】
一方、２周期目において、モジュールＭＤ２、ＭＤ３は、１周期目で画像処理部４０が生成したラインａの画像データを使用して画像処理を順次実行する。モジュールＭＤ２は、モジュールＭＤ１から出力される主走査同期信号ＨＳＹＮＣ１とともにメモリ７２が保持するラインａの画像データを受け、画像処理を開始し、主走査同期信号ＨＳＹＮＣ２を出力する（図４（ｎ）、（ｏ））。例えば、機能拡張インタフェース部７０は、２番目の周期Ｔの開始タイミングである同期信号ＨＳＹＮＣ０に基づいて、メモリ７２から画像データを読み出し、読み出し画像データを同期信号ＨＳＹＮＣ１に合わせてモジュールＭＤ２に出力する。
【００６０】
上述したように、追加画像処理部４００がエンジン１００に接続される場合、画像処理は、２つ分の周期Ｔを使用して実行される。このため、２番目の周期Ｔでは、モジュールＭＤ１および画像処理部４０によるラインｂの画像データの画像処理と平行して、モジュールＭＤ２、ＭＤ３によるラインａの画像データの画像処理が実行される。この場合にも、出力イネーブルＯＥＮ１、ＯＥＮ２の遅い方に合わせて次のラインの画像データの読み出しを許可することで、各モジュールＭＤは、常に所定の主走査同期信号ＨＳＹＮＣに基づいて画像の処理を開始することができる。
【００６１】
画像処理部４０が生成した画像データは、メモリ７２にバッファされるため、周期Ｔが変動する場合にも、モジュールＭＤ２は、同期信号ＨＳＹＮＣ１に合わせて画像データを受信し、画像処理を実行することができる。換言すれば、追加画像処理部４００がエンジン１００に接続され、画像処理が複数の周期Ｔにまたがって実行される場合にも、先頭の周期Ｔの変動によるタイミングのずれを調整して、後続の周期Ｔでの画像処理を常に同じタイミングで開始することができる。この結果、周期Ｔをまたぐことによるタイミングのずれに起因して異常な画像が生成されることを防止できる。
【００６２】
モジュールＭＤ３は、モジュールＭＤ２から出力される主走査同期信号ＨＳＹＮＣ２とともに画像データを受け、画像処理を開始し、主走査同期信号ＨＳＹＮＣ３を出力する（図４（ｐ）、（ｑ））。出力イネーブル生成部８０は、モジュールＭＤ３による出力画像データの転送完了に応答して出力イネーブルＯＥＮ１をアサートする（図４（ｒ））。
【００６３】
出力イネーブル合成部９０は、出力イネーブルＯＥＮ１、ＯＥＮ２のうち、アサートタイミングが遅い出力イネーブルＯＥＮ１に合わせて、出力イネーブルＯＥＮをアサートする（図４（ｓ））。
【００６４】
３番目の周期Ｔの動作は、出力イネーブルＯＥＮのアサートタイミングが出力イネーブルＯＥＮ２に合わせられることを除き、２番目の周期の動作と同様である。図４に示すように、画像処理部４０からの画像データの受信タイミングが変動する場合、機能拡張インタフェース部７０は、受信の完了タイミングに合わせて出力イネーブルＯＥＮ２をアサートする。また、出力イネーブル合成部９０は、出力イネーブルＯＥＮ１、ＯＥＮ２のうち、アサートタイミングが遅い側に合わせて、メモリコントローラ５０に出力する出力イネーブルＯＥＮのアサートタイミングを決定する。これにより、追加画像処理部４００からの画像データの受信タイミングが変動する場合にも、常に正常な画像処理を実行することができる。
【００６５】
図５は、図１の画像処理装置１の動作の別の例を示すタイミング図である。図４と同じ動作については、詳細な説明は省略する。図５は、セレクタ部２０により、モジュールＭＤ１、ＭＤ２、画像処理部４０、モジュールＭＤ３が順に接続された場合の動作を示している。図５においても、図４と同様に、追加画像処理部４００がエンジン１００に接続された場合、１ラインの画像データの画像処理は、追加画像処理部４００がエンジン１００に接続されない場合の１ラインの画像処理の周期Ｔの２つ分を使用して実行される。追加画像処理部４００の画像処理部４０による画像処理のレイテンシＬＴは、図４と同様に、ラインａが最も大きく、ラインｂが最も小さい。
【００６６】
図５では、モジュールＭＤ２は、１番目の周期Ｔにおいて、モジュールＭＤ１から有効な画像データを受け、画像処理を実行する（図５（ａ））。なお、画像処理部４０が接続される位置にかかわらず、同期信号ＨＳＹＮＣ１は、モジュールＭＤ１からモジュールＭＤ２に出力され、同期信号ＨＳＹＮＣ２は、モジュールＭＤ２からモジュールＭＤ３に出力される（図５（ｂ）、（ｃ））。また、図５では、拡張インタフェース部７０は、同期信号ＨＳＹＮＣ２に応答して出力イネーブルＯＥＮ２をロウレベルにネゲートする（図５（ｄ））。
【００６７】
モジュールＭＤ３は、１番目の周期Ｔでは、画像処理部４０から有効な画像データを受けていないため、同期信号ＨＳＹＮＣ２に基づいてダミーの画像データの画像処理を開始する（図５（ｅ））。そして、図４と同様に、１番目の周期Ｔでは、出力イネーブルＯＥＮ２に基づいて出力イネーブルＯＥＮがアサートされる（図５（ｆ））。２番目の周期Ｔでは、出力イネーブルＯＥＮ１に基づいて出力イネーブルＯＥＮがアサートされる（図５（ｈ））。３番目の周期Ｔでは、出力イネーブルＯＥＮ２に基づいて出力イネーブルＯＥＮがアサートされる（図５（ｈ））。
【００６８】
図５においても、出力イネーブル合成部９０は、出力イネーブルＯＥＮ１、ＯＥＮ２のうち、アサートタイミングが遅い側に合わせて、メモリコントローラ５０に出力する出力イネーブルＯＥＮのアサートタイミングを決定する。これにより、追加画像処理部４００が接続される位置にかかわらず、追加画像処理部４００からの画像データの受信タイミングが変動する場合にも、正常な画像処理を実行することができる。
【００６９】
図６は、図１の画像処理装置１の動作のさらなる別の例を示すタイミング図である。図４と同じ動作については、詳細な説明は省略する。図６では、追加画像処理部４００はエンジン１００に接続されない。すなわち、図６は、セレクタ部２０により、モジュールＭＤ１、ＭＤ２、ＭＤ３が順に接続された場合の動作を示している。追加画像処理部４００がエンジン１００に接続されない場合、１ラインの画像データの画像処理は、１つの周期Ｔを使用して実行される。
【００７０】
機能拡張インタフェース部７０は、追加画像処理部４００がエンジン１００に接続されたか否かを検出する機能を有する。そして、機能拡張インタフェース部７０は、追加画像処理部４００がエンジン１００に接続されないことを検出した場合、出力イネーブルＯＥＮ２を、ハイレベル"Ｈ"（イネーブル状態）に固定する（図６（ａ））。この場合、出力イネーブル合成部９０は、出力イネーブル生成部８０からの出力イネーブルＯＥＮ１のみに基づいて出力イネーブルＯＥＮを生成する（図６（ｂ）、（ｃ）、（ｄ））。
【００７１】
モジュールＭＤ２、ＭＤ３の動作は、図４の２番目の周期ＴにおけるモジュールＭＤ２、ＭＤ３の動作と同様である。同期信号ＨＳＹＮＣ１、ＨＳＹＮＣ２、ＨＣＹＮＣ３の生成タイミングは、追加画像処理部４００が接続されるか否かにかかわらず変更されない。このため、モジュールＭＤ１、ＭＤ２、ＭＤ３の動作タイミングは、追加画像処理部４００が接続されるか否かにかかわらず変更されない。したがって、画像データの処理時間に掛かる周期Ｔの数にかかわらず、画像処理を正常に実行することができる。
【００７２】
図７は、図１の画像処理装置１のハードウェア構成図である。画像処理装置１は、ＣＰＵ１３０、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ１０３、ＨＤＤ（Hard Disk Drive）１０４、ＦＰＧＡ（Field Programmable Gate Array）１０５、通信インタフェース（Ｉ／Ｆ）１０６、入出力インタフェース（Ｉ／Ｆ）１０７、１０８を有する。
【００７３】
例えば、通信インタフェース１０６は、ＰＣＩインタフェースである。入出力インタフェース１０７は、タッチパネルや各種ボタン等の入力機器に接続され、あるいは、液晶ディスプレイ等の表示装置に接続される。入出力インタフェース１０８は、ＤＶＤ、ＣＤ−ＲＯＭ、またはＵＳＢメモリ等の記録媒体を接続するためのインタフェースである。記録媒体には、画像処理装置１の動作を制御する制御プログラムが格納されてもよい。この場合、ＣＰＵ１３０は、記録媒体からＨＤＤ１０４等に転送された制御プログラムを実行する。
【００７４】
ＣＰＵ１３０は、ＲＯＭ１０２または記録媒体に格納された制御プログラムを実行することで、画像処理装置１の機能を実現する。ＲＡＭ１０３は、図１に示すメモリ１２０またはメモリ７２を含んでもよい。ＦＰＧＡ１０５は、図１に示す主画像処理部１１０のハードウェアの少なくとも一部が構築されてもよい。
【００７５】
図８は、他の画像処理装置の動作の例（比較例）を示すタイミング図である。他の画像処理装置は、図１に示した出力イネーブル合成部９０を持たず、機能拡張インタフェース部７０は、出力イネーブルＯＥＮ２を生成する機能を持たない。そして、出力イネーブル生成部８０が生成する出力イネーブルＯＥＮ１が出力イネーブルＯＥＮとしてメモリコントローラ５０に供給される。画像処理装置のその他の構成および機能は、図１に示した画像処理装置１と同様である。
【００７６】
図８は、図４と同様に、セレクタ部２０により、モジュールＭＤ１、画像処理部４０、モジュールＭＤ２、ＭＤ３が順に接続された場合の動作を示している。追加画像処理部４００がエンジン１００に接続された場合、１ラインの画像データの画像処理は、追加画像処理部４００がエンジン１００に接続されない場合の１ラインの画像データの画像処理の周期Ｔの２つ分を使用して実行される。追加画像処理部４００の画像処理部４０による画像処理のレイテンシＬＴは、図４と同様に、ラインａが最も大きく、ラインｂが最も小さい。
【００７７】
１番目の周期Ｔにおいて、出力イネーブル生成部８０は、モジュールＭＤ３によるダミーの出力画像データの転送完了を検出して出力イネーブルＯＥＮ１をハイレベルにアサートする（図８（ａ））。メモリコントローラ５０は、出力イネーブル生成部８０からの出力イネーブルＯＥＮ１（ＯＥＮ）のアサートに基づいて、メモリ１２０から次のラインの画像データを読み出し、同期信号ＨＳＹＮＣ０とともに出力する（図８（ｂ））。同期信号ＨＳＹＮＣ０の出力により、２番目の周期Ｔが開始される。
【００７８】
機能拡張インタフェース部７０は、１番目と２番目の周期Ｔをまたいで、画像処理部４０から画像処理後の画像データを順次受信し、受信した画像データをメモリ７２に書き込む（図８（ｃ））。
【００７９】
モジュールＭＤ１は、同期信号ＨＳＹＮＣ０に基づいて同期信号ＨＳＹＮＣ１を生成し、ラインｂの画像処理を開始する（図８（ｄ））。モジュールＭＤ２は、同期信号ＨＳＹＮＣ１に基づいてメモリ７２から１ライン分の画像データを受信し、ラインａの画像処理を開始する（図８（ｅ））。しかしながら、同期信号ＨＳＹＮＣ１が出力された時点で、メモリ７２の網掛け部分には、画像処理部４０が生成した画像データはまだ格納されていない。このため、モジュールＭＤ２、ＭＤ３は、正しい画像データを用いた画像処理を実行できず、画像処理装置１は誤動作する。
【００８０】
なお、画像処理部４０が生成した画像データのメモリ７２への格納が、同期信号ＨＳＹＮＣ１が出力される前に完了する場合、誤動作は発生しない。図４および図５に示した動作では、画像処理部４０が実行する画像処理に掛かる時間に応じて、出力イネーブルＯＥＮのアサートタイミングが変更される。このため、画像処理部４０が生成した画像データは、同期信号ＨＳＹＮＣ１が出力される前にメモリ７２に格納され、誤動作は発生しない。
【００８１】
以上、図１から図７に示す実施形態では、追加画像処理部４００がエンジン１００に接続される場合、画像処理部４０による画像データの処理時間に応じて、出力イネーブルＯＥＮ２のアサートタイミングが調整される。例えば、出力イネーブル合成部９０は、出力イネーブルＯＥＮ１、ＯＥＮ２のうち、アサートタイミングが遅いほうに合わせて、出力イネーブルＯＥＮをアサートする。これにより、機能拡張の有無に応じて画像処理時間が変動する場合にも、異常な画像データを生成することなく、画像データの転送性能の低下を防止することができる。
【００８２】
拡張インタフェース部７０は、同期信号ＨＳＹＮＣ１に応答して出力イネーブルＯＥＮ２をネゲートし、画像処理部４０からの１ライン分の画像データの受信の完了に応答して出力イネーブルＯＥＮ２をアサートする。これにより、画像処理部４０による画像処理時間が変動する場合にも、画像処理部４０による画像処理中にメモリ１２０からの次のラインの画像データの読み出しを確実に禁止することができる。
【００８３】
また、画像処理部４０からの画像データの受信の完了に応答して出力イネーブルＯＥＮ２をアサートするため、画像データの受信途中に出力イネーブルＯＥＮ２がアサートされることを防止することができる。この結果、画像処理部４０による画像処理時間が変動する場合にも、出力イネーブルＯＥＮ２のネゲート期間を最短にしつつ、異常な画像が生成されることを防止できる。
【００８４】
画像処理部４０が生成した画像データは、メモリ７２に一度格納された後、メモリ７２から後続のモジュールＭＤに転送される。このため、周期Ｔが変動する場合にも、後続のモジュールＭＤは、同期信号ＨＳＹＮＣに合わせて画像データを受信し、画像処理を実行することができる。
【００８５】
換言すれば、追加画像処理部４００がエンジン１００に接続され、画像処理が複数の周期Ｔにまたがって実行される場合にも、先頭の周期Ｔの変動によるタイミングのずれを調整して、後続の周期Ｔでの画像処理を常に同じタイミングで開始することができる。すなわち、各周期Ｔにおいて、各モジュールＭＤにより画像処理を開始するタイミングを、追加画像処理部４００が接続されるか否かにかかわらず一定にすることができる。この結果、周期Ｔをまたぐことによるタイミングのずれに起因して異常な画像が生成されることを防止できる。
【００８６】
有効な画像データを受けない場合に、ダミーの画像データを用いて画像処理を実行することで、画像処理部１０は、有効な画像データを処理する場合と同様に遅延情報ＤＬＹを出力イネーブル生成部８０に出力できる。これにより、有効な画像データを処理する場合と同様に出力イネーブルＯＥＮ１をアサートすることができ、出力イネーブルＯＥＮ１がアサートされないことによる画像処理装置１の誤動作を防止することができる。
【００８７】
図９は、本発明の別の実施形態に係る画像処理装置の動作の例を示すタイミング図である。図１から図７に示した構成、機能および動作と同様の構成、機能および動作については、詳細な説明は省略する。図９に示す動作を実行する画像処理装置は、メモリコントローラ５０の機能が異なることを除き、図４に示した画像処理装置１と同じである。図９は、図４と同様に、セレクタ部２０により、モジュールＭＤ１、画像処理部４０、モジュールＭＤ２、ＭＤ３が順に接続された場合の動作を示している。
【００８８】
メモリコントローラ５０は、出力イネーブルＯＥＮにより設定される周期Ｔ（同期信号ＨＳＹＮＣ０の生成周期）が、予め設定された最小周期より小さい場合、最小周期に合わせて同期信号ＨＳＹＮＣ０を出力する。図９の１番目と３番目の周期の動作は、図４の１番目と３番目の周期の動作と同じである。
【００８９】
２番目の周期Ｔにおいて、画像処理部４０による画像データの処理時間と、モジュールＭＤ２、ＭＤ３による画像データの処理時間とは、他の周期Ｔの処理時間に比べて短い（図９（ａ）、（ｂ））。このため、出力イネーブルＯＥＮに基づいて同期信号ＨＳＹＮＣ０を生成した場合、２番目の周期Ｔは、最小周期より短くなってしまう。この場合、メモリコントローラ５０は、最小周期で同期信号ＨＳＹＮＣ０を出力する（図９（ｃ））。これにより、出力イネーブルＯＥＮが早くアサートされる場合にも、１周期が規定の周期（すなわち、最小周期）より短くなることを防止することができる。この結果、主画像処理部１１０内の回路のタイミングマージンが不足することを防止でき、主画像処理部１１０の誤動作を防止することができる。
【００９０】
図１０は、本発明の別の実施形態に係る画像処理装置を示すブロック図である。図１から図７に示した構成、機能および動作と同様の構成、機能および動作については、詳細な説明は省略する。図１０に示す画像処理装置２では、機能拡張インタフェース部７０は、マスク制御部（マスク）７４を有する。画像処理装置２のその他の構成および機能は、図１に示した画像処理装置１の構成および機能と同様である。
【００９１】
マスク制御部７４は、画像処理部４０による画像処理時間がｎ周期（ｎは、２以上の整数）にわたるとき、原稿を読み取ってからｎ−１番目の周期まで、出力イネーブルＯＥＮ２を強制的にアサートレベルに設定する。画像処理部４０による画像データの処理時間は、追加画像処理部４００がエンジン１００に接続されたときに、ＣＰＵ１３０により算出されてもよく、原稿の読み取り毎にＣＰＵ１３０により算出されてもよい。ＣＰＵ１３０は、算出された画像データの処理時間を周期の数としてマスク制御部７４に通知する。
【００９２】
なお、ＣＰＵ１３０は、算出した周期の数を、マスク制御部７４が参照可能なレジスタに格納してもよい。また、マスク制御部７４を設けずに、出力イネーブルＯＥＮ２を強制的にアサート状態に設定するＩ／Ｏレジスタを設けて、ＣＰＵ１３０が、算出した周期の数に対応する期間、出力イネーブルＯＥＮ２をアサート状態に設定する値をＩ／Ｏレジスタに書き込んでもよい。
【００９３】
図１１は、図１０の画像処理装置２の動作の例を示すタイミング図である。図４と同じ動作については、詳細な説明は省略する。図１１は、図４と同様に、セレクタ部２０により、モジュールＭＤ１、画像処理部４０、モジュールＭＤ２、ＭＤ３が順に接続された場合の動作を示している。ＣＰＵ１３０は、画像処理部４０による１ラインの画像処理が２周期（ｎ＝"２"）にわたって実行されることをマスク制御部７４に予め通知している。
【００９４】
マスク制御部７４は、ＣＰＵ１３０からの通知に基づいて、原稿の読み取り後の最初の周期Ｔでは、出力イネーブルＯＥＮ２をハイレベル"Ｈ"に維持する（図１１（ａ））。原稿の読み取り後の最初の周期Ｔは、１ラインの画像処理に使用される最後の周期Ｔを除く周期Ｔであり、ｎ−１番目の周期Ｔまでに含まれる。例えば、画像処理部４０による１ラインの画像処理が４周期かかる場合（ｎ＝"４"）、マスク制御部７４は、原稿の読み取り後の最初の３周期（＝ｎ−１）の間、出力イネーブルＯＥＮ２をハイレベル"Ｈ"に設定する。
【００９５】
出力イネーブル合成部９０は、出力イネーブルＯＥＮ２がハイレベルに固定されるため、出力イネーブルＯＥＮ１のアサートタイミングに同期して出力イネーブルＯＥＮをアサートする（図１１（ｂ））。これにより、メモリコントローラ５０は、出力イネーブルＯＥＮに応答して、次のラインの画像データをメモリ１２０から読み出し、読み出した画像データを主走査同期信号ＨＳＹＮＣ０とともに出力する（図１１（ｃ））。
【００９６】
図１１の２番目の周期Ｔおよび３番目の周期Ｔの動作は、それぞれ図４の１番目の周期Ｔおよび２番目の周期Ｔの動作と同様である。但し、２番目の周期Ｔにおいて、モジュールＭＤ２、ＭＤ３は、ダミーの画像データの画像処理を実行する（図１１（ｄ）、（ｅ））。また、３番目の周期Ｔにおいて、モジュールＭＤ２、ＭＤ３は、図４に比べて１つ前のラインの画像処理を実行する（図１１（ｆ）、（ｇ））。図１０および図１１に示す実施形態では、画像処理部４０による画像処理時間が複数の周期Ｔにまたがる場合にも、出力イネーブルＯＥＮをアサートすることができる。これにより、出力イネーブル合成部９０が出力イネーブルＯＥＮ２のアサートを待ち続け、デッドロック状態に陥ってしまうことを防止することができ、画像処理装置２の誤動作を防止することができる。
【００９７】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【００９８】
１、２        画像処理装置
１０          画像処理部
２０          セレクタ部
４０          画像処理部
４２          転送制御部
５０          メモリコントローラ
６０          転送制御部
７０          機能拡張インタフェース部
７２          メモリ
８０          出力イネーブル生成部
９０          出力イネーブル合成部
１００        エンジン
１１０        主画像処理部
１２０        メモリ
１３０        ＣＰＵ
２００        画像読み取り部
３００        コントローラ
４００        追加画像処理部
ＨＳＹＮＣ  主走査同期信号
ＭＤ          画像処理モジュール
ＯＥＮ、ＯＥＮ１、ＯＥＮ２  主走査同期信号出力イネーブル
ＶＳＹＮＣ０  副走査同期信号
【先行技術文献】
【特許文献】
【００９９】
【特許文献１】特開２０１３−１９２１９７号公報
【図１】
2020071733.tif 000003
【図２】
2020071733.tif 000004
【図３】
2020071733.tif 000005
【図４】
2020071733.tif 000006
【図５】
2020071733.tif 000007
【図６】
2020071733.tif 000008
【図７】
2020071733.tif 000009
【図８】
2020071733.tif 000010
【図９】
2020071733.tif 000011
【図１０】
2020071733.tif 000012
【図１１】
2020071733.tif 000013