(57)【要約】【課題】  前後するジョブが実行する画像処理モジュールで確保する画像パスが重複しても、重複する画像パスで最大使用可能なメモリ量からジョブを並列処理できるバンドメモリを動的に確保する。【解決手段】    画像処理装置において、後続するジョブで使用する画像パスと、先行するジョブが使用する画像パスとが重複するすると判断した場合、重複する画像パスにおける画像処理モジュールの処理帯域量をテーブルに従って算出する。そして、算出した画像処理モジュールの処理帯域量が当該帯域量の制限値を超えていると判断した場合、メモリから重複する画像パスで使用できるバンドメモリを追加して確保する。そして、確保したバンドメモリを使用して異なる種類のジョブに対応する画像処理を並列して実行させるように画像処理モジュールの処理を制御することを特徴とする。【選択図】  図９
2017168012.tif 000002
【特許請求の範囲】
【請求項１】
所定の画像処理に対応づけられたモジュールが複数の画像パスで確保されるメモリを使用してジョブを実行する画像処理装置であって、
所定の画像処理に対応づけられたモジュールが複数の画像パスの各画像パスで使用するメモリ量と、各画像パスにおける画像処理の帯域量をジョブの種類に定義づけて管理するテーブルと、
後続するジョブで使用する画像パスと、先行するジョブが使用する画像パスとが重複するかどうかを判断する第１の判断手段と、
前記第１の判断手段が重複すると判断した場合、前記テーブルを参照して、各モジュールの処理帯域量を算出する算出手段と、
前記算出手段が算出した前記処理帯域量が制限値を超えているかどうかを判断する第２の判断手段と、
前記第２の判断手段が前記制限値を超えていないと判断した場合、前記メモリから同一の画像パスで使用するバンドメモリを追加して確保する確保手段と、
前記確保手段により確保されたバンドメモリを使用して、重複する画像パスで複数の画像処理を並列して実行させるように前記モジュールの処理を制御する制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記制御手段は、重複する画像パスで複数の画像処理を並列して実行させるように前記モジュールの処理をバンドメモリ単位で制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記メモリから重複する画像パスで使用するバンドメモリを確保できない場合、前記制御手段は、後続のジョブの画像パスの処理を先行するジョブの画像パスの処理が完了するまで待機させることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記確保手段により追加して確保されたバンドメモリを開放する開放手段を備えることを特徴とする請求項１または３に記載の画像処理装置。
【請求項５】
前記所定のジョブは、原稿を読み取るスキャンジョブ、画像データを印刷する印刷ジョブ、読み取った原稿を送信するセンドジョブを含むことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
所定の画像処理に対応づけられたモジュールが複数の画像パスの各画像パスで使用するメモリ量と、各画像パスにおける画像処理の帯域量をジョブの種類に定義づけて管理するテーブルを備え、所定の画像処理に対応づけられたモジュールが複数の画像パスで確保されるメモリを使用してジョブを実行する画像処理装置のメモリ制御方法であって、
後続するジョブで使用する画像パスと、先行するジョブが使用する画像パスとが重複するかどうかを判断する第１の判断工程と、
前記第１の判断工程で、重複すると判断した場合、前記テーブルを参照して、各モジュールの処理帯域量を算出する算出工程と、
前記算出工程で、算出した前記処理帯域量が制限値を超えているかどうかを判断する第２の判断工程と、
前記第２の判断工程で、前記処理帯域量が前記制限値を超えていると判断した場合、前記メモリから重複する画像パスで使用するバンドメモリを追加して確保する確保工程と、
前記確保工程で、確保されたバンドメモリを使用して、重複する画像パスで複数の画像処理を並列して実行させるように前記モジュールの処理を制御する制御工程と、
を備えることを特徴とする画像処理装置のメモリ制御方法。
【請求項７】
請求項６に記載の画像処理装置のメモリ制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置のメモリ制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、CMFP（Compact MFP）においては、コントローラーチップに内製ＳＯＣを搭載することが一般的であった。内製ＳＯＣは専用設計のため相応の開発期間を要し、また、生産に関しても相応のコストがかかるというデメリットがあった。
【０００３】
一方、近年、事務機のコントローラーに搭載されることを想定したApplication SpecI/Fic Standard Produce(ASSP（汎用ＳＯＣ））が市場に出回るようになってきており、開発日程短縮、コストダウンの目的でコントローラーチップにASSP（ＬＳＩ）を搭載したCMFPの開発が行われるようになってきた。
【０００４】
内製ＳＯＣでは専用設計により製品仕様を満たすために十分な機能、ハードウェアリソースが用意されている。これに対し、ASSPでは機能、ハードウェアリソースが制限されるため、複数の汎用画像処理を繋げて所望の画像処理を実現させるといった使い方が必要となってくる。
【０００５】
この場合、例えば、スキャナ入力用画像処理パス、プリント出力用画像処理パスといった異なる画像処理で同じハードウェアリソースをシェアするというような制御が必要となってくる。
【０００６】
通常スキャンやプリントなどI/Oと接続される画像処理はアンダーランやオーバーランを考慮して画像処理パフォーマンスがI/Oに遅れないようにハードウェアリソース間のメモリを確保する。
しかしながら、廉価のCMFPでは多くのメモリを実装できないことが多く、各画像処理で必要となるメモリ量の中で最も多くのメモリを必要とする値にチューニングされていることが多い。
【０００７】
従って、各画像処理はいずれか１つしか一時には実行できないこととなる。プリント出力用画像処理で同じハードウェアリソースが競合する画像処理をページ単位で排他動作させる場合、排他制御によりページ単位で処理の一時停止/再開が入り、同時動作が制限されるため使い勝手が悪い。
【０００８】
これに対して、操作性を向上するために他ジョブが使用していないハードウェアリソースのみを使用するジョブが存在する場合に当該ジョブを並行して実行する。また、実行権が切り替わる場合に１ページの途中でジョブの実行結果が破棄されないよう１ページ分の処理ごとに切り替える技術は提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−２８２１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本来、各ハードウェアリソースの帯域がI/Oに遅れない範囲であれば複数の画像処理を同時に動作できる方が操作性は向上する。ハードウェアリソースを共有して複数の画像処理を同時に実行するためには、画像処理をバンド単位（一定のライン数で構成される）でパイプライン処理し、バンド処理区間中のみハードウェアリソースを占有するといった制御方式をとることで実現可能となる。
【００１１】
しかしながら、上述したようにコスト的にメモリ資源に制約が発生することが多く、複数同時に動作させた場合のバンド処理に必要なメモリを確保することが難しく、操作性とコストとの両立を実現できないという課題があった。
【００１２】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、前後するジョブが実行するモジュールで確保する画像パスが重複しても、重複する画像パスで最大使用可能なメモリ量からジョブを並列処理できるバンドメモリを動的に確保できる仕組みを提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
所定の画像処理に対応づけられたモジュールが複数の画像パスで確保されるメモリを使用してジョブを実行する画像処理装置であって、所定の画像処理に対応づけられたモジュールが複数の画像パスの各画像パスで使用するメモリ量と、各画像パスにおける画像処理の帯域量をジョブの種類に定義づけて管理するテーブルと、後続するジョブで使用する画像パスと、先行するジョブが使用する画像パスとが重複するかどうかを判断する第１の判断手段と、前記第１の判断手段が重複すると判断した場合、前記テーブルを参照して、各モジュールの処理帯域量を算出する算出手段と、前記算出手段が算出した前記処理帯域量が制限値を超えているかどうかを判断する第２の判断手段と、前記第２の判断手段が前記制限値を超えていないと判断した場合、前記メモリから同一の画像パスで使用するバンドメモリを追加して確保する確保手段と、前記確保手段により確保されたバンドメモリを使用して、重複する画像パスで複数の画像処理を並列して実行させるように前記モジュールの処理を制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、前後するジョブが実行する画像処理モジュールで確保する画像パスが重複しても、重複する画像パスで最大使用可能なメモリ量からジョブを並列処理できるバンドメモリを動的に確保できる。
【図面の簡単な説明】
【００１５】
【図１】情報処理システムの構成を説明するブロック図である。
【図２】制御装置の構成を示すブロック図である。
【図３】画像処理装置におけるスキャン画像蓄積処理を示すブロック図である。
【図４】プリント画像蓄積処理を示す図である。
【図５】操作部の構成を示す平面図である。
【図６】画像処理の種別毎に画像パスで使用するメモリ量を示す図である。
【図７】画像パスとバンドメモリとの関係を示す図である。
【図８】画像パスとバンドメモリとの関係を示す図である
【図９】画像処理装置のデータ処理方法を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
＜画像読み取り装置の説明＞
図１は、本実施形態を示す画像処理装置を含む情報処理システムの構成を説明するブロック図である。以下、画像処理装置である画像像読み取り装置の全体構成を以下に説明する。なお、本実施形態に示す画像処理装置のジョブの種類は、所定のジョブは、例えば原稿を読み取るスキャンジョブ、画像データを印刷する印刷ジョブ、読み取った原稿を送信するセンドジョブを含むものとすする。また、所定のジョブとして、上記以外のジョブを含めてもよい。
【００１７】
図１において、リーダ装置１３は、原稿画像を光学的に読み取り、画像データに変換する。リーダ装置１３は、原稿を読取るための機能を持つスキャナユニット１１と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット１２とで構成される。LBP部（画像出力装置）４５は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する。LBP部４５は、複数種類の記録紙カセットを持つ給紙ユニット４３と、画像データを記録紙に転写、定着させる機能を持つマーキングユニット４１と、印字された記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙ユニット４２とで構成される。制御装置１０２は、リーダ部１３、LBP部４５と電気的に接続され、さらにＬＡＮ１０５を介して、クライアントＰＣ１０３と接続されている。
【００１８】
制御装置１０２は、リーダ部１３を制御して、原稿の画像データを読込み、ＬＢＰ部４５を制御して画像データを記録用紙に出力してコピー機能を提供する。また、ＬＡＮ１０５を介してクライアントＰＣ１０３等他の情報機器から受信した画像データを記録用紙に出力するプリント機能を提供する。操作部１５０は、制御装置１０２に接続され、LCD１３５や後述のハードキーで構成され、画像読み取り装置を操作するためのユーザI/Fを提供する。
【００１９】
＜制御装置の説明＞
図２は、図１に示した制御装置の構成を示すブロック図である。
【００２０】
図２において、スキャナインタフェース（I/F）部１０には、アナログフロントエンド（AFE）１５を介して、CCD（Charge Coupled Device）１７、CIS（Contact Image Sensor）１８が接続される。CCD（Charge Coupled Devic）１７、CIS（Contact Image Sensor）１８が読み取るデータは、個別の専用回路を介在することなく、制御装置１０２に取り込むことができる。スキャナI/F部１０は、画像読み取りデバイスとして、CCD１７及びCIS１８に対応可能であり、両画像読み取りデバイスの信号を入力処理する。ここで入力された画像データは、メモリ制御部７０によりDMA転送されてメインメモリ１００上に展開される。
【００２１】
スキャナ画像処理部２０は、スキャナI/F部１０の処理によりメインメモリ１００に展開された画像データに対して、画像処理動作モード（カラーコピー、モノクロコピー、カラースキャン、モノクロスキャン等）に応じた画像処理を実行する処理部である。
【００２２】
バッファ調停部７７はスキャナI/F部１０とスキャナ画像処理部２０間のデータの受け渡しをメインメモリ１００上のリングバッファ領域を介して行う場合、データの書き込みと、読み出しを調停する。なお、コストダウンのためバッファ調停部７７での処理をソフトウェアで実施する構成も含まれる。
【００２３】
プリンタ画像処理部３０は、入力する画像の領域編集や、解像度変換を行い、得られた画像データをプリンタ出力するための処理ユニットである。４０は接続するレーザビームプリンタ（LBP）４５に画像処理結果を出力するためのプリンタインタフェース（I/F）部である。
【００２４】
バッファ調停部７８は、プリンタ画像処理部３０とプリンタインタフェース（I/F）部４０間のデータの受け渡しをメインメモリ１００上のリングバッファ領域を介して行う場合、データの書き込みと、読み出しを調停する。バッファ調停部７７、７８では基本構成は同一のブロックであるが、使用する用途により制御方法が異なる。
【００２５】
なお、スキャナ画像処理部２０とプリンタ画像処理部３０は便宜上別ブロックとして記載するが、コストダウンのため同一のハードウェア資源を使用する構成を想定している。５０はJPEGモジュール（JPEG）、６０はJBIGモジュール（JBIG）であり、所定の規格に準拠した画像データの圧縮、伸張処理を実行する処理部である。
【００２６】
７０はメモリ制御部であり、画像処理系の第１BUS８３，第２BUS８４及びコンピュータ系の第３BUS８５とそれぞれ接続し、メインメモリ（SDRAM）１００に対するデータの書き込み、読み出しのためのデータ転送制御を行なう。
【００２７】
９０はDMAコントローラ（DMAC）で、メモリ制御部７０と協働して、ROMＩＳＡ  ９７を介してROM９５と接続する。そして、DMAコントローラ（DMAC）９０は、外部デバイスや種々のインタフェース部１７０とメインメモリ１００との間のデータ授受に関しDMA制御するための所定のアドレス情報を生成、設定する。
【００２８】
９１は画像処理DMAコントローラ（画像処理DMAC）である。メモリ制御部７０と協働して、各スキャナI/F部１０、スキャナ画像処理部２０、プリンタ画像処理部３０、プリンタI/F部４０とメインメモリ１００との間のデータ授受に関し、DMA制御するための所定のアドレス情報を生成、設定する。例えば、画像読み取りデバイスの種類、CCD１７、CIS１８の別に応じて、スキャナI/F部１０で読み取り処理された画像データをメインメモリ１００にDMA転送するためのアドレス情報をDMAのチャンネルごとに生成する。なお、メインメモリ１００では、後述する複数のジョブ処理で確保できるバンドメモリの数には制限ある。そのため、CPU１８０は、実行するジョブの種類で、図６に示す使用する複数の画像パスＩＰとが重複する場合、図６に示すテーブルから割当られるリソースの情報を参照して、動的にバンドメモリを追加してジョブ処理を並列処理する。なお、その並列処理および動的にバンドメモリを追加できない場合の処理の詳細は図９で説明する。
【００２９】
また、スキャナI/F部１０は、メインメモリ１００上に展開された画像データをスキャナ画像処理部２０にDMA転送する。プリンタI/F部４０は、プリンタ画像処理部３０とメインメモリ１００間におけるDMA制御を行う。なお、スキャナI/F部１０、プリンタI/F部４０は、メモリ制御手段７０と共に司るユニットとして機能する。
【００３０】
ROM９５には画像読み取りデバイス（CCD１７やCIS１８）に応じて、適した制御パラメタ、制御プログラムデータが格納されている。このためCCD１７、CIS１８個別のデータ出力形式に応じた画像データの入力処理が可能となり、専用のインタフェース回路を設ける必要がなくなる。また、ROM９５には不揮発のデータを格納することができるため、電源のOFF/ONに関わらず保存しておきたいデータを格納する。
【００３１】
８３は第１BUSで、メインメモリ１００から読み出したデータを画像処理系の各スキャナI/F部１０、スキャナ画像処理部２０、プリンタ画像処理部３０、プリンタI/F部４０、JPEG５０、JBIG６０に送出する。８４は第２BUSで、画像処理系の各スキャナI/F部１０、スキャナ画像処理部２０、プリンタ画像処理部３０、プリンタI/F部４０、JPEG５０、JBIG６０から読み出したデータをメインメモリ１００に送出する。第１BUS８３，第２BUS８４は対になって画像処理ブロックとメインメモリ１００間の画像データの授受を行う。
【００３２】
８５は第３BUSで、CPU１８０、通信及びユーザインタフェース制御部１７０、メカトロ系制御部１２５、画像処理部内部の制御レジスタ、及びDMAC９０が接続する。メカトロ系制御部１２５にはモータ制御部１１０と、モータの駆動タイミングや、画像処理系の処理の同調を制御するためのタイミング制御を司る割り込みタイマ制御部１２０が含まれる。
【００３３】
LCD制御部（LCDC）１３０は、画像処理装置の種々の設定、処理状況等をLCD１３５に表示するための表示制御を司るユニットである。１４０、１５０は周辺機器との接続を可能にするＵＳＢインタフェース部である。
【００３４】
１６０はLANCであり、図示しないネットワーク間のデバイスとの間でデータ転送処理を制御する。LANC１６０は、LAN（図１の１０５）を介して他の機器（図１の１０３）と通信する場合にもこのユニットを使用する。１８０はCPUであり、画像形成装置１０１の全体的な動作を制御する。
【００３５】
＜スキャン画像蓄積処理の説明＞
【００３６】
図３は、本実施形態を示す画像処理装置におけるスキャン画像蓄積処理を説明するブロック図である。図３は汎用的な説明図となっているが、図２と対比させると、スキャナI/F３０１は図２のスキャナI/F１０、入力画像処理ブロック３１０は図２のスキャナ画像処理部２０と対応する。同様に、画像エンコード部３０７は図２のJPEG５０もしくはJBIG６０、画像格納メモリ３０８は図２のメインメモリ１００にそれぞれ対応する。
【００３７】
スキャナI/F３０１を介してスキャン画像を一旦入力画像バッファ３０２に蓄積する。この時点では、画像データはモノクロの場合1画素につき1バイト、カラーの場合は1画素につき3バイトの多値として扱われている。ここで、入力バッファ３０２は１ページ分まとめて確保しておく必要はなく、次の２値化処理部３０３で行う２値化処理の処理単位の大きさ分だけ確保できていればよい。
２値化処理部３０３では多値画像を一定のデータ量毎に２値画像に変換し、ページバッファ３０４に格納する。次に画像回転部３０５で画像の回転処理を行う。
【００３８】
なお、CPU１８０は、コンピュータ系の第３BUS８５を介して画像回転制御のための設定を行う。CPU１８０は、必要に応じて画像回転設定（たとえば回転の有無、回転方向・角度等）を行う。画像回転処理を行った画像はページバッファ３０６に格納される。その後、ページバッファ３０６に格納された２値画像は、モノクロの場合はJBIG６０、カラーの場合はJPEG５０において、画像処理電コード部３０７がエンコード処理を行い、画像格納メモリ３０８に格納する。
【００３９】
画像格納メモリ３０８、図２のメインメモリ１００であることを想定しているが、ハードウェア構成によっては画像をＨＤＤ上に格納することも可能である。前述したメモリ・バッファとその他の画像処理ブロック間のデータ転送はメモリ制御部７０、画処理DMAC９１によってDMA転送される。
【００４０】
＜プリント画像蓄積処理の説明＞
【００４１】
図４は、本実施形態を示す画像処理装置におけるプリント画像蓄積処理を説明するブロック図である。図４は汎用的な説明図となっているが、図２と対比させると、メモリ制御部４１３は図２の画像処理DMAC９１、入力画像処理ブロック４１４は、図２のプリンタ画像処理部３０にそれぞれ対応する。以下、
プリント画像処理部４１４についての詳細な説明を行う。
【００４２】
図４において、メモリ制御部４１３から入力される画像データは、まずデータ入力部４００に入力される。データ入力部４００では、メモリ制御部４１３から入力されたデータフォーマット変換を行い、線形補間部４０１へ画像データ転送を行う。線形補間部４０１では、画像データに対して拡大・縮小処理を行う。
【００４３】
色空間圧縮部４０２では、入力された画像データをPrinter色再現色内圧縮し、彩度調整、色位相調整、下地調整、黒領域調整等の各処理を行う。また、入力色空間がYUVの場合には色空間圧縮部４０２でRGB色空間に変換する処理を行う。
【００４４】
下地除去・白黒変換部４０３では、RGBの画像データに対して非線形演算を行い画像の下地を除去する機能と、白黒出力を行う場合は画像データをRGBからMonochROMeに変換するカラー／白黒変換機能を有する。LOG変換部４０４では、１次元のLook-Up Tableを用いて非線形変換を行い、画像データをRGB信号からCMY信号に変換する。
【００４５】
CMYK変換部４０５では、３次元のLook-Up Tableを用いてCMY信号をCMYK信号に変換する。なお、メモリ制御部４１３から入力された画像データの色空間がCMYKの場合には、色空間圧縮部４０２からCMYK変換部４０５までは入力されたデータをそのまま出力する。カラーバランス補正部４０６では、画像の明るさ調整を行う。
【００４６】
γ補正部４０７では、入力されたCMYK信号を各々独立に１次元Look-Up Tableを用いて濃度調整する処理を行う。多値スクリーン処理部４０８では、入力された多値の画像データに対してスクリーン処理を行い、４／２／１ｂｉｔ階調に変換する処理を行う。
【００４７】
誤差拡散処理部４０９では、入力された多値の画像データに対して誤差拡散処理を行い、4/2/1bit階調に変換する処理を行う。ここで、入力画像に対してスクリーン処理を施す場合は、多値スクリーン処理部４０８で処理を行い、誤差拡散処理部４０９では入力されたデータをそのまま出力する。
【００４８】
なお、誤差拡散処理を施す場合は、多値スクリーン処理部４０８は入力されたデータをそのまま出力し、誤差拡散処理部４０９で処理を行う。スムージング部４１０では、画像データのエッジ部をパターンマッチングで検出して変換を行い、ジャギーを軽減して滑らかにする処理を行う。トリミング部４１１では、画像データの枠消しやマスキング処理を行う。データ出力部４１２では、処理された画像データをメモリ制御部４１３に出力する。
【００４９】
＜操作部の説明＞
図５は、図１に示した操作部１５０の構成を示す平面図である。
【００５０】
本例に示す操作部１５０は、LCD１３５、メニュー選択キー５０１、テンキー５０２、リセットキー５０３、ストップキー５０４、スタートキー５０５から構成される。なお、５０１〜５０５はハードキーで構成されている。
【００５１】
LCD１３５はLCDC１３０から入力される制御に基づいて表示を行う。メニュー選択キー５０１はLCD１３５上に表示されるメニューを選択するための上下左右にスクロールするためのキーと、選択項目を確定させるためのキーから構成される。テンキー５０２は、部数等の数値を直接入力するためのキーである。リセットキー５０３は、設定途中の状態をクリアして、設定を初期値に戻すためのキーである。スタートキー５０５は各種ジョブを開始する指示を与えるためのキーである。ストップキー５０４は、開始されたジョブを停止させるための指示を与えるキーである。
【００５２】
＜画像パスと画像処理＞
図６は、本実施形態を示す画像処理装置で使用する画像パスとメモリ資源とを対応づけた定義テーブルを示す図である。特に、図６の（ａ）は画像処理を行う上で使用する各モジュールの画像パスの定義を表現する定義テーブルである。本定義テーブルでは、画像処理モジュールSCAN1、SCAN2、SCAN3、PRINT1、PRINT2、PRINT3に対応づけて使用する画像パスと、その画像パスで確保すべきバンドメモリのメモリ量と、処理帯域量（％）が定義されている。これにより、CPU１８０は、複数のジョブを実行する要求が発生した場合、当該テーブルから画像パス上での重複と、メモリ量、処理帯域量等を参照して、バンドメモリを追加して確保して複数のジョブを並列処理させるように制御する。この制御の詳細は、図９において説明する。また、上記定義テーブルは、ＲＯＭ９５に記憶され画像処理装置がブートされた際に、メインメモリ１００上に常駐させるが、適宜他のメモリ資源に退避させて管理してもよい。
【００５３】
図６の（ａ）おいて、６００１、６０１１、６０２１はスキャン系の画像処理を実施するための画像処理である。例えば画像処理モジュール「SCAN1」に対応づけられた画像処理６００１では、３つのハードウェア（もしくはソフトウェア）モジュールを順に使用してスキャン画像に画像処理を行うことが定義される。具体的には、画像パス（ＩＰ１）６００３、画像パス（ＩＰ２）６００５、画像パス（ＩＰ３）６００７の３つのハードウェア（もしくはソフトウェア）モジュールを順に使用してスキャン画像に画像処理を行う。ここで、画像パス（ＩＰ１）６００３に対しては、メインメモリ１００上に確保されるバンドメモリとして３バンド分が必要であるとメモリ量６００２で定義されている。
【００５４】
なお、必要メモリ量の定義はバンド単位でなくても構わないが、本実施形態ではバンド単位で定義する。また、１バンドが何画素であるかの定義は画像処理モジュールの仕様、性能に依存するため、環境に応じて適宜定義されていることを前提とする。
【００５５】
また、ジョブの種類が画像入力処理である画像処理モジュール「SCAN1」に対応づけられた画像処理６００１のための画像パスでハードウェア（もしくはソフトウェア）モジュールが処理帯域量は、３０％を使用することが定義されている（帯域量６００３）。つまり、同画像処理モジュールには７０％の処理帯域量のマージンが存在するため、帯域マージンの範囲内であれば帯域量６００３の処理能力を落とさずに時分割で画像処理が可能であると言える。その他の画像パスについても定義方法は同様であり、本実施形態では６０３１、６０４１、６０５１をジョブの種類がプリント系の画像パスとして定義している。
【００５６】
図６の（ｂ）は、図６の（ａ）を使用するハードウェア（もしくはソフトウェア）モジュールの種類で画像パスを分類したものである。
【００５７】
ここでは、ハードウェアリソースの競合状態が表現されている。例えば、画像処理６０６１（「SCAN1」）と画像処理６１４１（「PRINT2」）の画像パスを同時に処理させようと考えた場合は、ＩＰ２（画像パス６０６５と画像パス６１４５）、ＩＰ３（画像パス６０６７と画像パス６１４７）とが同時に使用されることが表現されている。
さらに、ＩＰ２（画像パス６０６５と画像パス６１４５）の同時動作に必要なメモリ量はメモリ量６０６４とメモリ量６１４４から合計６バンドであることが表現されている。
画像処理６０６１（「SCAN1」）と画像処理６１４１（「PRINT2」）の画像パスＩＰ２で同時動作に必要な処理帯域量６０６５と処理帯域量６１４５との合計から７０％であると判断できる。
【００５８】
図７は、本実施形態を示す画像処理装置におけるバンド処理を説明する図である。以下、画像パスIP1〜IP3における画像処理モジュール７００１〜７００３によるバンド処理を説明する。
【００５９】
図７の（ａ）では「SCAN1」の画像処理６００１（図６の（ａ））を制御装置１０２で実行させた場合の構成を示す。また、図７の（ｂ）は「PRINT2」の画像処理６０４１（図６の（ａ））を制御装置１０２で動作させた場合の画像処理モジュール７００１〜７００３の構成を示す。
【００６０】
画像パス（ＩＰ１）に対応づけられる画像処理モジュール７００１を使用する画像パスは、図６の（ｂ）から「SCAN1」は画像処理６０６１であることが定義されている。同様に、「SCAN2」は画像処理６０８１、「SCAN3」は画像処理６１０１、「PRINT3」は画像処理６１６１であることが定義されている。
【００６１】
そして、これらの画像パスＩＰ１〜ＩＰ３は少なくとも単体で実行された時に遅延しないように設計する必要がある。これらの画像パスをいかなる場合でも遅延しない必要メモリを確保する場合、画像パス（ＩＰ１）に対応するモジュール７００１を使用する全画像パスでの最大バンド数を初期値として定義するのが最も考えやすい。
【００６２】
つまり、本実施形態では、画像処理「SCAN1」、「SCAN2」、「SCAN3」、「PRINT3」で使用されるバンド数６０６２、６０８２、６１０２、６１６２の最大数３を画像パス（ＩＰ１）に対応づけられた画像処理モジュール７００１に必要なバンド数の初期値として確保する（バンドメモリ７００４、７００５、７００６）。
【００６３】
これにより、少なくとも「SCAN1」の画像処理６０６１、「SCAN2」の画像処理６０８１、「SCAN3」の画像処理６１０１、「PRINT3」の画像処理６０６１のいずれかを画像パスを単体で処理する範疇であれば遅延なく動作させることが可能となる。
同様に、図７の（ａ）において、「SCAN1」の画像処理６０６１の画像パス（ＩＰ１）は、画像処理モジュール７００１で使用するバンド数（バンドメモリ７００４〜７００６）は５となる。画像処理モジュール７００２で使用するバンド数（バンドメモリ７００７〜７０１２）は、６０６４，６０８４，６１０４，６１４４の最大数である６となる。画像処理モジュール７００３で使用するバンド数（バンドメモリ７０１３〜７０１７）は、６１０６，６０８６，６０６６の最大数である５となる。
【００６４】
また、図７の（ｂ）において、「PRINT2」の画像処理６１４４の画像パスを動作させる範疇では画像パス（ＩＰ２）に対応づけられた画像処理モジュール７０２２で使用するバンド数は２となる、また、初期値の６（バンドメモリ７０２６〜７０３１）までは使用しない。
しかしながら、「SCAN3」の画像処理６１０１を実行した場合には最大６バンド使用するため、初期値が６となっている。
他の画像処理モジュール（７００２〜７００３、７０２１〜７０２４）に対しても同様の考え方で必要バンド数の初期値を決定する。なお、「PRINT2」の画像処理６１４１の画像パス（ＩＰ４）は、画像処理モジュール７０２１で使用するバンド数は１となる。また、「PRINT2」の画像処理６１４１の画像パス（ＩＰ５）は、画像処理モジュール７０２４で使用するバンド数（バンドメモリ７０３７〜７０３８）は２となる。また、「PRINT2」の画像処理６１４１の画像パス（ＩＰ３）は、画像処理モジュール７０２３で使用するバンド数（バンドメモリ７０３２〜７０３６）は５となる。
【００６５】
＜画像パスの同時動作＞
以下、図８と図９を使用して、機能処理が異なる画像処理モジュールを並列処理する際における画像パスで使用するバンドメモリを確保する処理を詳細に説明する。
図８は、本実施形態を示す画像処理装置による処理を説明する図である。
本実施形態では、先行するジョブである「SCAN1」の画像処理６００１の処理中に、後続するジョブである「PRINT2」の画像処理６０４１の処理が依頼された場合のフローを例として、本発明の説明を行う。
【００６６】
図９は、本実施形態を示す画像処理装置のデータ処理方法を説明するフローチャートである。なお、各ステップは、CPU１８０がROM９５等に記憶された制御プログラムを実行することで実現される。以下、画像処理が重複するモジュールにおける画像処理をバンドメモリ単位で排他制御する例を説明する。
【００６７】
Ｓ９０１では、CPU１８０が、先行処理されている画像パスが存在するか否かを判断する。先行する画像パスが存在しないとCPU１８０が判断した場合は特にハードウェア（ソフトウェア）リソースの競合は発生しないため、画像処理を即時実行する。
一方、先行する画像パスが存在するとCPU１８０が判断した場合はＳ９０２に進む。ここでは、「SCAN1」が先行して処理されることを想定してＳ９０２に進む。
【００６８】
Ｓ９０２では、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスで使用されるハードウェア（ソフトウェア）リソースを確認する。「PRINT2」の画像処理６０４１では、図８に示すように画像パスＩＰ４、画像パスＩＰ２、ＩＰ３、画像パスＩＰ５が使用される。
【００６９】
従って、CPU１８０は、Ｓ９０２で、まず画像パスＩＰ４を次に着目すべき画像処理であると判断する。そして、CPU１８０は、着目すべき画像処理が存在するためＳ９０３に進む。ここで、同画像パスで使用されるハードウェア（ソフトウェア）リソースを全て確認済みであるとCPU１８０が判断した場合にはＳ９１２に進む。
【００７０】
Ｓ９０３では、CPU１８０が、Ｓ９０２で着目すべき画像処理であると判断された画像パスＩＰ４が先行処理されている「SCAN1」の画像処理６００１の画像パスで重複して使用されていないかを確認する。「SCAN1」の画像処理６００１では画像パスＩＰ１、画像パスＩＰ２、画像パスＩＰ３が定義されているが、ＩＰ４は存在しないため、Ｓ９０２に進み、CPU１８０は、次に着目すべき画像処理が存在するか判断を行う。
【００７１】
Ｓ９０２に戻り、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスで使用されるハードウェア（ソフトウェア）リソースを確認する。「PRINT2」の画像処理６０４１では、画像パスＩＰ４の次に画像パスＩＰ２が使用される。従って、CPU１８０は、Ｓ９０３に進む。
【００７２】
Ｓ９０３では、CPU１８０が、Ｓ９０２で着目すべき画像処理であると判断された画像パスＩＰ２が先行処理されている「SCAN1」の画像処理６００１の画像パスで使用されていないかを判断する。「SCAN1」の画像処理６００１では画像パスＩＰ１、画像パスＩＰ２、画像パスＩＰ３が定義されており、ＩＰ２が存在するとCPU１８０が判断するため、Ｓ９０４に進む。
Ｓ９０４では、CPU１８０が、処理帯域量の合計値を計算する。ここでは、画像パス６００５の処理帯域量と画像パス６０４５の処理帯域量とから、処理帯域量の合計が７０％であると算出できる。
【００７３】
Ｓ９０５では、CPU１８０が、Ｓ９０４で合計した処理帯域量が画像パスＩＰ２の制限値（100%）を超えるか否かを判断する。ここで、画像パスＩＰ２の限界を超えるとCPU１８０が判断した場合には、Ｓ９１０からＳ９１４に進む。そして、Ｓ９１４において、CPU１８０は、（後述のＳ９０７）追加獲得されたバンドメモリの有無を判断し、追加獲得されたバンドメモリが有るとCPU１８０が判断した場合、追加獲得されたバンドメモリを開放する（Ｓ９１５）。
【００７４】
次に、Ｓ９１１に進み、先行処理されている「SCAN1」の画像処理６００１の画像パスの処理完了を待機する。Ｓ９１１にてCPU１８０が、先行処理されている「SCAN1」の画像処理６００１の画像パスの処理が終了したと判断した場合はＳ９１２に進み、「PRINT2」の画像処理６０４１が実行される。つまり、画像パスは排他処理されることになる。一方、Ｓ９０５で、処理帯域がＩＰ２の限界を超えないとCPU１８０が判断した場合にはＳ９０６に進む。
【００７５】
Ｓ９０６では、CPU１８０が、バンドメモリの合計値を計算し、バンドメモリが初期値を超えるか否かを判断する。ここでは、メモリ量６００４、６０４４から、バンドメモリの合計バンド数が「６」であると算出できる。ここで、図７の（ａ）のバンドメモリ７００７〜７０１２から、画像パスＩＰ２で画像処理モジュール７００２が使用するバンドメモリのバンド数の初期値が「６」である。つまり、単体パスで必要最大なバンド数が「６」であるため、バンドメモリは不足しないとCPU１８０は判断する。従って、CPU１８０は、処理をＳ９０２に戻す。
【００７６】
Ｓ９０２に戻り、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスで使用されるハードウェア（ソフトウェア）リソースを確認する。「PRINT2」の画像処理６０４１では、画像パスＩＰ２の次に画像パスＩＰ３が使用される。従って、CPU１８０は、処理をＳ９０３に進める。
【００７７】
Ｓ９０３では、CPU１８０が、Ｓ９０２で着目すべき画像処理であると判断された画像パスＩＰ３が先行処理されている「SCAN1」の画像処理６００１の画像パスで使用されていないかを確認する。「SCAN1」の画像処理６００１では画像パスＩＰ１、画像パスＩＰ２、画像パスＩＰ３が定義されており、画像パスＩＰ３が存在するため、Ｓ９０４に進む。
【００７８】
Ｓ９０４では、CPU１８０が、処理帯域量の合計値を計算する。ここでは、CPU１８０は、画像パス６００７と画像パス６０４７から、処理帯域量の合計が１１０％であると算出する。この場合には、同時動作によって処理遅延が発生する可能性があるため、Ｓ９１１にて先行処理されている「SCAN1」の画像処理６００１の画像パスの処理終了待つ。
【００７９】
Ｓ９１１にてCPU１８０が、先行処理されている「SCAN1」の画像処理６００１の画像パスの処理が終了したと判断した場合は、Ｓ９１２に進み、「PRINT2」の画像処理６０４１が実行される。つまり、画像パスは排他処理されることになる。
仮に、Ｓ９０４で、CPU１８０が、処理帯域量の合計値を計算し、処理帯域量の合計が１００％以下であると判断された場合には、CPU１８０は、処理をＳ９０６に進める。
【００８０】
Ｓ９０６では、CPU１８０が、バンドメモリの合計値を計算し、バンドメモリが初期値を超えるか否かを判断する。ここでは、メモリ量６００６、メモリ量６０４６から、バンドメモリの合計バンド数が「８」であると算出できる。ここで、図７の（ａ）のバンドメモリ７０１３〜７０１７から、ＩＰ３（画像処理モジュール７００３が使用するバンドメモリのバンド数の初期値が「５」である。つまり、単体パスで必要最大なバンド数が５であるから、画像パスの同時動作を行うにはバンドメモリ数が不足する。このような状態であるとCPU１８０が判断した場合は、処理をＳ９０７に進める。
【００８１】
Ｓ９０８では、CPU１８０が、不足するバンドメモリ３つを獲得する。Ｓ９０８では、CPU１８０が、Ｓ９０７でバンドメモリ３つを獲得できたか否かを判断する。ここで、バンドメモリ３つを獲得できたとCPU１８０が判断した場合（図８のバンドメモリ８０１７〜８０１９）には、Ｓ９０２に進み次の画像処理を確認する。
一方、Ｓ９０７で、バンドメモリ３つを獲得できなかったとCPU１８０が判断した場合は画像パスを排他処理するために、CPU１８０は、処理をＳ９１０に進める。
【００８２】
Ｓ９０２に戻り、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスで使用されるハードウェア（ソフトウェア）リソースを確認する。「PRINT2」の画像処理６０４１では、画像パスＩＰ３の次に画像パスＩＰ５が使用される。従って、CPU１８０は処理をＳ９０３に進める。
【００８３】
Ｓ９０３では、CPU１８０が、Ｓ９０２で着目すべき画像処理であると判断された画像パスＩＰ５が先行処理されている「SCAN1」の画像処理６００１の画像パスで使用されていないかを確認する。
【００８４】
「SCAN1」の画像処理６００１では画像パスＩＰ１、画像パスＩＰ２、画像パスＩＰ３が定義されているが、画像パスＩＰ５は存在しないため、CPU１８０は、処理をＳ９０２に進め、次に着目すべき画像処理が存在するか確認を行う。
【００８５】
そして、Ｓ９０２に戻り、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスで使用されるハードウェア（ソフトウェア）リソースを確認する。ここで、同画像パスで使用されるハードウェア（ソフトウェア）リソースを全て確認が終了した場合（次に注目すべき画像処理が存在しない）ため、CPU１８０は、処理をＳ９１２に進める。
【００８６】
Ｓ９１２では、CPU１８０が、「PRINT2」の画像処理６０４１の画像パスを実行し、CPU１８０は、処理をＳ９１３に進める。Ｓ９１３からＳ９１４に進み、追加獲得されたバンドメモリ（Ｓ９０７）の有無を判断し、追加獲得されたバンドメモリが有るとCPU１８０が判断した場合、処理をＳ９１５へ進め、追加獲得されたバンドメモリを開放する。
【００８７】
本実施形態では、スキャン系の画像パスとプリント系の画像パスとの画像処理例で説明を行ったが、スキャン系の画像パスという粒度ではなく、さらに小さいブロックでの画像パス処理でも同様の処理が実現できる。また、スキャン系、プリント系以外に、別の画像処理系の画像パスとの同時動作であっても同様に実現可能である。
これにより、画像処理をページ単位で排他してページ単位で処理の一時停止/再開が入る動作に対して操作性が向上する。
【００８８】
〔第２実施形態〕
上記実施形態では、処理帯域量に応じてバンドメモリを追加して確保する処理について説明したが、重複する画像処理モジュールの１バンド当たりの処理時間の比に応じてバンドメモリを確保するように制御してもよい。
〔第３実施形態〕
上記実施形態では、バンドメモリを確保できない場合、後続の画像処理を先行する画像処理が完了するまで待機する場合について説明した。しかし、このような状態に遷移したことを検知した場合に、後続の処理を待機させるかどうかをユーザが指定できる構成としてもよい。
この際、ユーザが指定できる処理としては、競合するジョブそれぞれの画像処理をページ毎に排他で実行させる処理と、指定したジョブを先に処理し、他のジョブの処理を待機させる処理とが想定される。これにより、後者の指定をしたユーザは、後続するジョブを先行させて処理させることも可能となる。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばASIC）によっても実現可能である。
【符号の説明】
【００８９】
７０  メモリ制御部
９１  画像処理DMAC
１００  メインメモリ
１８０  CPU
【図１】
2017168012.tif 000003
【図２】
2017168012.tif 000004
【図３】
2017168012.tif 000005
【図４】
2017168012.tif 000006
【図５】
2017168012.tif 000007
【図６】
2017168012.tif 000008
【図７】
2017168012.tif 000009
【図８】
2017168012.tif 000010
【図９】
2017168012.tif 000011