(57)【特許請求の範囲】
【請求項１】
各種画像処理を実行する複数の画像処理モジュールを搭載する集積回路と、該集積回路外の記憶手段と、該記憶手段に該画像処理モジュールの利用可能なワーク領域を確保する領域確保手段と、該領域確保手段の確保したワーク領域に該画像処理モジュールが個別に利用するモジュール利用領域を確保するモジュール領域確保手段とを備え、該画像処理モジュールが、その処理動作タイミングに制約を受けない非制約画像処理を実行する場合に、該モジュール領域確保手段に領域確保の要求を行い、該モジュール領域確保手段が、該記憶手段のワーク領域にそのワーク領域の範囲内で該画像処理モジュール用のモジュール利用領域を確保し、該画像処理モジュールが、該モジュール利用領域を利用して該画像処理を実行することを特徴とする画像処理装置。
【請求項２】
前記モジュール領域確保手段は、前記画像処理モジュールから個別に要求されたモジュール利用領域が前記ワーク領域の空き領域よりも大きいときには、前記領域確保手段に対して該モジュール利用領域の確保に必要な該ワーク領域の拡張確保を依頼することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記モジュール領域確保手段は、前記ワーク領域の拡張確保を前記領域確保手段に依頼した後、全ての前記モジュールの前記ワーク領域を使用した処理が完了すると、該処理完了通知を該領域確保手段に通知することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記領域確保手段は、前記画像処理モジュールの処理動作タイミングに制約を受ける制約画像処理用の制約画像処理用領域を固定的に前記記憶手段に確保し、前記モジュール領域確保手段は、前記画像処理モジュールから該制約画像処理用領域の領域確保要求があると、該制約画像処理用領域を確保することを特徴とする請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項５】
集積回路に搭載され各種画像処理を実行する複数の画像処理モジュールが、該集積回路外の記憶手段を利用して画像処理を行う画像処理方法であって、前記記憶手段に前記画像処理モジュールの利用可能なワーク領域を確保する領域確保処理ステップと、該画像処理モジュールがその処理動作タイミングに制約を受けない非制約画像処理を実行する場合に領域確保の要求を発生する領域確保要求処理ステップと、該領域確保要求に応じて、該領域確保処理ステップで確保された該記憶手段の該ワーク領域にそのワーク領域の範囲内で該画像処理モジュールが個別に利用するモジュール利用領域を確保するモジュール領域確保処理ステップとを有していることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関し、詳細には、ＡＳＩＣ等の集積回路を用いた画像処理を安価かつ効率的に行う画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
デジタル複写装置等の画像処理装置は、近年、画像処理用の集積回路、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）を搭載して、スキャナで読み取った画像データ等に対して、ＡＳＩＣにおいて、種々の画像処理を行って出力画像を作成し、該出力画像をプリンタで印刷出力する等の出力処理が行われている。
【０００３】
このような画像処理装置における画像処理の中には、注目画素とパラメータのみで処理を行うことのできるγ変換等の処理だけでなく、注目画素とその周辺画素を含めて処理を行うフィルタ処理等の処理やブロックとして処理を行うＪＰＥＧ圧縮伸張処理等の処理がある。
【０００４】
そして、画像処理装置の搭載するＡＳＩＣは、上記周辺画素を含めて処理する画像処理及びブロックとして処理を行う画像処理に必要なライン数のＳＲＡＭ（Static Random Access Memory）等のメモリを搭載して、該メモリを利用して画像処理を行っている。このようなラインメモリを用いた画像処理としては、例えば、プリンタ処理については、特許文献１に記載されており、解像度変換処理については、特許文献２に記載されており、さらに、圧縮伸張処理ついては、特許文献３に記載されている。
【０００５】
【特許文献１】特開２００５−２９５２９３号公報
【特許文献２】特開２００５−０９４０６１号公報
【特許文献３】特開２００４−２８９３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術にあっては、ＡＳＩＣに画像処理に必要なラインメモリを搭載して画像処理を行っているため、例えば、Ａ３サイズ６００ｄｐｉの場合、１ラインは約７０００ｄｏｔとなり、各画像処理で複数のラインメモリを用意すると、大量のＳＲＡＭ等のメモリをＡＳＩＣに搭載する必要があり、搭載するメモリがＡＳＩＣにおいて大きな領域を占め、コストが高くなるという問題があった。特に、大型の紙サイズに対応する広幅機では、さらに数倍の容量のメモリが必要となり、コストがさらに高くなる。
【０００７】
この問題を解決するために、ＡＳＩＣの外にあるメモリを使用して画像処理を行うようにすると、例えば、スキャナによる画像の読み取りやプロッタによる画像出力等の機械的な動作タイミングの制約を満たすことが難しいという問題がある。また、ＡＳＩＣの外に画像処理用のメモリを固定的に確保すると、外部メモリを余分に必要とし、全体のコストが高くなる。また、この場合、ＡＳＩＣの外に処理用のメモリを動的に確保しようとすると、画像処理のたびに、ＣＰＵがメモリ割り当てを行うこととなり、ＣＰＵの負荷が高くなり、処理効率が悪化するという問題がある。  
【０００８】
そこで、本発明は、ＡＳＩＣ等の集積回路のコストを削減しつつ、処理効率の良好な画像処理装置及び画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
請求項１記載の発明の画像処理装置は、各種画像処理を実行する複数の画像処理モジュールを搭載する集積回路と、該集積回路外の記憶手段と、該記憶手段に該画像処理モジュールの利用可能なワーク領域を確保する領域確保手段と、該領域確保手段の確保したワーク領域に該画像処理モジュールが個別に利用するモジュール利用領域を確保するモジュール領域確保手段とを備え、該画像処理モジュールが、その処理動作タイミングに制約を受けない非制約画像処理を実行する場合に、該モジュール領域確保手段に領域確保の要求を行い、該モジュール領域確保手段が、該記憶手段のワーク領域にそのワーク領域の範囲内で該画像処理モジュール用のモジュール利用領域を確保し、該画像処理モジュールが、該モジュール利用領域を利用して該画像処理を実行することにより、上記目的を達成している。
【００１０】
この場合、例えば、請求項２に記載するように、前記モジュール領域確保手段は、前記画像処理モジュールから個別に要求されたモジュール利用領域が前記ワーク領域の空き領域よりも大きいときには、前記領域確保手段に対して該モジュール利用領域の確保に必要な該ワーク領域の拡張確保を依頼してもよい。
【００１１】
また、請求項１または請求項２の場合、例えば、請求項３に記載するように、前記モジュール領域確保手段は、前記ワーク領域の拡張確保を前記領域確保手段に依頼した後、全ての前記モジュールの前記ワーク領域を使用した処理が完了すると、該処理完了通知を該領域確保手段に通知してもよい。
【００１２】
さらに、例えば、請求項１から請求項３の場合、例えば、請求項４に記載するように、前記領域確保手段は、前記画像処理モジュールの処理動作タイミングに制約を受ける制約画像処理用の制約画像処理用領域を固定的に前記記憶手段に確保し、前記モジュール領域確保手段は、前記画像処理モジュールから該制約画像処理用領域の領域確保要求があると、該制約画像処理用領域を確保してもよい。
【００１３】
請求項５記載の発明の画像処理方法は、集積回路に搭載され各種画像処理を実行する複数の画像処理モジュールが、該集積回路外の記憶手段を利用して画像処理を行う画像処理方法であって、前記記憶手段に前記画像処理モジュールの利用可能なワーク領域を確保する領域確保処理ステップと、該画像処理モジュールがその処理動作タイミングに制約を受けない非制約画像処理を実行する場合に領域確保の要求を発生する領域確保要求処理ステップと、該領域確保要求に応じて、該領域確保処理ステップで確保された該記憶手段の該ワーク領域にそのワーク領域の範囲内で該画像処理モジュールが個別に利用するモジュール利用領域を確保するモジュール領域確保処理ステップとを有していることにより、上記目的を達成している。
【発明の効果】
【００１４】
本発明の画像処理装置によれば、集積回路に搭載された各種画像処理を実行する複数の画像処理モジュールが、その処理動作タイミングに制約を受けない非制約画像処理を実行する場合、該集積回路外の記憶手段に確保されているワーク領域に、該画像処理モジュールが個別に利用するモジュール利用領域をそのワーク領域の範囲内で確保し、該画像処理モジュールが、該モジュール利用領域を利用して該画像処理を実行するので、集積回路のコストを削減することができるとともに、処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【実施例１】
【００１６】
図１〜図９は、本発明の画像処理装置及び画像処理方法の一実施例を示す図であり、図１は、本発明の画像処理装置及び画像処理方法の一実施例を適用した複合装置１の要部ブロック構成図である。
【００１７】
図１において、複合装置１は、エンジン１００とコントローラ２００及び図示しないオペレーションパネル、ファクシミリ通信部等を備えており、コピー処理、プリンタ処理、スキャナ処理及びファクシミリ通信処理等を行う。
【００１８】
エンジン１００は、エンジンＡＳＩＣ１０１、スキャナ１０２、 スキャナ画像処理ＡＳＩＣ１０３、プロッタ１０４、プロッタ制御ＡＳＩＣ１０５、ＲＡＭ（Random Access Memory）１０６、フラッシュメモリ１０７及びエンジンＣＰＵ（Central Processing Unit ）１０８等を備えており、エンジンＡＳＩＣ１０１は、アービタ１１０、ビデオ出力部１１１、コミュニケーションバッファ１１２、エンジン側ワークエリア制御部１１３、解像度変換部１１４及び圧縮伸張部１１５等を備えている。
【００１９】
一方、コントローラ２００は、コントローラＡＳＩＣ２０１、コントローラＣＰＵ２０２、ハードディスク２０３及びメインメモリ２０４等を備えており、コントローラＡＳＩＣ２０１は、ビデオ入力部２１０、アービタ２１１、コントローラ側ワークエリア制御部２１２、配信画像処理部２１３、コントローラ画像処理部２１４及びハードディスクＩ／Ｆ２１５等を備えている。
【００２０】
スキャナ１０２は、スキャナ動作、コピー動作、ファクシミリ送信動作時に、原稿に読取光を照射して、該原稿を主走査・副走査し、該原稿の画像を読み取って、原稿の画像データをスキャナ画像処理ＡＳＩＣ１０３に出力する。
【００２１】
スキャナ画像処理ＡＳＩＣ１０３は、スキャナ１０２で読み取られた原稿の画像データに適宜の補正を行った画像データ及び原稿における文字部／写真部、有彩／無彩を判定した画像分離データを生成してコントローラ２００のビデオ入力部２１０に出力する。
【００２２】
プロッタ１０４は、プロッタ部５としては、例えば、電子写真式記録装置等が使用されており、図示しないホスト装置から受信した画像データやスキャナ部１０２で読み取った画像データをプロッタ制御ＡＳＩＣ１０５から受け取って、画像を用紙に記録出力する。
【００２３】
プロッタ制御ＡＳＩＣ１０５は、プロッタ１０４からの同期信号に合わせて、エンジンＡＳＩＣ１０１から入力される画像データをプロッタ１０４へ出力する。
【００２４】
ＲＡＭ１０６は、エンジンＣＰＵ１０８がエンジン１０２の全体の制御を実行するための作業用メモリであり、エンジンＣＰＵ１０８により、プログラム実行中の変数記憶領域等の用途に使用される。
【００２５】
フラッシュメモリ１０７は、エンジンＣＰＵ１０８が実行するプログラムを記憶するための書き換え可能な不揮発性メモリである。
【００２６】
エンジンＣＰＵ１０８は、フラッシュメモリ１０７のプログラムに基づいてＲＡＭ１０６をワークメモリとして利用して、スキャナ制御、用紙の搬送、プロッタ１０４での作像、定着等のエンジン１００全般の制御を行う。
【００２７】
エンジンＡＳＩＣ１０１は、ビデオ出力部１１１やコミュニケーションバッファ１１２を備え、コントローラ２００とエンジンＣＰＵ１０８、コントローラ２００とプロッタ制御ＡＳＩＣ１０５との間のデータのインターフェイスを行う。
【００２８】
ビデオ出力部１１１は、出力する画像の画像データをコントローラ２００のメインメモリ２０４から読み込み、マスク処理、合成処理、フォーマット変換等を行ってプロッタ制御ＡＳＩＣ１０５へ出力するが、プロッタ制御ＡＳＩＣ１０５が画像データをプロッタ１０４へ出力するのに合わせて、一定時間内に一定量の画像データをプロッタ制御ＡＳＩＣ１０５に出力する必要がある。すなわち、ビデオ出力部１１１は、その動作タイミングに制約を受ける制約画像処理を実行する。
【００２９】
アービタ１１０は、エンジンＡＳＩＣ１０１内の各モジュールであるビデオ出力部１１１、エンジン側ワークエリア制御部１１３、解像度変換部１１４及び圧縮伸張部１１５等からコントローラＣＰＵ２０２へのアクセスの調停を行う。
【００３０】
コミュニケーションバッファ１１２は、エンジンＣＰＵ１０８とコントローラＣＰＵ２０２との間の通信のためのバッファ領域である。
【００３１】
解像度変換部１１４は、プリンタ動作、ファクシミリ動作時に、コントローラ２００のメインメモリ２０４上の低解像度の画像データをプロッタ１０４の解像度の画像データに変換する解像度変換処理を行うモジュールであり、変換後の画像データをメインメモリ２０４に書き込む。この解像度変換部１１４による画像処理は、メインメモリ２０４からメインメモリ２０４へ画像データを転送するため、処理時間に幅をもたせることができる。すなわち、解像度変換部１１４は、その動作タイミングに制約を受けない非制約画像処理を実行するモジュールである。
【００３２】
圧縮伸張部１１５は、メインメモリ２０４に確保する画像データ領域を削減するために、メインメモリ２０４上の画像の圧縮及び伸張を行うモジュールであり、処理後の画像データをメインメモリ２０４上に書き込む。この圧縮伸張部１１５による画像処理は、メインメモリ２０４からメインメモリ２０４へ画像データを転送する処理であるため、処理時間に幅をもたせることができる。すなわち、圧縮伸張部１１５は、その動作タイミングに制約を受けない非制約画像処理を実行するモジュールである。
【００３３】
エンジン側ワークエリア制御部１１３は、解像度変換部１１４及び圧縮伸張部１１５で使用するワークエリアの管理を行う。
【００３４】
コントローラ２００は、複合装置１の全体制御や各種アプリケーションの実行を行う制御装置であり、コントローラ２００のコントローラＡＳＩＣ２０１は、エンジン１００から入力された画像データのメインメモリ２０４への転送、コピー時の画像処理、ハードディスク２０３へのリード／ライト等の制御を行う。
【００３５】
ビデオ入力部２１０は、スキャナ画像処理ＡＳＩＣ１０３から入力されるスキャナ１０２の読み取った画像データを圧縮して、メインメモリ２０４へ転送する。ビデオ入力部２１０は、このデータ転送処理においては、スキャナ１０２の画像読み取り速度に合わせて画像データを一定時間内に一定量出力する必要がある。すなわち、ビデオ入力部２１０は、その動作タイミングに制約を受ける制約画像処理を実行する。
【００３６】
アービタ２１１は、コントローラＡＳＩＣ２０１内の各モジュールであるビデオ入力部２１０、配信画像処理部２１３、コントローラ画像処理部２１４及びハードディスクＩ／Ｆ２１５からコントローラＣＰＵ２０２へのアクセスの調停を行う。
【００３７】
コントローラ側ワークエリア制御部２１２は、配信画像処理部２１３及びコントローラ画像処理部２１４が使用するワークエリアの管理を行う。
【００３８】
配信画像処理部２１３は、メインメモリ２０４上の画像データをネットワークを経由して配信するために、画像の変換処理を行うモジュールであり、変換後の画像データをメインメモリ２０４へ書き戻す。この配信画像処理部２１３における画像処理は、メインメモリ２０４からメインメモリ２０４へ画像データを転送する処理であるため、処理時間に幅をもたせることができる。すなわち、配信画像処理部２１３は、その動作タイミングに制約を受けない非制約画像処理を実行するモジュールである。
【００３９】
コントローラ画像処理部２１４は、メインメモリ２０４上の圧縮画像データを展開して、フィルタ処理、色変換処理、階調処理等を施すモジュールであり、処理後の画像データをメインメモリ２０４へ書き戻す。このコントローラ画像処理部２１４における画像処理は、メインメモリ２０４からメインメモリ２０４へ処理画像データを転送する処理であるため、処理時間に幅をもたせることができる。すなわち、コントローラ画像処理部２１４は、その動作タイミングに制約を受けない非制約画像処理を実行するモジュールである。
【００４０】
ハードディスクＩ／Ｆ２１５は、ハードディスク２０３へのリード／ライトの制御を行い、ハードディスク２０３は、各種画像データの蓄積やコントローラＣＰＵ２０２の一時記憶領域に使用される記憶装置である。
【００４１】
コントローラＣＰＵ２０２は、メモリコントローラ及びＰＣＩ  Express、ＰＣＩの汎用インターフェイスを備え、メインメモリ２０４の領域確保及びリード／ライト制御、プリンタの画像描画、コピー、スキャナ、ファクシミリ、配信等の各種アプリケーションの実行等を行う。特に、コントローラＣＰＵ２０２は、メインメモリ２０４にモジュール１１４、１１５、２１３、２１４のワークエリアを確保する領域確保手段として機能する。
【００４２】
メインメモリ２０４は、コントローラＣＰＵ２０２がプロッタ１０４で出力する画像描画や各種アプリケーションの実行を行うための作業用メモリであり、コントローラＣＰＵ２０２により、各種データの一時記憶領域やＤＭＡＣ用ディスクリプタ領域等の用途に使用される。特に、メインメモリ２０４は、コントローラＣＰＵ２０２によって確保されたワークエリアをモジュール１１４、１１５、２１３、２１４によって利用されるエンジンＡＳＩＣ１０１、コントローラＡＳＩＣ２０１外の記憶手段として機能する。
【００４３】
上記エンジン側ワークエリア制御部１１３及びコントローラ側ワークエリア制御部２１２は、エンジン側ワークエリア制御部１１３について図２に示すように、ワークエリア設定部３０１と領域判定部３０２等を備えており、コントローラ側ワークエリア制御部２１２についても同様の構成である。
【００４４】
ワークエリア設定部３０１は、コントローラＣＰＵ２０２がメインメモリ２０４においてエンジン１００側またはコントローラ２００側の画像処理のワークエリアとして使用することができる領域を設定するためのモジュールである。
【００４５】
領域判定部３０２は、ワークエリア設定部３０１に設定された領域と、各モジュール１１４、１１５、２１３、２１４からのワークエリア信号に基づいて、ワークエリア割り当てができるか否かを判定し、割り当てができた場合に、割り当てたワークエリアの先頭アドレス信号を出力する。
【００４６】
これらのエンジン側ワークエリア制御部１１３及びコントローラ側ワークエリア制御部２１２は、コントローラＣＰＵ２０２の確保したメインメモリ２０４のワークエリアにそのエアー区エリアの範囲内で領域確保要求のあったモジュール１１４、１１５、２１３、２１４用のモジュール利用領域であるワークエリアを確保するモジュール領域確保手段として機能する。
【００４７】
そして、上記各モジュール１１４、１１５、２１３、２１４は、通常のモジュール構成であり、メインメモリ２０４からディスクリプタ情報や画像データの読み込みを行うリードＤＭＡＣ４０１（図９参照）、リードＤＭＡＣの読み込んだ画像データに対して画像処理を行う画像処理部４０２（図９参照）、画像処理部４０２の処理した画像データをメインメモリ２０４に書き戻すライトＤＭＡＣ４０３（図９参照）及びリードＤＭＡＣ４０１、画像処理部４０２、ライトＤＭＡＣ４０３が動作するための各種設定及び状態確認を行うレジスタ制御部４０４（図９参照）等を備えている。
【００４８】
次に、本実施例の作用を説明する。本実施例の複写装置１は、モジュール１１４、１１５、２１３、２１４毎にメインメモリ２０４にワークエリアを割り当てて使用させて、該メインメモリ２０４を使用したモジュール処理を可能とする。
【００４９】
まず、複合装置１におけるスキャナで読み取った画像データをメインメモリ２０４に格納した後、コントローラ画像処理部２１４で必要な画像処理を行った後、プロッタ１０４で印刷出力する場合の画像データの流れについて、図３に基づいて説明する。
【００５０】
この場合、複合装置１は、スキャナ１０２で読み取られた画像データをスキャナ画像処理ＡＳＩＣ１０３、アービタ２１１、コントローラＣＰＵ２０２を介してメインメモリ２０４に蓄積し（図３のａ）、このメインメモリ２０４上の画像データを、コントローラＣＰＵ２０２、アービタ２１１を介してコントローラ画像処理部２１４に送り、コントローラ画像処理部２１４でフィルタ処理、色変換処理、階調処理等の必要な画像処理を施して、アービタ２１１、コントローラＣＰＵ２０２を介してメインメモリ２０４に書き戻す（図３のｂ）。そして、複合装置１は、このメインメモリ２０４上の画像データをコントローラＣＰＵ２０２、エンジンのアービタ１１０、ビデオ出力部１１１、プロッタ制御ＡＳＩＣ１０５を介してプロッタ１０４に送り、プロッタ１０４で用紙に印刷出力する（図３のｃ）。
【００５１】
また、複合装置１は、図４に示すように、メインメモリ２０４上の画像データに必要な画像処理を施して、配信処理、ファクシミリ処理及びプリンタ処理等を行う。
【００５２】
すなわち、複合装置１は、配信処理を行う場合、メインメモリ２０４上の画像データをコントローラＣＰＵ２０２及びアービタ２１１を介して配信画像処理部２１３に送り、配信画像処理部２１３で、ネットワークを経由して配信するのに必要な画像変換処理を行って、アービタ２１１及びコントローラＣＰＵ２０２を介してメインメモリ２０４上に書き戻す（図４のｄ）。複合装置１は、このメインメモリ２０４上の画像変換処理された画像データを図示しないネットワーク部を介して配信する。また、複合装置１は、ファクシミリ処理を行う場合、メインメモリ２０４上の画像データをコントローラＣＰＵ２０２及びエンジン１００のアービタ１１０を介して解像度変換部１１４に転送して、解像度変換部１１４で解像度変換を行い、アービタ１１４及びコントローラＣＰＵ２０２を介してメインメモリ２０４に書き戻して、最終的に、ファクシミリ送信する（図４のｅ）。さらに、複合装置１は、プリンタ処理を行う場合、図示しないホスト装置から受信してメインメモリ２０４上に保管した画像データをコントローラＣＰＵ２０２及びアービタ１１０を介して圧縮伸張部１１５に送って、圧縮伸張部１１５で圧縮・伸張した後、アービタ１１０及びコントローラＣＰＵ２０２を介してメインメモリ２０４に書き戻して、最終的に、プリンタ１０４で印刷出力する（図４のｆ）。
【００５３】
そして、上記図３及び図４の画像データの流れにおいて、スキャナ１０２からメインメモリ２０４に至るデータ流れ（図３のａ）及びメインメモリ２０４からプロッタ１０４へ至るデータ流れ（図３のｃ）は、スキャナ１０２やプロッタ１０４の機械的動作が関与するため、一定時間内に一定量の画像データが流れる必要のある制約画像処理であるが、メインメモリ２０４からコントローラ画像処理部２１４に送って画像処理後の画像データをメインメモリ２０４に戻すデータ流れ（図３のｂ）、メインメモリ２０４から配信画像処理部２１３に送って画像処理後の画像データをメインメモリ２０４に戻すデータ流れ（図４のｄ）、メインメモリ２０４から解像度変換部１１４に送って画像処理後の画像データをメインメモリ２０４に戻すデータ流れ（図４のｅ）及びメインメモリ２０４から圧縮伸張部１１５に送って画像処理後の画像データをメインメモリ２０４に戻すデータ流れ（図４のｆ）に関しては、機械的動作が関与しないため、処理時間に幅をもたせることができる非制約画像処理である。
【００５４】
そして、複合装置１は、エンジン１００のエンジン側ワークエリア制御部１１３及びコントローラ２００のコントローラ側ワークエリア制御部２１２が、以下のように、ワークエリアの管理を行う。
【００５５】
すなわち、複合装置１は、図５に示すように、初期状態において、各モジュールである解像度変換部１１４、圧縮伸張部１１５、配信画像処理部２１３、コントローラ画像処理部２１４が、メインメモリ２０４上にワークエリアを使用しないため、ワークエリアサイズとして「０」をワークエリア制御部１１３、２１２に出力し（ステップＳ１０１）、初期状態において、ワークエリア制御部１１３、２１２は、各モジュール１１４、１１５、２１３、２１４がワークエリアを使用しないため、ワークエリアアドレスとして、「０」を各モジュール１１４、１１５、２１３、２１４に出力する（ステップＳ１０２）。
【００５６】
そして、各モジュール１１４、１１５、２１３、２１４は、動作を始める際に、メインメモリ２０４上の必要なワークエリアサイズをワークエリア制御部１１３、２１２に出力し（ステップＳ１０３）、ワークエリア制御部１１３、２１２は、要求されたワークエリアサイズが、現在ワークエリアとしてメインメモリ２０４上に設定されている全領域空き領域よりも大きいかどうか判断する（ステップＳ１０４）。
【００５７】
ステップＳ１０４で、ワークエリア制御部１１３、２１２は、要求されたワークエリアサイズが、現在ワークエリアとして設定されている全領域空き領域よりも大きい場合には、ワークエリアのサイズが拡大されないと処理を行うことができないため、要求ワークエリア領域レジスタにモジュール１１４、１１５、２１３、２１４からの要求ワークエリアサイズをセットして、コントローラＣＰＵ２０２にワークエリア変更要求割り込みを出力し（ステップＳ１０５）、コントローラＣＰＵ２０２は、ワークエリア変更要求割り込みがあると、ワークエリア制御部１１３、２１２の要求ワークエリア領域レジスタをリードして（ステップＳ１０６）、要求されたワークエリア領域よりも大きい新しいワークエリア領域をメインメモリ２０４に確保する（ステップＳ１０７）。
【００５８】
コントローラＣＰＵ２０２は、メインメモリ２０４に領域の確保ができると、新しいワークエリア領域をワークエリア制御部１１３、２１２に設定し（ステップＳ１０８）、ワークエリア制御部１１３、２１２は、ワークエリアが使用中（全てのモジュール１１４、１１５、２１３、２１４からのワークエリアサイズ信号の総和が「０」ではない）であるかチェックして、ワークエリアが使用中の場合には、ワークエリアの使用が終了するまで待つ（ステップＳ１０９）。
【００５９】
ワークエリア制御部１１３、２１２は、全てのワークエリアが未使用（全てのモジュール１１４、１１５、２１３、２１４からのワークエリアサイズ信号の総和が「０」）になると、コントローラＣＰＵ２０２にワークエリア変更完了割り込みを出力し（ステップＳ１１０）、ワークエリアに空き領域があるか否かを判定する（ステップＳ１１１）。
【００６０】
ステップＳ１１１で、ワークエリアに空き領域がないときには、ワークエリア制御部１１３、２１２は、ワークエリアを使用しているモジュール１１４、１１５、２１３、２１４の処理が終了してワークエリアサイズ「０」が返ってくるまで待つ（ステップＳ１１１）。
【００６１】
ワークエリア制御部１１３、２１２は、ステップＳ１１１でワークエリアに空き領域があるか、空き領域ができると、空き領域に該モジュール１１４、１１５、２１３、２１４用のモジュール利用領域としてワークエリアの割り当てを行い（ステップＳ１１２）、割り当てが決定すると、ワークエリアの先頭アドレスを各モジュール１１４、１１５、２１３、２１４に出力する。
【００６２】
各モジュール１１４、１１５、２１３、２１４は、ワークエリア制御部１１３、２１２から「０」以外のワークエリアアドレスがくると、そのアドレスからメインメモリ２０４をワークメモリとして使用して、画像処理を行う（ステップＳ１１４）。
【００６３】
各モジュール１１４、１１５、２１３、２１４は、画像処理を終了すると、ワークエリアサイズ「０」をワークエリア制御部１１３、２１２に出力し（ステップＳ１１６）、ワークエリア制御部１１３、２１２は、ワークエリアサイズが「０」になると、該モジュール１１４、１１５、２１３、２１４の使用ワークエリアを開放する（ステップＳ１１６）。ワークエリア制御部１１３、２１２は、ワークエリアを開放すると、開放通知をコントローラＣＰＵ２０２に行い、開放通知を受けたコントローラＣＰＵ２０２は、領域変更したワークエリアのサイズを予め設定されている元のワークエリアサイズに戻す等の処理を行う。
【００６４】
上記ステップＳ１０４で、ワークエリア制御部１１３、２１２は、要求されたワークエリアサイズが、現在ワークエリアとして設定されている全領域よりも小さく、該モジュール１１４、１１５、２１３、２１４が必要とするワークエリアが足りるので、ステップＳ１１１に移行して、ワークエリアに空き領域があるか否かを判定する処理から上記同様に処理する（ステップＳ１１１〜Ｓ１１６）。
【００６５】
次に、コントローラＣＰＵ２０２は、プログラムの実行中にメインメモリ２０４の空き容量が不足した場合、ワークエリアに割り当てているメモリ領域を削減して、必要なプログラムの実行を行う。そこで、コントローラＣＰＵ２０２がワークエリアに割り当てるメインメモリ２０４の領域を変更するワークエリア領域変更処理について、図６に基づいて説明する。
【００６６】
コントローラＣＰＵ２０２は、図６に示すように、プログラムの実行中にメインメモリ２０４を使用する必要が発生すると、全ワークエリアよりも要求ワークエリアサイズが大きいかチェックし（ステップＳ２０１）、プログラムの実行に必要な領域が確保できた場合には、処理を終了する。
【００６７】
ステップＳ２０１で、プログラムの実行に必要な領域が確保できなかった場合には、コントローラＣＰＵ２０２は、まず、メインメモリ２０４に対して領域を削減した新しいワークエリア領域の確保を行い（ステップＳ２０２）、ワークエリア制御部１１３、２１２のワークエリア設定部３０１に新しいワークエリアの開始アドレスとサイズを設定する（ステップＳ２０３）。
【００６８】
ワークエリア制御部１１３、２１２は、ワークエリアが使用中（全てのモジュールからのワークエリアサイズ信号の総和が「０」ではない）であるかチェックして、使用中であると、使用が終了するまで待つ（ステップＳ２０４）。
【００６９】
ステップＳ２０４で、ワークエリア制御部１１３、２１２は、全てのワークエリアが未使用（全てのモジュールからのワークエリアサイズ信号の総和が「０」）になると、コントローラＣＰＵ２０２にワークエリア変更完了割り込みを出力し（ステップＳ２０５）、コントローラＣＰＵ２０２は、ワークエリア変更完了割り込みがくると、古いワークエリアを他の用途に使用する（ステップＳ２０６）。
【００７０】
すなわち、いま、コントローラＣＰＵ２０２が、図７に示すように、プリンタアプリ、コピーアプリ、ファクシミリアプリ等の複合装置１の機能を実現する各種プロセスであるプリケーションのうち、図７（ａ）に示すように、メインメモリ２０４に、アプリケーションＡを実行していて、ワークエリアを割り当てている状態のときに、アプリケーションＢを実行する場合、図７（ａ）の状態では、アプリケーションＢを実行するのに必要な空き領域があるため、図７（ｂ）に示すように、メモリの割り当てを行ってアプリケーションＢを実行する。  さらに、図７（ｂ）の状態で、アプリケーションＣを実行する場合、コントローラＣＰＵ２０２は、アプリケーションＣを実行するには空き容量が足りないため、図（ｃ）に示すように、ワークエリアを削減する。
【００７１】
コントローラＣＰＵ２０２は、メインメモリ２０４のワークエリアの変更が完了して、アプリケーションＣを実行できる空きエリアを確保すると、図７（ｄ）に示すすように、アプリケーションＣを実行する。
【００７２】
このように、本実施例の複写装置１は、プログラムのメモリ使用状態に応じてメインメモリ２０４中の複数のモジュール１１４、１１５、２１３、２１４が画像処理に使用することのできるワークエリアの割り当てを行うので、メインメモリ２０４の利用効率を向上させることができ、メインメモリ２０４の容量の増大を抑えることができる。
【００７３】
そして、ワークエリア制御部１１３、２１２は、図８に示すように、ワークエリアの割り当てを行う。なお、図８において、ハッチング部分は、利用されているメモリ領域であり、モジュールＭａ、Ｍｂは、上記モジュール１１４、１１５、２１３、２１４のいずれかを示している。
【００７４】
すなわち、初期状態からコントローラＣＰＵ２０２により、あるサイズのワークエリア用の領域がメインメモリ２０４上に確保され、ワークエリア制御部１１３、２１２のワークエリア設定部３０１に設定されている状態（図８（ａ））で、例えば、モジュールＭａから空き領域のサイズよりも小さいサイズの割り当ての要求がくると（図８（イ））、ワークエリア制御部１１３、２１２は、モジュールＭａの要求しているサイズ分の領域をメインメモリ２０４に確保し、ワークエリアアドレスをモジュールＭａに割り当てる（図８（ｂ））。
【００７５】
この状態で、モジュールＭｂから空き領域のサイズよりも小さいサイズの割り当ての要求がくると（図８（ロ））、ワークエリア制御部１１３、２１２は、その分の領域をメインメモリ２０４に確保し、ワークエリアアドレスをモジュールＭｂに割り当てる（図８（ｃ））。
【００７６】
次に、モジュールＭａの処理が終了して、モジュールＭａからのワークエリアサイズが「０」になると（図８（ハ））、ワークエリア制御部１１３、２１２は、いままでモジュールＭａに使用していたメインメモリ２０４の領域を開放する（図８（ｄ））。
【００７７】
さらに、モジュールＭｂの処理が終了して、モジュールＭｂからのワークエリアサイズが「０」になると、ワークエリア制御部１１３、２１２は、その領域を開放する（図８（ニ））。この後、コントローラＣＰＵ２０２は、他の用途にメインメモリ２０４を使用するため、ワークエリアの領域を変更する（図８（ｅ））。
【００７８】
この状態で、モジュールＭａから空き領域のサイズよりも小さいサイズの割り当ての要求がくると、ワークエリア制御部１１３、２１２は、その分の領域をメインメモリ２０４に確保し、ワークエリアアドレスをモジュールＭａに割り当て（図８（ホ））、メインメモリ２０４の該空き領域にモジュールＭａを割り当てる（図８（ｆ））。
【００７９】
次に、モジュールＭｂから領域割り当ての要求がくると、ワークエリア制御部１１３、２１２は、空き領域がないため、モジュールＭａの処理が終了するまで待つ（図８（へ））。
【００８０】
そして、モジュールＭａの処理が終了すると（図８（ｇ））、モジュールＭｂに割り当てる空き領域ができたため、ワークエリア制御部１１３、２１２は、その分の領域を確保し、ワークエリアアドレスをモジュールＭｂに割り当てて（図８（ト））、メインメモリ２０４のいままでモジュールＭａの使用していた領域に、モジュールＭｂを割り当てる（図８（ｆ））。
【００８１】
この状態で、モジュールＭｂの処理が終了して、モジュールＭｂからのワークエリアサイズが「０」になると（図８（チ））、ワークエリア制御部１１３、２１２は、その領域を開放する（図８（ｉ））。
【００８２】
そして、上記メインメモリ２０４を利用した画像処理においては、図９に示すように、機械的動作を伴うスキャナ１０２からの画像データの入力処理やプロッタ１０４への画像データの出力処理においては、メインメモリ２０４に入力画像領域２０４ａと出力画像領域２０４ｂを専用に設け、該機械的動作を伴う画像データ入力処理や画像データ出力処理を該入力画像領域２０４ａと出力画像領域２０４ｂを使用して行い、機械的動作を伴わない中間の画像処理では、メインメモリ２０４のワークエリアに確保した中間画像領域２０４ｃを使用して行う。
【００８３】
すなわち、複合装置１は、スキャナ１０２で読み取った画像データを入力するときには、メインメモリ２０４の入力画像領域２０４ａに格納し、その後、図９（ａ）に示すように、この入力画像領域２０４ａに格納されている画像データをモジュール１１４、１１５、２１３、２１４に転送して、該モジュール１１４、１１５、２１３、２１４で、中間の画像処理を施して、メインメモリ２０４に転送するときには、メインメモリ２０４の中間画像領域２０４ｃに格納する。なお、図９では、モジュール１１４、１１５、２１３、２１４とメインメモリ２０４との間に介在する回路部分については、省略して示している。
【００８４】
そして、このメインメモリ２０４の中間画像領域２０４ｃに格納した画像データを、モジュール１１４、１１５、２１３、２１４で画像処理した後に最終的にプロッタ１０４に送って出力するときには、図９（ｂ）に示すように、中間画像領域２０４ｃの画像データをモジュール１１４、１１５、２１３、２１４に転送して、画像処理を施した後、メインメモリ２０４の出力画像領域２０４ｂに転送して、該出力画像領域２０４ｂの画像データをプロッタ１０４に転送して出力させる。そして、中間画像領域２０４ｃは、処理が終了すると、開放される。
【００８５】
このように、本実施例の複合装置１は、ＡＳＩＣ１０１、２０１に搭載されている各種画像処理を実行する複数のモジュール１１４、１１５、２１３、２１４が、該ＡＳＩＣ１０１、２０１外の記憶手段であるメインメモリ２０４を利用して、その処理動作タイミングに制約を受けない非制約画像処理であるを実行する場合、すなわち、スキャナ１０２やプロッタ１０４の機械的動作が関与せず、一定時間内に一定量の画像データが流れる必要のない処理を実行する場合、コントローラＣＰＵ２０２の確保したメインメモリ２０４のワークエリアに、ワークエリア制御部１１３、２１２が、該モジュール１１４、１１５、２１３、２１４が個別に利用する要求ワークエリア（モジュール利用領域）をそのワークエリアの範囲内で確保し、該モジュール１１４、１１５、２１３、２１４が、該要求ワークエリアを利用して該画像処理を実行している。
【００８６】
したがって、ＡＳＩＣ１０１、２０１のコストを削減することができるとともに、処理効率を向上させることができる。
【００８７】
また、本実施例の複写装置１は、ワークエリア制御部１１３、２１２が、コントローラＣＰＵ２０２により設定されたワークエリアの範囲内でモジュール１１４、１１５、２１３、２１４の利用する個別の要求ワークエリアの割り当てを行っているので、コントローラＣＰＵ２０２による領域管理の頻度を削減することができ、コントローラＣＰＵ２０２の負荷を低減させることができる。
【００８８】
さらに、本実施例の複写装置１は、ワークエリア制御部１１３、２１２が、モジュール１１４、１１５、２１３、２１４から個別に要求されたモジュール利用領域である要求ワークエリアがコントローラＣＰＵ２０２によって用意されているワークエリアの空き領域よりも大きいときには、コントローラＣＰＵ２０２に対して要求ワークエリアの確保に必要な該ワーク領域の拡張確保を依頼している。
【００８９】
したがって、処理動作タイミングに制約を受けない非制約画像処理を、メインメモリ２０４を利用して、確実に実行することができ、ＡＳＩＣ１０１、２０１のコストを削減することができるとともに、処理効率を向上させることができる。
【００９０】
また、本実施例の複写装置１は、ワークエリア制御部１１３、２１２が、モジュール１１４、１１５、２１３、２１４から個別に要求されたモジュール利用領域である要求ワークエリアの拡張確保をコントローラＣＰＵ２０２に依頼した後、全てのモジュール１１４、１１５、２１３、２１４のワークエリアを使用した処理が完了すると、該処理完了通知をコントローラＣＰＵ２０２に通知している。
【００９１】
したがって、コントローラＣＰＵ２０２の負荷を抑制しつつ、メインメモリ２０４がワークエリアを変更する場合のタイミングの制約を無くして、メインメモリ２０４の利用を適正化することができ、利用性を向上させることができる。
【００９２】
さらに、本実施例の複写装置１は、モジュール１１４、１１５、２１３、２１４の処理動作タイミングに制約を受ける制約画像処理（例えば、スキャナ１０２を利用した画像データの入力処理やプリンタ１０４への画像データの出力処理）用の制約画像処理用領域である入力画像領域２０４ａ、出力画像領域２０４ｂを固定的にメインメモリ２０４に確保し、ワークエリア制御部１１３、２１２が、モジュール１１４、１１５、２１３、２１４から該入力画像領域２０４ａ、出力画像領域２０４ｂの領域確保要求があると、入力画像領域２０４ａ、出力画像領域２０４ｂを確保している。
【００９３】
したがって、処理動作タイミングに制約を受けない非制約画像処理のためにＤＭＡＣを追加することなく、ＡＳＩＣ１０１、２０１のゲート数の大幅な増加を抑制して、ＡＳＩＣ１０１、２０１のコストを下げることができる。
【００９４】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９５】
本発明は、少ないメモリを搭載したＡＳＩＣ等の集積回路を用いて効率的かつ適切に画像処理を行うプリンタ装置、複写装置、複合装置等の画像処理装置及び画像処理方法に利用することができる。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施例を適用した複合装置の要部ブロック構成図。
【図２】図１のワークエリア制御部の要部ブロック構成図。
【図３】図１の入力時の画像データの流れを示す図。
【図４】図１の中間処理時の画像データの流れを示す図。
【図５】図１の複合装置によるメインメモリのワークエリア管理処理を示すフローチャート。
【図６】図１のコントローラＣＰＵによるメインメモリのワークエリア領域変更処理を示すフローチャート。
【図７】コントローラＣＰＵによるメインメモリのワークエリア領域変更処理の説明図。
【図８】図１のワークエリア制御部によるワークエリア割り当て処理の説明図。
【図９】メインメモリに入力画像及び出力画像専用の領域を設けた場合の画像データの流れの説明図。
【符号の説明】
【００９７】
１  複合装置
１００  エンジン
１０１  エンジンＡＳＩＣ
１０２  スキャナ
１０３  スキャナ画像処理ＡＳＩＣ
１０４  プロッタ
１０５  プロッタ制御ＡＳＩＣ
１０６  ＲＡＭ
１０７  フラッシュメモリ
１０８  エンジンＣＰＵ
１１０  アービタ
１１１  ビデオ出力部
１１２  コミュニケーションバッファ
１１３  エンジン側ワークエリア制御部
１１４  解像度変換部
１１５  圧縮伸張部
２００  コントローラ
２０１  コントローラＡＳＩＣ
２０２  コントローラＣＰＵ
２０３  ハードディスク
２０４  メインメモリ
２１０  ビデオ入力部
２１１  アービタ
２１２  コントローラ側ワークエリア制御部
２１３  配信画像処理部
２１４  コントローラ画像処理部
２１５  ハードディスクＩ／Ｆ
３０１  ワークエリア設定部
３０２  領域判定部
４０１  リードＤＭＡＣ
４０２  画像処理部
４０３  ライトＤＭＡＣ
４０４  レジスタ制御部
【図１】
0004781327.tif 000002
【図２】
0004781327.tif 000003
【図３】
0004781327.tif 000004
【図４】
0004781327.tif 000005
【図５】
0004781327.tif 000006
【図６】
0004781327.tif 000007
【図７】
0004781327.tif 000008
【図８】
0004781327.tif 000009
【図９】
0004781327.tif 000010