(57)【特許請求の範囲】
【請求項１】
複数の画像処理プロセスが動作する画像処理装置において、
各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出し、システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更するメモリ量変更手段を備えていることを特徴とする画像処理装置。
【請求項２】
前記メモリ量変更手段は、前記プロセスのうちあらかじめ設定したプロセスについてのみ前記リザーブしている画像メモリ量を変化させることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記メモリ量変更手段は、変化させる画像メモリ量をあらかじめ決定しておくことを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
複数の画像処理プロセスを動作させる画像処理装置に使用されるコンピュータプログラムにおいて、
各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出する処理と、
システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更する処理と、
が書き込まれ、コンピュータにロードするよって前記処理を実行し、前記画像メモリ量の変更を行うことを特徴とするコンピュータプログラム。
【請求項５】
請求項４記載のプログラムが、コンピュータによって実行可能に書き込まれた情報記録媒体。
【請求項６】
請求項１ないし３のいずれか１項に記載の画像処理装置と、
前記画像処理装置によって処理された画像データに基づいて可視画像を形成する画像形成手段と、
を備えていることを特徴とする画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャナやプロッタといった画像入出力エンジンを装備する画像処理装置のシステムコントローラに関し、特にＭＦＰ（Multi Function Peripheral）機のようなコピープロセスやプリントプロセスといった画像入出力処理プロセスを、複数同時に動作させるプロセス実行環境を管理する技術に関する。
【０００２】
【従来の技術】
一般にＭＦＰ機と呼ばれる画像処理装置には複数の画像処理機能が搭載されている。例えばプリント機能、スキャン機能、画像蓄積機能、ファックス機能、ネットワークを介した蓄積画像抽出機能などがその代表的な機能である。これらの機能は各々独立して動作できるようになっている。この種の画像処理装置では、パフォーマンスアップのために、複数のプロセスが同時に実行できるようになっている。例えばプリントプロセスとスキャンプロセスは、お互いのプロセスがプロッタやスキャナといった画像処理装置のリソースを同時に奪い合うことがないので、コントローラにおいて両プロセスの並列動作を管理することによって、並列動作が可能になり、パフォーマンスの向上を図ることができるようになる。
【０００３】
また、コピープロセスとファックス受信プロセスの並列動作の例でも、コピープロセスがスキャナおよびプロッタリソースを消費するのに対し、ファックス受信による画像保存プロセスではこれらのリソースを使用しないので、リソースの奪い合いがなく、プロセスの並列動作が可能となる。
【０００４】
一方、このような画像処理装置には画像を展開するための画像メモリが用意されており、各プロセスは動作時に自身のプロセスの動作のために画像メモリをリザーブし、この画像メモリを使用することによって画像処理を行なっている。
【０００５】
しかし、ＭＦＰ機では複数のプロセスが並列動作するため、各プロセスが同時に画像メモリをリザーブすることがあり、あるプロセスが大量の画像メモリをリザーブしていた場合には、他のプロセスが必要とする画像メモリを獲得することができず、動作を中断しなければならないことがある。これによりプロセスが即時に動作できなくなり、例えばこれが緊急を要するプロセスである場合にはシステムが破綻するといったことがある。
【０００６】
【発明が解決しようとする課題】
このような動作の中断あるいはシステムの破綻を防止するために例えば特開平８−３３９３２４号公報では、特定ソフトウェアが使用するための専用メモリプールと、その他のソフトウェアが使用する汎用メモリプールを備える方式が提案されている。
【０００７】
しかし、複数のプロセスが同時に発生し、大量の汎用メモリプールを消費していた場合には、特定ソフトウェアが専用メモリプールだけでは動作できないといった問題がある。
【０００８】
本発明は、このような従来技術の実情に鑑みてなされたもので、その目的は、複数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置を提供することにある。
【０００９】
また、他の目的は、複数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置のためのプログラムと、そのプログラムを格納した情報記録媒体を提供することにある。
【００１０】
さらに他の目的は、数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置を備えた画像形成装置を提供することにある。
【００１１】
【課題を解決するための手段】
前記目的を達成するため、第１の手段は、複数の画像処理プロセスが動作する画像処理装置において、各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出し、システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更するメモリ量変更手段を備えていることを特徴とする。
【００１２】
第２の手段は、第１の手段において、前記メモリ量変更手段は、前記プロセスのうちあらかじめ設定したプロセスについてのみ前記リザーブしている画像メモリ量を変化させることを特徴とする。
【００１３】
第３の手段は、第１または第２の手段において、前記メモリ量変更手段は、変化させる画像メモリ量をあらかじめ決定しておくことを特徴とする。
【００１４】
第４の手段は、複数の画像処理プロセスを動作させる画像処理装置に使用されるコンピュータプログラムにおいて、各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出する処理と、システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更する処理とが書き込まれ、コンピュータにロードするよって前記処理を実行し、前記画像メモリ量の変更を行うことを特徴とする。
【００１５】
第５の手段は、第４の手段に係るプログラムを情報記録媒体に書き込み、コンピュータによって実行できるようにしたことを特徴とする。
【００１６】
第６の手段は、第１ないし第３の手段に係る画像処理装置と、前記画像処理装置によって処理された画像データに基づいて可視画像を形成する画像形成手段とから画像形成装置を構成したことを特徴とする。
【００１７】
なお、後述の実施形態では、前述の画像メモリは画像メモリ１２１に、メモリ量変更手段はＣＰＵ１１０に、画像形成手段はプロッタエンジン１３０にそれぞれ対応する。
【００１８】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
【００１９】
１．全体構成（図１）
図１は本発明の実施形態に係る画像処理装置の全体の構成を示すブロック図である。図１において、本実施形態に係る画像処理装置はＣＰＵバス１０１と画像転送用バス１０２の２つのバスを持っている。ＣＰＵバス１０１はＣＰＵ１１０に直結しているバスであり、ＣＰＵ１１０、ＲＯＭ１１１、ＲＡＭ１１２およびブリッジ１１３などが接続されている。
【００２０】
画像転送用バス１０２は主に画像データを転送するバスであり、このバスにはブリッジ１１３、画像メモリ１２１、ＤＭＡＣ（Direct Memory Access Controller）１２２、スキャナバッファ１２３、プロッタバッファ１２４、ＮＩＣ（Network Interface Controller）１２５、ハードディスク１２６などが接続されている。この画像転送用バス１０２は画像データを高速に転送しなければならないバスであり、汎用の高速なバスを流用しても、画像データを効率良く転送するように設計した専用のバスを使用しても良い。
【００２１】
ブリッジ１１３はＣＰＵバス１０１と画像転送用バス１０２を仲介しており、２つのバス１０１，１０２の速度差やバス幅の違いを吸収するとともに、エンディアンの変換などを行なっている。例えばＣＰＵ１１０が画像メモリ１２１をアクセスする場合は、ＣＰＵ１１０によるＣＰＵバスアクセスサイクルを、ブリッジ１１３が画像転送用バスアクセスに変換することによって画像メモリ１２１へのアクセスを実現している。
【００２２】
画像メモリ１２１は画像データを保存する領域である。スキャナなどの画像入力部から入力された画像データや、ＮＩＣ１２５を通じてネットワークから送られてきた画像データを保存する。この画像データはどのような種類の画像でも良く、例えば、白黒／カラー、２値／多値、圧縮／非圧縮、低解像度／高解像度など各種多様なフォーマットの画像が考えられる。また、画像メモリ１２１上に保存した画像データは、
▲１▼  プロッタ（エンジン１３０）に転送してプリントする。
【００２３】
▲２▼  ＮＩＣ１２５を通じてネットワーク上に送信する。
【００２４】
▲３▼  ハードディスク１２６へ保存する。
【００２５】
などの処理が行なわれる。なお、プロッタエンジン１３０でプリントすることから、この実施形態では、前記プロッタエンジン１３０が画像形成手段に相当する。
【００２６】
ＤＭＡＣ１２２は画像転送用バス１０２上を流れる画像データを高速に転送するコントローラであり、例えばスキャン時にはスキャナＩ／Ｆから送られてくるデータを画像転送用バス１０２を通じてフレームメモリの指定された領域に書き込むなど、まとめて大量のデータを転送するような処理を行なう。フレームメモリ上のアドレスや転送サイズはあらかじめＣＰＵ１１０からＤＭＡＣ１２２に指定しておく。
【００２７】
ＮＩＣ１２５はネットワーク１２７とのＩ／Ｆを制御するモジュールで、ネットワーク１２７から送られてきた画像データおよびその他のデータを受け取り、バスの要求に従って画像転送用バス１０２にデータを流す処理を行なう。また、データをネットワーク１２７へ送信する処理も行なう。また、ＣＰＵ１１０からネットワーク１２７上の画像メモリを透過的に見せるための処理も行なっている。
【００２８】
ネットワーク１２７は汎用なネットワークでも、画像処理装置に特化したネットワークでもよい。汎用的なネットワークとしては例えばイーサネットＴＭがあるが、ＩＥＥＥ１３９４などのシリアルＩ／Ｆなどでもよい。
【００２９】
スキャナエンジン１２８は画像を入力するモジュールで、入力した画像データをスキャナＩ／Ｆ１２９を介してスキャナバッファ１２３に転送する。スキャナバッファ１２３はスキャナエンジン１２８から送られてきた画像データを一時的に保存し、画像転送用バス１０２のバスサイクルに合わせてデータを出力する。
【００３０】
プロッタエンジン１３０は画像を出力するモジュールで、プロッタバッファ１２４から送られてきた画像データをプロッタＩ／Ｆ１３１を通じて取り込み、プリントする。プロッタバッファ１２４は画像転送用バス１０２から送られてきた画像データを一時的に保存し、プロッタＩ／Ｆ１３１の速度に応じてデータを出力する。ハードディスク１２６は、画像を保存する記憶装置である。
【００３１】
このように構成された画像処理装置では、例えば以下に述べるように動作する。
【００３２】
２．動作（図２）
例えば、スキャナエンジン１２８で取り込んだ画像を画像メモリ１２１に蓄積し、画像メモリ１２１上のデータをプロッタエンジン１３０に出力するコピープロセスの動作例を図２に示す。
【００３３】
このプロセスでは、まずスキャナエンジン１２８にスキャン開始を要求し（ステップ２０１）、画像データをスキャナバッファ１２３にため込んでいく。続いてＤＭＡＣ１２２にＤＭＡ転送開始を要求し（ステップ２０２）、あらかじめＤＭＡＣ１２２に設定されていたサイズ分だけ、スキャナバッファ１２３から画像メモリ１２１へ画像データが転送される（ステップ２０３）。この転送は画像転送用バス１０２を使用して行なわれる。
【００３４】
スキャナで全ての画像を読み込み、画像メモリ１２１に全ての画像データが保存されるまで画像データの転送は行なわれる（ステップ２０４）。全ての画像データの転送が終了したら、スキャナエンジンにスキャン終了を要求し（ステップ２０５）、続いてＤＭＡＣ１２２にＤＭＡ転送終了を要求する（ステップ２０６）。このようにしてスキャナエンジン１２８から画像メモリ１２１への画像転送が行なわれる。
【００３５】
以上のようにして画像転送が終了すると、次にＤＭＡＣ１２２にＤＭＡ転送開始を要求し（ステップ２０７）、続いてプロッタエンジン１３０にプリント開始を要求する（ステップ２０８）。これにより、画像メモリ１２１からプロッタバッファ１２４へ画像データが転送される（ステップ２０９）。この転送は画像転送用バスを使用して行なわれる。
【００３６】
画像メモリ１２１上の画像データが全て転送され、全ての画像データがプロッタに出力されるされるまで画像データの転送が行なわれる（ステップ２０９，２１０）。全ての画像データの転送が終了したら、ＤＭＡＣ１２２にＤＭＡ転送終了を要求し（ステップ２１１）、続いてプロッタエンジン１３０にプリント終了を要求する（ステップ２１２）。このようにして画像メモリ１２１からプロッタエンジン１３０への画像転送が行なわれる。
【００３７】
３．画像メモリのリザーブ
次に画像メモリのリザーブ方法について説明する。
【００３８】
３．１  起動時のメモリ割り当て（図３）
例えば本画像処理装置でプロセスＡ、プロセスＢ、プロセスＣが動作するものとする。まず、本実施形態に係る画像処理装置の起動時において、各プロセスが最低限必要とする画像メモリ量を算出する。各プロセスが必要とする画像メモリの大きさは、プロセスの種類や扱う画像データの種類によって異なる。例えば、バンド単位で画像を展開して出力するプリントプロセスでは、最低限１バンド分の画像を展開できるだけの画像メモリを必要とする。同様にページ単位で画像を展開して出力するプロセスでは、最低限１ページ分の画像メモリを必要とする。これらは最低限必要であるメモリ容量であり、通常の動作で快適にプロセスが動作するためには、例えばプロセスＡが数バンド分、プロセスＢが数ページ分の画像メモリを必要とする。また、圧縮した画像を画像メモリに展開し、出力時にハードウェアの伸長機能を利用してプリントするようなプロセスでは、圧縮状態の画像が保持できるだけの画像メモリを必要とする。扱う画像がモノクロ画像だけのプロセスなら１プレーン分の画像メモリだけを必要とするが、カラー画像も扱うようなプロセスでは４プレーン分の画像メモリが必要となる場合もある。高精細な画像も扱うプロセスでは、通常の画像よりも多くの画像メモリを必要とする。
【００３９】
このように、プロセスの種類やそのプロセスで扱う画像の種類などによって、必要とする画像メモリの大きさは異なってくる。例えばプロセスＡ、プロセスＢ、プロセスＣが最低限、以下に示す画像メモリ容量を必要としているものとする。プロセスＡは１バンド毎に画像を展開して出力するプリントプロセスであり、最低限１バンド分の画像メモリを必要としている。またプロセスＢは１ページ毎に画像を展開して出力するプリントプロセスであり、最低限１ページ分の画像メモリを必要としている。プロセスＣは１ページ毎に圧縮されたファックス文書を受信して画像メモリに保存するファックス受信プロセスであり、最低限１ページ分の画像メモリを必要としているものとする。
【００４０】
このようにして得られた最低限必要な画像メモリ量が、例えばプロセスＡでは８ＭＢ、プロセスＢでは１２ＭＢ、プロセスＣでは４ＭＢであったとする。次に、システム起動時に各プロセスで最低限必要とする画像メモリを、それぞれ各プロセス専用の画像メモリとしてリザーブする。また残った画像メモリを、全てのプロセスで使用可能であるフリー画像メモリとして割り当てる。これにより、システム起動時には図３で示すようにプロセスＡ用画像メモリ１２１Ａ、プロセスＢ用画像メモリ１２１Ｂ、プロセスＣ用画像メモリ１２１Ｃ、フリー画像メモリ１２１Ｆがそれぞれ割り当てられることなる。各プロセスに割り当てられた画像メモリ１２１Ａ〜Ｃ、Ｆは、そのプロセス専用の画像メモリであり、例えばプロセスＡ用画像メモリ１２１Ａは他のプロセスからのアクセスが禁止されている。
【００４１】
３．２  プロセスＡのメモリリザーブ（図４）
プロセスＡが実行されると、プロセスＡが必要とする容量だけ画像メモリがリザーブされる。プロセスＡが通常１２ＭＢの画像メモリを使用するなら、図４に示すように８ＭＢのプロセスＡ用画像メモリ１２１Ａとフリー画像メモリ１２１Ｆから４ＭＢの画像メモリ１２１ＦＡがリザーブされる。
【００４２】
３．３  プロセスＡおよびプロセスＢのメモリリザーブ（図５）
次に、プロセスＡの実行中にプロセスＢが実行されると、プロセスＢが必要とする容量だけ画像メモリがリザーブされる。プロセスＢが通常３２ＭＢの画像メモリ１２１Ｂを使用するなら、１２ＭＢのプロセスＢ用画像メモリ１２１Ｂとフリー画像メモリ１２１Ｆから２０ＭＢの画像メモリがリザーブされる。この時、フリー画像メモリの未使用領域が２０ＭＢに満たなかった場合は、現在フリー画像メモリ１２１Ｆにある未使用領域の分だけ、プロセスＢの画像メモリとしてリザーブする。例えば図５のように未使用領域が４ＭＢなら、１２ＭＢのプロセスＢ用画像メモリ１２１Ｂと４ＭＢのフリー画像メモリ１２１ＦのすべてがプロセスＢ用の画像メモリ１２１ＦＢとして割り当てられ、全体で１６ＭＢをプロセスＢに割り当てる。
【００４３】
この場合プロセスＢは最適な容量の画像メモリを得てないが、プロセスが動作する上で最低限必要とするメモリ容量は確保できているので、動作可能である。
【００４４】
３．４  プロセスＡ、プロセスＢおよびプロセスＣのメモリリザーブ（図６〜図８）
更にプロセスＣが同時に実行されると、プロセスＣが必要とする画像メモリをリザーブする。現在フリー画像メモリ１２１ＦはプロセスＡおよびプロセスＢに全てリザーブされているので、フリー画像メモリ１２１ＦからプロセスＣに割り当てる領域はない。そのため、図６のようにプロセスＣ用画像メモリ１２１Ｃのみを割り当てる。この場合プロセスＣは最適な容量の画像メモリを得てないが、プロセスが動作する上で最低限必要とするメモリ容量は確保できているので、動作可能である。このように、プロセスＡ、プロセスＢ、プロセスＣが同時に動作する状況において、それぞれが最低限必要とする画像メモリが確保されているので、同時動作が可能となる。
【００４５】
また、プロセスＡの優先度が高くなり、システム中最速で動作する必要がある場合、フリー画像メモリ１２１Ｆ全領域をプロセスＡで使用する場合もある。このとき、プロセスＡに割り当てられる画像メモリは、図７で示すように８ＭＢのプロセスＡ用画像メモリ１２１Ａとフリー画像メモリ１２１Ｆ全領域である。この状態では、プロセスＢ用画像メモリ１２１Ｂ、プロセスＣ用画像メモリ１２１Ｃは、それぞれが実行可能になる最低限のメモリ容量であり、プロセスＡが使用できるフリー画像メモリ１２１Ｆは最大となり、効率の良いメモリ割り当てが可能となる。また、この状態でプロセスＢやプロセスＣが実行された場合でも、それぞれのプロセスが実行されるのに必要な最低限の画像メモリが確保されているので、それぞれのプロセスは実行可能である。
【００４６】
このように、それぞれのプロセスが動作するために必要な最低限の画像メモリ量を算出しておき、システム起動時に算出した必要量の画像メモリをリザーブしておくことにより、各プロセスが中断することなく確実に動作することができるとともに、効率的なメモリ割り当てが行なえる。
【００４７】
４．リザーブしている画像メモリ量の動的な変化
次に、各プロセスがリザーブしている画像メモリ量を動的に変化させる場合について説明する。
【００４８】
４．１  プロセスＡ、プロセスｂのメモリリザーブおよびプロセスＡ、プロセスＢ、プロセスＣのメモリ割り当て（図９〜図１０）
まず、画像処理装置内で未使用であるフリー画像メモリ量を算出する。プロセスが１つも動作していない状態では全てのフリー画像メモリ１２１Ｆが未使用領域であり、プロセスが複数動作しているような状況ではその量は少なくなっている。例えば図８に示した例では、プロセスＡ用画像メモリ１２１Ａとして８ＭＢ、プロセスＢ用画像メモリ１２１Ｂとして１２ＭＢ、プロセスＣ用画像メモリ１２１Ｃとして４ＭＢ、フリー画像メモリ１２１Ｆとして４０ＭＢを割り当てている様子を表しているが、全てのプロセスが動作していない場合はフリー画像メモリ１２１Ｆの４０ＭＢが未使用領域となる。
【００４９】
また、プロセスＡが１６ＭＢ、プロセスＢが２４ＭＢのメモリを使用して動作している場合には、図９に示すようにプロセスＡにはプロセスＡ用画像メモリ１２１Ａとフリー画像メモリ１２１ＦＡの８ＭＢを、プロセスＢにはプロセスＢ用画像メモリ１２１Ｂとフリー画像メモリ１２１ＦＢの１２ＭＢを割り当てる。したがってフリー画像メモリ１２１Ｆの未使用領域は２０ＭＢとなる。このようにフリー画像メモリの未使用領域の大きさを算出した後、その大きさによって現在各プロセスに割り当てられているプロセス専用の画像メモリの大きさを変化させる。
【００５０】
図８のようにフリー画像メモリ１２１Ｆの未使用領域が十分大きい場合には、各プロセス専用の画像メモリ量を大きくする。例えば、プロセスＡ用画像メモリ１２１Ａを８ＭＢから１６ＭＢに変化させ、プロセスＢ用画像メモリ１２１Ｂを１２ＭＢから２４ＭＢに変化させ、プロセスＣ用画像メモリ１２１Ｃを４ＭＢから８ＭＢに変化させ、図１０のようなメモリ割り当てとする。この操作により、各プロセスに割り当てられるプロセス専用の画像メモリが増え、各プロセスが動作するために十分なメモリが割り当てられることになり、プロセス動作のパフォーマンスアップを図ることができる。その結果、システムとしてより効率の良いメモリ割り当てができるようになる。一方、図９のようにフリー画像メモリ１２１Ｆの未使用領域が小さい場合は、メモリ割り当ては変えない。
【００５１】
４．２  メモリ割り当ての縮小（図１１、図１２）
図１０の状態からプロセスＡが２４ＭＢのメモリを使用して動作開始した場合には、プロセスＡは図１１に示すようにプロセスＡ用画像メモリ１２１Ａとフリー画像メモリ１２１ＦＡの８ＭＢを使用して動作する。するとフリー画像メモリ１２１Ｆの未使用領域は８ＭＢとなり、他プロセスが動作を開始した場合十分なメモリを割り当てることができなくなる可能性がある。このような場合には、各プロセスがリザーブしている画像メモリの割り当てを小さくする。例えば図１２に示すように、プロセスＡ、プロセスＢ、プロセスＣ用画像メモリ１２１Ａ，１２１Ｂ，１２１Ｃをそれぞれ８ＭＢ、１２ＭＢ、４ＭＢとすると、プロセスＡはプロセスＡ用画像メモリ１２１Ａとフリー画像メモリ１２１ＦＡの１６ＭＢを使用して動作するため、未使用のフリー画像メモリ１２１Ｆが２４ＭＢに増える。動作していないプロセスがリザーブしている画像メモリは未使用であるので、この画像メモリのリザーブ量を小さくとり、フリー画像メモリ１２１Ｆの未使用領域を大きくすることにより、他プロセスが動作した場合にも多くの画像メモリを割り当てられるようにする。ただし、プロセスがリザーブしている画像メモリ量は各プロセスが最低限必要とするメモリ量は下回らないようにして、各プロセスの動作は保証する。
【００５２】
以上のような処理により、フリー画像メモリの未使用領域が大きい時は各プロセスがリザーブしている画像メモリを大きく取り、各プロセスが十分なメモリ量で動作するようにし、フリー画像メモリの未使用領域が小さい時は各プロセスがリザーブしている画像メモリを小さく取り、動作していないプロセスが動作するときに十分な画像メモリを確保できるようにし、システム全体のパフォーマンスを上げる。
【００５３】
また、フリー画像メモリ１２１Ｆの未使用領域が大きい時に、各プロセスがリザーブしている画像メモリを大きくとることで、あるプロセスがフリー画像メモリを大量に占有してしまい、画像メモリ自体の容量が大きいにもかかわらず他プロセスがフリー画像メモリを獲得できずパフォーマンスが下がり、結果として全体のパフォーマンスが下がるといったことを防ぐことができる。
【００５４】
また、メモリの一部が故障した場合でも、残りのメモリ容量に応じてプロセスの画像メモリの割り当てを行なうことができるので、プロセスが中断することなく確実に動作することを保証するとともに、効率良いメモリ割当が行なえる。
【００５５】
また、メモリ増設などにより画像メモリの容量が増えた場合でも、メモリ容量に応じてプロセスの画像メモリの割り当てを行なうことができるので、プロセスが中断することなく確実に動作することを保証するとともに、効率良いメモリ割当が行なえる。
【００５６】
４．３  パフォーマンスとの関係によるメモリリザーブ（図１３）
例えば図８のように各プロセス専用の画像メモリがリザーブされており、プロセスＡおよびプロセスＢは画像メモリが大きくなると大幅なパフォーマンスアップが図れるのに対し、プロセスＣは画像メモリが大きくなってもパフォーマンスアップが小さいプロセスであるとする。この場合プロセスＣ用画像メモリを大きくとっても大きなパフォーマンスアップにつながらず、他プロセス例えばプロセスＡ、プロセスＢが使用した方がシステム全体のパフォーマンスアップにつながる。そこで、リザーブされている画像メモリ量を動的に変化させる場合に、パフォーマンスの大幅アップにつながるプロセスＡ、プロセスＢのみを対象とし、プロセスＣについては行なわない。この操作によりメモリ割り当ては図１３のようになる。
【００５７】
その結果、本来プロセスＣ用画像メモリ１２１Ｃに割り当てられるはずの４ＭＢのフリー画像メモリ１２１Ｆが未使用領域として残るので、他プロセスの動作時により多くの画像メモリを割り当てることができ、システム全体のパフォーマンスアップにつながる。
【００５８】
４．４  画像メモリの割り当て時の変化量の設定
この例は、画像メモリの割り当て量を動的に変化させる場合に、変化量をあらかじめ決定しておくというものである。例えばプロセスＡが１バンド毎に画像を展開して出力するプリントプロセスであり、最低限１バンド分の画像メモリが必要であるとする。画像メモリの割り当て量を１バンド分の単位で増やすと、一つのバンドの画像展開中に他のバンドの印刷を行なうことができるので、パフォーマンスアップがはかれる。しかし、増やす量がバンド単位でなかった場合は、画像メモリが割り当てられているにもかかわらず、バンドの大きさに満たないため使用しない場合も出てくる。つまりパフォーマンスアップにつながるメモリ量があらかじめ分かっているプロセスについては、増やす画像メモリ量をあらかじめ決定しておき、その量だけ増やすことで無駄なメモリ割り当てを防ぐとともに、効率的なメモリ割り当てを行うことができる。
【００５９】
なお、前記３．１〜３．４、４．１〜４．４で説明したようなメモリ割り当てやメモリリザーブに関する制御は、ＲＯＭ１１１に記憶されたプログラムにしたがってＣＰＵ１１０が実行する。このプログラムは、ＣＤ−ＲＯＭなどの情報記録媒体に記録され、あるいはデータ通信などの通信手段を介して配布され、画像処理装置あるいは画像形成装置にダウンロードして使用される。
【００６０】
以上のように、本実施形態によれば、以下に列挙するような効果を奏することができる。
【００６１】
同時に複数のプロセスが動作している場合においても、各プロセスが必要としている最低限のメモリを確保しているので、プロセスが動作不能になることがない。
【００６２】
また、プロセスが動作する場合においても、未使用のフリー画像メモリの大きさを考慮して、他の動作しないプロセスの画像メモリ割り当て量を決定しているため、効率良くメモリを使用することができる。
【００６３】
また、メモリの一部が故障した場合やメモリ増設した場合にも、それぞれのメモリ容量に応じて画像メモリの割り当てを行なうので、効率良くメモリを使用することができる。
【００６４】
また、特定のプロセスがフリー画像メモリを大量に占有し、画像メモリ自体の容量が大きいにもかかわらず他のプロセスが画像メモリを獲得できずパフォーマンスが落ちてしまうことを防ぐことができる。
【００６５】
また、パフォーマンスアップの効果があるプロセスのみ画像メモリの割り当てを変えるので、システム全体のパフォーマンスアップが効果的に行なえる。
【００６６】
また、画像メモリの割り当て量がそのプロセスにとって効果的なサイズであり、システム全体のパフォーマンスアップが行なえる。
【００６７】
また、前記各効果を奏するプログラムを提供することができる。
【００６８】
また、前記プログラムは情報記録媒体によって提供することができるので、簡単にコンピュータにロードして前記各効果を奏することができる。
【００６９】
さらに、作像手段と組み合わせて画像出力するので、前記各効果を奏する画像形成装置を提供することができる。
【００７０】
【発明の効果】
以上のように本発明によれば、各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出し、システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更するメモリ量変更手段を備えているので、複数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置を提供することができる。
【００７１】
また、本発明によれば、各プロセスで必要とする最低限の画像メモリ量をあらかじめ算出する処理と、システム起動時に算出した必要量の画像メモリをリザーブし、前記装置内における未使用のメモリ容量に応じて、各プロセスがリザーブしている画像メモリ量を変更する処理とが書き込まれ、コンピュータにロードするよって前記処理を実行し、前記画像メモリ量の変更を行うので、複数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置のためのプログラムと、そのプログラムを格納した情報記録媒体を提供することができる。
【００７２】
さらに、画像処理装置によって処理された画像データに基づいて可視画像を形成する画像形成手段を備えているので、複数のプロセスが並列動作している場合にも、各プロセスが中断することなく確実に動作し、なおかつ効率的なメモリ割り当てが行なえる画像処理装置を備えた画像形成装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る画像処理装置の全体の構成を示すブロック図である。
【図２】スキャナエンジンで取り込んだ画像を画像メモリに蓄積し、画像メモリ上のデータをプロッタエンジンに出力するコピープロセスの動作例を示す図である。
【図３】起動時のメモリ割り当ての一例を示す画像メモリマップである。
【図４】プロセスＡのメモリリザーブの状態を示す画像メモリマップでである。
【図５】プロセスＡおよびプロセスＢのメモリリザーブ状態を示す画像メモリマップである。
【図６】プロセスＡ、プロセスＢおよびプロセスＣのメモリリザーブ状態を示す画像メモリマップである。
【図７】他のプロセスＡ、プロセスＢおよびプロセスＣのメモリリザーブ状態を示す画像メモリマップである。
【図８】プロセスＡ、プロセスＢおよびプロセスＣのメモリ割り当ての他の例を示す画像メモリマップである。
【図９】画像メモリ量を動的に変化させる場合のプロセスＡおよびプロセスＢのメモリリザーブ状態を示す画像メモリマップである。
【図１０】画像メモリ量を動的に変化させる場合のプロセスＡ、プロセスＢおよびプロセスＣのメモリ割り当ての例を示す画像メモリマップである。
【図１１】メモリ割り当てを縮小させる場合のプロセスＡのメモリリザーブ状態を示す画像メモリマップである。
【図１２】メモリ割り当てを縮小させる場合のプロセスＡのメモリリザーブ状態の他の例を示す画像メモリマップである。
【図１３】プロセスのパフォーマンスとの関係で設定されるプロセスＡ、プロセスＢおよびプロセスＣのメモリ割り当てを示すメモリマップである。
【符号の説明】
１０１  ＣＰＵバス
１０２  画像転送用バス
１１０  ＣＰＵ
１１１  ＲＯＭ
１１２  ＲＡＭ
１１３  ブリッジ
１２１  画像メモリ
１２２  ＤＭＡＣ
１２３  スキャナバッファ
１２４  プロッタバッファ
１２５  ＮＩＣ
１２６  ハードディスク
１２８  スキャナエンジン
１３１  プロッタエンジン
【図１】
0004332308.tif 000002
【図２】
0004332308.tif 000003
【図３】
0004332308.tif 000004
【図４】
0004332308.tif 000005
【図５】
0004332308.tif 000006
【図６】
0004332308.tif 000007
【図７】
0004332308.tif 000008
【図８】
0004332308.tif 000009
【図９】
0004332308.tif 000010
【図１０】
0004332308.tif 000011
【図１１】
0004332308.tif 000012
【図１２】
0004332308.tif 000013
【図１３】
0004332308.tif 000014