(57)【要約】【課題】  パラメータの再設定を必要とすることなく、任意の順序でリアルタイムに画像処理を実行することが可能な画像処理装置および画像処理方法を提供する。【解決手段】  複数の機能モジュール（１０１〜１０８）を実装する画像処理デバイス１００において、機能モジュール間の接続を切り換える接続切替部１１０ａを有する。それぞれの機能モジュールは、接続先切替部１１０ａにより接続された他方の機能モジュールへ単位容量の画像処理を終了したことを通知する。単位容量の画像処理が完了したことが通知された機能モジュールは、自己における画像処理を開始する。【選択図】          図３
2006094400.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能モジュールを実装する画像処理装置において、
前記機能モジュール間の接続を切り換える接続切替手段と、
前記接続先切替手段により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段とを有し、
前記機能モジュールは、前記処理終了通知手段により画像処理が終了したことを通知された場合、処理を開始することを特徴とする画像処理装置。
【請求項２】
共通のアドレス空間にマッピングされた共有メモリを有し、
前記機能モジュールは前記共有メモリを用いて他の機能モジュール間でデータ転送を行うことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記機能モジュールは、前記処理終了通知手段から通知された回数をカウントするためのカウンタを有することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記単位容量は、前記機能モジュール毎に１ページ以下の範囲内で設定可能であることを特徴とする請求項１記載の画像処理装置。
【請求項５】
１ページ分より小さい容量を前記単位容量として処理を実行する機能モジュールは、１ページ分の全ての処理が終了するまでパラメータの再設定がなされることなく処理を継続することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記接続切替手段は、１ページ分より小さい容量を前記単位容量として処理を実行する機能モジュール間を接続した場合、前段の機能モジュールから処理の終了が通知された際、後段の処理モジュールが出力した処理の開始を受け付けることを特徴とする請求項１記載の画像形成装置。
【請求項７】
前記機能モジュールのうち回転処理を実現するための機能モジュールの後段には、１ページ分の容量を持つページメモリが設けられていることを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記機能モジュールで画像処理された画像データを蓄積するメモリと、
前記機能モジュールの出力段に設けられ、当該機能モジュールにおいて画像処理された画像データを前記メモリへ転送するための第１の転送手段と、
他の前記機能モジュールの入力段に設けられ、前記メモリに蓄積された画像データを転送する第２の転送手段と、
前記第１の転送手段からのアクセス要求と前記第２の転送手段からのアクセス要求とを調停する調停手段とを有し、
前記調停手段は、前記第１の転送手段のアクセス要求を受け付けた後、前記第２の転送手段のアクセス要求を受け付けるための追い越し防止手段とを有することを特徴とする請求項１記載の画像形成装置。
【請求項９】
前記第１の転送手段は、前記調停手段へアクセス要求を出すと同時に、当該第１の転送手段からのアクセス要求であることを示すための第１の識別信号を前記調停手段へ出力し、
前記第２の転送手段は、前記調停手段へアクセス要求を出すと同時に、当該第２の転送手段からのアクセス要求であることを示すための第２の識別信号を前記調停手段へ出力し、
前記調停手段は、前記第１および第２の転送手段から入力された前記第１および第２の識別情報に基づいて前記メモリへのアクセスを調停することを特徴とする請求項８記載の画像形成装置。
【請求項１０】
前記追い越し防止手段は、第１の転送手段から前記アクセス要求がなされた際のアドレスを保持するためのアドレス保持手段を有することを特徴とする請求項８記載の画像形成装置。
【請求項１１】
前記調停手段は、前記第１の転送手段からのアクセスを許可したとき、前記アドレス保持手段に格納されたアドレスを前記アクセス要求がなされた際のアドレスに変更することを特徴とする請求項１０記載の画像形成装置。
【請求項１２】
前記調停手段は、前記第１の転送手段から転送終了割り込みがアサートされた場合、前記アドレス保持手段に格納されたアドレスに固定値を加算すること特徴とする請求項１０記載の画像形成装置。
【請求項１３】
前記調停手段は、前記第２の転送手段からのアクセス要求があったとき、当該アクセス要求があったアドレスバスの状態と前記アドレス保持手段に格納されたアドレスとを比較し、前記アドレス保持手段に格納されたアドレスの方が大きい値の場合、前記第２の転送手段からのアクセスを許可することを特徴とする請求項１０記載の画像形成装置。
【請求項１４】
前記第１の転送手段からの転送終了割り込みがアサートされた場合、前記機能モジュールのステータス情報参照する制御手段を有し、
前記制御手段は、前記ステータス情報が機能モジュール処理の未終了を示している場合、前記第１の転送手段の転送サイズを変更すると共に転送開始アドレスを前期アドレス保持手段が保持している値に設定して、該第１の転送手段に再起動をかけることを特徴とする請求項８記載の画像形成装置。
【請求項１５】
複数の機能モジュールを用いて処理を画像処理を実行する画像処理方法において、
前記機能モジュール間の接続を切り換える第１ステップと、
前記第１ステップで接続された２つの機能モジュールのうち一方の機能モジュールで単位容量の画像データに関する画像処理を実行する第２ステップと、
前記第２ステップで単位容量の画像データに関する画像処理が終了したことを他方の機能モジュールに通知する第３ステップと、
前記第３ステップで一方の機能モジュールにおける画像処理が終了したことを通知された場合、他方の画像処理を開始する第４のステップとを有することを特徴とする画像処理方法。
【請求項１６】
前記第２ステップで画像処理された画像データの所定のメモリへの転送を要求する第５ステップと、
前記所定のメモリに蓄積された画像データの機能モジュールへの転送を要求する第６ステップと、
前記第５ステップおよび第６ステップにおける要求を調停する第７ステップとを有し、
前記第７ステップは、前記第５ステップによる要求を受け付けた後、前記第６ステップによる要求を受け付けることを特徴とする請求項１５記載の画像形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特に複数の機能モジュールを任意の順序に組み合わせてリアルタイム処理することが可能な画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
近年、ＡＳＩＣ（Application Specific Integrated Circuit）のプロセス向上に伴って画像処理デバイスの高集積化・高性能化が進んでいる。この状況から多数の機能を１つのデバイスに実装するＳＯＣ（System On a Chip）化が加速してきており、ASICに内蔵できるゲート規模は数年前の２倍以上にまで上がってきている。
【０００３】
このような発展に伴い、複写機や複合機に実装されている画像処理デバイスもまた、機能ごとに別デバイスになっていたものが高集積化されてきている。
【０００４】
ここで、従来技術による画像処理デバイス９００の構成を図１に示す。図１に示すように、画像処理デバイス９００は、Ａモジュール９１１と選択部９１２とＢモジュール９１３とＣモジュール９１４とＦモジュール９３０とを有し、外部に高速ＳＲＡＭ９４１および９４２とページバッファ（ＤＲＡＭ）９４３とが設けられている。なお、Ａモジュール９１１と選択部９１２とＢモジュール９１３とＣモジュール９１４とは、単一のチップ９１０に組み込まれている。
【０００５】
Ａモジュール９１１はスキャナなどの画像入力装置９８０から画像データを入力する。選択部９１２は外部からユーザなどにより設定された動作モードに基づいて画像データの入力先をＢモジュール９１３とＣモジュール９１４とから選択する。
【０００６】
Ｂモジュール９１３は入力された画像データに対しある画像処理を実施する。このＢモジュール９１３には専用線を介して高速ＳＲＡＭ９４１が接続されている。一方、Ｃモジュール９１４は入力された別の画像処理を実施する。このＣモジュール９１４には専用線を介して高速ＳＲＡＭ９４２が接続されている。Ｂモジュール９１３またはＣモジュール９１４の後段（出力段ともいう）には共通線を介してページバッファ（ＤＲＡＭ）９４３が接続されている。Ｂモジュール９１３またはＣモジュール９１４から出力された画像データは一度ページバッファ９４３に保持された後、Ｆモジュール９３０に入力される。
【０００７】
Ｆモジュール９３０は外部からユーザなどにより設定された動作モードに基づいて画像データを別の処理を施し、これをプリンタエンジンなどの画像出力装置９９０へ入力する。
【０００８】
このように画像処理デバイスは、通常、複数の画像処理をそれぞれ行う部（９１１，９１２，９１３，９１４または９３０など）が集合されて構成される。以下の説明では、これらの部を機能モジュールという。
【０００９】
機能モジュールは一般的にそれぞれの機能に応じて処理速度が異なる。そこで従来では、機能モジュール間の処理速度の違いを緩衝するために、各機能モジュールの後段に大容量ＳＲＡＭ（Static Random Access Memory）などのメモリをラインバッファとして内蔵するのが通例であった。例えば、スキャナなどの画像入力装置からデータ入力される機能モジュール（Ａモジュール９１１に相当。以下、これをスキャンモジュールという）にはラインバッファとして１ライン分のＳＲＡＭが設けられていた。また、カラー複写機では、ＹＭＣＫの色成分ごとにスキャンモジュールまたはスキャン回路が設けられるため、合計で４ライン分のラインバッファが設けられていた。
【００１０】
このような速度緩衝用のバッファは、リアルタイム入力されているデータを取りこぼさないための構成である。例えばスキャンモジュールの場合、このスキャンモジュールからＤＲＡＭ（Dynamic Random Access Memory）への書き込みが局所的に遅くなると、次に入力されたデータで先に入力されたデータが上書きされてしまい、先のデータが失われる。そこで、上記のように速度緩衝用のラインバッファを設けることで、次のデータを一時保持しておく。これにより、先のデータの上書きを回避することができる。また、このような構成は、ライン平均の書き込み速度さえ満足できていればリアルタイム性を損なうことがないという利点を有していた。
【００１１】
一方、画像を２次元処理する機能モジュール（Ｃモジュール９１４に相当）などはブロック処理(副走査方向に複数ライン)が必要となる。しかしながら、複数ライン分のバッファをデバイスに実装してしまうとデバイスサイズが著しく大きくなってしまう。そこで従来では、このような機能モジュール専用に高速ＳＲＡＭ９４２をデバイス外部に実装し、これを複数ラインのラインバッファとして使用する場合があった。同様に、Ｂモジュール９１３などにも専用の高速ＳＲＡＭ９４１がデバイス外部に設けられる場合があった。
【００１２】
また、従来は間断なく入力される画像データに対してリアルタイムに画像処理を実施するのに十分なバンド幅をＤＲＡＭだけで確保することは困難であった。そこで、上述のようにＤＲＡＭ上のブロックバッファを持たせず、デバイス外部に専用メモリである高速ＳＲＡＭ９４１，９４２を持たせることで、このような問題も解決することができた。
【００１３】
しかしながら、上記したような従来技術では、Ｂモジュール、Ｃモジュールなどの機能モジュールによる画像処理のために、高速ＳＲＡＭ９４１，９４２をページバッファ（ＤＲＡＭ）９４３とは別に実装する必要があり、システムコストが高くなる問題があった。
【００１４】
また、デバイス外部に高速ＳＲＡＭを実装することでピン数が増大し、デバイス自体が大型化してしまうという問題があった。
【００１５】
さらに、上記の構成をカラー複写機に適用すると、機能モジュール間の速度干渉用ラインバッファもまた４倍の容量が必要となるため、デバイスに内蔵するメモリーの容量が増大し、デバイス自体のコストが高くなるという問題があった。
【００１６】
さらにまた、上記のような従来技術では、画像入力装置９８０からの画像データを入力する処理とＦモジュール９３０による画像処理とを同時に実行できなかったり、Ｆモジュール処理→Ｃモジュール処理→Ｂモジュール処理や、Ｃモジュール処理→Ｆモジュール処理→Ｂモジュール処理などのような複数の処理を組み合わせた処理を一度のデータ取り込みで実現できず、入力し処理したデータを一旦外部のメモリなどに書き出した後再度取り込んで他の処理を実行しなければならないという問題があった。すなわち、Ｃモジュール処理とＦモジュール処理とＢモジュール処理とを行う場合、Ｃモジュール処理→Ｂモジュール処理→Ｆモジュール処理→Ｂモジュール処理のような順序で組み合わせ処理を実現しなければならず、処理手順が非常に煩雑となっていた。
【００１７】
このような問題に対し、例えば以下の特許文献１には、機能モジュールを用いた組み合わせ処理の組み合わせ自由度を向上することができる技術が開示されている。
【００１８】
すなわち、特許文献１は、データ伝送路を介して画像メモリとの間で画像データを授受するように接続される画像処理装置であって、第１のデータ伝送路を介して前記画像メモリに接続され、前記画像データの一部を格納するマトリクスバッファと、一方では第２のデータ伝送路を介して前記画像メモリに接続されると共に、他方では前記マトリクスバッファにも接続され、画像データを圧縮伸張する画像圧縮伸張処理手段と、前記圧縮伸張処理手段を前記第２のデータ伝送路でバイパスするか否かを切り換えるセレクタ手段と、前記画像処理の内容を設定制御すると共に設定された画像処理内容にしたがって前記セレクタ手段を駆動する制御手段と、設定された画像処理内容にしたがって前記マトリクスバッファの読み出しを指定し、前記マトリクスバッファの画像データを前記画像メモリへ転送するアドレス発生手段とを有し、画像データのＪＰＥＧ（Joint Photographic Experts Group）方式圧縮伸張処理、回転処理および拡大縮小処理を単独または組み合わせて平行的に行う場合において、画像メモリやバッファメモリのメモリ容量を節約およびデータ転送回数の低減を図っている。
【００１９】
【特許文献１】特開平８−１９４８１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、特許文献１による従来技術では、ブロック単位もしくはそれより大きい単位で画像処理を実行する場合、ソフトウェアによる再設定処理が必要となるという問題が存在する。すなわち、処理終了後にソフトウェアを用いて処理単位の画像データに関する開始アドレスやサイズなどのパラメータを再設定しなければならず、１ページ分の処理終了までに要する時間が長くなってしまう。加えて、ブロックサイズを小さく取ろうとすると、ソフトウェアの設定時間がデータ入力に追従できないという問題も存在する。
【００２１】
さらに、処理の組み合わせが、圧縮、伸張、回転、拡大・縮小、回転→拡大・縮小、伸張→回転、伸張→拡大・縮小、伸張→回転→拡大・縮小の組み合わせに限定されてしまうという問題も存在する。加えて、組み合わせ処理における処理順序を変更することができないという問題も存在する。
【００２２】
現在、複合機は多機能化してきており、機能を満足するための画像処理手順も複雑化してきている。従来技術では、機能実現のためには生産性を落とす必要があったり、機能自体を実現することができない場合も出てきている。
【００２３】
このようななか、近年、ＤＲＡＭの性能は向上してきており、機能モジュールが内蔵していた速度緩衝用ＳＲＡＭや、機能モジュールが占有していた高速ＳＲＡＭ９４１、９４２をＤＲＡＭ上にマッピングしても、リアルタイムシステムの性能は確保できる状況である。
【００２４】
そこで本発明は、上記の問題に鑑みてなされたものであり、パラメータの再設定を必要とすることなく、任意の順序でリアルタイムに画像処理を実行することが可能な画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
かかる目的を達成するために、本発明は、請求項１記載のように、複数の機能モジュールを実装する画像処理装置において、前記機能モジュール間の接続を切り換える接続切替手段と、前記接続先切替手段により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段とを有し、前記機能モジュールが前記処理終了通知手段により画像処理が終了したことを通知された場合、処理を開始するように構成される。一方の機能モジュールにおいて処理が終了した後、他方の機能モジュールが処理を実行するように構成することで、各機能モジュールは単位容量の画像処理を終了するたびにパラメータを再設定する必要がなくなる。これにより、任意の順序でリアルタイムに画像処理を実行することが可能となる。
【００２６】
また、請求項１記載の発明は、例えば請求項２のように、共通のアドレス空間にマッピングされた共有メモリを有し、前記機能モジュールが前記共有メモリを用いて他の機能モジュール間でデータ転送を行うように構成されている。機能モジュール間のデータ転送を共有のメモリを用いて行うことで、処理速度の違う機能モジュール間でデータ転送を行う場合でも、デバイス内部に速度緩衝用のメモリー（SRAM）を実装する必要がなくなる。これにより、デバイスサイズを縮小でき、かつデバイスコストも低減することができる。
【００２７】
また、請求項１記載の発明は、例えば請求項３のように、前記機能モジュールが前記処理終了通知手段から通知された回数をカウントするためのカウンタを有して構成されてもよい。処理終了通知手段からの通知回数をカウントするカウンタを設けることで、機能モジュールはデータ転送を行う回数を管理することが可能となる。すなわち、データ転送を確実に管理して行うことが可能となる。
【００２８】
また、請求項１記載の発明は、例えば請求項４のように、前記単位容量が前記機能モジュール毎に１ページ以下の範囲内で設定可能であってもよい。単位容量を１ページ以下の範囲で設定可能とすることで、ＤＲＡＭ総容量として１ページ分実装するだけで、任意の組み合わせの処理が可能となる。
【００２９】
また、請求項１記載の発明は、例えば請求項５のように、１ページ分より小さい容量を前記単位容量として処理を実行する機能モジュールが１ページ分の全ての処理が終了するまでパラメータの再設定がなされることなく処理を継続するように構成されてもよい。このように、ソフトウェアによるパラメータの再設定を不要とすることで、ソフトウェアの処理オーバヘッドをなくすことができ、高速な画像処理を実現することができる。
【００３０】
また、請求項１記載の発明は、例えば請求項６のように、前記接続切替手段が１ページ分より小さい容量を前記単位容量として処理を実行する機能モジュール間を接続した場合、前段の機能モジュールから処理の終了が通知された際、後段の処理モジュールが出力した処理の終了を受け付けるように構成されてもよい。後段の機能モジュールにおける処理が開始したことを受けて、前段の機能モジュールが処理を開始するように構成することで、スムーズなデータ転送が可能となる。
【００３１】
また、請求項１記載の発明は、例えば請求項７のように、前記機能モジュールのうち回転処理を実現するための機能モジュールの後段に１ページ分の容量を持つページメモリが設けられている。この機能モジュールの後段に１ページ分のメモリ容量を持つページメモリを配置することで、入力画像を回転後に1枚に貼り付ける(N-UP)等の機能が実現可能となる。
【００３２】
また、請求項１記載の発明は、例えば請求項８のように、前記機能モジュールで画像処理された画像データを蓄積するメモリと、前記機能モジュールの出力段に設けられ、当該機能モジュールにおいて画像処理された画像データを前記メモリへ転送するための第１の転送手段と、他の前記機能モジュールの入力段に設けられ、前記メモリに蓄積された画像データを転送する第２の転送手段と、前記第１の転送手段からのアクセス要求と前記第２の転送手段からのアクセス要求とを調停する調停手段とを有し、前記調停手段が、前記第１および第２の転送手段を予め起動しておくための起動手段と、前記第１の転送手段のアクセス要求を受け付けた後、前記第２の転送手段のアクセス要求を受け付けるための追い越し防止手段とを有して構成されてもよい。一方の機能モジュールからの要求を受け付けた後に他方の機能モジュールからの要求を受け付けるように構成することで、処理速度の遅い機能モジュールから処理速度の速い機能モジュールへのデータ転送を確実に実施できる。
【００３３】
また、請求項８記載の発明は、例えば請求項９のように、前記第１の転送手段が前記調停手段へアクセス要求を出すと同時に、当該第１の転送手段からのアクセス要求であることを示すための第１の識別信号を前記調停手段へ出力し、前記第２の転送手段が前記調停手段へアクセス要求を出すと同時に、当該第２の転送手段からのアクセス要求であることを示すための第２の識別信号を前記調停手段へ出力し、前記調停手段が前記第１および第２の転送手段から入力された前記第１および第２の識別情報に基づいて前記メモリへのアクセスを調停するように構成されてもよい。各転送手段が自己を識別するための識別信号を出力し、調停手段がこの識別信号に基づいてアクセスを調停するように構成することで、特定の機能モジュールだけに順序制御を適用するような調停が可能となる。
【００３４】
また、請求項８記載の発明は、例えば請求項１０のように、前記追い越し防止手段が第１の転送手段から前記アクセス要求がなされた際のアドレスを保持するためのアドレス保持手段を有して構成されてもよい。アクセス要求がなされた際のアドレスを保持する手段を設けることで、次のアクセス要求との前後関係を認識することが可能となり、確実に調停を行うことが可能となる。
【００３５】
また、請求項１０記載の発明は、例えば請求項１１のように、前記調停手段が前記第１の転送手段からのアクセスを許可したとき、前記アドレス保持手段に格納されたアドレスを前記アクセス要求がなされた際のアドレスに変更するように構成されてもよい。新たなアクセス要求を許可した場合、このときのアドレスで以前のアドレスを更新することで、確実にアドレス管理行うことが可能となる。
【００３６】
また、請求項１０記載の発明は、例えば請求項１２のように、前記調停手段が前記第１の転送手段から転送終了割り込みがアサートされた場合、前記アドレス保持手段に格納されたアドレスに固定値を加算するように構成されてもよい。このように、格納されているアドレスに固定値を加算するように構成することで、前段の機能モジュールが出力した最終データを、次段の機能モジュールが取り込むことが可能となる。(アドレスの大小関係が最終データまで継続される)
【００３７】
また、請求項１０記載の発明は、例えば請求項１３のように、前記調停手段が前記第２の転送手段からのアクセス要求があったとき、当該アクセス要求があったアドレスバスの状態と前記アドレス保持手段に格納されたアドレスとを比較し、前記アドレス保持手段に格納されたアドレスの方が大きい値の場合、前記第２の転送手段からのアクセスを許可するように構成されてもよい。このように、アドレス保持手段に格納されたアドレスの方が大きい場合、第２の転送手段からのアクセスを許可するように構成することで、後段の機能モジュールが、前段の機能モジュールを追い越すことを容易な構成で防止できる。
【００３８】
また、請求項８記載の発明は、例えば請求項１４のように、前記第１の転送手段からの転送終了割り込みがアサートされた場合、前記圧縮手段のステータス情報参照する制御手段を有し、前記制御手段が前記ステータス情報を参照した結果圧縮処理の未終了を示している場合、前記第１の転送手段の転送サイズを変更すると共に転送開始アドレスを前記アドレス保持手段が保持している値に設定して、該第１の転送手段に再起動をかけるように構成されてもよい。圧縮手段の生殺証拠に基づいて第１の転送手段に再起動をかけるか否かを決定することで、メモリーの使用状況に応じた制御が可能となる。
【００３９】
また、他の本発明は、請求項１５記載のように、複数の機能モジュールを用いて画像処理を実行する画像処理方法において、前記機能モジュール間の接続を切り換える第１ステップと、前記第１ステップで接続された２つの機能モジュールのうち一方の機能モジュールで単位容量の画像データに関する画像処理を実行する第２ステップと、前記第２ステップで単位容量の画像データに関する画像処理が終了したことを他方の機能モジュールに通知する第３ステップと、前記第３ステップで一方の機能モジュールにおける画像処理が終了したことを通知された場合、他方の画像処理を開始する第４のステップとを有して構成される。一方の機能モジュールにおいて処理が終了した後、他方の機能モジュールが処理を実行するように構成することで、各機能モジュールは単位容量の画像処理を終了するたびにパラメータを再設定する必要がなくなる。これにより、任意の順序でリアルタイムに画像処理を実行することが可能となる。
【００４０】
また、請求項１５記載の発明は、例えば請求項１６記載のように、前記第２ステップで画像処理された画像データの所定のメモリへの転送を要求する第５ステップと、前記所定のメモリに蓄積された画像データの機能モジュールへの転送を要求する第６ステップと、前記第５ステップおよび第６ステップにおける要求を調停する第７ステップとを有し、前記第７ステップが前記第５ステップによる要求を受け付けた後、前記第６ステップによる要求を受け付けるように構成される。一方の機能モジュールからの要求を受け付けた後に他方の機能モジュールからの要求を受け付けるように構成することで、連続ページ印刷を途中で止める必要を回避することができ、最小限の回路規模でＩＯＴの生産性を最大限に発揮させることができる。
【発明の効果】
【００４１】
本発明によれば、パラメータの再設定を必要とすることなく、任意の順序でリアルタイムに画像処理を実行することが可能な画像処理装置および画像処理方法を実現することができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明を実施するための最良の形態を図面と共に詳細に説明する。
【実施例１】
【００４３】
まず、本発明による実施例１について図面を用いて詳細に説明する。図２は、本実施例による画像処理デバイス１００の構成を示すブロック図である。図２に示すように、画像処理装置１０はＣＰＵ１１とシステムメモリ１２と画像処理メモリ１３とＩ／Ｏ制御デバイス１５と画像処理デバイス１００とを有する。
【００４４】
画像処理装置１０にはスキャナなどの画像入力装置９８０が接続されている。画像入力装置９８０で取得された画像データは画像処理装置１０の画像処理デバイス１００に入力され、所定の画像処理が実行されたのち、プリンタエンジンなどの画像出力装置９９０へ入力される。
【００４５】
上記の構成において、ＣＰＵ（中央処理装置）１１は、画像処理デバイス１００やＩ／Ｏ制御デバイス１５などを制御するとともに、所定のプログラムを実行する。システムメモリ１２は、ＣＰＵ１１が各種制御やプログラムを実行する際に使用するメモリである。画像処理メモリ１３は、画像処理デバイス１００が各種処理を実行する際に使用するメモリである。なお、画像処理デバイス１００および画像処理メモリ１３については、後述において図面とともに詳細に説明する。
【００４６】
次に、画像処理デバイス１００および画像処理メモリ１３の構成を図３とともに説明する。図３に示すように、画像処理デバイス１００は、画像処理Ａ部１０１ａと画像処理Ｂ部１０２ａと画像処理Ｃ部１０３ａと画像処理Ｆ部１０８ａとを有し、これらが共通のバス２１を介してページメモリ（ＤＲＡＭ）１３ａに接続されている。すなわち、ページメモリ１３ａが画像処理Ａ部１０１ａと画像処理Ｂ部１０２ａと画像処理Ｃ部１０３ａと画像処理Ｆ部１０８ａとで共用される構成となっている。また、画像処理デバイス１００は接続切替部１１０ａを有する。接続切替部１１０ａは画像処理Ａ部１０１ａと画像処理Ｂ部１０２ａと画像処理Ｃ部１０３ａと画像処理Ｆ部１０８ａとの相互の接続の切り換えを制御する。なお、以下の説明において、画像処理Ａ部１０１ａはＡモジュール１０１に相当し、画像処理Ｂ部１０２ａはＢモジュール１０２に相当し、画像処理Ｃ部１０３ａはＣモジュール１０３に相当し、画像処理Ｆ部１０８ａはＦモジュール１０８に相当し、接続切替部１１０ａは接続切替モジュール１１０に相当する。また、ページメモリ（ＤＲＡＭ）１３ａは図２における画像処理メモリ１３に相当する。
【００４７】
次に、画像処理デバイス１００および画像処理メモリ１３で実現される機能モジュールの構成を図４と共に説明する。図４に示すように、画像処理デバイス１００は、機能モジュールとして、Ａモジュール(図面中Ａと記す)１０１とＢモジュール（図面中Ｂと記す）１０２とＣモジュール（図面中Ｃと記す）１０３とＦモジュール（図面中Ｆと記す）１０８とインタフェースモジュール（図面中ＣＰＵ  Ｉ／Ｆと記す）１０６と接続切替モジュール（図面中ＳＷＩＴＣＨと記す）１１０とを有する。
【００４８】
Ａモジュール１０１、Ｂモジュール１０２、Ｃモジュール１０３、Ｆモジュール１０８は、画像入力装置９８０から入力される画像データに対し、異なる画像処理を施すための機能モジュールである。インタフェースモジュール（ＣＰＵ  Ｉ／Ｆ）１０６は、Ｉ／Ｏ制御デバイス１５（図２参照）を介してシステム側、すなわち端末装置９７０（図２参照）へ画像データを転送するためのインタフェースである。接続切替モジュール１１０は、各機能モジュールの接続状態を切り替えるための切り換え手段として機能する。
【００４９】
また、接続切替モジュール１１０もいわゆる機能モジュールであるが、これはＣＰＵ１１（図２参照）において所定のソフトウェア（Ｓ／Ｗ）を実行することで実現される手段である。
【００５０】
また、図２における画像処理メモリ１３は、バンドメモリ（図面中Band Memoryと記す）１３１および１３５と、ページメモリ（図面中Page Memoryと記す）１３３とを実現する。
【００５１】
上記メモリ構成において、バンドメモリ１３１および１３５はそれぞれ、Ａモジュール１０１とＣモジュール１０３の後段（出力段ともいう）に設けられる。また、ページメモリ１３３は、Ｂモジュール１０２の後段に設けられる。これらメモリは、共有のアドレス空間である画像処理メモリ１３内にマッピングされる。すなわち、本実施例では、ページメモリ１３ａ（図２参照）である画像処理メモリ１３を共有メモリとして使用し、これの一部にバンドメモリを設けることで、メモリ構成を一元化し、全体構成を簡略化すると共に、処理速度を高速化する。図５に画像処理メモリ１３内のマッピング例を示す。
【００５２】
図５に示すように、画像処理メモリ１３内では、バンドメモリ１３１、ページメモリ１３３、バンドメモリ１３５の順にマッピングされる。Ａモジュール１０１直後のバンドメモリ１３１は、単位容量として１バンド分の容量が割り当てられ、これより後段の機能モジュールと共用される。Ｃモジュール１０３直後のバンドメモリ１３５は、同じく単位容量として１バンド分の容量が割り当てられ、これより後段の機能モジュールと共用される。Ｂモジュール１０２直後のページメモリ１３３は、単位容量として１ページ分の容量が割り当てられ、これより後段の機能モジュールと共用される。このように、各メモリには、１ページ分以下の容量を単位容量として割り当ることが可能である。したがって、各メモリを用いてデータ転送を行う機能モジュールは、それぞれのメモリに設定された単位容量に基づいて、処理を実行することが可能である。
【００５３】
ここで、接続切替モジュール１１０により切替られる接続モードの例について以下に示す。接続モードとしては、以下の３つのモードを例示することができる。まず一つ目はバンドメモリモード（以下ＢＭモードという）である。ＢＭモードとは、機能モジュール間のデータ転送の際、バンドメモリ１３１，１３５を共有してデータ転送を実施する動作モードである。二つ目はページメモリ（リアルタイム動作）モード（以下ＰＭ−Ｒモードという）である。ＰＭ−Ｒモードとは、機能モジュール間のデータ転送の際、ページメモリ１３３を共有してデータ転送を実施する動作モードであり、機能モジュール間のデータ転送がバンド単位に実施される動作モードである。三つ目は、ページメモリ（ストア）モード（以下ＰＭ−Ｓモードという）である。ＰＭ−Ｓモードとは、機能モジュール間のデータ転送の際、ページメモリ１３３を共有してデータ転送を実施する動作モードであり、機能モジュール間のデータ転送がページ単位に実施される動作モードである。なお、ＰＭ−Ｓモードでは要求信号（図面中ＲＥＱと記す）の接続は無く、前段の機能モジュールに対する処理終了割り込みを受け付けて、ソフトウェアで次段の機能モジュールの起動がかけられる。なお、要求信号ＲＥＱとは、画像処理が終了したことを他の機能モジュールへ通知するための信号である。すなわち、各機能モジュールは自己において一定量の画像データに関する画像処理が終了したことを他の機能モジュールに通知するための処理終了通知手段を有している。
【００５４】
このように、Ａモジュール１０１およびＢモジュール１０２間はＢＭモードで接続することができる。Ａモジュール１０１出力側とＢモジュール１０２入力側とではバンドメモリ１３１が共用される。なお、本実施例では６４ラインを１バンドとしている。このバンドメモリ１３１を画像処理メモリ１３上に配置することで、Ａモジュール１０１内部に要求されるメモリ容量を削減することができる。例えば、本実施例ではＡモジュール１０１に内蔵しているメモリー容量を１２８バイト×２個分としており、従来必要だったラインバッファを実装する必要はない。なお、以下の動作説明において言及するが、画像入力装置９８０から１２８バイトの画像データが入力されると、Ａモジュール１０１は画像処理メモリ１３に対して書き込み要求を出す。この際、画像入力装置９８０から続いて入力される１２８バイトの画像データを受信完了するまでにＡモジュール１０１から画像処理メモリ１３への書き込み要求が完了することを保証するため、画像処理メモリ１３はＡモジュール１０１からのアクセス要求を最優先としている。
【００５５】
Ｂモジュール１０２およびＣモジュール１０３間は、ＰＭ−ＲモードまたはＰＭ−Ｓモードで接続することができる。Ｂモジュール１０２の後段にページメモリ１３３を配置している理由は次の第１の目的と第２の目的とを達成するためである。第１の目的とは、Ｂモジュール１０２後段で処理するＣモジュール１０３の処理速度が遅かった場合に、Ｂモジュール１０２の処理が滞ることを防ぐためである。また、第２の目的とは、Ｂモジュール１０２後段で複数ページ分の画像を１ページの画像に貼り付ける処理を可能にすることである。
【００５６】
Ｃモジュール１０３及びＦモジュール１０８間は、ＢＭモードで接続することができる。Ｃモジュール１０３に入力されるイメージ量が一定量（例えば１バンド分）を超えるとＦモジュール１０８に要求信号ＲＥＱをアサートしてＦモジュール１０８を起動する。もしくは、Ｃモジュール１０３が１バンド分の画像データを出力した時点で要求信号ＲＥＱをアサートして、Ｆモジュール１０８に起動をかけている。なお、ソフトウェア（Ｓ／Ｗ）がＦモジュール１０８、Ｃモジュール１０３、Ｂモジュール１０２、Ａモジュール１０１の順に順次起動をかけておき、画像入力装置９８０へ入力開始の指示を出すだけで、画像処理デバイス１００内の各機能モジュールは全て要求信号待ちの状態となる。また、各機能モジュールは前段の機能モジュールから要求信号ＲＥＱを受け付けると処理を開始し、処理終了すると次の要求信号待ち状態となって待機する。このほか、画像処理メモリ１３へのアクセス競合時の優先順位は、リード側、ライト側で個別に設定することができる。この際、リード側で最優先するアクセス要求はＦモジュール１０８からのアクセス要求であり、ライト側で最優先するアクセス要求はＡモジュール１０１からのアクセス要求である。それ以外のアクセス要求は、固定優先でもラウンドロビン的な制御で決定されても構わなく、Ａモジュール１０１とＦモジュール１０８の劣後にあることが満足できれば良い。
【００５７】
以上の処理を繰り返すことで、機能モジュール間で１ページ分のデータ転送を順次実施してゆくことが可能となる。この際、全ての機能モジュールは、ごくわずかなメモリを内蔵すればよく、デバイスの小規模化の効果が得られる。
【００５８】
次に、画像処理デバイス１００における各機能モジュール間の接続例を具体的な例を用いて説明する。まず第１に、Ｃモジュール１０３の画像処理を実行しない場合の接続例を図６に示す。この場合、Ｃモジュール１０３を外した画像処理の順序（これをイメージパスという）が構成される。
【００５９】
図６に示すように、この例では、Ａモジュール１０１およびＢモジュール１０２間がＢＭモードで接続され、Ｂモジュール１０２およびＦモジュール１０８間がＰＭ−ＲモードまたはＰＭ−Ｓモードで接続される。
【００６０】
Ａモジュール１０１出力側とＢモジュール１０２入力側とではバンドメモリ１３１が共用され、これを用いてデータ転送が行われる。また、Ｂモジュール１０２出力側とＦモジュール１０８入力側とではページメモリ１３３が共用され、これを用いてデータ転送が行われる。
【００６１】
このように各機能モジュール間で共用したメモリを画像処理メモリ１３上に配置することで、各機能モジュール内部に要求されるメモリ容量を削減することができる。たとえば、バンドメモリ１３１を画像処理メモリ１３上に配置することで、Ａモジュール１０１内部に要求されるメモリ容量を削減することができる。
【００６２】
以上のような機能モジュール間の接続先の切り替えは、接続切替モジュール１１０により行われる。図７にＢＭモードにおける接続切替モジュール１１０の動作説明図を示す。また、図８にＰＭ−Ｒモードにおける接続切替モジュール１１０の動作説明図を示す。なお、図７および図８において、ＷｒｉｔｅＤＭＡ１０１−１は書き込み用のＤＭＡ（Direct Memory Access）であり、ＲｅａｄＤＭＡ１０２−１，１０３−１，１０８−１は読み出し用のＤＭＡである。
【００６３】
まず、図７に示すように、ＢＭモードでは、接続切替モジュール１１０が要求信号（ＲＥＱ＿Ａ）の接続先を要求信号ＲＥＱ＿Ｂ，ＲＥＱ＿Ｆのなかから、また、応答信号（ＡＣＫ＿Ａ）の接続先を応答信号ＡＣＫ＿Ｂ，ＡＣＫ＿Ｆのなかから、いずれかに切り替える。この切替は外部のＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）が接続切替モジュール１１０のレジスタ（図面中Ｒｅｇｉｓｔｅｒと記す）を設定することで実現される。すなわち、ＢＭモードでは、機能モジュール間で要求信号ＲＥＱと応答信号ＡＣＫとがそれぞれ切り替えられる。
【００６４】
一方、図８に示すように、ＰＭ−Ｒモードでは、接続切替モジュール１１０が要求信号（ＲＥＱ＿Ａ）の接続先を要求信号ＲＥＱ＿Ｂ，ＲＥＱ＿Ｆのなかから、いずれかに切り替える。この切替は外部のＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）が接続切替モジュール１１０のレジスタを設定することで実現される。すなわち、ＰＭ−Ｒモードでは、機能モジュール間で要求信号ＲＥＱのみが切り替えられる。
【００６５】
第２に、Ｃモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも早い場合の接続例を図９に示す。ただし、図９に示す接続例と図６に示す接続例との違いは、Ｃモジュール１０３がイメージパス上に存在し、Ｂモジュール１０２前段に配置されているところであるため、この差分の動作のみを説明する。
【００６６】
この場合、Ｃモジュール１０３前段にはバンドと同じ容量のメモリ、すなわちバンドメモリ１３５を実装しておけば、次の画像データが入力されるまでに、Ａモジュール１０１から入力される画像データに画像処理を実施し、これを次の機能モジュールへ転送する処理を完了することが可能となる。
【００６７】
なお、Ａモジュール１０１とＣモジュール１０３間はＢＭモードでの接続が可能である。Ａモジュール１０１出力側とＣモジュール１０３入力側とではバンドメモリ１３５が共用され、これを用いてデータ転送が行われる。このバンドメモリ１３５を画像処理メモリ１３上に配置することで、Ａモジュール１０１内部に要求されるメモリ容量を削減することができる。
【００６８】
第３に、Ｃモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも遅い場合の接続例を図１０に示す。この場合、以下のような制限が付与される。
【００６９】
Ｃモジュール１０３前段にはページメモリを配置しておく必要がある。仮に、Ａモジュール１０１後段にＣモジュール１０３を配置した場合、Ｃモジュール１０３前段にはページメモリが必要になり、Ｂモジュール１０２後段にもページメモリ１３３が必要になるため、２ページ分のページメモリが必要になる。そこで、Ｃモジュール１０３前段のページメモリとＢモジュール１０２後段のページメモリとを共用する。この共用されたメモリがページメモリ１３３である。これにより、１ページ分のメモリ容量で済むことになる。よって、Ｃモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも遅い場合、Ｂモジュール１０２の後段にＣモジュール１０３を配置し、Ｃモジュール１０３およびＦモジュール１０８間をＢＭモードで接続することが好ましい。
【００７０】
なお、Ｂモジュール１０２出力側とＣモジュール１０３入力側とではページメモリ１３３が共用され、これを用いてデータ転送が行われる。このページメモリ１３３を画像処理メモリ１３上に配置することで、Ｂモジュール１０２内部に要求されるメモリ容量を削減することができる。
【００７１】
第４に、Ｂモジュール１０２の処理速度にばらつきがあり、Ｃモジュール１０３の処理速度より速かったり遅かったりする場合の接続例を図１１に示す。この場合も、第３の例と同様に、以下のような制限が付与される。
【００７２】
Ｃモジュール１０３の前段にはページメモリを配置しておく必要がある。仮に、Ａモジュール１０１後段にＣモジュール１０３を配置した場合、Ｃモジュール１０３前段にページメモリが必要になる場合があり、Ｂモジュール１０２後段にもページメモリ１３３が必要になるため、２ページ分のページメモリが必要になる。そこで、第３の例と同様に、Ｃモジュール１０３前段のページメモリとＢモジュール１０２後段のページメモリとを共用する。この共用されたメモリがページメモリ１３３である。これにより、１ページ分のメモリ容量で済むことになる。よって、Ｃモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも遅い場合、Ｂモジュール１０２の後段にＣモジュール１０３を配置し、Ｃモジュール１０３およびＦモジュール１０８間をＢＭモードで接続することが好ましい。
【００７３】
なお、Ｂモジュール１０２出力側とＣモジュール１０３入力側とではページメモリ１３３が共用され、これを用いてデータ転送が行われる。このページメモリ１３３を画像処理メモリ１３上に配置することで、Ｂモジュール１０２内部に要求されるメモリ容量を削減することができる。なお、各機能モジュール間の接続形態は、以上で説明した形態の他にも、種々変形できることは言うまでもない。
【００７４】
次に、各機能モジュール間の詳細な動作を図面とともに説明する。まず第１に、図１２を用いて、Ｂモジュール１０２の処理速度がＡモジュール１０１の処理速度よりも速かった場合の動作を説明する。ただし、特に言及することはないが、機能モジュール間の接続は接続切替モジュール１１０により制御されている。
【００７５】
図１２（ａ）に示すように、Ｂモジュール１０２の入力段であってＡモジュール１０１の出力段にはバンドメモリ１３１が配置される。Ｂモジュール１０２は、図１２（ｂ）に示すようにＡモジュール１０１からの要求信号ＲＥＱを受けて処理を開始する。すなわち、接続切替モジュール１１０で接続された２つの機能モジュール（Ａモジュール１０１およびＢモジュール１０２）のうち前段のＡモジュール１０１は、後段のＢモジュール１０２へ画像データの入力を要求（要求信号ＲＥＱ）する画像入力要求手段を有する。この画像入力要求手段は、ソフトウェア１１１により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段としても機能する。また、要求信号ＲＥＱは例えば一定量の画像データに対する処理が終了した後に出力される。また、後段のＢモジュール１０２は前段のＡモジュール１０１から要求信号ＲＥＱを受信した場合、処理を開始する。この際の流れを図１２（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【００７６】
図１２（ｃ）に示すように、ソフトウェア１１１は、まず、Ｂモジュール１０２へ下記のような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける（ＳＷ１→Ｂ１）。この時点で、Ｂモジュール１０２はＡモジュール１０１から要求信号ＲＥＱがアサートされるのを待機している状態となる。なお、Ｂモジュール１０２に設定される初期化パラメータには、画像処理メモリ１３におけるバンドメモリ１３１の開始アドレスと、バンドメモリ１３１のサイズ（ライン数）とが含まれる。
【００７７】
次に、ソフトウェア１１１は、Ａモジュール１０１へ下記のような初期化パラメータを設定し、Ａモジュール１０１に起動をかける（ＳＷ２→Ａ１）。これにより、Ａモジュール１０１へ画像入力装置９８０から画像データの入力が開始される。Ａモジュール１０１は、これに応じて、入力された画像データの書き込みを開始する。なお、Ａモジュール１０１に設定される初期化パラメータには、画像処理メモリ１３におけるバンドメモリ１３１の開始アドレスと、バンドメモリ１３１のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【００７８】
以上のように書き込みを開始すると、Ａモジュール１０１は、バンドの半分のサイズの画像データを書き込んだ時点で、Ｂモジュール１０２に対して要求信号ＲＥＱをアサートする（Ａ２→Ｂ２）。
【００７９】
一方、Ａモジュール１０１から要求信号ＲＥＱを受信すると、Ｂモジュール１０２は、Ａモジュール１０１がバンドメモリ１３１へ書き込んだ画像データの読み出しを開始する。この際、Ｂモジュール１０２は、バンドの半分のサイズの画像データを読み出す。このように画像データを読み出すと、Ｂモジュール１０２は、Ａモジュール１０１から次の要求信号ＲＥＱが入力されるのを待機する。
【００８０】
以上のようなＡモジュール１０１およびＢモジュール１０２間のデータ転送は、１ページ分の画像データに関して完了するまで繰り返し実行される（Ａ３→Ｂ３〜ＡＮ→ＢＮ）。
【００８１】
このように、Ａモジュール１０１およびＢモジュール１０２間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【００８２】
ただし、例えば図１３に示すように、Ａモジュール１０１が１ページの最終バンドに書き込む画像データのデータ量は、バンドの半分のサイズとは限らない。このため、Ａモジュール１０１は、１ページのライン数分の画像データを書き込み終了した時点で最終バンド書き込みを終了し、要求信号ＲＥＱをＢモジュール１０２へアサートする。これに対し、Ｂモジュール１０２は、１つ前のバンドの画像処理を実施している最中であっても、Ａモジュール１０１から要求信号ＲＥＱがアサートされたことを内部で保持しておき、前のバンドの処理終了直後に、次のバンドに関する画像データの読み出しを開始する。
【００８３】
第２に、図１４を用いて、Ｃモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも早い場合、もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作例を説明する。なお、図１４は、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｒモードで接続された場合の例である。
【００８４】
図１４（ａ）に示すように、Ｃモジュール１０３の入力段であってＢモジュール１０２の出力段にはページメモリ１３３が配置される。Ｃモジュール１０３は、図１４（ｂ）に示すようにＢモジュール１０２からの要求信号ＲＥＱを受けて処理を開始する。すなわち、接続切替モジュール１１０で接続された２つの機能モジュール（Ｂモジュール１０２およびＣモジュール１０３）のうち前段のＢモジュール１０２は、後段のＣジュール１０３へ画像データの入力を要求（要求信号ＲＥＱ）する画像入力要求手段を有する。この画像入力要求手段は、ソフトウェア１１１により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段としても機能する。また、要求信号ＲＥＱは例えば一定量の画像データに対する処理が終了した後に出力される。また、後段のＣモジュール１０３は前段のＢモジュール１０２から要求信号ＲＥＱを受信した場合、処理を開始する。この際の流れを図１４（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【００８５】
図１４（ｃ）に示すように、ソフトウェア１１１は、まず、Ｃモジュール１０３へ下記のような初期化パラメータを設定し、Ｃモジュール１０３に起動をかける（ＳＷ１１→Ｃ１１）。この時点で、Ｃモジュール１０３はＢモジュール１０２から要求信号ＲＥＱがアサートされるのを待機している状態となる。なお、Ｃモジュール１０３に設定される初期化パラメータには、画像処理メモリ１３におけるページメモリ１３３の開始アドレスと、ページメモリ１３３のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【００８６】
次に、ソフトウェア１１１は、Ｂモジュール１０２へ下記のような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける（ＳＷ１２→Ｂ１１）。これにより、Ｂモジュール１０２は、前段に設けられたメモリから画像データを読み出し、これに画像処理を施す。その後、Ｂモジュール１０２は、処理した画像データのページメモリ１３３への書き込みを開始する。なお、Ｂモジュール１０２に設定される初期化パラメータには、画像処理メモリ１３におけるページメモリ１３３の開始アドレスと、ページメモリ１３３のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【００８７】
以上のように書き込みを開始すると、Ｂモジュール１０２は、バンドの半分のサイズの画像データを書き込んだ時点で、Ｃモジュール１０３に対して要求信号ＲＥＱをアサートする（Ｂ１２→Ｃ１２）。
【００８８】
Ｂモジュール１０２から要求信号ＲＥＱを受信すると、Ｃモジュール１０３は、Ｂモジュール１０２がページメモリ１３３へ書き込んだデータの読み出しを開始する。この際、Ｃモジュール１０３は、バンドの半分のサイズのデータを読み出す。このようにデータを読み出すと、Ｃモジュール１０３は、Ｂモジュール１０２から次の要求信号ＲＥＱが入力されるのを待機する。
【００８９】
以上のようなＢモジュール１０２およびＣモジュール１０３間のデータ転送は、１ページ分のデータがＣモジュール１０３へ入力されるまで繰り返し実行される（Ｂ１３→Ｃ１３〜Ｂ１Ｎ→Ｃ１Ｎ）。
【００９０】
このように、Ｂモジュール１０２およびＣモジュール１０３間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【００９１】
ただし、図１３で示した例と同じように、Ｂモジュール１０２が１ページの最終バンドに書き込む画像データのデータ量は、バンドの半分のサイズとは限らない。このためＢモジュール１０２は、１ページのライン数分の画像データを書き込み終了した時点で最終バンド書き込みを終了し、要求信号をＣモジュール１０３へアサートする。これに対し、Ｃモジュール１０３は、バンドの画像処理を実施している最中であっても、Ｂモジュール１０２から要求信号ＲＥＱがアサートされたこと内部で保持しておき、前のバンドの圧縮処理終了直後に、次のバンドに関する回転画像データの読み出しを開始する。
【００９２】
第３に、図１５を用いて、Ｃモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも遅い場合、もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作の他の例を説明する。なお、図１５は、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｒモードで接続された場合の他の例である。
【００９３】
図１５（ａ）に示すように、Ｃモジュール１０３の入力段であってＢモジュール１０２の出力段にはページメモリ１３３が配置される。Ｃモジュール１０３は、図１５（ｂ）に示すようにＢモジュール１０２からの要求信号ＲＥＱを受け付けて処理を開始する。すなわち、接続切替モジュール１１０で接続された２つの機能モジュール（Ｂモジュール１０２およびＣモジュール１０３）のうち前段のＢモジュール１０２は、後段のＣモジュール１０３へ画像データの入力を要求（要求信号ＲＥＱ）する画像入力要求手段を有する。この画像入力要求手段は、ソフトウェア１１１により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段としても機能する。また、要求信号ＲＥＱは例えば１ページ分の画像データに対する処理が終了した後に出力される。また、後段のＣモジュール１０３は前段のＢモジュール１０２から要求信号ＲＥＱを受信した場合、処理を開始する。この際の流れを図１５（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【００９４】
図１５（ｃ）に示すように、ソフトウェア１１１はは、まず、Ｃモジュール１０３へ上述したような初期化パラメータを設定し、Ｃモジュール１０３に起動をかける（ＳＷ２１→Ｃ２１）。この時点で、Ｃモジュール１０３はＢモジュール１０２から要求信号ＲＥＱがアサートされるの待機している状態となる。なお、上述した初期化パラメータとは図１４の説明においてＣモジュール１０３へ設定した初期化パラメータである。
【００９５】
次に、ソフトウェア１１１は、Ｂモジュール１０２へ上述したような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける（ＳＷ２２→Ｂ２１）。これにより、Ｂモジュール１０２は、前段に設けられたメモリから画像データを読み出し、これに画像処理を施す。その後、Ｂモジュール１０２は、処理した画像データのページメモリ１３３への書き込みを開始する。なお、上述した初期化パラメータとは図１４の説明においてＢモジュール１０２へ設定した初期化パラメータである。
【００９６】
以上のように書き込みを開始後、Ｂモジュール１０２は、１ページ分の画像データを書き込んだ時点で、Ｃモジュール１０３に対して要求信号ＲＥＱをアサートする（Ｂ２２→Ｃ２２）。
【００９７】
Ｂモジュール１０２から要求信号ＲＥＱを受信すると、Ｃモジュール１０３は、ページメモリ１３３へ書き込まれた画像データの読み出しを開始し、１ページ分の画像データに対する別の画像処理を実行する。
【００９８】
このように、Ｂモジュール１０２およびＣモジュール１０３間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【００９９】
第４に、図１６を用いて、Ｃモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも遅い場合、もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作の他の例を説明する。なお、図１６は、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｓモードで接続された場合の例である。
【０１００】
図１６（ａ）に示すように、Ｃモジュール１０３の入力段であってＢモジュール１０２の出力段にはページメモリ１３３が配置される。Ｃモジュール１０３は、図１６（ｂ）に示すようにＢモジュール１０２からの要求信号ＲＥＱではなく、ソフトウェア（Ｓ／Ｗ）１１１からの命令により起動し、処理を開始する。この際の流れを図１６（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【０１０１】
図１６（ｃ）に示すように、ソフトウェア１１１は、まず、Ｂモジュール１０２へ上述したような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける（ＳＷ３１→Ｂ３１）。これにより、Ｂモジュール１０２は、Ａモジュール１０１から入力された画像データに画像処理を施す。その後、Ｂモジュール１０２は、処理した画像データのページメモリ１３３への書き込みを開始する。なお、上述した初期化パラメータとは図１４の説明においてＢモジュール１０２へ設定した初期化パラメータである。
【０１０２】
以上のように書き込みを開始後、Ｂモジュール１０２は、１ページ分の画像データを書き込んだ時点で、終了割り込みを発生させ、これをソフトウェア１１１、すなわちＣＰＵ１１に通知する（Ｂ３２→ＳＷ３２）。
【０１０３】
ＣＰＵ１１は、Ｂモジュール１０２から割り込みの通知を受けると、Ｃモジュール１０３の初期化パラメータを設定し、Ｃモジュール１０３に起動をかける（ＳＷ３３→Ｃ３１）。これに対し、Ｃモジュール１０３は、ページメモリ１３３へ書き込まれた画像データの読み出しを開始し、１ページ分の画像データに対する別の画像処理を実行する。
【０１０４】
このように、Ｂモジュール１０２およびＣモジュール１０３間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【０１０５】
第５に、図１７を用いて、Ｂモジュール１０２の処理速度がＣモジュール１０３の処理速度に対してばらつく場合の動作例を説明する。なお、図１７はＢモジュール１０２およびＣモジュール１０３間がＰＭ−Ｒモードで接続された場合の例である。
【０１０６】
図１７（ａ）に示すように、Ｃモジュール１０３の入力段であってＢモジュール１０２の出力段にはページメモリ１３３が配置される。Ｃモジュール１０３は、図１７（ｂ）に示すようにＢモジュール１０２からの要求信号ＲＥＱを受けて処理を開始する。ただし、１回の要求信号ＲＥＱに対してＣモジュール１０３が読み出す画像データの量は例えば６４Ｂｙｔｅ分である。そこで、Ｂモジュール１０２は、１ページ分の画像データを読み出すための要求信号ＲＥＱをまとめてＣモジュール１０３に入力する。Ｃモジュール１０３は入力された要求信号ＲＥＱをカウントし、カウント数分の画像データを読み出す。この際の流れを図１７（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【０１０７】
図１７（ｃ）に示すように、ソフトウェア１１１は、まず、Ｃモジュール１０３へ下記のような初期化パラメータを設定し、Ｃモジュール１０３に起動をかける（ＳＷ４１→Ｃ４１）。この時点で、Ｃモジュール１０３はＢモジュール１０２から要求信号ＲＥＱがアサートされるのを待機している状態となる。なお、Ｃモジュール１０３に設定される初期化パラメータには、画像処理メモリ１３におけるページメモリ１３３の開始アドレスと、ページメモリ１３３のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【０１０８】
次に、ソフトウェア１１１は、Ｂモジュール１０２へ下記のような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける（ＳＷ４２→Ｂ４１）。これにより、Ｂモジュール１０２は、前段に設けられたメモリから画像データを読み出し、これに画像処理を施す。その後、Ｂモジュール１０２は、画像処理済みの画像データの書き込みを開始する。なお、Ｂモジュール１０２に設定される初期化パラメータには、画像処理メモリ１３におけるページメモリ１３３の開始アドレスと、ページメモリ１３３のサイズとが含まれる。
【０１０９】
以上のように書き込みを開始すると、Ｂモジュール１０２は、小容量（例えば６４バイト）を書き込んだ時点で、要求信号ＲＥＱをＣモジュール１０３に対しアサートする（Ｂ４２→Ｃ４２〜Ｂ４５→Ｃ４５）。これに対し、Ｃモジュール１０３は、１回目の要求信号ＲＥＱのアサートを受け付け、Ｂモジュール１０２が書き込んだ画像データの読み込みを開始すると共に、以降連続して受け付けた要求信号ＲＥＱの回数をカウントする。その後、Ｃモジュール１０３はカウントした要求信号ＲＥＱ分の画像データを読み出し、それが完了すると、次の要求信号ＲＥＱが入力される（Ｂ４６→Ｃ４６）まで待機する。
【０１１０】
これは、Ｂモジュール１０２の処理速度がＣモジュール１０３の処理速度よりも速い可能性がある場合、すなわち、読み出しが書き込みに追いつけない可能性がある場合、Ｂモジュール１０２は小容量のデータ書き込みが完了した時点でＣモジュール１０３に対して要求信号ＲＥＱをアサートするが、Ｃモジュール１０３はＢモジュール１０２が１回の要求信号ＲＥＱを出力後、確実に１回の読み出しができない状況も想定されるためである。これを解決するために、Ｃモジュール１０３内部には、要求信号ＲＥＱがアサートされた回数を保持しておくためのカウンタが内蔵され、Ｂモジュール１０２が要求した要求信号ＲＥＱの回数分だけ読み出しを実施するように構成される。なお、タンデムエンジンの場合は複数ページ分のカウンタが必要になる場合もあるなど、要求されるカウンタの数は構成に依存する。ＣＰＵ１１はＣモジュール１０３の初期化時にこれらカウンタをクリア後、Ｃモジュール１０３に起動をかけることになる。
【０１１１】
このように、Ｂモジュール１０２およびＣモジュール１０３間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【０１１２】
第６に、図１８を用いて、Ｃモジュール１０３の処理速度がＦモジュール１０８の処理速度よりも早く且つバンド接続が要求される場合の動作を説明する。また、図１９に、データ書き込みおよびデータ読み出しと、各信号とのタイミングチャートを示す。
【０１１３】
図１８（ａ）に示すように、Ｆモジュール１０８の入力段であってＣモジュール１０３の出力段にはバンドメモリ１３５が配置される。Ｆモジュール１０８は、図１８（ｂ）に示すようにＣモジュール１０３からの要求信号ＲＥＱを受けて処理を開始する。すなわち、接続切替モジュール１１０で接続された２つの機能モジュール（Ｃモジュール１０３およびＦモジュール１０８）のうち前段のＣモジュール１０３は、後段のＦモジュール１０８へ画像データの入力を要求（要求信号ＲＥＱ）する画像入力要求手段を有する。この画像入力要求手段は、ソフトウェア１１１により接続された２つの機能モジュールのうち一方の機能モジュールが単位容量の画像処理を終了したことを他方の機能モジュールに通知するための処理終了通知手段としても機能する。また、要求信号ＲＥＱは例えば一定量の画像データに対する処理が終了した後に出力される。また、後段のＦモジュール１０８は前段のＣモジュール１０３から要求信号ＲＥＱを受信した場合、これの応答信号ＡＣＫをＣモジュール１０３へ入力すると共に、処理を開始する。前段のＣモジュール１０３はＦモジュール１０８から応答信号ＡＣＫを受信すると、次の画像データに対して処理を開始し、これをバンドメモリ１３５に書き込む。この流れを図１８（ｃ）に示す。なお、以下の動作は、ＣＰＵ１１で実行されたソフトウェア（Ｓ／Ｗ）１１１において制御される。
【０１１４】
図１８（ｃ）に示すように、ソフトウェア１１１は、まず、Ｆモジュール１０８へ下記のような初期化パラメータを設定し、Ｆモジュール１０８に起動をかける（ＳＷ５１→Ｆ５１）。この時点で、Ｆモジュール１０８はＣモジュール１０３から要求信号ＲＥＱをアサートされるのを待機している状態となる。なお、Ｆモジュール１０８に設定される初期化パラメータには、画像処理メモリ１３におけるバンドメモリ１３５の開始アドレスと、バンドメモリ１３５のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【０１１５】
次に、ソフトウェア１１１は、Ｃモジュール１０３へ下記のような初期化パラメータを設定し、Ｃモジュール１０３に起動をかける（ＳＷ５２→Ｃ５１）。これにより、Ｃモジュール１０３は、前段に設けられたメモリから画像データを読み出し、これに画像処理を施す。その後、Ｃモジュール１０３は、処理済みの画像データの書き込みを開始する。なお、Ｃモジュール１０３に設定される初期化パラメータには、画像処理メモリ１３におけるバンドメモリ１３５の開始アドレスと、バンドメモリ１３５のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【０１１６】
以上のように書き込みを開始すると、Ｃモジュール１０３は、バンドサイズの画像データを書き込んだ時点で、Ｆモジュール１０８に対して要求信号ＲＥＱをアサートする（Ｃ５２→Ｆ５２）。
【０１１７】
一方、Ｃモジュール１０３から要求信号ＲＥＱを受信すると、Ｆモジュール１０８は、Ｃモジュール１０３へ応答信号ＡＣＫをアサートする（Ｆ５３→Ｃ５３）と共に、Ｃモジュール１０３がバンドメモリ１３５へ書き込んだデータの読み出しを開始する。
【０１１８】
また、Ｃモジュール１０３によるバンドメモリ１３５への書き込みが終了すると、Ｆモジュール１０８は、図１９に示すように、最初のバンド（図１９中、1st Bandと記載）の読み出しを終了するのを待つ。この際、Ｃモジュール１０３はＦモジュール１０８へ要求信号ＲＥＱをアサートする（Ｃ５４→Ｆ５４）。なお、Ｆモジュール１０８が最初のバンドの読み出しを終了するタイミングは、図１９示すように、２番目のバンドの読み出しの開始を示す２つ目の応答信号ＡＣＫのアサート（Ｆ５５→Ｃ５５）で検知することができる。
【０１１９】
Ｆモジュール１０８が最初のバンドの読み出しを終了すると、Ｃモジュール１０３は最初のバンドのデータを書き込んだ位置に３番目のバンドのデータの書き込みを開始する。この書き込みを終了すると、Ｃモジュール１０３は、Ｆモジュール１０８へ要求信号ＲＥＱをアサートして読み出し要求を出す（Ｃ５６→Ｆ５６）。
【０１２０】
以上のようなＣモジュール１０３及びＦモジュール１０８間のデータ転送は、１ページ分の画像データが転送されるまで継続される（Ｃ５２→Ｆ５２〜Ｆ５Ｎ→Ｃ５Ｎ）。その後、Ｆモジュール１０８は、１ページ分の画像データを書き込んだ時点で、終了割り込みを発生させ、これをソフトウェア１１１、すなわちＣＰＵ１１に通知する（Ｆ５Ｎ＋１→ＳＷ５３）。
【０１２１】
このように、Ｃモジュール１０３およびＦモジュール１０８間では、１ページ分の画像データに関して処理が完了するまで、パラメータの再設定がなされない。このため、高速な処理を実現することができる。
【０１２２】
ただし、例えば図１３に示した例と同様に、Ｃモジュール１０３が１ページの最終バンドに書き込む画像データのデータ量は、バンドの半分のサイズとは限らない。このため、Ｃモジュール１０３は、１ページのライン数分の画像データを書き込み終了した時点で最終バンド書き込みを終了し、要求信号ＲＥＱをＦモジュール１０８へアサートする。これに対し、Ｆモジュール１０８は、前のバンドの出力を実行している最中であっても、Ｃモジュール１０３から要求信号ＲＥＱがアサートされたことを内部で保持しておき、前のバンドの処理終了直後に、次のバンドの出力を開始する。
【０１２３】
また、Ｆモジュール１０８は、画像出力装置９９０の同期信号に同期して画像データを出力するが、一方、Ｃモジュール１０３と画像出力装置９９０とは非同期に動作している。このため、両モジュール間の速度差を吸収するために、Ｃモジュール１０３と画像出力装置９９０との間にバンドメモリ１３５を設けている。なお、画像出力装置９９０の速度がＣモジュール１０３よりも速い場合、バンドメモリ１３５の容量は大きく取ることが好ましい。一方、画像出力装置９９０の速度がＣモジュール１０３よりも遅い場合、バンドメモリ１３５の容量は小さく取ることができる。ここで、バンドメモリ１３５の容量を計算するための計算式の一例を以下の式１に示す。
【０１２４】
【数１】
2006094400.tif 000003
【０１２５】
なお、式１において、ＰＣは１ページの容量であり、ＰＩＯＴは画像出力装置９９０の速度であり、ＰＤはＤモジュールの速度であり、αはＦモジュール１０８内部に蓄積できる画像メモリの容量である。
【０１２６】
以上のように構成及び動作することで、本実施例によれば、パラメータの再設定を必要とすることなく、任意の順序でリアルタイムに画像処理を実行することが可能となる。
【０１２７】
また、従来技術として触れた特許文献１では、機能モジュールの前段と後段にページメモリが必要となるという問題が存在する。すなわち、モノクロモードの場合、各機能モジュールに２ページ（前段１ページ、後段１ページ）分のページメモリが必要となり、カラーモードの場合、各機能モジュールに５ページ（前段１ページ、後段４ページ）分のページメモリが必要となる。一方、同じく従来技術として触れた特許文献２では、一旦画像データを蓄積後に拡大・縮小や回転処理を行うため、これをリアルタイム処理しようとする場合、２ページ（前段１ページ、後段１ページ）または５ページ（前段１ページ、後段４ページ）分のページメモリが必要となるという問題が存在する。このように、例示した特許文献１，２による従来技術では、ソフトウェアによる機能モジュール間におけるデータ転送の同期制御が必要となるため、バンドバッファを介して機能モジュール間におけるデータ転送を実現するためには、機能モジュールの処理時間よりもソフトウェアによるオーバヘッド時間が非常に長くなる状況を避けるために、ソフトウェアの処理オーバヘッド時間が無視できる程度のバンドバッファ容量が必要になるという問題が存在する。これに対し、本実施例によれば、ページメモリや速度緩衝用バッファを各機能モジュール間で共有のメモリとすることが可能となるため、メモリ容量を低減することができると共に、ソフトウェアによるパラメータの再設定が不要となるため、ソフトウェアの処理オーバヘッドをなくすことができる。さらに、各機能モジュールに必要となる非同期緩衝用メモリ容量も削減することができるため、結果としてデバイスサイズを縮小でき、かつデバイスコストも低減することができる。
【実施例２】
【０１２８】
次に、本発明の実施例２について図面を用いて詳細に説明する。尚、以下の説明において、実施例１と同様の構成については、同一の符号を付し、その詳細な説明を省略する。また、特記しない事項に関しては実施例１と同様である。
【０１２９】
例えば、実施例１示した構成において、Ｃモジュール１０３へデータを入力するためのＤＭＡを、これに実装されているカウンタのページ数を超えるようなＩＯＴ（Image Output Terminal）、すなわち画像出力装置９９０へ接続する場合、連続ページ印刷を途中（カウンタページ数分）で止めなければならない場合があり、ＩＯＴの生産性を最大限に発揮することができないことがある。また、実施例１では、タンデムエンジンに対応するために、ドラム間ギャップに走行する印刷用紙の枚数に１枚分を加えたカウンタを設けなければならない場合がある。
【０１３０】
以上のような場合に対処するためには、大型のＩＯＴまでをカバーできる枚数分のカウンタをＤＭＡに実装しておく必要があるが、この構成は小型のＩＯＴにとっては冗長な回路となり、結果的に回路規模が増大してしまう場合がある。
【０１３１】
図２０に、上記のような場合の画像処理デバイスの構成を示す。図２０に示すように、この例による画像処理デバイスは、Ｂモジュール１０２と、Ｂモジュール１０２の出力段に設けられたＤＭＡ１０２−２と、Ｃモジュール１０３と、Ｃモジュール１０３の入力段に設けられたＤＭＡ１０３−２と、ＤＭＡ１０３−２に設けられたカウンタ１０３−３と、ＤＭＡ間のアクセスを調停する調停回路８００と、画像処理メモリ１３とを有する。なお、Ｃモジュール１０３およびこれの出力段に設けられたＤＭＡ１０３−２は、例えば色成分がＹＭＣＫなどのように複数ある場合、この色成分の数だけ設けられる。
【０１３２】
調停回路８００はＤＭＡ１０２−２とＤＭＡ１０３−２とを接続するバスに接続され、これを介したデータの入出力を調停する。
【０１３３】
ここで、図２１に、Ｋ色用の印刷エンジンで１ページ目を印刷中であって、Ｙ色用の印刷エンジンで４ページ目の印刷を開始している状況を示す。図２１に示す状況では、４ページ目のコードデータはすでにページメモリ１３ａ上に書き込みが行われている最中である。したがって、このような状況では、図２０に示す構成において、Ｋ色用のＤＭＡ１０３−２のカウンタ１０３−３に４ページ分のカウンタを実装しておく必要がある。したがって、この構成では、４ページを超える枚数分のＩＯＴ２５０を用いて印刷をしようとすると、４ページのコードを入力する度に、Ｋ色の１ページ目の印刷終了を待ってから、５ページ目のコードデータの生成を開始する必要がある。このため、自動原稿送り装置（ＡＤＦ）から順次スキャンしてコピーする場合では、４ページごとに一度スキャン動作を止めなければならない状況が発生する。このような場合に対処するには、色成分毎に設けられたカウンタ１０３−３がカウント可能な数を増やす必要があるが、これでは回路規模が冗長されてしまう。
【０１３４】
このような問題を解決するために、本実施例では、追い越し防止回路を実装する。追い越し防止回路とは、例えばＢモジュール１０２のコード出力用のＤＭＡ１０２−２と、Ｃモジュール１０３のコード入力用のＤＭＡ１０３−２とを予め起動しておき、ＤＭＡ１０２−２からのコード出力が行われた後にＤＭＡ１０３−２からのコード入力要求を受け付けるための回路である。これにより、連続ページ印刷を途中で止める必要を回避することができ、最小限の回路規模でＩＯＴの生産性を最大限に発揮させることができる。なお、この追い越し防止回路は、画像処理メモリ１３に内蔵させるのが良い。これにより、装置の大型化を防ぐことができる。
【０１３５】
図２２に、本実施例による追い越し防止機能（追い越し防止回路）を有する調停回路２００を設けた場合の構成を示す。図２２に示すように、本実施例による構成は、画像処理メモリ１３と、画像処理メモリ１３を複数領域（バンドメモリ１３１および１３５、ページメモリ１３３など）に分割して各分割領域の画像データを処理するように設けられたＢモジュール１０２およびＣモジュール１０３とを有する。
【０１３６】
Ｂモジュール１０２の出力段には、前段のメモリから読み出した画像データをページメモリ１３３へ転送するためのＤＭＡ１０２−２が設けられている。また、Ｃモジュール１０３の入力段には、ページメモリ１３３に保持された画像データをＣモジュール１０３へ転送するためのＤＭＡ１０３−２が設けられている。すなわち、各機能モジュールの出力段には、当該機能モジュールで画像処理した画像データを転送するための転送手段であるＤＭＡが設けられており、また、各機能モジュールの入力段には、蓄積手段であるページメモリ１３３に蓄積された画像データを転送する（または読み出す）ための転送手段であるＤＭＡが設けられている。
【０１３７】
画像処理メモリ１３の入力段には追い越し防止機能が内蔵された調停回路２００が設けられる。調停回路２００は各ＤＭＡからのページメモリ１３３へのアクセスを調停するためのものである。調停回路２００へは、ページメモリ１３３へのアクセス要求と共に、このアクセス要求したＤＭＡを一意に識別するための識別信号（図面中ＩＤ信号と記す）が入力される。調停回路２００は、この識別信号に基づいてページメモリ１３３へのアクセスを調停する。
【０１３８】
画像処理メモリ１３は、実施例１と同様に、バンドメモリ１３１および１３５と、ページメモリ１３３とを含む領域に分割される。
【０１３９】
次に、図２３を用いて調停回路２００の構成を説明する。図２３に示すように、調停回路２００は調停制御部２０１とアドレス保持部２０２とを有する。調停制御部２０１には、各ＤＭＡから自己を識別するための識別信号が入力され、アドレス保持部２０２に保持されたアドレスと、後段の機能モジュール（図２３ではＣモジュール１０３）からの読み出し要求アドレスとの大小を比較し、後段のモジュールからの要求アドレスの方が小さい場合のみ、該当する機能モジュール（前段の機能モジュール）からの読み出し要求を受け付ける。また、アドレス保持部２０２は、前段の機能モジュール（図２３ではＢモジュール１０２）の出力段に設けられたＤＭＡ１０２−２が出力したアドレスを保持する。すなわち、ＤＭＡ１０２−２からアクセス要求がさなれた際のアドレスを保持する。
【０１４０】
次に、各ＤＭＡ１０２−２，１０３−２と、調停制御部２０１およびアドレス保持部２０２と、ＣＰＵ１１との間で入出力される信号について、図２４と共に説明する。図２４に示すように、各ＤＭＡ１０２−２，１０３−２から調停制御部２０１へは要求信号ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃと共に、自己を識別するための識別信号ＩＤ＿Ｂ，ＩＤ＿Ｃが入力される。これに対し、調停制御部２０１から各ＤＭＡへは、応答信号ＡＣＫ＿Ｂ，ＡＣＫ＿Ｃがそれぞれ入力される。また、ＤＭＡ１０２−２からＣＰＵ１１へは初期化信号ＩＮＴが入力される。また、ＤＭＡ１０２−２から入力された転送開始アドレスＷＥはアドレス保持部２０２に入力され、保持される。
【０１４１】
次に、各機能モジュールの動作を、図２５に示す各信号のタイミングチャートを用いて説明する。図２５に示すように、初期状態でアドレス保持部２０２にはアドレス初期値０が保持されている。そこで、ソフトウェア、すなわちＣＰＵ１１によりＣモジュール１０３が初期化され、Ｃモジュール１０３に起動がかけられると、ＤＭＡ１０３−２は、調停制御部２０１へ要求信号ＲＥＱ＿Ｃと識別信号ＩＤ＿Ｃとを入力する。この要求信号ＲＥＱ＿Ｃおよび識別信号ＩＤ＿Ｃは、一定量のコードデータの読み出しが完了するまでＨｉｇｈの状態が保たれる。
【０１４２】
次に、ＣＰＵ１１によりＢモジュール１０２が初期化され、Ｂモジュール１０２に起動がかけられると、ＤＭＡ１０２−２は、調停制御部２０１へ要求信号ＲＥＱ＿Ｂと識別信号ＩＤ＿Ｂとを入力すると共に、画像処理した画像データのページメモリ１３３への書き込みを開始する。
【０１４３】
このようにＣＰＵ１１は、予めＤＭＡ１０３−２および１０２−２を起動しておく。なお、この起動は、例えば調停制御部２０１がＣＰＵ１１へ要求することで実行される。したがって、調停制御部２０１が予めＤＭＡ１０３−２および１０２−２を起動しておく起動手段を有すると換言することもできる。
【０１４４】
一方、要求信号ＲＥＱ＿Ｂおよび識別信号ＩＤ＿Ｂが入力されると、調停制御部２０１は、応答信号ＡＣＫ＿ＢをＤＭＡ１０２−２へアサートすると共に、ＤＭＡ１０２−２から入力された転送開始アドレスＷＥをアドレス保持部２０２へ入力する。これにより、アドレス保持部２０２に保持されたアドレスが更新される。
【０１４５】
その後、ＤＭＡ１０２−２は、ページメモリ１３３への一定量の画像データの書き込みが完了する度に要求信号ＲＥＱ＿Ｂおよび識別信号ＩＤ＿Ｂを調停制御部２０１へ入力する。これに対し調停制御部２０１は、応答信号ＡＣＫ＿ＢをＤＭＡ１０２−２へアサートすると共に、ＤＭＡ１０２−２から入力された転送開始アドレスＷＥをアドレス保持部２０２へ入力し、アドレスを更新する。
【０１４６】
また、調停制御部２０１は、ＤＭＡ１０３−２へ一定量のコードデータが転送されると、ＤＭＡ１０３−２へ応答信号ＡＣＫ＿Ｃを入力する。これに対しＤＭＡ１０３−２は、一時、要求信号ＲＥＱ＿Ｃおよび識別信号ＩＤ＿ＣをＬｏｗ状態とした後、再度Ｈｉｇｈ状態とする。これにより、次の一定量の画像データのＤＭＡ１０３−２への転送が開始される。以降、１ページ分の画像データがＤＭＡ１０３−２へ転送されるまで、この動作を繰り返す。
【０１４７】
その後、１ページ分の画像データを転送完了すると、ＤＭＡ１０２−２は転送終了割り込みＩＮＴをＣＰＵ１１へ入力する。これにより、次のページに関する転送サイズの確認と、メモリ容量の再確保と、ＤＭＡ１０２−２の再起動とが行われる。
【０１４８】
次に、各機能モジュールの動作を説明する。ＣＰＵ１１で実行されたソフトウェア１１１は、まず、Ｃモジュール１０３へ下記のような初期化パラメータを設定し、Ｃモジュール１０３に起動をかける。このように起動をかけられると、Ｃモジュール１０３は、画像データの有無に関わらず、要求信号ＲＥＱ＿Ｃを調停制御部２０１へ出し続ける。これに対し、調停制御部２０１は、Ｃモジュール１０３からの要求信号ＲＥＱ＿Ｃを拒絶（ブロック）する。これは、Ｃモジュール１０３から要求されているアドレスが、アドレス保持部２０２において保持されているアドレス（初期値）と同じ値を示しているためである。したがって、調停制御部２０１はＣモジュール１０３に対する応答信号ＡＣＫをアサートせず、結果としてＣモジュール１０３は動作を開始することができない。なお、Ｃモジュール１０３に設定される初期化パラメータには、画像処理メモリ１３におけるページメモリ１３３の開始アドレスと、ページメモリ１３３のサイズとが含まれる。
【０１４９】
次に、ソフトウェア１１１は、Ｂモジュール１０２へ下記のような初期化パラメータを設定し、Ｂモジュール１０２に起動をかける。これにより、Ｃモジュール１０３は、前段に設けられたメモリから画像データを読み出し、これに画像処理を施す。その後、Ｃモジュール１０３は、ある一定量（例えば６４Ｋｂｙｔｅ分）の画像データに対して処理が完了すると、この処理済みの画像データのページメモリ１３３への書き込みを開始する。これにより、アドレス保持部２０２において保持されているアドレスがＢモジュール１０２が発行したアドレスの値に書き込んだデータ量分を加算した値に更新される。なお、Ｃモジュール１０３に設定される初期化パラメータには、画像処理メモリ１３におけるバンドメモリ１３５の開始アドレスと、バンドメモリ１３５のサイズ（ライン数）と、１ページのサイズ（ライン数）とが含まれる。
【０１５０】
ここで加算する値は固定値であってもよい。これは、例えばＢモジュール１０２とＣモジュール１０３との間で行うデータ転送でやりとりするデータ量を、予めシステム上の決め事としてある一定量（例えば６４Ｂｙｔｅ）に定めておくことで実現することができる。なぜなら、ある一定値とすることで、次に画像データが書き込まれるアドレスを前もって算出することができるためである。
【０１５１】
その後、Ｃモジュール１０３が要求するアドレスが、アドレス保持部２０２に保持されているアドレスよりも小さな値になると、調整制御部２０１はＣモジュール１０３からの要求信号ＲＥＱ＿Ｃを受け付け、これに対する応答信号ＡＣＫ＿ＣをＣモジュール１０３へ入力する。これを受け、Ｃモジュール１０３は、前段のメモリから画像データを読み出し、これに画像処理を施す。また、応答信号ＡＣＫ＿Ｃを受信したＣモジュール１０３は、即座に次の要求信号ＲＥＱ＿Ｃを調停制御部２０１へ入力する。ただし、要求するアドレスがアドレス保持部２０２に保持されているアドレスと同じ値であるため、この要求はアドレス保持部２０２のアドレスが更新されるまで拒絶される。
【０１５２】
以上の動作はＣＰＵ１１がコードデータの終了符号を検知するまで繰り返し実行され、Ｂモジュール１０２及びＣモジュール１０３間のデータ転送が継続される。
【０１５３】
このように本実施例は、調停回路に追い越し防止の機能が付加されていることを特徴としている。これにより、Ｃモジュール１０３に要求信号ＲＥＱをカウントするカウンタを複数ページ分実装する必要がなくなり、装置規模を縮小することが可能となる。なぜなら、調停回路に実装されているアドレスレジスタの値よりも小さな値である場合に限り、伸長器からのコードデータ読み出しを受け付けるような調停回路が実装されているためである。
【０１５４】
以上のように動作後、コードデータの終了符号を検知すると、Ｂモジュール１０２はソフトウェア１１１へ終了割り込みを行う。このように終了割り込みが行われると、ソフトウェア１１１、すなわちＣＰＵ１１はＢモジュール１０２のステータス情報を確認する。ステータス情報を確認後、ＣＰＵ１１は、所定容量分の画像処理が未終了である場合、Ｂモジュール１０２のＤＭＡ１０２−２の転送開始アドレスを更新し、かつ転送サイズを再設定してＤＭＡ１０２−２に再起動をかける。一方、圧縮が終了している場合、終了処理を実行する。
【０１５５】
以上のように、Ｂモジュールの出力用のＤＭＡと、Ｃモジュールの入力用のＤＭＡとを予め起動しておき、出力用ＤＭＡからの画像処理済データ出力が行われた後に入力用ＤＭＡからのデータ入力要求を受け付けるように構成することで、連続ページ印刷を途中で止める必要を回避することができ、最小限の回路規模でＩＯＴの生産性を最大限に発揮させることができる。なお、他の構成、動作およびその効果は実施例１と同様であるため、ここでは説明を省略する。
【０１５６】
以上、説明した実施例１は本発明を実施するための最良の形態の一つにすぎず、本発明はその趣旨を逸脱しない限り種々変形して実施可能である。
【０１５７】
また、上記実施例１は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、これらの実施例を種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施例が可能であることは上記記載から自明である。
【図面の簡単な説明】
【０１５８】
【図１】従来技術による画像処理デバイス９００の構成を示すブロックッ図である。
【図２】本発明の実施例１による画像処理デバイス１００の構成を示すブロック図である。
【図３】本発明の実施例１による画像処理デバイス１００および画像処理メモリ１３の詳細な構成を示すブロック図である。
【図４】本発明の実施例１による画像処理デバイス１００および画像処理メモリ１３で実現される機能モジュールの構成を示すブロック図である。
【図５】本発明の実施例１による画像処理メモリ１３内にマッピングされた領域の例を示す図である。
【図６】本発明の実施例１による画像処理デバイス１００における各機能モジュール間の接続例であってＣモジュール１０３の機能を使用しない場合のモジュール間接続例を示すブロック図である。
【図７】本発明の実施例１においてＢＭモードで動作する接続切替モジュール１１０を説明するための図である。
【図８】本発明の実施例１においてＰＭ−Ｒモードで動作する接続切替モジュール１１０を説明するための図である。
【図９】本発明の実施例１による画像処理デバイス１００における各機能モジュール間の接続例であってＣモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも速い場合のモジュール間接続例を示すブロック図である。
【図１０】本発明の実施例１による画像処理デバイス１００における各機能モジュール間の接続例であってＣモジュール１０３の処理速度がＡモジュール１０１の処理速度よりも遅い場合のモジュール間接続例を示すブロック図である。
【図１１】本発明の実施例１による画像処理デバイス１００における各機能モジュール間の接続例であってＢモジュール１０２の処理速度がＣモジュール１０３の処理速度よりも速かったり遅かったりする（ばらつきがある）場合のモジュール間接続例を示すブロック図である。
【図１２】本発明の実施例１においてＢモジュール１０２の処理速度がＡモジュール１０１の処理速度よりも速かった場合の動作を説明するための図である。
【図１３】Ａモジュール１０１がバンドに書き込む画像データのデータ量を説明するための図である。
【図１４】本発明の実施例１においてＣモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも遅い場合もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作例を説明するための図であり、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｒモードで接続された場合の例である。
【図１５】本発明の実施例１においてＣモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも遅い場合もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作の他の例を説明するための図であり、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｒモードで接続された場合の他の例である。
【図１６】本発明の実施例１においてＣモジュール１０３の処理速度がＢモジュール１０２の処理速度よりも遅い場合もしくはＢモジュール１０２の処理を行う際にページメモリが必要になる場合の動作の他の例を説明するための図であり、Ｂモジュール１０２およびＣモジュール１０３間がＰＭ−Ｓモードで接続された場合の例である。
【図１７】本発明の実施例１においてＢモジュール１０２の処理速度がＣモジュール１０３の処理速度に対してばらつく場合の動作例を説明するための図である。
【図１８】本発明の実施例１においてＣモジュール１０３の処理速度がＦモジュール１０８の処理速度よりも早く且つバンド接続が要求される場合の動作を説明するための図である。
【図１９】図１８におけるデータ書き込みおよびデータ読み出しと各信号とのタイミングチャートである。
【図２０】本発明の実施例２による調停回路２００を持たない画像処理デバイスの構成を示すブロック図である。
【図２１】図２０においてＫ色用の印刷エンジンで１ページ目を印刷中であってＹ色用の印刷エンジンで４ページ目の印刷を開始している状況を示す図である。
【図２２】本発明の実施例２による調停回路２００を有する画像処理デバイスの構成を示すブロック図である。
【図２３】本発明の実施例２による調停回路２００の構成を示すブロック図である。
【図２４】ＤＭＡ１０２−２および１０３−２と調停制御部２０１とアドレス保持部２０２とＣＰＵ１１との間で入出力される信号を説明するための図である。
【図２５】図２４に示す信号のタイミングチャートである。
【符号の説明】
【０１５９】
１０  画像処理装置                            １１  ＣＰＵ
１２  システムメモリ                          １３  画像処理メモリ
１５  Ｉ／Ｏ制御デバイス                      ２１  バス
１３ａ  ページメモリ（ＤＲＡＭ）              １００  画像処理デバイス
１０１  Ａモジュール                          １０１ａ  画像処理Ａ部
１０２  Ｂモジュール                          １０２ａ  画像処理Ｂ部
１０３  Ｃモジュール                          １０３ａ  画像処理Ｃ部
１０８  Ｆモジュール                          １０８ａ  画像処理Ｆ部
１３１、１３５  バンドメモリ                  １３３  ページメモリ
２００  調停回路                              ２０１  調停制御部
１０３−３  カウンタ                          ２０２  アドレス保持部
１１０  接続切替モジュール（ＳＷＩＴＣＨ）    １１０ａ  接続切替部
１１１  ソフトウェア（Ｓ／Ｗ）
１０６  インタフェースモジュール（ＣＰＵ  Ｉ／Ｆ）
１０１−１  Ｗｒｉｔｅ  ＤＭＡ
１０２−１、１０３−１、１０８−１  Ｒｅａｄ  ＤＭＡ
１０２−２、１０３−２  ＤＭＡ
【図１】
2006094400.tif 000004
【図２】
2006094400.tif 000005
【図３】
2006094400.tif 000006
【図４】
2006094400.tif 000007
【図５】
2006094400.tif 000008
【図６】
2006094400.tif 000009
【図７】
2006094400.tif 000010
【図８】
2006094400.tif 000011
【図９】
2006094400.tif 000012
【図１０】
2006094400.tif 000013
【図１１】
2006094400.tif 000014
【図１２】
2006094400.tif 000015
【図１３】
2006094400.tif 000016
【図１４】
2006094400.tif 000017
【図１５】
2006094400.tif 000018
【図１６】
2006094400.tif 000019
【図１７】
2006094400.tif 000020
【図１８】
2006094400.tif 000021
【図１９】
2006094400.tif 000022
【図２０】
2006094400.tif 000023
【図２１】
2006094400.tif 000024
【図２２】
2006094400.tif 000025
【図２３】
2006094400.tif 000026
【図２４】
2006094400.tif 000027
【図２５】
2006094400.tif 000028