(57)【要約】【課題】色変換に関するジョブの実行に際して、使用可能なメモリ容量が不足しても、この容量不足を解消して正常な動作を行わせることができる色変換処理装置を提供する。【解決手段】色変換に関するジョブを実行する際に用いられると共に、ジョブの実行に必要なデータを保持する１個または複数個のデータ保持領域６１〜６３を有するメモリ６と、前記ジョブの実行に際して、前記メモリ６の使用可能なメモリ容量が不足するか否かを判別する判別手段７とを備える。前記判別手段により、使用可能なメモリ容量の不足が判別された場合には、制御手段７は、前記データ保持領域６１〜６３の一部または全部を開放することにより、使用可能なメモリ容量を増加する。【選択図】  図１
2004297161.tif 000002
【特許請求の範囲】
【請求項１】
色変換に関するジョブを実行する際に用いられると共に、ジョブの実行に必要なデータを保持する１個または複数個のデータ保持領域を有するメモリと、
前記ジョブの実行に際して、前記メモリの使用可能なメモリ容量が不足するか否かを判別する判別手段と、
前記判別手段により、使用可能なメモリ容量の不足が判別された場合には、前記データ保持領域の一部または全部を開放することにより、使用可能なメモリ容量を増加する制御手段と、
を備えたことを特徴とする色変換処理装置。
【請求項２】
開放されるデータ保持領域は、色情報が配列されたルックアップテーブルを保持する第１のデータ保持領域、ルックアップテーブル作成用の中間データを保持する第２のデータ保持領域、または色変換処理対象の入力データまたは色変換後の出力データの一部を保持する第３のデータ保持領域、のうちの少なくともいずれかである請求項１に記載の色変換処理装置。
【請求項３】
第１のデータ保持領域が開放される場合であって、第１のデータ保持領域に保持されているルックアップテーブルが複数個存在するとともに、各ルックアップテーブルに予め開放順位が設定されている場合には、制御手段は、前記開放順位に従ってそのルックアップテーブルのデータ保持領域を開放する請求項２に記載の色変換処理装置。
【請求項４】
ジョブの実行終了後に、開放前に保持されていた内容をメモリに復帰させる復帰手段を備えている請求項１ないし３のいずれかに記載の色変換処理装置。
【請求項５】
制御手段は、データ保持領域を開放する時は、そのデータ保持領域に保持されている内容を、外部記憶手段に記憶退避させる請求項４に記載の色変換処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＰＳ（ポストスクリプト）プリンタやＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｏｄｕｃｔｓ）等に搭載され、カラーマネージメントシステム（ＣＭＭ）を実現する色変換処理装置に関する。
【０００２】
【従来の技術】
上記のような色変換処理装置は、色変換処理に関するジョブを実行する場合の作業を行うメモリを有しており、また、ジョブの実行に際しては、このメモリに、ジョブの実行に必要な内容を保持するデータ保持領域が割り当てられるものとなされている。
【０００３】
前記データ保持領域としては、色変換テーブルである１個または複数個のルックアップテーブル（以下ＬＵＴという）を保持する領域がある。また、ユーザによって入力されたＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）プロファイルを解析してＬＵＴを作成する場合には、入力されたプロファイルを保持するプロファイルバッファとして機能するデータ保持領域が割り当てられる。さらには、色変換対象入力データの一部または色変換後の出力データの一部を保持するデータバッファとして機能するデータ保持領域がある。
【０００４】
ところで、色変換処理装置で実行されるジョブの内容は、処理対象データの種類や、ユーザの設定等に応じて多岐にわたっており、全ての機能を常に実現するように動作していると、ジョブの実行に必要なメモリ容量が不足し、正常に動作できなくなる可能性がある。
【０００５】
例えば、ＰＳプリンタやＭＦＰなどに搭載される色変換処理装置では、前述のようにユーザがＩＣＣプロファイルを色変換処理装置に送ることができるが、そのＩＣＣプロファイルが巨大な場合には、プロファイルバッファの使用量が多くなり、使用可能なメモリ容量が不足する。
【０００６】
また、ユーザによって多数のＬＵＴが作成されたときや、色変換処理対象の入力データが巨大であるような場合にも、容量不足が発生する。
【０００７】
従来、下記特許文献１には、メモリに記憶されているカラーＬＵＴを確認し、入力される画像データに、既に記憶されているＬＵＴと重複したＬＵＴが存在していれば、いずれかのＬＵＴを削除して重複を解消する色変換処理装置が開示されている。
【０００８】
【特許文献１】
特開２０００−２２７７８８号公報
【０００９】
【発明が解決しようとする課題】
しかし、上記文献に記載されたものは、重複したＬＵＴが存在するときにのみ、いずれかのＬＵＴを削除するものであり、重複したＬＵＴが存在しないときには、使用可能なメモリ容量の不足が発生していてもＬＵＴを削除することはしない。このため、メモリ容量不足に対して、根本的な解決にはならなかった。
【００１０】
この発明は、このような技術的背景に鑑みてなされたものであって、色変換に関するジョブの実行に際して、使用可能なメモリ容量が不足しても、この容量不足を解消して正常な動作を行わせることができる色変換処理装置を提供することを課題とする。
【００１１】
【課題を解決するための手段】
上記課題は、色変換に関するジョブを実行する際に用いられると共に、ジョブの実行に必要なデータを保持する１個または複数のデータ保持領域を有するメモリと、前記ジョブの実行に際して、前記メモリの使用可能なメモリ容量が不足するか否かを判別する判別手段と、前記判別手段により、使用可能なメモリ容量の不足が判別された場合には、前記割り当てられているデータ保持領域の一部または全部を開放することにより、使用可能なメモリ容量を増加する制御手段と、を備えたことを特徴とする色変換処理装置によって解決される。
【００１２】
この色変換処理装置では、ジョブの実行に際して、使用可能なメモリ容量の不足が判別されると、制御手段により、データ保持領域の一部または全部が開放される。これにより、使用可能なメモリ容量が増加してメモリの容量不足が解消され、正常な動作が行われる。
【００１３】
この色変換処理装置において、開放されるデータ保持領域は、色情報が配列されたＬＵＴを保持する第１のデータ保持領域、ＬＵＴ作成用の中間データを保持する第２のデータ保持領域、または色変換処理対象の入力データまたは色変換後出力データの一部を保持するデータバッファとしての第３のデータ保持領域、のうちの少なくともいずれかとしても良い。
【００１４】
この場合には、第１のデータ保持領域、第２のデータ保持領域、第３のデータ保持領域の少なくともいずれかの一部または全部が開放される。
【００１５】
また、第１のデータ保持領域が開放される場合であって、第１のデータ保持領域に保持されているルックアップテーブルが複数個存在するとともに、各ルックアップテーブルに予め開放順位が設定されている場合には、制御手段は、前記開放順位に従ってそのＬＵＴのデータ保持領域を開放する構成としても良い。
【００１６】
この場合には、優先順位に従って開放順位を設定しておくことで、優先順位の低いＬＵＴのデータ保持領域から順に開放することができる。
【００１７】
また、ジョブの実行終了後に、開放前に保持されていた内容をメモリに復帰させる復帰手段を備えている構成としても良い。
【００１８】
これにより、ジョブ実行終了後には元のメモリ状態に自動復帰する。
【００１９】
この場合において、制御手段は、データ保持領域を開放する時は、そのデータ保持領域に保持されている内容を、外部記憶手段に記憶退避させる構成としても良い。
【００２０】
データ保持領域の開放時にその内容を外部記憶手段に記憶退避させることで、元のメモリ状態への復帰が容易となる。
【００２１】
【発明の実施の形態】
次に、この発明の一実施形態を説明する。
【００２２】
図１は、この発明の一実施形態に係る色変換処理装置の構成を示すブロック図である。
【００２３】
図１において、色変換処理装置１は、色変換部２、テーブル解析部３、入力データメモリ４、出力データメモリ５、ジョブ実行用メモリ６、制御部７、ＬＵＴ管理カウンタ８を備えている。
【００２４】
前記色変換部２は、設定や入力データの属性に応じて、前記ジョブ実行用メモリ６に保持されているＬＵＴを用いて色変換対象である入力データの色変換を行い、出力する。
【００２５】
この実施形態では、ＩＣＣプロファイルを色変換処理装置１に入力して色変換に使用することが可能となっており、前記テーブル解析部３は、前記ユーザから入力されたＩＣＣプロファイルを解析し、色変換部２に適した形式のＬＵＴを作成するものである。なお、ＩＣＣプロファイルは、入力データに添付されて入力されても良い。
【００２６】
前記入力データメモリ４は、色変換部２に入力される入力データを記憶し、出力データメモリ５は色変換処理後の出力データを記憶するものである。
【００２７】
前記ジョブ実行用メモリ６は、色変換に関するジョブを実行する際に用いられるものであり、図２に示すように、ジョブの実行に必要なデータを保持する１個または複数のデータ保持領域を有している。
【００２８】
この実施形態では、ＬＵＴが保持される第１のデータ保持領域６１、プロファイルバッファとして機能する第２のデータ保持領域６２、データバッファとして機能する第３のデータ保持領域６３を有しており、これらが一つのメモリ空間内で割り当てられている。
【００２９】
前記第１のデータ保持領域６１は、標準的なＬＵＴを保持するデータ保持領域６１１と、特殊ＬＵＴを保持するデータ保持領域６１２とを有している。なお、標準的なＬＵＴは、テーブル切り替えの高速化等のために、標準的な色変換パターンの数に対応して複数個設けられており、後述するＲＯＭ７２や外部記憶装置９に、予めデフォルトで記憶されている。そして、ジョブの実行に際して、ＲＯＭ７２等から呼び出して、データ保持領域６１１に保持させる。
【００３０】
前記特殊ＬＵＴは、色変化の対応範囲を拡大するために、ユーザが入力したＩＣＣプロファイルや設定に応じて作成されたものである。
【００３１】
前記第２のデータ保持領域６２（プロファイルバッファともいう）は、プロファイルの解析や、ユーザからのプロファイル取得命令（プロファイル出力要求）等に備えて、ユーザがテーブル解析部３に入力したＩＣＣプロファイルや、プロファイル解析部で生成された一時的なデータ等の中間データを保持する。
【００３２】
前記第３のデータ保持領域（データバッファともいう）６３は、入力データメモリ４と出力データメモリ５が同一の場合に、データの安全性、処理の高速化、画像解析での使用等を考慮して、データの一部を複製して保持するものである。
【００３３】
前記制御部７は、色変換処理装置１の全体を統括的に制御するほか、ジョブの実行に際して、ジョブ実行用メモリ６の使用可能なメモリ容量が不足するか否かを判別する機能を有している。そして、容量不足が判別された場合には、前述した第１〜第３のデータ保持領域の一部または全部を開放するように制御し、これにより使用可能なメモリ容量を増加させる。また、データ保持領域を開放する場合には、その内容を外部記憶装置９に予め記憶退避させた上で開放すると共に、ジョブの実行完了後は、必要に応じて退避させた内容を再度復帰させる。
【００３４】
前記使用可能なメモリ容量が不足するか否かの判別方法は特に限定されることはないが、一例として、メモリアロケーションエラーが発生したか否かを判別し、発生したときにメモリ容量不足が発生したと判別する方法を挙げることができる。また、他の方法として、現在使用しているメモリ領域の合計容量を常時把握しておき、その容量値がしきい値に達したらメモリ容量不足が発生したとする方法がある。さらに他の方法として、そのジョブの実行のために新たに必要とされるメモリ容量が一定値を越えて巨大であるとき、即ちジョブ処理のデータ量が多いとき、使用可能なメモリ容量の不足が発生したとする方法もある。
【００３５】
前記制御部７は、ＣＰＵ７１、ＲＯＭ７２等を有するコンピュータによって構成されており、その動作は、ＲＯＭ７２や外部記憶装置９等のプログラム登録用記憶媒体に登録されているプログラムに従って規定される。
【００３６】
前記ＬＵＴ管理カウンタ８は、第１のデータ保持領域６１１に保持される標準的なＬＵＴについて、ジョブの実行に使用された回数をカウントするものであり、経時的な使用頻度に応じて各ＬＵＴの開放順位を決定するためのものである。即ち、使用頻度が少ないほどそのＬＵＴの重要度は低く、開放順位は高いものとなる。
【００３７】
前記外部記憶装置９は、例えばハードディスク装置（ＨＤＤ）等により構成されている。
【００３８】
図１に示した色変換処理装置において、色変換に関して実行されるジョブの内容によっては、メモリ使用量が多くなり、使用可能なメモリ容量が不足して、動作が正常に行われないおそれがある。例えば、ユーザによって巨大なＩＣＣプロファイルや数多くのプロファイルがテーブル解析部３に入力されたときや、ユーザによって多数のＬＵＴが作成されたとき、あるいは色変換部２に巨大なデータバッファを必要とするデータが入力されたとき等である。
【００３９】
そこで、この実施形態では、前記制御部７により、ジョブの処理に際して使用可能なメモリ容量が不足したと判別された場合には、使用可能なメモリ容量の増加処理を行う。
【００４０】
例えば、ユーザによって巨大なサイズのＩＣＣプロファイルが入力された場合について説明する。
【００４１】
ユーザによってＩＣＣプロファイルが入力されると、色変換処理装置１は、テーブル解析部３でＩＣＣプロファイルを解析し、色変換部２に適した形式のＬＵＴに変換して、第１のデータ保持領域６１における特殊ＬＵＴを保持するデータ保持領域６１２に渡す。また、ユーザからのプロファイル出力命令に備え、プロファイル出力に必要な一時的データを保持する。
【００４２】
もし、ユーザから送られてきたＩＣＣプロファイルのサイズが巨大である場合、テーブル解析部３で必要なプロファイルバッファ６２のサイズが大きくなり、メモリアロケーションエラーが発生し、必要なメモリ容量を確保できなくなる。
【００４３】
そこで、現在割り当てられている各データ保持領域の一部または全部を開放して、データ保持領域の割り当てを変更する。開放は、使用頻度の低いメモリ（開放順位の高いデータ保持領域）から行う。
【００４４】
上述のように、ＩＣＣプロファイルが原因で容量不足が生じた場合、開放順位は１位：標準的なＬＵＴを保持するデータ保持領域６１１、２位：特殊ＬＵＴを保持するデータ保持領域６１２、３位：データバッファ６３、４位：プロファイルバッファ６２とし、開放順位の上位から開放する。
【００４５】
この実施形態では、データ保持領域を開放する場合は、制御部７が、開放前にそのデータ保持領域の内容を外部記憶装置９に記憶させ退避させておく。但し、標準的ＬＵＴについては、デフォルトとして既に外部記憶装置９に記憶されているから、退避処理は行わない。また、データバッファ３については全てを開放するのではなく、最小限サイズのデータ保持領域を再確保しておく。
【００４６】
こうしてデータ保持領域を開放してジョブを実行する。即ち、省メモリ動作によりジョブを実行する。実行中に、開放したデータ保持領域の内容が必要になったときは、退避させた外部記憶装置９から必要に応じて取得する。また、データバッファ６３については、開放時に確保した最小限サイズのデータ保持領域にデータを随時複写して処理を行う。
【００４７】
また、各ＬＵＴ毎に開放順位を設定しても良い。例えば、標準的なＬＵＴとして用意されているビットマップ用ＬＵＴ、文字・グラフ用ＬＵＴ、測色値用ＬＵＴ等を持っているとき、一般的に使用頻度が低い測色値用ＬＵＴやレンダリング用ＬＵＴ等が保持されているデータ保持領域の開放順位を高くする。
【００４８】
また、ＬＵＴ管理カウンタ８の計数値から、制御部７が使用頻度を判別し、その時点で使用頻度の低いＬＵＴを保持しているデータ保持領域の開放順位を高くしても良い。
【００４９】
データ保持領域の開放順位は、ジョブの内容、換言すれば使用可能なメモリ容量が不足した原因によって変更する。
【００５０】
例えば、ユーザによって多数のＬＵＴが作成されたときは、特殊ＬＵＴが保持されるデータ保持領域６１２の開放順位は低くなり、プロファイルバッファ６２の開放順位が高くなる。開放順位は１位：標準的なＬＵＴを保持するデータ保持領域６１１、２位：プロファイルバッファ６２、３位：データバッファ６３、４位：特殊ＬＵＴを保持するデータ保持領域６１２とし、開放順位の上位から開放する。
【００５１】
また、色変換部に巨大なデータバッファを必要とするデータが入力された時は、開放順位は１位：標準的なＬＵＴを保持するデータ保持領域６１１、２位：特殊ＬＵＴを保持するデータ保持領域６１２、３位：プロファイルバッファ６２、４位：データバッファ６３とし、開放順位の上位から開放する。但し、色変換処理において、データバッファを使用する必要性が低く、省メモリ動作でも問題のないような場合、例えばデータが巨大すぎてデータ保持領域を開放しても追いつかないような場合には、データバッファ６３のみを開放しても良い。
【００５２】
ジョブの実行終了後、メモリの容量不足が解消された場合には、必要に応じて制御部７は復帰処理を行い、外部記憶装置９に退避させておいた元の内容を呼び出してデータ保持領域に保持させる。データバッファ６３については元の領域を再確保する。
【００５３】
復帰のタイミングは、ジョブの終了直後でも良いし、使用可能なメモリ容量が増加してから一定時間経過後でも良いし、プリンタやＭＦＰに適用する場合は、マシンがスリーブモードに入る直前としても良い。ジョブ終了後直ちに復帰しないようにすることで、データ保持領域の開放を必要とするジョブが連続して投入されたときに、その都度データ保持領域の開放動作を行う非効率さを防止できる。
【００５４】
また、ハードディスク装置がないＰＳプリンタ等、外部記憶装置９が存在しない場合には、データ保持領域の開放順位は前記と異なるものとなる。即ち、ＲＯＭ７２にデフォルトとして記憶されている標準的なＬＵＴを保持するデータ保持領域６１１を１位、最小限の領域を確保するデータバッファ６３を２位とし、保持内容を外部記憶装置に退避できないプロフィルバッファ６２及び特殊ＬＵＴを保持するデータ保持領域６１２を、それぞれ３位、４位とする。
【００５５】
この場合、プロフィルバッファ６２及び特殊ＬＵＴを保持するデータ保持領域６１２の元の内容を復帰させる必要がある場合には、ユーザに再取得メッセージを送り、入力してもらう。
【００５６】
次に、図１に示した色変換処理装置１の制御部７が、データ保持領域の開放動作（メモリ開放動作ともいう）を行うときの処理について、図３のフローチャートを参照して説明する。なお、以下の説明及び図面において、「ステップ」を「Ｓ」と略記する。
【００５７】
Ｓ３０１において装置を起動すると、Ｓ３０２で装置を初期化して標準的なＬＵＴをＲＯＭ７２あるいは外部記憶装置９から取得し、データ保持領域６１１に保持する。
【００５８】
次に、Ｓ３０３でジョブ入力を待ち、ジョブ入力があれば（Ｓ３０３にてＹＥＳ）、Ｓ３０４でジョブ入力を受け付ける。
【００５９】
次いで、Ｓ３０５で、ジョブに必要なメモリサイズ即ちメモリ容量値を取得した後、Ｓ３０６で、前記ジョブの処理に必要なメモリ領域を確保できたか（アロケーションエラーが発生しなかったか）否か、換言すれば、使用できるメモリ容量が不足しているか否かを判断する。
【００６０】
メモリ容量が不足していなければ（Ｓ３０６にてＹＥＳ）、Ｓ３０７で、ジョブを実行させ、次いでＳ３０８で、ジョブの終了後に一時的なメモリ領域を開放した後、Ｓ３０３に戻る。
【００６１】
一方、前記Ｓ３０６において、メモリ容量が不足しているときは（Ｓ３０６にてＮＯ）、Ｓ３０９で優先順位の低い（開放順位の高い）データ保持領域が存在しているか否かを判断する。
【００６２】
優先順位の低い（開放順位の高い）データ保持領域が存在していなければ（Ｓ３０９にてＮＯ）、Ｓ３１５でジョブエラーと判断して、Ｓ３１３に進む。優先順位の低い（開放順位の高い）データ保持領域が存在していれば（Ｓ３０９にてＹＥＳ）、Ｓ３１０で、データ保持領域の開放処理を行う。即ち、メモリ６に保持されているＬＵＴ等を外部記憶装置９に退避させたのち、開放する。開放されるデータ保持領域によっては、ジョブ処理機能の一部が削減される。
【００６３】
次に、Ｓ３１１で、メモリ容量を確保できたか否かを再度判断し、確保できなければ（Ｓ３１１にてＮＯ）、Ｓ３０９に戻って次に優先順位の低い（開放順位の高い）データ保持領域を開放し、容量不足が解消されるまでこれを繰り返す。
【００６４】
容量不足が解消されると（Ｓ３１１にてＹＥＳ）、Ｓ３１２で、省メモリモードでジョブを実行する。ジョブが終了すると、Ｓ３１３で、一時的なメモリ領域を開放した後、Ｓ３１４で復帰処理を行い、データ保持領域の開放時に退避させたＬＵＴ等、元の内容を保持させたのち、Ｓ３０３に戻って次のジョブに備える。
【００６５】
このように、メモリ容量不足が判別されると、メモリ容量不足が解消されるまで開放順位の高いデータ保持領域から順に開放されるから、ジョブの実行が正常に行われる。
【００６６】
図４は、装置内部で省メモリモードを設定して、処理を行う場合を示している。
【００６７】
Ｓ４０１において装置を起動すると、Ｓ４０２で装置を初期化して標準的なＬＵＴをＲＯＭ７２あるいは外部記憶装置９から取得し、データ保持領域６１１に保持する。
【００６８】
次に、Ｓ４０３でジョブ入力を待ち、ジョブ入力があれば（Ｓ４０３にてＹＥＳ）、Ｓ４０４でジョブ入力を受け付ける。
【００６９】
次いで、Ｓ４０５で、ジョブに必要なメモリサイズ即ちメモリ容量値を取得した後、Ｓ４０６で、前記ジョブの処理に必要なメモリ領域を確保できたか（アロケーションエラーが発生しなかったか）否か、換言すれば、使用できるメモリ容量が不足しているか否かを判断する。
【００７０】
メモリ容量が不足していなければ（Ｓ４０６にてＹＥＳ）、Ｓ４０７で、省メモリモードはＯＮか否かを判断する。省メモリモードがＯＮでなければ（Ｓ４０７にてＮＯ）、データ保持領域の開放処理を行わなくても、メモリ容量は足りているから、Ｓ４０８で、ジョブを実行させ、次いでＳ４０９で、ジョブの終了後に一時的なデータ保持領域を開放した後、Ｓ４０３に戻る。
【００７１】
一方、前記Ｓ４０６において、メモリ容量が不足しているときは（Ｓ４０６にてＮＯ）、Ｓ４１３で優先順位の低い（開放順位の高い）データ保持領域が存在しているか否かを判断する。
【００７２】
優先順位の低い（開放順位の高い）データ保持領域が存在していなければ（Ｓ４１３にてＮＯ）、Ｓ４１４でジョブエラーと判断して、Ｓ４１１に進む。優先順位の低い（開放順位の高い）データ保持領域が存在していれば（Ｓ４１３にてＹＥＳ）、Ｓ４１５で、データ保持領域の開放処理を行う。即ち、メモリ６に保持されているＬＵＴ等を外部記憶装置９に退避させたのち、開放する。開放されるデータ保持領域によっては、ジョブ処理機能の一部が削減される。同時に省メモリモードをＯＮに設定する。そして、Ｓ４０６に戻り、容量不足が解消されるまでＳ４０６、Ｓ４１３〜Ｓ４１５のステップを繰り返す。
【００７３】
容量不足が解消されると、Ｓ４０６の判断がＹＥＳ、Ｓ４０７の判断がＹＥＳとなるから、Ｓ４１０に進み、省メモリモードでジョブを実行させる。次いでＳ４１１で、ジョブの終了後に一時的なメモリ領域を開放した後、Ｓ４１２で復帰処理を行い、データ保持領域の開放時に退避させたＬＵＴ等、元の内容を保持させると共に省メモリモードをＯＦＦにし、Ｓ４０３に戻る。
【００７４】
図４に示した処理によっても、メモリ容量不足が判別されると、メモリ容量不足が解消されるまで開放順位の高いデータ保持領域から順に開放されるから、ジョブの実行が正常に行われる。
【００７５】
前記図３及び図４に示した処理では、開放したデータ保持領域の内容を復帰させる復帰処理を、ジョブの終了後直ちに行うものであったが、図５は、ジョブの実行終了後一定時間経過したとき、例えば色変換装置が組み込まれているプリンタ等がスリープモードに入る直前等に、復帰処理を行う場合についてのフローチャートである。
【００７６】
図５において、Ｓ５０１において装置を起動すると、Ｓ５０２で装置を初期化して標準的なＬＵＴをＲＯＭ７２あるいは外部記憶装置９から取得し、データ保持領域６１１に保持する。
【００７７】
次に、Ｓ５０３でジョブ入力があるか否かを判断し、ジョブ入力があれば（Ｓ５０３にてＹＥＳ）、Ｓ５０４でジョブ入力を受け付けた後、Ｓ５０５で、ジョブに必要なメモリサイズ即ちメモリ容量値を取得する。さらにＳ５０６で、前記ジョブの処理に必要なメモリ領域を確保できたか（アロケーションエラーが発生しなかったか）否か、換言すれば、使用できるメモリ容量が不足しているか否かを判断する。
【００７８】
メモリ容量が不足していなければ（Ｓ５０６にてＹＥＳ）、Ｓ５０７で、省メモリモードはＯＮか否かを判断する。省メモリモードがＯＮでなければ（Ｓ５０７にてＮＯ）、データ保持領域の開放処理を行わなくても、メモリ容量は足りているから、Ｓ５０８で、ジョブを実行させ、次いでＳ５０９で、ジョブの終了後に一時的なメモリ領域を開放した後、Ｓ５０３に戻る。
【００７９】
一方、前記Ｓ５０６において、メモリ容量が不足しているときは（Ｓ５０６にてＮＯ）、Ｓ５１２で優先順位の低い（開放順位の高い）データ保持領域が存在しているか否かを判断する。
【００８０】
優先順位の低い（開放順位の高い）データ保持領域が存在していなければ（Ｓ５１２にてＮＯ）、Ｓ５１３でジョブエラーと判断して、Ｓ５１１に進む。優先順位の低い（開放順位の高い）データ保持領域が存在していれば（Ｓ５１２にてＹＥＳ）、Ｓ５１４で、データ保持領域の開放処理を行う。即ち、メモリ６に保持されているＬＵＴ等を外部記憶装置９に退避させたのち、開放する。開放されるデータ保持領域によっては、ジョブ処理機能の一部が削減される。同時に省メモリモードをＯＮに設定する。そして、Ｓ５０６に戻り、容量不足が解消されるまでＳ５０６、Ｓ５１２〜Ｓ５１４のステップを繰り返す。
【００８１】
容量不足が解消されると、Ｓ５０６の判断がＹＥＳ、Ｓ５０７の判断がＹＥＳとなるから、Ｓ５１０に進み、省メモリモードでジョブを実行させる。次いでＳ５１１で、ジョブの終了後に一時的なメモリ領域を開放した後、Ｓ５０３に戻る。
【００８２】
また、ジョブの実行後は、Ｓ５０３で次のジョブの有無が判断されるが、次のジョブがなければ（Ｓ５０３にてＮＯ）、Ｓ５１５に進み、省メモリモードのまま前のジョブ実行終了から一定時間経過しているか否かを判断する。
【００８３】
一定時間経過していなければ（Ｓ５１５にてＮＯ）、Ｓ５０３に戻って次ジョブを待つ。一定時間経過していると（Ｓ５１５にてＹＥＳ）、Ｓ５１６で復帰処理を行い、データ保持領域の開放時に退避させたＬＵＴ等、元の内容を保持させると共に省メモリモードをＯＦＦにし、Ｓ５０３に戻る。
【００８４】
このように、ジョブ終了後直ちに復帰しないようにすることで、データ保持領域の開放を必要とするジョブが連続して投入されたときに、その都度データ保持領域の開放動作を行う必要はなくなる。
【００８５】
図６は、使用可能なメモリ容量の不足を判別するための他の方法を説明するものであり、現在使用しているメモリの合計容量値を監視することによって判別する方法を示しており、処理の要部のみを示している。
【００８６】
図６において、Ｓ６０１で、ジョブの入力を受け付けた後、Ｓ６０２でジョブに必要なメモリサイズ即ちメモリ容量値を取得した後、Ｓ６０３で、メモリ６において現在使用している合計容量値を示すメモリカウンタの値とＳ６０２で取得した必要なメモリサイズとの合計値が、しきい値よりも大か否かを判別する。合計値がしきい値よりも大きい場合は（Ｓ６０３にてＹＥＳ）、メモリ容量の不足を意味するから、Ｓ６０４で、優先順位の低い（開放順位の高い）データ保持領域が存在しているか否かを判断する。
【００８７】
優先順位の低い（開放順位の高い）データ保持領域が存在していなければ（Ｓ６０４にてＮＯ）、Ｓ６０５でジョブエラーと判断する。優先順位の低い（開放順位の高い）データ保持領域が存在していれば（Ｓ６０４にてＹＥＳ）、Ｓ６０６で、データ保持領域の開放処理を行うとともに、開放したデータ保持領域のサイズ（容量値）をメモリカウンタから差し引いたのち、Ｓ６０３に戻る。そして、メモリカウンタの値と取得した必要なメモリサイズとの合計値がしきい値以下となるまで、換言すれば使用可能なメモリ容量の不足が解消されるまで、Ｓ６０３、Ｓ６０４、Ｓ６０６のステップを繰り返す。
【００８８】
Ｓ６０３において、メモリカウンタの値と取得した必要なメモリサイズとの合計値がしきい値以下と判断されると（Ｓ６０３にてＮＯ）、Ｓ６０７で、ジョブの処理に必要なメモリ領域を確保すると共に、メモリカウンタに、確保したメモリサイズを加算したのち、Ｓ６０８でジョブを実行させる。
【００８９】
なお、Ｓ６０１のジョブ入力の受付までの処理、あるいはＳ６０８のジョブ実行、Ｓ６０５のジョブエラー後の処理は、図３〜図５に示した処理と同様に行えばよい。
【００９０】
図７は、使用可能なメモリ容量の不足を判別するためのさらに他の方法を説明するものであり、ジョブに必要なメモリサイズ（メモリ容量）から判別する方法を示しており、処理の要部のみを示している。
【００９１】
図７において、Ｓ７０１で、ジョブの入力を受け付けた後、Ｓ７０２でジョブに必要なメモリサイズを取得した後、Ｓ７０３で、必要なメモリサイズがしきい値よりも大か否かを判別する。必要なメモリサイズがしきい値よりも大きい場合は（Ｓ７０３にてＹＥＳ）、メモリ容量の不足を意味するから、Ｓ７０４で、優先順位の低い（開放順位の高い）データ保持領域が存在しているか否かを判断する。
【００９２】
優先順位の低い（開放順位の高い）データ保持領域が存在していなければ（Ｓ７０４にてＮＯ）、Ｓ７０５でジョブエラーと判断する。優先順位の低い（開放順位の高い）データ保持領域が存在していれば（Ｓ７０４にてＹＥＳ）、Ｓ７０６で、データ保持領域の開放処理を行うとともに、省メモリモードをＯＮしたのち、Ｓ７０７に戻る。
【００９３】
Ｓ７０７では、ジョブの処理に必要なメモリ領域が確保されたか否かを判断する。確保されていなければ（Ｓ７０７にてＮＯ）、Ｓ７０４に進み、確保されるまで、Ｓ７０４、Ｓ７０６、Ｓ７０７のステップを繰り返す。
【００９４】
メモリ領域が確保されると（Ｓ７０７にてＹＥＳ）、Ｓ７０８でジョブを実行させる。
【００９５】
なお、Ｓ７０１のジョブ入力の受付までの処理、あるいはＳ７０８のジョブ実行、Ｓ７０５のジョブエラー後の処理は、図３〜図５に示した処理と同様に行えばよい。
【００９６】
以上本発明の一実施形態を説明したが、この発明はこの実施形態に限定されることはない。例えば、データ保持領域として第１〜第３のデータ保持領域を有する場合を示したが、そのうちの１個のみを有していても良い。
【００９７】
また、上記色変換処理装置は、プリンタやＭＦＰに組み込まれて用いられても良いし、ドライバ側に組み込まれていても良いし、あるいはプリントサーバ等のサーバに組み込まれても良い。
【００９８】
上記具体的実施形態には、以下の構成を有する発明が含まれる。
（１）使用可能なメモリ容量の不足の判別は、アロケーションエラーが発生したか否かにより行う請求項１に記載の色変換処理装置。
【００９９】
これにより確実に判別することができる。
（２）使用可能なメモリ容量の不足の判別は、現在使用されているメモリ領域の合計容量値に基づいて行われる請求項１に記載の色変換処理装置。
【０１００】
これにより、仮想メモリがあってメモリアロケーションエラーが発生しにくい場合であっても、簡易に判別を行うことができる。
（３）使用可能なメモリ容量の不足の判別は、ジョブの実行に必要となるメモリ容量値が所定値を越えるか否かによって行われる請求項１に記載の色変換処理装置。
【０１０１】
これにより、仮想メモリがあってメモリアロケーションエラーが発生しにくい場合であっても、簡易に判別を行うことができる。
（４）復帰手段による復帰は、ジョブの実行終了後一定時間経過後に行われる請求項４に記載の色変換処理装置。
【０１０２】
ジョブの実行終了後一定時間経過後に行うことで、データ保持領域の開放を必要とするジョブが連続して投入されたときに、その都度データ保持領域の開放動作を行う不都合がなくなる。
（５）全てのデータ保持領域は１つのメモリ空間内に割り当てられている請求項１に記載の色変換処理装置。
（６）色変換に関するジョブの実行に際して、そのジョブの実行に用いられるメモリの使用可能な容量が不足しているか否かを判別するステップと、
使用可能なメモリ容量の不足が判別された場合には、前記メモリが有するジョブの実行に必要なデータを保持するデータ保持領域の一部または全部を開放することにより、使用可能なメモリ容量を増加するステップと、
を備えたことを特徴とする色変換処理方法。
（７）開放されるデータ保持領域は、色情報が配列されたルックアップテーブルを保持する第１のデータ保持領域、ルックアップテーブル作成用の中間データを保持する第２のデータ保持領域、または色変換処理対象の入力データまたは色変換後の出力データの一部を保持する第３のデータ保持領域、のうちの少なくともいずれかである請求項１に記載の色変換処理装置。
（８）第１のデータ保持領域に保持されているルックアップテーブルが複数個存在するとともに、実行されるジョブに応じて各ルックアップテーブルに予め開放順位が設定されており、第１のデータ保持領域を開放する場合には、前記開放順位に従ってそのルックアップテーブルのデータ保持領域を開放する（７）に記載の色変換処理方法。
（９）ジョブの実行終了後に、開放前に保持されていた内容をメモリに復帰させるステップをさらにを備えている（６）ないし（８）のいずれかに記載の色変換処理方法。
（１０）データ保持領域を開放する時は、そのデータ保持領域に保持されている内容を、外部記憶手段に記憶退避させる（９）に記載の色変換処理方法。
（１１）色変換に関するジョブの実行に際して、そのジョブの実行に用いられるメモリの使用可能な容量が不足しているか否かを判別するステップと、
使用可能なメモリ容量の不足が判別された場合には、前記メモリが有するジョブの実行に必要なデータを保持するデータ保持領域の一部または全部を開放することにより、使用可能なメモリ容量を増加するステップと、
をコンピュータに実行させるためのプログラムが記憶されている記憶媒体。
（１２）色変換に関するジョブの実行に際して、そのジョブの実行に用いられるメモリの使用可能な容量が不足しているか否かを判別するステップと、
使用可能なメモリ容量の不足が判別された場合には、前記メモリが有するジョブの実行に必要なデータを保持するデータ保持領域の一部または全部を開放することにより、使用可能なメモリ容量を増加するステップと、
をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
【０１０３】
【発明の効果】
請求項１に係る発明によれば、ジョブの実行に際して、使用可能なメモリ容量の不足が判別されると、制御手段により、データ保持領域の一部または全部が開放されるから、使用可能なメモリ容量を増加し得てメモリの容量不足を解消でき、正常な動作を確保することができる。
【０１０４】
請求項２に係る発明によれば、第１のデータ保持領域、第２のデータ保持領域、第３のデータ保持領域の少なくともいずれかの一部または全部を開放でき、使用可能なメモリ容量を増加できる。
【０１０５】
請求項３に係る発明によれば、開放順位の高いＬＵＴのデータ保持領域から開放されるから、ジョブに必要なＬＵＴの開放順位を低く設定することにより、重要なＬＵＴを確保しながら、使用可能なメモリ容量を増加できる。
【０１０６】
請求項４に係る発明によれば、ジョブ実行終了後には元のメモリ状態に自動復帰させることができる。
【０１０７】
請求項５に係る発明によれば、元のメモリ状態への復帰を容易に行うことができる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係る色変換処理装置の構成を示すブロック図である。
【図２】メモリにおけるデータ保持領域の割り当て状態を示す図である。
【図３】図１に示した色変換処理装置におけるデータ保持領域の開放処理を説明するためのフローチャートである。
【図４】同じく他の開放処理を説明するためのフローチャートである。
【図５】同じくさらに他の開放処理を説明するためのフローチャートである。
【図６】使用可能なメモリ容量の不足を判別するための他の方法を示す要部フローチャートである。
【図７】使用可能なメモリ容量の不足を判別するためのさらに他の方法を示す要部フローチャートである。
【符号の説明】
１        色変換処理装置
２                色変換部
３                テーブル解析部
６                ジョブ実行用メモリ
７                制御部（判別手段、復帰手段）
９                外部記憶装置
６１            ＵＬＴを保持するデータ保持領域
６１１        標準的ＵＬＴを保持するデータ保持領域
６１２        特殊ＵＬＴを保持するデータ保持領域
６２            プロファイルバッファ
６３            データバッファ
【図１】
2004297161.tif 000003
【図２】
2004297161.tif 000004
【図３】
2004297161.tif 000005
【図４】
2004297161.tif 000006
【図５】
2004297161.tif 000007
【図６】
2004297161.tif 000008
【図７】
2004297161.tif 000009