(57)【要約】【課題】外部記憶媒体が電子機器に挿着されたことに伴い外部記憶媒体から読み込んでメモリーに格納すべき画像特定情報の格納領域をメモリーに効率よく割り当てることができる電子機器、電子機器におけるメモリー管理方法及びプログラムを提供する。【解決手段】カード（外部記憶媒体）の挿入を検出すると（Ｓ１０で肯定判定）、先行カードがなく（Ｓ２０で否定判定）、かつ複合機が動作中でなければ（Ｓ３０で肯定判定）、カードにアクセスして格納画像枚数をカウントアップする（Ｓ４０）。次に、その格納画像枚数からカード情報の格納に必要なプールの容量を取得する（Ｓ５０）。モニターの画面をクローズ（Ｓ６０）した後、前記容量に基づいてメモリーに対してプールの再割当を行い（Ｓ７０）、その再割当てされたプールに情報を格納する（Ｓ８０）。その後、カード検出完了画面、カード情報の画面表示を順次行う（Ｓ９０，Ｓ１００）。【選択図】図３
2011081606.tif 000002
【特許請求の範囲】
【請求項１】
メモリーと、当該メモリーに格納される画像データに基づき動作する動作部とを備えた電子機器であって、
外部記憶媒体の挿抜が可能な被挿着部と、
前記被挿着部に対する外部記憶媒体の挿抜を検出する検出手段と、
前記検出手段が外部記憶媒体の挿着を検出すると、当該外部記憶媒体に格納された画像データを特定可能な画像特定情報に係る当該外部記憶媒体の格納画像数分の容量を当該外部記憶媒体にアクセスして取得する容量取得手段と、
前記容量に基づいて前記メモリーにおける格納領域の再割当てを行って前記画像特定情報の格納領域を確保する再割当手段と、
前記再割当てにより確保された前記格納領域に前記外部記憶媒体から読み込んだ前記画像特定情報を格納する格納手段と、
を備えたことを特徴とする電子機器。
【請求項２】
前記動作部は印刷動作を行う印刷動作部であって、
外部記憶媒体を挿し替えた場合には、挿し替え前の外部記憶媒体から読み込まれた画像データを前記メモリーから消去するように構成されており、
前記再割当手段により再割当てされた格納領域の１つは前記動作部が印刷動作を行うために使用した画像データを保存するための画像データ保存用の格納領域であり、
外部記憶媒体から毎回異なる画像データを取得しつつ前記動作部による印刷動作を前記画像データ保存用の格納領域が保存の画像データで満たされるまで行った後、次にそれまで印刷した画像の順番の逆を辿る順番で毎回画像データを変更しつつ印刷動作を行った場合、Ｎ個の画像データが格納された第１の外部記憶媒体が挿着された状態で前記印刷動作を行った場合に比べ、Ｎ個より少ないＭ個（但しＭ＜Ｎ）の画像データが格納された第２の外部記憶媒体に挿し替えて前記印刷動作を行った場合の方が、前記逆を辿る順番で画像の印刷を開始してから、前記動作部による画像の印刷速度が落ちるまでに相対的に高速で印刷できる画像枚数が増えるように構成されていることを特徴とする請求項１に記載の電子機器。
【請求項３】
前記検出手段が前記外部記憶媒体の前記被挿着部からの抜取りを検出すると、前記再割当手段は、当該外部記憶媒体用に割当てていた格納領域を開放しつつ前記メモリーにおける格納領域の再割当てを行うことを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
前記検出手段が前記外部記憶媒体の挿抜を検出したときに前記動作部が動作中であるか否かを判断する判断手段を更に備え、
前記外部記憶媒体の挿抜が検出されたときに前記判断手段が前記動作中であると判断した場合、前記再割当手段は前記メモリーにおける格納領域の再割当てを前記判断手段が前記動作中でないと判断するまで保留することを特徴とする請求項２又は３に記載の電子機器。
【請求項５】
前記被挿着部を複数備え、
前記検出手段が、前記複数の被挿着部のうちの１つに外部記憶媒体が既に挿着されている状態で、複数の被挿着部のうちの他の１つの被挿着部に他の外部記憶媒体が挿着されたことを検出した場合、前記再割当手段は、前記検出手段が先に挿着されていた前記外部記憶媒体の抜き取りを検出するまで、前記メモリーにおける格納領域の再割当てを保留することを特徴とする請求項１乃至４のうちいずれか一項に記載の電子機器。
【請求項６】
案内表示手段を更に備え、
前記再割当手段は、
複数の外部記憶媒体が挿着されているときに、前記案内表示手段に現在表示中の外部記憶媒体が抜取られた場合に、前記再割当手段は、抜き取られていない前記外部記憶媒体の画像特定情報の格納領域を確保すべく前記メモリーに対して格納領域の再割当てを行い、前記案内表示手段は、抜き取られていない前記外部記憶媒体を現在表示中にすることを特徴とする請求項５に記載の電子機器。
【請求項７】
案内表示手段を更に備え、
前記案内表示手段に表示される画面は、前記外部記憶媒体の挿抜の検出の前後で切り換わる構成であり、
前記再割当手段は、前記案内表示手段に画面を表示する際に用いる画面データを格納する格納領域を前記再割当てで確保する構成であり、
前記案内表示手段が前記外部記憶媒体の挿抜前の第１画面から、前記外部記憶媒体の挿抜の検出に伴う第２画面に切り換わるときに、前記再割当てを行うことを特徴とする請求項１乃至６のうちいずれか一項に記載の電子機器。
【請求項８】
外部記憶媒体を挿抜可能な被挿着部を有する電子機器において外部記憶媒体が挿着されたときに当該外部記憶媒体から読み込むべき画像特定情報を格納するための格納領域をメモリーに確保するメモリー管理方法であって、
外部記憶媒体が前記被挿着部に挿着されたことを検出する検出ステップと、
外部記憶媒体の挿着が検出されると、当該外部記憶媒体にアクセスして当該検出に伴い当該外部記憶媒体から読み込むべき当該外部記憶媒体の格納画像数分の画像特定情報の容量を取得する容量取得ステップと、
前記容量に応じた格納領域を確保すべく前記メモリーにおける格納領域の再割当てを行う再割当ステップと、
前記外部記憶媒体から格納画像数分の画像特定情報を読み込んで前記確保された格納領域に当該画像特定情報を格納する格納ステップと、
を備えたことを特徴とする電子機器におけるメモリー管理方法。
【請求項９】
外部記憶媒体を挿抜可能な被挿着部を有する電子機器におけるコンピューターが、外部記憶媒体が挿着されたときに当該外部記憶媒体から読み込むべき画像特定情報を格納するための格納領域をメモリーに確保するために実行するプログラムであって、
コンピューターが、外部記憶媒体が前記被挿着部に挿着されたことを検出する検出ステップと、
外部記憶媒体の挿着が検出されると、コンピューターが、当該外部記憶媒体にアクセスして当該検出に伴い当該外部記憶媒体から読み込むべき当該外部記憶媒体の格納画像数分の画像特定情報の容量を取得する容量取得ステップと、
コンピューターが、前記容量に応じた格納領域を確保すべく前記メモリーにおける格納領域の再割当てを行う再割当ステップと、
コンピューターが、前記外部記憶媒体から格納画像数分の画像特定情報を読み込んで前記確保された格納領域に当該画像特定情報を格納する格納ステップと、
を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーを備え、当該メモリーに外部記憶媒体のデータを格納するための格納領域を確保する機能を有する電子機器、電子機器におけるメモリー管理方法及びプログラムに関する。
【背景技術】
【０００２】
例えば特許文献１には、外部記憶媒体の一例としてのメモリーカードから読み込んだデータを装置内のメモリー（ＲＡＭ）に格納する画像形成装置（電子機器）が開示されている。この画像形成装置は、スロットに挿入されたメモリーカードに格納された画像のファイルの中からユーザーが選択した画像を印刷できるようになっていた。例えばメモリーカードのスロットへの挿入が検出されると、メモリーカードに格納されたうちの所定数（例えば999個）の画像ファイルのファイル情報及びパス情報を読み込んで、装置内のメモリーに記憶するようになっていた。このとき、メモリーには、所定数（例えば999個）分のファイル情報及びパス情報（以下、総称して「カード情報」（画像特定情報）という）を格納することのできる記憶容量をもつファイルリストプール及びファイルツリープール（以下、これらを総称して「カード情報保存用プール」という）が作成され、カード情報はカード情報保存用プールに格納されるようになっていた。すなわち、カード情報保存用プールは、所定数分のカード情報を格納可能な記憶容量をもつ固定長のメモリープールとなっていた。特に特許文献１では、所定数（例えば999個）よりも多くの画像数分（例えば9990個分）のカード情報を格納可能な記憶容量をもつユニバーサルプールがメモリーに作成され、先頭から999個よりも後の画像についてもユニバーサルプールのカード情報に基づきＬＣＤに表示できるようになっていた。このユニバーサルプールは、その後、画像ファイルの記憶や編集等の他の処理に利用できるように開放され、先頭から999個よりも後の画像の一時的なカード情報はその都度消去される構成であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１２２８６０号公報（例えば明細書段落［００２４］〜［００２６］等）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の方法では、先頭から999個よりも後の画像ファイルに関するカード情報はその都度消去されてしまうので、１つの画像の印刷を終えたユーザーが次に先頭から999個より後の画像を印刷のため選択した場合には、再びメモリーカードからカード情報を読み込んでメモリーに格納しなければならず、画像の表示や印刷がその分遅延し迅速な画像形成動作を行うことができなかった。そのため、なるべく想定される最大画像数（例えば9990個）分のカード情報を継続的にメモリーに格納しておくことが望ましい。しかし、格納画像数が999個であれば固定長であってもさほど問題はなかったが、画像数9990個分のカード情報を格納可能な記憶容量のカード情報保存用プールが継続的に配置されてしまうと、メモリーを圧迫する要因になるという問題があった。
【０００５】
例えば、メモリーにおいて必要なプールが割り当てられた残りの領域は、過去に印刷で使用した画像データを保存しておく格納領域（ファイルキャッシュ用プール）として利用される。ファイルキャッシュ用プール内の画像データを用いて印刷する場合は、メモリーカードへアクセスして画像データを読み込む動作が不要になるので、その分、画像の表示や印刷を迅速に行うことができる。しかし、固定長のカード情報保存用プールを拡大すると、その拡大した分だけ、ファイルキャッシュ用プールの容量が減少してしまいファイルキャッシュ用プール内の画像データを利用した迅速な画像の表示や印刷を行える頻度が低下してしまう。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、その目的は、電子機器に対する外部記憶媒体の挿着の検出に伴い外部記憶媒体から読み込んでメモリーに格納すべき画像特定情報の格納領域をメモリーに効率よく割り当てることができる電子機器、電子機器におけるメモリー管理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、メモリーと、当該メモリーに格納される画像データに基づき動作する動作部とを備えた電子機器であって、外部記憶媒体の挿抜が可能な被挿着部と、前記被挿着部に対する外部記憶媒体の挿抜を検出する検出手段と、前記検出手段が外部記憶媒体の挿着を検出すると、当該外部記憶媒体に格納された画像データを特定可能な画像特定情報に係る当該外部記憶媒体の格納画像数分の容量を当該外部記憶媒体にアクセスして取得する容量取得手段と、前記容量に基づいて前記メモリーにおける格納領域の再割当てを行って前記メモリーに前記画像特定情報の格納領域を確保する再割当手段と、前記再割当てにより確保された前記格納領域に前記外部記憶媒体から読み込んだ前記画像特定情報を格納する格納手段と、を備えたことを要旨とする。
【０００８】
この発明によれば、外部記憶媒体の被挿着部への挿着が検出手段により検出されると、容量取得手段は、外部記憶媒体にアクセスして当該検出に伴い外部記憶媒体から読み込むべき画像特定情報の容量を取得する。再割当手段は、容量取得手段が取得した容量に応じた格納領域をメモリーに確保すべくメモリーにおける格納領域の再割当てを行う。格納手段は、その確保された格納領域に外部記憶媒体から読み込んだ格納画像数分の画像特定情報を格納する。従って、被挿着部への外部記憶媒体の挿着を検出した際に、確保される格納領域の容量は、その外部記憶媒体の格納画像数に応じて変化するので、メモリーの領域を有効活用できる。例えば、画像特定情報の格納領域が固定長であると、外部記憶媒体の格納画像数が少ないときでも、想定最大格納画像数分の容量の格納領域を常に確保する必要があり、この格納領域がメモリーにおける他の格納領域を圧迫し他の格納領域に多くのメモリー領域を割くことができなくなる無駄が発生する。しかし、本発明の電子機器では、画像特定情報の格納領域が、外部記憶媒体の格納画像枚数に応じて容量が変化する可変長の格納領域なので、このようなメモリーの領域を有効活用できない無駄は発生しない。よって、電子機器に対する外部記憶媒体の挿着の検出に伴い外部記憶媒体から読み込んでメモリーに格納すべき画像特定情報の格納領域をメモリーに効率よく割り当てることができる。
【０００９】
本発明の電子機器において、前記動作部は印刷動作を行う印刷動作部であって、外部記憶媒体を挿し替えた場合には、挿し替え前の外部記憶媒体から読み込まれた画像データを前記メモリーから消去するように構成されており、前記メモリーにおいて前記再割当手段により再割当てされた格納領域の１つは前記動作部が印刷動作を行うために使用した画像データを保存するための画像データ保存用の格納領域であり、外部記憶媒体から毎回異なる画像データを取得しつつ前記動作部による印刷動作を前記画像データ保存用の格納領域が保存の画像データで満たされるまで行った後、次にそれまで印刷した画像の順番の逆を辿る順番で毎回画像データを変更しつつ印刷動作を行った場合、Ｎ個の画像データが格納された第１の外部記憶媒体が挿着された状態で前記印刷動作を行った場合に比べ、Ｎ個より少ないＭ個（但しＭ＜Ｎ）の画像データが格納された第２の外部記憶媒体に挿し替えて前記印刷動作を行った場合の方が、前記逆を辿る順番で画像の印刷を開始してから、前記動作部による画像の印刷速度が落ちるまでに相対的に高速で印刷できる画像枚数が増えるように構成されていることが好ましい。
【００１０】
この発明によれば、Ｎ個の画像データが格納された第１の外部記憶媒体が挿着されたときのメモリーにおける格納領域の再割当てにより、Ｎ個分の容量の画像特定情報用の格納領域が確保される。また、Ｍ個（但しＭ＜Ｎ）の画像データが格納された第２の外部記憶媒体が挿着されたときのメモリーにおける格納領域の再割当てにより、Ｍ個分の容量の画像特定情報用の格納領域が確保される。このとき第１の外部記憶媒体が挿着されているときの画像データ保存用の格納領域は、第２の外部記憶媒体が挿着されているときの画像データ保存用の格納領域よりも容量が小さくなる。外部記憶媒体から毎回異なる画像データを取得しつつ動作部による印刷動作を画像データ保存用の格納領域が保存の画像データで満たされるまで行った後、それまで印刷した画像の順番の逆を辿る順番で毎回画像データを変更しつつ印刷動作を行った場合、Ｎ個の画像データが格納された第１の外部記憶媒体が挿着された状態で印刷動作を行う場合に比べ、Ｍ個（但しＭ＜Ｎ）の画像データが格納された第２の外部記憶媒体に挿し替えらた状態で印刷動作を行う場合の方が、前記逆を辿る順番で画像の印刷を開始してから、動作部による画像の印刷速度が落ちるまでに相対的に高速で印刷できる画像枚数が増える。従って、格納画像数が少ない外部記憶媒体ほど画像データ保存用の格納領域が増えて、この格納領域内の画像データを用いて相対的に高速な印刷速度で印刷できる画像枚数が増えるので、画像を高速で印刷できる頻度が増す。
【００１１】
本発明の電子機器では、前記検出手段が前記外部記憶媒体の前記被挿着部からの抜取りを検出すると、前記再割当手段は、当該外部記憶媒体用に割当てていた格納領域を開放しつつ前記メモリーにおける格納領域の再割当てを行うことが好ましい。
【００１２】
この発明によれば、外部記憶媒体が被挿着部から抜取られると、再割当手段は、外部記憶媒体用（画像特定情報格納用）に割当てていた格納領域を開放しつつメモリーにおける格納領域の再割当てを行う。この格納領域が開放されることによって、外部記憶媒体を抜き取った後に画像データ用の格納領域を増やすことができる。
【００１３】
本発明の電子機器では、前記検出手段が前記外部記憶媒体の挿抜を検出したときに前記動作部が動作中であるか否かを判断する判断手段を更に備え、前記外部記憶媒体の挿抜が検出されたときに前記判断手段が前記動作中であると判断した場合、前記再割当手段は前記メモリーにおける格納領域の再割当てを前記判断手段が前記動作中でないと判断するまで保留することが好ましい。
【００１４】
この発明によれば、外部記憶媒体の挿抜が検出されたときに判断手段が動作中であると判断した場合、再割当手段による格納領域の再割当ては、判断手段が動作中でないと判断するまで保留される。そして、動作中でなくなると、再割当手段による格納領域の再割当てが行われる。この結果、動作中であるにも関わらず格納領域の再割当てが行われ動作中のモードで使用中のデータの消去又は変更を回避できる。
【００１５】
本発明の電子機器では、前記被挿着部を複数備え、前記検出手段が、前記複数の被挿着部のうちの１つに外部記憶媒体が既に挿着されている状態で、他の被挿着部に他の外部記憶媒体が挿着されたことを検出した場合、前記再割当手段は、前記検出手段が先に挿着されていた前記外部記憶媒体の抜き取りを検出するまで、前記メモリーにおける格納領域の再割当てを保留することが好ましい。
【００１６】
この発明によれば、複数の被挿着部のうちの１つに外部記憶媒体が既に挿着されている状態で、前記複数の被挿着部のうちの他の１つの被挿着部に他の外部記憶媒体が挿着されたことを検出した場合、検出手段が先に挿着されていた外部記憶媒体の抜き取りを検出するまで、再割当手段による格納領域の再割当ては保留される。この結果、先に挿着されていた外部記憶媒体のデータが、その外部記憶媒体が抜き取られていないにも関わらず消去されることを回避できる。
【００１７】
本発明の電子機器では、案内表示手段を更に備え、前記再割当手段は、複数の外部記憶媒体が挿着されているときに、前記案内表示手段に現在表示中の外部記憶媒体が抜取られた場合に、前記再割当手段は、抜き取られていない前記外部記憶媒体の画像特定情報の格納領域を確保すべく前記メモリーに対して格納領域の再割当てを行い、前記案内表示手段は、抜き取られていない前記外部記憶媒体を現在表示中にすることが好ましい。
【００１８】
この発明によれば、複数の外部記憶媒体が挿入されているときに、案内表示手段に現在表示中の外部記憶媒体が抜取られた場合、抜き取られていない外部記憶媒体の画像特定情報を格納するための格納領域を確保する再割当てが行われる。そして、案内表示手段には、抜き取られていない外部記憶媒体が現在表示中とされる。この結果、複数の外部記憶媒体のうち現在表示中で有効な外部記憶媒体が抜き取られてから、その抜き取られた外部記憶媒体のデータが消去されるので、現在表示中で有効な外部記憶媒体が抜き取られていないにも関わらず、その外部記憶媒体のデータが消去されることを回避できる。
【００１９】
本発明の電子機器では、案内表示手段を更に備え、前記案内表示手段に表示される画面は、前記外部記憶媒体の挿抜の検出の前後で切り換わる構成であり、前記再割当手段は、前記案内表示手段に画面を表示する際に用いる画面データを格納する格納領域を前記再割当てで確保する構成であり、前記案内表示手段が前記外部記憶媒体の挿抜前の第１画面から、前記外部記憶媒体の挿抜の検出に伴う第２画面に切り換わるときに、前記再割当てを行うことが好ましい。
【００２０】
この発明によれば、外部記憶媒体の挿抜が行われるときには、案内表示手段はその挿抜前の第１画面から挿抜の検出に伴う第２画面に切り換わる。この画面の切り換わり過程で再割当手段による格納領域の再割当てが行われる。よって、再割当てにより案内表示手段の画面が一瞬非表示になっても、ユーザーは外部記憶媒体の挿抜に伴う画面の切り換わり過程の非表示と認識するので、ユーザーに違和感を与えない。
【００２１】
本発明は、外部記憶媒体を挿抜可能な被挿着部を有する電子機器において外部記憶媒体が挿着されたときに当該外部記憶媒体から読み込むべき画像特定情報を格納するための格納領域をメモリーに確保するメモリー管理方法であって、外部記憶媒体が前記被挿着部に挿着されたことを検出する検出ステップと、外部記憶媒体の挿着が検出されると、当該外部記憶媒体にアクセスして当該検出に伴い当該外部記憶媒体から読み込むべき当該外部記憶媒体の格納画像数分の画像特定情報の容量を取得する容量取得ステップと、前記容量に応じた格納領域を確保すべく前記メモリーにおける格納領域の再割当てを行う再割当ステップと、前記外部記憶媒体から格納画像数分の画像特定情報を読み込んで前記確保された格納領域に当該画像特定情報を格納する格納ステップと、を備えたことを要旨とする。この発明によれば、上記電子機器に係る発明と同様の効果を得ることができる。
【００２２】
本発明は、外部記憶媒体を挿抜可能な被挿着部を有する電子機器におけるコンピューターが、外部記憶媒体が挿着されたときに当該外部記憶媒体から読み込むべき画像特定情報を格納するための格納領域をメモリーに確保するために実行するプログラムであって、コンピューターが、外部記憶媒体が前記被挿着部に挿着されたことを検出する検出ステップと、外部記憶媒体の挿着が検出されると、コンピューターが、当該外部記憶媒体にアクセスして当該検出に伴い当該外部記憶媒体から読み込むべき当該外部記憶媒体の格納画像数分の画像特定情報の容量を取得する容量取得ステップと、コンピューターが、前記容量に応じた格納領域を確保すべく前記メモリーにおける格納領域の再割当てを行う再割当ステップと、コンピューターが、前記外部記憶媒体から格納画像数分の画像特定情報を読み込んで前記確保された格納領域に当該画像特定情報を格納する格納ステップと、を備えたことを要旨とする。この発明によれば、上記電子機器に係る発明と同様の効果を得ることができる。
【図面の簡単な説明】
【００２３】
【図１】一実施形態における複合機の機能構成を示すブロック図。
【図２】（ａ）〜（ｄ）メモリーに割り当てられたプールの状態を示す模式図。
【図３】カード挿入時のプール再割当処理ルーチンを示すフローチャート。
【図４】カード抜取時のプール再割当処理ルーチンを示すフローチャート。
【図５】カード挿入時のシーケンス図。
【図６】カード抜取時のシーケンス図。
【図７】（ａ），（ｂ）比較例におけるメモリーに割り当てられたプールの状態を示す模式図。
【図８】複合機の斜視図。
【発明を実施するための形態】
【００２４】
以下、本発明を具体化した一実施形態を図１〜図８に基づいて説明する。図８は、電子機器の一例である複合機の斜視図である。複合機１１は本体１２とカバー１３とを備え、本体１２の下側部分がプリンター部１４、上側部分がスキャナー部１５となっていて、カバー１３を開いた本体１２の上面が原稿台１５ａとなっている。本体１２の背面部には用紙がセットされるサポート１６ａを備えた自動給紙装置１６（ＡＳＦ（Auto Sheet Feeder））が装備されている。また、本体１２の前側には、その上段部に操作パネル１７、下段部に排紙部１８、排紙部１８の右側位置にメモリーカードＭＣ１，ＭＣ２を挿抜可能なメモリーカードスロット（以下、単に「スロット１９Ａ，１９Ｂ」という）がそれぞれ設けられている。複合機１１は、複数種のメモリーカードを使用でき、複合機１１が対応可能なメモリーカードの種類に応じて複数個（例えば２〜５個）のスロットが設けられている。但し、図８では、２個のスロット１９Ａ，１９Ｂと、２個のメモリーカードＭＣ１，ＭＣ２のみ図示している。メモリーカードとしては、例えばＳＤカード、miniＳＤカード、スマートメディア、ＰＣカード等を挙げることができる。また、複合機１１は例えば排紙部１８の左側位置にＵＳＢポート２０を有し、このＵＳＢポート２０へのＵＳＢメモリーＵＭの挿着も可能である。なお、本実施形態では、スロット１９Ａ，１９Ｂを特に区別しない場合はスロット１９と記し、メモリーカードＭＣ１，ＭＣ２を特に区別しない場合はメモリーカードＭＣと記すことにする。また、外部記憶媒体の一例であるメモリーカードＭＣ１，ＭＣ２及びＵＳＢメモリーＵＭを、総称して「カードＣ」と呼ぶ場合もある。本実施形態では、被挿着部の一例がスロット１９及びＵＳＢポート２０であり、外部記憶媒体の一例がメモリーカードＭＣ１，ＭＣ２及びＵＳＢメモリーＵＭである。
【００２５】
操作パネル１７の幅方向中央部にはモニター２１（案内表示手段）が配設されている。モニター２１は例えば液晶ディスプレイ装置（ＬＣＤ）により構成される。また、操作パネル１７には、電源ボタン２２、実行中の動作を中止するストップボタン２３、印刷／スキャンを開始するスタートボタン２４、モードを選択するモード選択ボタン２５、上下左右の４つの矢印キーとＯＫボタンとを有する選択ボタン２６、印刷枚数を設定する印刷枚数ボタン２７などが配設されている。
【００２６】
モード選択ボタン２５は、複数のモードのうちから一つのモードを選択でき、例えば「コピー」「スキャン」「通常印刷」「カード印刷」「レーベル印刷」などのモードを選択できる。モニター２１にはホーム画面（例えばメインメニュー画面）が表示される。また、モードが選択されると、モニター２１には選択されたモードに対応するメニュー画面が表示される。このメニュー画面の中でモードにおける各種設定等を行うことが可能である。ここで、「カード印刷モード」は、スロット１９に挿着されたメモリーカードＭＣ又はＵＳＢポート２０に挿着されたＵＳＢメモリーＵＭから読み取った画像データに基づき画像（写真等）を印刷するときに用いられるモードである。
【００２７】
図１は、複合機１１の機能構成図である。複合機１１において、ＣＰＵ（Central Processing Unit）３０と、ＲＯＭ（Read Only Memory）３１と、メモリーの一例としてのＲＡＭ（Random Access Memory）３２と、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）３３と、入力インターフェイス部（以下、「入力Ｉ／Ｆ部３４」と称す）と、表示インターフェイス部（以下、「表示Ｉ／Ｆ部３５」と称す）と、動作部としてのスキャナー機能部３６と、動作部としてのプリンター機能部３７と、メモリーカードインターフェイス部（以下、「メモリーカードＩ／Ｆ部３８」と称す）と、通信インターフェイス部（以下、「通信Ｉ／Ｆ部３９」と称す）とがバス４０を介して接続されている。ここで、ＣＰＵ３０、ＲＯＭ３１及びＲＡＭ３２等が、コンピューターに相当する。
【００２８】
ＲＯＭ３１は、ブートプログラム及びオペレーティングシステム（ＯＳ）等のプログラムを記憶する。本実施形態では、オペレーティングシステムとして、リアルタイムＯＳが用いられている。リアルタイムＯＳは、ＲＡＭ３２に各種データ（情報）を記憶（格納）するためのメモリープール（格納領域）を割り当てる機能と、割り当てられた各メモリープールに対応する各種データを格納する機能とを有する。但し、リアルタイムＯＳは、未使用領域の整理（ガーベージ・コレクションを行う機能（ガーベージコレクター）は有していない。また、ＲＯＭ３１は、ＣＰＵ３０がカードＣの挿抜の検出時に実行する後述する各再割当処理ルーチン（図３、図４参照）のプログラムを記憶する。
【００２９】
また、ＥＥＰＲＯＭ３３は、書き換え可能な不揮発性メモリーであり、複合機１１の電源が入っていない場合でも記憶しておく必要がある各種情報を記憶する。
ＲＡＭ３２は、プログラムやデータを記憶する領域として、あるいはＣＰＵ３０による処理に使用しているデータを格納する作業領域として利用される。本実施形態では、ＲＡＭ３２には、記憶領域（格納領域）として、プログラム保存用プール３２ａと、カード情報保存用プール３２ｂと、ＵＩ画像保存用プール３２ｃと、印刷画像生成用プール３２ｄと、ファイルキャッシュ用プール３２ｅとが割り当てられる。
【００３０】
プログラム保存用プール３２ａは、ブートプログラム、リアルタイムＯＳプログラム、ファームウェアプログラム等を含むプログラムＰＲを格納することのできる記憶容量を有し、複合機１１の電源オン中は継続的にプログラムＰＲを格納しておくことのできる記憶領域である。
【００３１】
カード情報保存用プール３２ｂは、所定数（例えば9990個）分の画像ファイルのカード情報を格納することのできる記憶容量を有し、複合機１１の電源オン中は継続的にカード情報ＣＤ（画像特定情報）を格納しておくことのできる記憶領域である。このカード情報保存用プール３２ｂは、複合機１１にカードＣが挿着されているときにだけ作成される。カード情報ＣＤには、ファイル名、ファイル作成日時などを含むファイル情報と、カードＣ内の画像ファイルの位置（アドレス）を特定するためのパス名の階層構造を示すパス情報とが含まれる。ファイル情報には、画像ファイルに関連付けされているＰＩＦ（PRINT Image Framer）ファイルがあるか否かを示すＰＩＦ関連付けフラグなどの関連情報も含まれる。さらにファイル情報には、画像ファイルの画像の状態を示す情報、例えば、画像チェック済みか、正常な画像か、異常な画像か等の判定結果についての画像チェック情報も含まれる。ここで、パス情報は、画像ファイルのフルパスファイル名（すなわち、ルートディレクトリからのすべてのパス名とファイル名）を含んでいる。モニター２１の画面上で画像が選択されると、カード情報ＣＤを参照することでその選択された画像のファイル名及びパス情報からその選択された画像に対応する画像ファイルのカードＣ内におけるアドレスの取得が可能である。
【００３２】
ＵＩ画像保存用プール３２ｃは、モニター２１に表示するためのユーザーインターフェイス用画像データ（以下、「ＵＩ画像データ」ＵＤ」と称す）を記憶するための記憶領域である。ＵＩ画像保存用プール３２ｃは、通常印刷モード、コピーモード、スキャンモード、カード印刷モード等のそのときのモードに応じたＵＩ画像データＵＤを記憶する。ＵＩ画像データＵＤは、コピーモード、スキャンモード、通常印刷モード、カード印刷モード、レーベル印刷モード等のモード別にＥＥＰＲＯＭ３３に記憶されている。
【００３３】
表示制御部６０は、ＵＩ画像保存用プール３２ｃに格納されたＵＩ画像データＵＤのうち１つ又は複数のＵＩ画像データＵＤに基づいてそのときの状態に応じたＵＩ画像をモニター２１に表示する。例えばカード印刷モード時は、表示制御部６０は、ユーザーがキー部２８の操作で選択した画像又は画像群に対応するサムネイル画像データをカードＣから読み込んで、サムネイル画像データに基づく画像又は画像群をフレーム画像（ＵＩ画像の１つ）に組み込んだ画像選択画面をモニター２１に表示する。ユーザーはモニター２１に表示された画像選択画面内の画像又は画像群のうちから印刷したい所望の画像をキー部２８の操作で選択する。
【００３４】
カード印刷モードのときには、カードＣの挿着を検出したときに表示するカード検出完了画面や、カードＣの抜取りを検出したときに表示するカード抜取完了画面の他、画像選択画面で選択中の画像に対して印刷条件を設定するためのカード印刷設定画面などを含む各種のＵＩ画像データＵＤが、ＵＩ画像保存用プール３２ｃに格納される。また、複合機１１は、スキャンした画像やカードＣから読み込んだ画像を編集する機能（例えば拡大・縮小、トリミング等）を有し、これらのモードのときには、編集画面などのＵＩ画像もＵＩ画像保存用プール３２ｃに格納される。
【００３５】
ファイルキャッシュ用プール３２ｅは、過去に使用された画像データや編集画像データが記憶される記憶領域である。例えば、カードＣから読み込んだ画像データ、通常印刷時にホスト装置から受信した画像データ、コピーモード時にスキャンした画像データ、モニター２１上の編集画面でキー部２８の操作で編集した編集画像データ等が、ファイルキャッシュ用プール３２ｅには格納される。ＲＡＭ３２において、プログラム保存用プール３２ａと、カード情報保存用プール３２ｂと、ＵＩ画像保存用プール３２ｃと、印刷画像生成用プール３２ｄとが割り当てられた残りの記憶領域が、ファイルキャッシュ用プール３２ｅとして使用される。ファイルキャッシュ用プール３２ｅの記憶容量が多いほど、ファイルキャッシュ用プール３２ｅに記憶できる画像データ又は編集画像データの格納数が多くなる。よって、例えば同一画像の複数部印刷や複数部コピー印刷するときには、印刷一部毎にカードＣにアクセスしなくても、このファイルキャッシュ用プール３２ｅにアクセスすれば印刷対象の画像データを取得できるので、画像の表示及び印刷を迅速に行うことができる。なお、本例では、ファイルキャッシュ用プール３２ｅは、例えば数枚から数１０枚分の画像データを記憶できる記憶容量がある。
【００３６】
印刷画像生成用プール３２ｄは、ファイルキャッシュ用プール３２ｅから読み込んだ画像データから印刷画像データを生成する過程で処理途中の印刷画像データＰＤを一時格納する記憶領域である。詳しくは、印刷画像生成用プール３２ｄは、ｊｐｅｇ画像データの解凍後の画像データや、解凍後の画像データあるいは非圧縮系の画像データを解像度変換した画像データ、印刷時（カラー印刷又はモノクロ印刷）の色で色変換したＣＭＹＫ系の画像データなどを一時的に記憶する。図１では、印刷画像データ生成過程で作成されるこれらの処理途中の画像データを総称して印刷画像データＰＤと記している。プリンター機能部３７が例えばシリアルプリンターである場合は、印刷画像生成用プール３２ｄは、例えば２〜５行分の印刷が可能な分の印刷画像データを記憶可能な記憶容量を有する。
【００３７】
本実施形態では、プログラム保存用プール３２ａは、固定長のメモリープールである。これは、プログラムＰＲの容量が一定であるからである。また、カード情報保存用プール３２ｂと、ＵＩ画像保存用プール３２ｃと、印刷画像生成用プール３２ｄと、ファイルキャッシュ用プール３２ｅとは、可変長のメモリープールとなっている。これは、これらの各プール３２ｂ，３２ｃ，３２ｄ，３２ｅに格納されるデータの容量がその時々のモード等に応じて変化するからである。例えば、挿着中のカードＣの格納画像数が多い（例えば最大の9990個）場合は、カード情報保存用プール３２ｂは最大記憶容量で作成されるが、カードＣの格納画像数が少ない（例えば999個未満）場合は、カード情報保存用プール３２ｂはその格納画像数に応じた小さな記憶容量で作成される。なお、カード情報保存用プール３２ｂの最大記憶容量を決めている所定数（9990個）は、モニター２１に表示可能な最大表示枚数（9990枚）に合わせたものである。もちろん、カード情報保存用プール３２ｂの最大記憶容量を決める所定数は、ＲＡＭ３２の容量に応じて適宜設定でき、例えば9990個を超える個数でもよいし、9990個未満の任意の個数（999個未満の所定数も含む）でもよい。
【００３８】
入力Ｉ／Ｆ部３４には、キー部２８が接続されている。入力Ｉ／Ｆ部３４は、キー部２８からの信号をＣＰＵ３０に出力する。キー部２８は各ボタン（キー）２２〜２７（図８参照）に相当し、押下されたキーに応じた信号を入力Ｉ／Ｆ部３４に出力する。表示Ｉ／Ｆ部３５は、例えば、ＶＲＡＭ（Video Random Access Memory）を有し、ＣＰＵ３０の制御によりモニター２１に画面を表示出力させる。
【００３９】
スキャナー機能部３６は、原稿台１５ａに載置された原稿を読み取ってデジタル画像データを生成する。プリンター機能部３７は、例えば紙、ＯＨＰシート、厚紙、封筒等の印刷媒体（ターゲット）に画像を印刷する。詳しくは、プリンター機能部３７は、印刷ヘッドと、印刷媒体（ターゲット）を搬送する搬送手段とを有する。プリンター機能部３７は、シリアルプリンター、ラインプリンター、ページプリンターのうちどのタイプのものでもよく、その記録方式も、インクジェット記録方式、ドットインパクト記録方式、レーザー記録方式などどの記録方式のものでもよい。また、搬送手段は、公知の搬送機構と、動力源としての搬送モーターとを備え、搬送モーターの動力により搬送機構が駆動されることにより印刷媒体を搬送する。
【００４０】
メモリーカードＩ／Ｆ部３８は、スロット１９に対するメモリーカードＭＣの挿入時に、メモリーカードＭＣと電気的に接続して、メモリーカードＭＣとＣＰＵ３０との間のデータ交換の仲介を行う。
【００４１】
通信Ｉ／Ｆ部３９は、ネットワークと接続可能であり、ネットワークを介して他の装置（例えばホスト装置又はデジタルカメラ）とのデータ交換の仲介を行う。特に本例では、通信Ｉ／Ｆ部３９はＵＳＢ通信方式のＩ／Ｆ部により構成される。通信Ｉ／Ｆ部３９は、ＵＳＢポート２０に対するＵＳＢメモリーＵＭの挿入時に、ＵＳＢメモリーＵＭと電気的に接続して、ＵＳＢメモリーＵＭとＣＰＵ３０との間のデータ交換の仲介を行う。
【００４２】
コントロール部４１とカードデバイス部４２とユーザーインターフェイス部４３は、ＣＰＵ３０がＲＯＭ３１に格納されているプログラムをＲＡＭ３２に読み出して実行することにより構成される。
【００４３】
コントロール部４１は、有効カード判定部５１、動作判定部５２（判断手段）、カウントアップ部５３、演算部５４、再割当部５５、及び画像データ処理部５６を有している。また、カードデバイス部４２は、カード挿抜検出部５７（検出手段）及びデータ格納処理部５８（格納手段）を有している。さらに、ユーザーインターフェイス部４３は、受付処理部５９及び表示制御部６０を有している。以下、コントロール部４１、カードデバイス部４２及びユーザーインターフェイス部４３がそれぞれ有する各部５１〜６０について説明する。
【００４４】
有効カード判定部５１は、複数のカードＣが挿着されたときに、そのうちどのカードＣが有効であるかを判定する処理を行う。本実施形態の有効カード判定部５１は、複合機１１に既にカードＣが挿着された状態にあるときに、他のカードＣが挿着された場合、先に挿着されていた先行のカードＣを有効とし、後から挿着された後続のカードＣを無効とする判定を行う。この場合、後続のカードＣは、先行のカードＣが抜き取られたときに有効と判定される。すなわち、有効カード判定部５１は、複合機１１に挿着されている複数のカードＣのうち一番挿着検出時期の早い１つを有効とし、その他については無効とするものの、その無効のカードＣのうち現在有効なカードＣが抜き取られた際に次に有効となるカードＣの優先順位を挿着検出時期の早い順で決めるようになっている。
【００４５】
動作判定部５２は、複合機１１が動作中であるか否かを判定する処理を行う。本実施形態では、カードＣが挿着されたことを検出したときに、複合機１１が動作中であると判定した場合には、再割当部５５による再割当処理の開始をその動作中の動作が終了するまで待機（保留）させる構成となっている。ここで、動作には、印刷動作（通常印刷動作、カード印刷動作、レーベル印刷動作等）とコピー動作とスキャン動作とが含まれる。
【００４６】
カウントアップ部５３は、カード挿抜検出部５７がカードＣの挿着を検出したときに、その挿着されたカードＣにアクセスしてこのカードＣの格納画像枚数をカウントアップ（計数）する。例えば画像ファイルのファイル情報の中にはファイルが画像ファイルである旨を示すフラグを含み、そのフラグの値が「１」であるフラグ数（つまりファイル数）を計数することで格納画像枚数をカウントアップする。もちろん、画像のカウントアップはファイル名の拡張子から画像を判別し、その判別した画像の数を計数することで格納画像枚数をカウントアップする構成でもよい。
【００４７】
演算部５４は、カウントアップ部５３がカウントアップした格納画像枚数からカードＣ内の格納画像枚数分のカード情報ＣＤのデータ容量を演算する。詳しくは、演算部５４は、画像一枚当たりのカード情報のデータ容量に格納画像枚数を乗じることで、そのとき挿着中の有効なカードＣに格納された全画像数分（但し、本例では上限が9990枚）のカード情報の容量を演算する。このカード情報ＣＤの容量が決まれば、演算部５４はこの容量からカード情報保存用プール３２ｂの容量を演算する。本例では、カード情報の容量をそのままカード情報保存用プール３２ｂの容量として用いている。もちろん、格納画像枚数とカード情報保存用プール３２ｂの容量との対応関係を示すテーブルデータを用意し、このテーブルデータを参照することで、格納画像枚数からカード情報保存用プール３２ｂの容量を求める構成も採用できる。ＥＥＰＲＯＭ３３には、モードとそのモード毎のＵＩ画像データＵＤの容量との対応関係を示すテーブルデータ（図示せず）が記憶されている。演算部５４は、このテーブルデータを参照することで、その時々のモードに応じたＵＩ画像保存用プール３２ｃの容量を取得する。また、ＥＥＰＲＯＭ３３には、印刷速度モードと印刷画像生成用プール３２ｄの容量との対応関係を示すテーブルデータ（図示せず）が記憶されている。演算部５４は、このテーブルデータを参照することで、その時々の印刷速度モードに応じた印刷画像生成用プール３２ｄの容量を取得する。なお、本実施形態では、カウントアップ部５３及び演算部５４により、容量取得手段が構成される。
【００４８】
再割当部５５は、ＲＡＭ３２に各種データの記憶領域（格納領域）であるメモリープール（以下、単に「プール」ともいう）の再割当てを行う。再割当部５５は、カードＣの挿抜が検出されたとき、又は有効なカードＣが切り換わったときに、ＲＡＭ３２において各プールの再割当を行う。但し、動作判定部５２が複合機１１の動作中と判定した場合、各プールの再割当てを一時保留し、その動作中の動作が終了した判定になってから、各プールの再割当を行う。このとき、再割当部５５は、演算部５４が求めたカード情報のデータ容量及びカード情報保存用プール３２ｂ以外の他の可変長の各プール３２ｃ，３２ｄの容量に基づいて、カード情報を格納可能な容量をもつカード情報保存用プール３２ｂを確保するように各プールの再割当てを行う。このときファイルキャッシュ用プール３２ｅは、前述のように、各プール３２ａ〜３２ｄが再割当されたＲＡＭ３２内の残りの領域として割り当てられる。なお、本実施形態の再割当部５５は、複合機１１の電源投入時にＲＡＭ３２に対して最初にプールを割り当てる割当処理も行う。また、本実施形態では、この再割当部５５により再割当手段が構成される。
【００４９】
画像データ処理部５６は、画像データに画像処理を施して、プリンター機能部３７が印刷動作に使用可能な形式の印刷画像データを生成する処理を行う。画像処理には、画像データを、プリンター機能部３７の印刷解像度に合った解像度に変換する解像度変換処理、解像度変換後の画像データをＣＭＹＫ系の印刷画像データに変換する色変換処理、色変換後の印刷画像データの階調値（例えば２５６階調）をプリンター機能部３７の印刷階調値（例えば４階調）に変換するハーフトーン処理などが含まれる。
【００５０】
カード挿抜検出部５７は、メモリーカードＩ／Ｆ部３８からの信号に基づきスロット１９Ａ，１９ＢへのメモリーカードＭＣの挿入（挿着）と、スロット１９Ａ，１９ＢからのメモリーカードＭＣの抜取りとを検出する。また、カード挿抜検出部５７は、通信Ｉ／Ｆ部３９からの信号に基づきＵＳＢポート２０へのＵＳＢメモリーＵＭの挿入（挿着）と、ＵＳＢポート２０からのＵＳＢメモリーＵＭの抜取りとを検出する。カード挿抜検出部５７の検出結果は、カードデバイス部４２からコントロール部４１へ通知される。
【００５１】
データ格納処理部５８は、コントロール部４１からの指示に従ってＩ／Ｆ部３８又は３９を介して挿着中の有効なカードＣからデータを読み込んでＲＡＭ３２の対応するプールに格納（記憶）する。データ格納処理部５８は、カード情報ＣＤをカードＣから読み込んでカード情報保存用プール３２ｂに格納する。また、データ格納処理部５８は、画像データＩＤをカードＣから読み込んでファイルキャッシュ用プール３２ｅに格納する。なお、本例では、モードに応じたＵＩ画像データＵＤをＥＥＰＲＯＭ３３から読み出してプール３２ｃに格納する処理は再割当部５５が行う。
【００５２】
受付処理部５９は、ユーザーが操作したキー部２８からの信号を入力Ｉ／Ｆ部３４を介して入力し、キー操作による指示を受け付ける。受付処理部５９は、入力した信号に応じて、例えばモード選択、印刷処理、コピー処理、スキャン処理等の指示や、複合機１１に印刷させる画像の選択の指示を受け付ける。受付処理部５９は、その受け付けた指示をコントロール部４１に通知する。
【００５３】
表示制御部６０は、コントロール部４１からの指示に従って指定のＵＩ画像をモニター２１に表示する表示制御を行う。表示制御部６０は、コントロール部４１からモード切り替え指示を受け付けたときには切り替え後のモードに応じたＵＩ画像をモニター２１に表示する。また、表示制御部６０は、カード挿着検出時にカウントアップ部５３が格納画像枚数を計数し終わると、カード検出完了画面と、格納画像枚数を含むカード情報の表示画面とをモニター２１に順次表示させる。また、表示制御部６０は、カード印刷モードにおいて、キー部２８からカードＣ内の画像を表示する旨の信号を受付処理部５９を介して受け付けたコントロール部４１の指示に従って、指定枚数（１枚又は複数枚）の画像が組み込まれた画像選択画面をモニター２１に表示する。この画像選択画面の画像の中からユーザーはキー部２８を操作して印刷させたい所望の画像を選択する。さらに表示制御部６０は、複合機１１が動作中のときにはその動作に応じたＵＩ画像をモニター２１に表示する。例えば、印刷動作中のときには印刷中画面、コピー動作中のときにはコピー中画面、スキャン動作中のときにはスキャン中画面がモニター２１に表示される。また、表示制御部６０は、ホーム画面（例えばメインメニュー画面）の他、カードＣの挿入検出時にカード検出完了画面及びカード情報表示画面を表示し、カードＣの抜取検出時にカード抜取完了画面を表示する。
【００５４】
次に、再割当部５５によるメモリーにおけるプールの再割当処理について説明する。図２は、メモリーにおけるプールの割当て構造を示す。ここで、図２におけるメモリー６１は、ＲＡＭ３２のうちメモリープール作成対象として使用可能な全領域を指す。ここで、ＲＡＭが複数個ある電子機器の場合は、複数個のＲＡＭのうちメモリープール作成対象として使用可能な全領域がメモリー６１となる。また、ＥＥＰＲＯＭ内の一部に揮発性記憶領域が含まれる場合や、ＡＳＩＣを備えた電子機器において当該ＡＳＩＣ内のＲＡＭ領域も、メモリープール作成対象として使用される場合は、メモリー６１に含まれる。このようにメモリー６１は複数個のＲＡＭ３２に跨る場合もあるメモリー領域である。
【００５５】
図２（ａ）は、１つもカードＣが挿入されていないカード非挿着状態の場合である。複合機１１の例えば電源投入時には図２（ａ）のようにメモリー６１に各種のプールが割り当てられる。つまり、図２（ａ）に示すように、メモリー６１の先頭アドレス側から順に、固定長のプログラム保存用プール３２ａ、可変長のＵＩ画像保存用プール３２ｃ、可変長の印刷画像生成用プール３２ｄ、及び可変長のファイルキャッシュ用プール３２ｅが割り当てられる。ここで、プログラム保存用プール３２ａは固定長のメモリープールであり、メモリー６１の先頭エリアに配置される。また、ファイルキャッシュ用プール３２ｅは、各プール３２ａ，３２ｃ，３２ｄが割り当てられた後におけるメモリー６１の残りの領域として割り当てられる。
【００５６】
ここで、プログラム保存用プール３２ａには、前述のようにブートプログラム、リアルタイムＯＳ及びファームウェアプログラム等のプログラムＰＲが格納される。ＵＩ画像保存用プール３２ｃには、そのときのモードに応じたＵＩ画像データＵＤが格納される。印刷画像生成用プール３２ｄには、印刷時に、解像度変換、色変換処理、ハーフトーン処理等の画像処理を行うときに画像処理の途中のデータや画像処理完了後の印刷画像データを、そのデータが印刷に使われて不要になるまで、一時的に格納される。
【００５７】
ファイルキャッシュ用プール３２ｅには、印刷に使用された過去の画像データや印刷にこれから使用する画像データが保存される。例えば複合機１１が電源投入された後、スキャナー機能部３６で読み取られた画像データや、カードＣから読み込まれた画像データ、ホスト装置から受信した画像データなどの一度印刷に使用された既存の画像データが格納される。一度印刷に使用された画像データや編集画像データは、再度印刷に使用される頻度が比較的高いため、そのまま保存される。このため、同一画像の複数部印刷や、複数部コピー印刷、さらにはユーザーが再度同じ画像を選択して印刷を行う場合も、スキャン動作やカードＣからの画像データの読み取りを行うことなく、ファイルキャッシュ用プール３２ｅにアクセスするだけで迅速に画像データに基づく印刷動作を行うことができる。例えばコピー印刷を複数部行う場合は、一度スキャン動作を行えば、２部目以降はファイルキャッシュ用プール３２ｅから画像データを取得できるので、画像を迅速に印刷できる。また、カード印刷を複数部行う場合も、一度、カードＣから画像データの読み取りを行えば、２部目以降はファイルキャッシュ用プール３２ｅから画像データを取得できるので、画像を迅速に印刷できる。
【００５８】
ファイルキャッシュ用プール３２ｅを少しでも広く確保し、より多くの画像データをファイルキャッシュ用プール３２ｅに保存できれば、再利用の画像で迅速に印刷できる画像数が増えることになる。また、カードＣが抜き取られた場合は、そのカードＣから読み込んだ画像データはまず使用されないとみなせるので、抜き取られたカードＣの挿着時に読み込んだ画像データをファイルキャッシュ用プール３２ｅから消去するようにしている。これにより、その後、他のカードＣが挿入された場合に、その他のカードＣから読み取った画像データの格納領域を少しでも多く確保できるようにしている。
【００５９】
図２（ｂ）は、格納画像Ｎ枚のカードＣが挿入された場合のメモリーにおけるプール再割当構造を示す。図２（ｂ）に示すように、カードＣが挿入されたときに、当該カードＣから読み取るべきカード情報ＣＤの容量を演算し、その演算した容量に基づきカード情報ＣＤを格納可能な容量をもつカード情報保存用プール３２ｂを、固定長のプログラム保存用プール３２ａと可変長のＵＩ画像保存用プール３２ｃとの間に割り込むように各プールを再割当てする。つまり、カード情報保存用プール３２ｂは、可変長のプールの中で一番先頭に配置される。このとき、カードＣの挿入を検出した結果、それまでのモードからカード印刷モードに変更されるので、カード印刷モードに応じたＵＩ画像データＵＤを格納可能な容量をもつＵＩ画像保存用プール３２ｃが割り当てられる。また、印刷速度モードに応じた容量をもつ印刷画像生成用プール３２ｄが割り当てられる。また、ファイルキャッシュ用プール３２ｅが図２（ａ）の状態から図２（ｂ）の状態へ縮小し、それまで格納されていた画像データＩＤを格納できなくなった場合は、旧い画像データＩＤから順番に消去される。
【００６０】
一方、図２（ｃ）に示すように、Ｎ枚よりも少ない格納画像Ｍ枚（Ｍ＜Ｎ）のカードＣが挿入された場合は、その格納画像Ｍ枚分のカード情報ＣＤを保存しうる容量でカード情報保存用プール３２ｂが割当てられる。図２（ｂ），（ｃ）に示すように、カード情報保存用プール３２ｂの容量が少ない場合ほど、ファイルキャッシュ用プール３２ｅの容量を広く確保できる。
【００６１】
また、図２（ｃ）に示す状態からカードＣを挿着したまま、キー部２８の操作で他のモード（例えば通常印刷モード等）へモード変更された場合、変更後のモードでＵＩ画像保存用プール３２ｃに必要な容量が小さくなれば、各プール３２ｃ，３２ｄが再割当てされることにより、そのプール３２ｃの容量が減った分だけファイルキャッシュ用プール３２ｅの容量が増えることになる。このとき、カードＣが挿着されたままなので、カード情報ＣＤのアドレスを変更できずカード情報保存用プール３２ｂは再割当てできない。しかし、固定長のプログラム保存用プール３２ａに隣接するようにカード情報保存用プール３２ｂを、他の可変長の各種プールの中で一番先頭のエリアに配置しているので、ＵＩ画像保存用プール３２ｃが小さくなった分、印刷画像生成用プール３２ｄを先頭側へ詰めることで、使用できない領域が発生しないようになっている。
【００６２】
次に、この複合機１１の動作を説明する。図３及び図４は、本実施形態に係る再割当処理ルーチンのフローチャートである。図３はカード挿入時の再割当処理ルーチンを示し、図４はカード抜取り時の再割当処理ルーチンを示す。ＣＰＵ３０は、複合機１１が電源オン状態にあるときには、例えば所定時間（一例として数１０ミリ秒〜１秒の範囲内の値）毎に、図３に示すカード挿入時の再割当処理ルーチンのプログラムを実行する。また、ＣＰＵ３０は、カード挿着状態にあるときには、図４に示すカード抜取り時の再割当処理ルーチンのプログラムを実行する。なお、ＣＰＵ３０は、カードＣが１つも挿入されていない状態で「０」とし、カードＣが１つでも挿入された状態にあれば「１」とするカード有無判定フラグ（以下、単に「判定フラグ」と称す）を有する。そして、ＣＰＵ３０は、この判定フラグが「０」のときに図３に示すプログラムを実行し、この判定フラグが「１」のときに図３及び図４に示す両プログラムを実行するようになっている。
【００６３】
まず、カード挿入時のメモリーにおけるプールの再割当処理について、図３に示すフローチャートに従って説明する。ここで、カードＣが挿入されるときの状態には次の２つの場合がある。１つは、１つもカードＣが挿着されていない状態（カード非挿着状態）においてカードＣが挿入された場合であり、他の１つは、既に先のカードＣ（先行カード）が挿着されている状態で、他（後続）のカードＣが挿入された場合である。また、カードＣが挿入されるタイミングはユーザーに依存するため、カード挿入時に複合機１１が動作中（例えば印刷動作中やスキャン動作中）のときもある。前述のように、判定フラグが「０」又は「１」のときに、ＣＰＵ３０は図３に示すカード挿入時の再割当処理ルーチンを実行する。
【００６４】
まずステップＳ１０では、カードＣの挿入を検出したか否かを判断する。すなわち、カード挿抜検出部５７がメモリーカードＩ／Ｆ３８からの信号及び通信Ｉ／Ｆ３９からの信号に基づきカードＣが挿入されたか否かを判断する。カードＣの挿入を検出すれば（Ｓ１０で肯定判定）ステップＳ２０に進み、一方、カードＣの挿入を検出しなければ（Ｓ１０で否定判定）当該ルーチンを終了する。
【００６５】
ステップＳ２０では、先に挿着された先行カードがあるか否かを判断する。先行カードがなければステップＳ３０に進み、一方、先行カードがあれば先行カードが抜き取られるまで待機した後、ステップＳ３０に進む。この判断は、有効カード判定部５１が行う。つまり、先行カードがある場合は、後続カードの挿入が検出されても、有効カード判定部５１により、先行カードが有効で後続カードが無効と判定されるので、先行カードが挿入状態にあって有効であるうちは待機し、先行カードが抜取られて後続カードが有効になった時点で、ステップＳ３０に進む。このときモニター２１には有効な先行カードに関する情報が表示制御部６０により現在表示中であり、現在表示中の先行カードが抜き取られると、後続カードが有効になり、ステップＳ３０に進む。
【００６６】
ステップＳ３０では、複合機１１が動作中であるか否かを判断する。複合機１１が動作中でなければステップＳ４０に進み、一方、複合機１１が動作中であれば、その動作の終了を待ってからステップＳ４０に進む。複合機１１が例えば印刷動作中、コピー動作中、スキャン動作中などの場合は、その動作中の動作が終了した後にステップＳ４０に進む。
【００６７】
ステップＳ４０では、挿入を検出したカードＣの格納画像枚数を確認する。すなわち、カードＣにアクセスして格納画像の枚数をカウントアップする。この格納画像枚数のカウントアップは、カウントアップ部５３が行う。
【００６８】
次のステップＳ５０では、プールの容量を取得する。演算部５４は、Ｓ４０でカウントアップした格納画像枚数からカード情報の容量を演算する。このカード情報の容量がカード情報保存用プール３２ｂの容量に等しい。もしカード情報の容量よりカード情報保存用プール３２ｂの容量がマージンを考慮するなどして大きい場合は、演算部５４は、カード情報ＣＤの容量にマージン分を加えてカード情報保存用プール３２ｂの容量を算出する。もちろん、演算部５４が、格納画像枚数を基に、マージン分を含むカード情報保存用プール３２ｂの容量を演算してもよい。本実施形態では、カード挿入検出時に、カード印刷モードに変更する。そして、演算部５４は、テーブルデータを参照してカード印刷モードに応じたＵＩ画像保存用プール３２ｃの容量を取得し、別のテーブルデータを参照して印刷速度モードに応じた印刷画像生成用プール３２ｄの容量を取得する。
【００６９】
次のステップＳ６０では、画面をクローズする。すなわち、表示制御部６０がそれまでモニター２１に表示されていたＵＩ画面を閉じる。この結果、モニター２１の画面は黒くなる。
【００７０】
次のステップＳ７０では、プール再割当を行う。例えば１つもカードＣが挿着されていない状態でカードＣを挿着した場合は、図２（ａ）に示すカード非挿着時のプール割当構造からプールを再割当し、図２（ｂ）又は（ｃ）に示すカード挿着時のプール割当構造となる。再割当部５５は、メモリー６１の先頭に位置する固定長のプログラム保存用プール３２ａに対してメモリー終端側に隣接する位置に、Ｓ５０で算出した容量をもつカード情報保存用プール３２ｂを作成する。このとき、他の可変長のＵＩ画像保存用プール３２ｃ及び印刷画像生成用プール３２ｄも、Ｓ５０で算出した容量が確保されるように作成する。
【００７１】
ステップＳ８０では、プールに情報を格納する。データ格納処理部５８は、カードＣからカード情報ＣＤを読み込んでカード情報保存用プール３２ｂに格納する。また、再割当部５５がカード印刷モード用のＵＩ画像データＵＤをＵＩ画像保存用プール３２ｃに格納し、さらにファイルキャッシュ用プール３２ｅにそれまで格納されていた画像データがあればその画像データを格納する。このとき、印刷画像生成用プール３２ｄには何も格納されない。
【００７２】
こうしてメモリーの再割当てが完了すると、ステップＳ９０において、カード検出完了画面を表示する。この表示処理は表示制御部６０が行う。
さらに次のステップＳ１００では、カード情報を画面に表示する。すなわち、表示制御部６０が、Ｓ４０でカウントアップ部５３が計数した格納画像枚数の情報と、カード情報保存用プール３２ｂに格納されたカード情報の中から予め表示用に設定された一部のカード情報（例えばファイル名やファイル作成日時等）を読み取って、モニター２１の画面に表示させる。このとき、ステップＳ２０において先行カードありと判定された後に先行カードが抜き取られてステップＳ３０以降の処理に進んだ場合、このステップＳ１００，Ｓ１１０において表示制御部６０が後続カードに関する情報をモニター２１に現在表示中にする。なお、本実施形態では、ステップＳ１０の処理が検出ステップに相当する。また、ステップＳ４０及びＳ５０の処理が容量取得ステップに相当する。さらにステップＳ７０の処理が再割当ステップに相当し、ステップＳ８０の処理が格納ステップに相当する。
【００７３】
次にメモリーカード抜取り時のプール再割当処理ルーチンを図４のフローチャートに従って説明する。ＣＰＵ３０は、判定フラグが「１」にあるとき、すなわち１つでもカードＣが挿着されているときに本ルーチンを実行する。
【００７４】
まずステップＳ２１０では、カードＣの抜取りを検出したか否かを判断する。すなわち、カード挿抜検出部５７がメモリーカードＩ／Ｆ３８からの信号及び通信Ｉ／Ｆ３９からの信号に基づきカードＣが抜き取られたか否かを判断する。カードＣの抜取りを検出しなかった場合は当該ルーチンを終了し、一方、カードＣの抜取りを検出した場合はステップＳ２２０に進む。
【００７５】
ステップＳ２２０では、複合機１１が動作中であるか否かを判断する。この判断処理は、ステップＳ３０と同様の処理であり、動作判定部５２が行う。複合機１１が動作中でなければステップＳ２３０に進み、一方、複合機１１が動作中であれば、その動作の終了を待ってからステップＳ２３０に進む。
【００７６】
ステップＳ２３０では、画面をクローズする。すなわち、表示制御部６０がそれまでモニター２１に表示されていたＵＩ画面を閉じる。この結果、モニター２１の画面は黒くなる。
【００７７】
次のステップＳ２４０では、プール再割当を行う。すなわち、再割当部５５がカード情報保存用プール３２ｂを開放しつつプール再割当を行う。その結果、図２（ｂ）又は図２（ｃ）に示すカード情報保存用プール３２ｂが開放され、図２（ａ）に示すカードが挿入されていない場合のプールに再割当てされる。
【００７８】
次のステップＳ２５０では、カード抜取完了画面を表示する。
次のステップＳ２６０では、ホーム画面を表示する。ここで、モニター２１へのカード抜取完了画面及びホーム画面の表示は表示制御部６０が行う。
【００７９】
図５及び図６は、カード挿抜時のプール再割当処理のシーケンス図である。図５はカード挿入時におけるシーケンス、図６はカード抜取り時におけるシーケンスを示す。これらの各シーケンスは、図３及び図４の各ルーチンを含むプログラムを実行するＣＰＵ３０により構成されるコントロール部４１、カードデバイス部４２及びユーザーインターフェイス部４３により行われる。まずカード挿入時におけるシーケンスを図５に従って説明する。
【００８０】
カードＣが挿入されたことを検出したカードデバイス部４２はコントロール部４１へ挿入通知を行う。コントロール部４１は挿入通知を受け付けると、カードＣの格納画像枚数を確認する。画像枚数を確認したコントロール部４１はユーザーインターフェイス部４３に対して画面クローズを指示する。ユーザーインターフェイス部４３は画面クローズ指示に従って画面クローズ処理を行ってモニター２１から画面を無くす。コントロール部４１は、ユーザーインターフェイス部４３からの画面無し完了通知を受け付けると、プール再割当てを行う。プール再割当てを完了したコントロール部４１はカードデバイス部４２に対してカード情報格納依頼を行う。カード情報格納依頼を受け付けたカードデバイス部４２はカードＣからカード情報ＣＤを読み込んでメモリー６１のカード情報保存用プール３２ｂに格納し、コントロール部４１に対してカード情報格納完了通知を行う。
【００８１】
コントロール部４１はカード情報格納完了通知を受け付けると、ユーザーインターフェイス部４３に対してカード情報表示依頼を行う。ユーザーインターフェイス部４３はカード情報表示依頼を受け付けると、モニター２１にカード検出完了画面とカード情報表示画面を順次表示する。
【００８２】
このカード挿入時には、図５に示すように、カード挿入前の任意画面（第１画面）からカード検出完了画面（第２画面）へ切り換わる過程で一瞬画面が黒くなり、この一瞬画面が黒くなっている間にプール再割当て及びプールへの情報の格納が行われる。ここで、プール再割当処理は、ＵＩ画像保存用プール３２ｃの開放を伴うためＵＩ画像データが一旦消去されてモニター２１が一瞬黒くなることを避けられないが、これを画面の切り換えのタイミングで行うので、ユーザーにほとんど違和感を与えることがない。
【００８３】
次にカード抜取り時におけるシーケンスを図６に従って説明する。カードＣが抜き取られたことを検出したカードデバイス部４２はコントロール部４１へ抜取通知を行う。コントロール部４１は抜取通知を受け付けると、ユーザーインターフェイス部４３に対して画面クローズを指示する。ユーザーインターフェイス部４３は画面クローズ指示に従って画面クローズ処理を行ってモニター２１から画面を無くす。コントロール部４１はユーザーインターフェイス部４３からの画面無し完了通知を受け付けると、プール再割当てを行う。プール再割当てを完了したコントロール部４１はユーザーインターフェイス部４３に対してカード抜取表示依頼を行う。ユーザーインターフェイス部４３はカード抜取表示依頼を受け付けると、モニター２１にカード抜取完了画面とホーム画面を順次表示する。
【００８４】
このカード抜取り時においても、図６に示すように、カード情報表示画面（第１画面）からカード抜取完了画面（第２画面）へ切り換わる過程で一瞬画面が黒くなり、この一瞬画面が黒くなっている間にプール再割当てが行われ、カード情報保存用プール３２ｂが開放される。前述のように、プール再割当処理は、ＵＩ画像保存用プール３２ｃの開放を伴うためモニター２１が一瞬黒くなることを避けられないが、カード抜取り時も、このプール再割当処理を画面の切り換えタイミングで行うので、ユーザーにほとんど違和感を与えることがない。
【００８５】
ここで、カードＣの格納画像枚数が少ないほどファイルキャッシュ用プール３２ｅを広くでき、ファイルキャッシュ用プール３２ｅに保存できる画像データ数が増える構成であることは、以下の方法で確認できる。すなわち、格納画像枚数の異なるメモリーカードを挿し替えた前後において、格納画像枚数に応じてファイルキャッシュ用プール３２ｅの容量が変化することに伴う複合機１１の印刷速度の変化を調べる。以下、図２を参照しつつ説明する。図２（ｂ）に示す格納画像Ｎ枚のカードＭＣ１が挿着されているときの印刷速度と、図２（ｃ）に示す格納画像Ｍ枚（但し、Ｍ＜Ｎ）のカードＭＣ２が挿着されているときの印刷速度とを比較する。但し、各カードＭＣ１、ＭＣ２中の画像データＩＤは全て同じデータ容量（データサイズ）であるものとする。なお、画像データＩＤが異なっていれば（つまり別データ（別ファイル）であれば）、画像は同じであってもよい。
【００８６】
電源投入後一度も印刷を行っていない初期状態の複合機１１に、格納画像Ｎ枚のカードＭＣ１を挿着すると、プールの再割当てが行われ、図２（ｂ）に示す状態にメモリー６１の各プールは再割当てされる。このとき、複合機１１はカード印刷モードにある。また、印刷前の初期状態なので、ファイルキャッシュ用プール３２ｅは空の状態にある。
【００８７】
キー部２８の操作で異なる画像を１枚ずつ選択しつつ選択した画像を１枚ずつ順番に印刷する。この複数枚の画像の印刷を進める過程で、印刷に用いられた画像データＩＤは、図２（ｂ）に示すファイルキャッシュ用プール３２ｅに順次保存される。保存した画像データがファイルキャッシュ用プール３２ｅを満たし、ファイルキャッシュ用プール３２ｅにこれ以上の画像データを格納できなくなった場合、一番旧い画像データを消去し、消去により確保された格納領域に新規の画像データを保存するようになっている。
【００８８】
このため、ファイルキャッシュ用プール３２ｅを画像データＩＤで満たすために、カードＭＣ１から毎回異なる画像データに基づく画像を印刷してその印刷枚数が十分な所定枚数（ファイルキャッシュ用プール３２ｅの最大記憶容量を超えるデータ容量分の画像枚数）に達したら、印刷を止める。このとき、図２（ｂ）に示すファイルキャッシュ用プール３２ｅには、その容量以内に収まる最新のＡ枚の画像データＩＤが保存されている。
【００８９】
ここで、ファイルキャッシュ用プール３２ｅに格納されている画像データを用いて印刷する場合は、１枚当たりの印刷所要時間（秒／枚）が比較的短く済む。これに対して、ファイルキャッシュ用プール３２ｅに格納されていない画像データを用いて印刷する場合は、印刷の都度、カードＣにアクセスして画像データＩＤの読み込み動作が必要なので、その読み込み動作の所要時間の分だけ１枚当たりの印刷所要時間（秒／枚）が長くなってしまう（つまり印刷速度が遅くなる）。
【００９０】
次に、それまで印刷した画像の順番の逆を辿る順番で画像を１枚ずつ印刷してゆく。このとき逆の順番で印刷を開始してから、最初のＡ枚分の画像についてはその画像データＩＤがファイルキャッシュ用プール３２ｅに保存されているので、１枚当たりの印刷所要時間（秒／枚）が短く済む。よって、逆の順番で画像の印刷を開始してから、１枚当たりの印刷所要時間（秒／枚）が、ある枚数目（この例では（Ａ＋１）枚目）から長くなると（つまり印刷速度が遅くなると）、それまでの相対的に短い印刷所要時間（秒／枚）（つまり相対的に高速な印刷速度）で印刷できた画像枚数「Ａ枚」を取得できる。
【００９１】
次に、格納画像Ｎ枚のカードＭＣ１を抜取り、次に格納画像Ｍ枚（Ｍ＜Ｎ）のカードＭＣ２に挿し替える。このとき、格納画像Ｎ枚のカードＭＣ１を抜取った際にプールの再割当てが行われ、図２（ｂ）におけるカード情報保存用プール３２ｂが開放され、メモリー６１は一旦図２（ａ）に示す状態になる。次に格納画像Ｍ枚のカードＭＣ２を複合機１１に挿着したときに、メモリー６１におけるプールの再割当てが行われる。この結果、図２（ｃ）に示すようにメモリー６１のプールは再割当てされる。ここで、今度のカードＭＣ２の格納画像枚数がＭ枚と前回のカードＭＣ１の格納画像枚数のＮ枚よりも少ないので、今度の方が、カード情報保存用プール３２ｂが前回より減った分だけファイルキャッシュ用プール３２ｅが拡大することになる（図２（ｂ），（ｃ）参照）。このときファイルキャッシュ用プール３２ｅは空の状態にある。
【００９２】
次に格納画像Ｍ枚のカードＭＣ２が挿着された状態で、前回のカードＭＣ１挿着時と同様の手順で毎回画像データを変更しつつ画像を１枚ずつ順番に印刷する。そして十分な枚数（所定数）の画像を印刷すると、印刷を止める。このとき、図２（ｃ）に示すファイルキャッシュ用プール３２ｅには、その容量以内に収まる最新のＢ枚の画像データＩＤが保存されている。次にそれまで印刷した画像の順番の逆を辿る順番で１枚ずつ画像の印刷を進める。逆の順番で画像の印刷を開始してから、１枚当たりの印刷所要時間（秒／枚）が、ある枚数目（この例では（Ｂ＋１）枚目）から長くなると（つまり印刷速度が遅くなると）、それまでの相対的に短い印刷所要時間（秒／枚）（つまり相対的に高速な印刷速度）で印刷できた画像枚数「Ｂ枚」を取得できる。
【００９３】
格納画像枚数がそれぞれＮ枚とＭ枚である各カードＭＣ１，ＭＣ２を用いて上記の手順でカード印刷を行うことで取得されたＡ枚とＢ枚は、それぞれファイルキャッシュ用プール３２ｅの容量に応じた値になっている。このため、Ａ＜Ｂの関係が成立すれば、ファイルキャッシュ用プール３２ｅがカードＣの格納画像枚数に応じて、その格納画像枚数が少ないほど記憶容量が増えるように変化する可変長のプールであることの証拠となる。そして、Ａ＜Ｂの関係が成立すれば、ファイルキャッシュ用プール３２ｅの容量を決めているカード情報保存用プール３２ｂが、カードＣの格納画像枚数に応じて、その格納画像枚数が少ないほど記憶容量が減るように変化する可変長のプールであることの証拠となる。
【００９４】
本実施形態のようにカード情報保存用プール３２ｂが可変長であると、格納画像枚数が少なければそれに応じてファイルキャッシュ用プール３２ｅの容量が増えるので、ファイルキャッシュ用プール３２ｅに格納可能な画像データ数が増える。この結果、カードＭＣ２にアクセスすることなく迅速に印刷できる画像枚数が相対的に増えることになる。よって、想定最大格納枚数（例えば9990枚）分のカード情報を格納可能な容量をもつ固定長のカード情報保存用プールを割り当てる構成に比べ、一度印刷した画像を再度印刷する場合に、その画像データがファイルキャッシュ用プール３２ｅに残っている頻度が高くなり、迅速に印刷できる画像の頻度を相対的に高めることができる。
【００９５】
なお、カードＣを挿し替えても前回のカードＣの画像データがファイルキャッシュ用プールに残る構成の場合は、カードＣを変更する度に複合機１１の電源を投入し直して、同様の手順で複数枚の画像を印刷すれば、同様に、Ａ＜Ｂの関係が得られる。
【００９６】
また、格納画像Ｍ枚のカードＭＣ２が挿入されている図２（ｃ）に示す状態で、キー部２８の操作でモードを変更した場合も、図２（ｄ）に示すように、メモリー６１において使用できない領域が発生しないようにプールの再割当てが行われる。ここで、カードＣが挿着状態にある間は、メモリー６１におけるカード情報ＣＤのアドレスが変更されると、カード情報ＣＤにアクセスできなくなるので、カード情報保存用プール３２ｂの再割当ては行われない。例えばカード印刷モードから他のモード（例えば通常印刷モードやコピーモード等）に変更したとすると、カード情報保存用プール３２ｂ以外の可変長のプール３２ｃ，３２ｄ，３２ｅの再割当てが行われる。このとき、ＵＩ画像保存用プール３２ｃは変更後のモードに応じた容量に変更され、ＵＩ画像保存用プール３２ｃの容量が減った分だけ印刷画像生成用プール３２ｄが先頭側へ詰められる。その結果、使用できない領域が発生することなく、その詰められた分だけファイルキャッシュ用プール３２ｅの容量が増えることになる。これは、カード情報保存用プール３２ｂを固定長のプログラム保存用プール３２ａに隣接して配置したことによりできたことである。
【００９７】
図７は、可変長のカード情報保存用プールを追加する構成の比較例を示す。図７（ａ）に示すように、カードが挿入されると、可変長のカード情報保存用プール６２が、他の可変長のプール３２ｃ、３２ｄに対してメモリー終端側の後続位置に配置される。この状態でカードを挿着したままモードを変更すると、ＵＩ画像保存用プール３２ｃが小さくなるものの、カード情報保存用プール６２を移動できないので、印刷画像生成用プール３２ｄとカード情報保存用プール６２との間に使用できない領域が発生してしまう。この場合、ファイルキャッシュ用プール３２ｅの容量を増やすことができない。
【００９８】
これに対し、本実施形態では、カード情報保存用プール３２ｂを可変長のプールのうち、先頭に位置する固定長のプログラム保存用プール３２ａに隣接する一番先頭側の位置に配置した。このため、モード変更時には、図２（ｄ）に示すように、カード情報保存用プール３２ｂの位置がそのままでも、ＵＩ画像保存用プール３２ｃがモード変更により狭くなった分だけ印刷画像生成用プール３２ｄを先頭側へ詰めるように再割当てが行われ、ファイルキャッシュ用プール３２ｅの容量を増やすことができる。
【００９９】
以上詳述したように、本実施形態では、以下に示す効果を得ることができる。
（１）カード情報保存用プール３２ｂを可変長とし、カードＣが挿着されたときにカード情報保存用プールが作成される構成としたので、カードＣの非挿着時において、画像保存エリアとして使用されるファイルキャッシュ用プール３２ｅに多くのメモリー領域を割くことができる。
【０１００】
（２）カード挿入検出時にカウントアップ部５３がカードＣにアクセスして計数した格納画像枚数からカード情報ＣＤの容量（つまりカード情報保存用プール３２ｂの容量）を取得し、その取得した容量を基にプールの再割当てを行う構成とした。よって、カードＣの格納画像枚数をモニター２１に表示するためにカウントアップした情報を基にカード情報ＣＤの容量を取得（推定）するので、カードＣにアクセスしてカード情報ＣＤのデータ容量を取得するためだけの余分な処理を省略できる。
【０１０１】
（３）カード挿入検出時のプール再割当て時に、カードＣの格納画像枚数分のカード情報のデータ容量に合わせた記憶容量になるようにカード情報保存用プール３２ｂを作成するので、無駄なくメモリー６１を利用することができる。
【０１０２】
（４）カードＣの挿抜に伴う画面切り替えのタイミングでプールの再割当てを行うため、画面を一瞬非表示にせざるを得ないプール再割当てを行ってもユーザーに違和感を与えにくい。
【０１０３】
（５）カード情報保存用プール３２ｂを、固定長のプール（一例としてプログラム保存用プール３２ａ）に対しメモリー終端側に隣接しかつ可変長のプールのうち一番先頭側の位置に割り当てるようにした。よって、カード挿着状態でモード変更を行っても、カード情報保存用プール３２ｂを再割当てすることなく、他の可変長プールの再割当てを、使用できない領域が発生しないように行うことができる。そのため、ファイルキャッシュ用プール３２ｅに多くのメモリー領域を割くことができる。
【０１０４】
（６）先行のカードＣが挿着されている状態で後続のカードＣを挿着した場合は、後続のカードＣの挿着が検出されても再割当部５５によるプールの再割当処理を一時的に保留する。このため、先行のカードＣが挿着されているにも関わらず、メモリー６１から先行のカードＣから読み込んだカード情報ＣＤ及び画像データＩＤが消去される不都合を回避できる。
【０１０５】
（７）先行のカードＣの抜取りを検出すると、保留を解除して後続のカードの挿入検出に伴うプールの再割当てを行うので、先行のカードＣに関するカード情報ＣＤ及び画像データＩＤを不要になってから消去できるうえ、後続のカードＣが有効になった時点でそのカード情報ＣＤをメモリー６１に読み込んでおくことができる。
【０１０６】
（８）カードＣの挿抜を検出した際に複合機１１が動作中であった場合は、カードＣの挿抜の検出に伴う再割当部５５によるプールの再割当処理を一時的に保留する。このため、複合機１１が動作中であるにも関わらず、メモリー６１から動作中の際にモニター２１に表示すべきＵＩ画像データＵＤが消去される不都合を回避できる。
【０１０７】
（９）カードＣの挿抜検出時に動作中であった複合機１１の動作が終了すると、保留を解除してカードの挿抜の検出に伴うプールの再割当てを行うので、動作中の動作が終了して不要になってからその動作のためのＵＩ画像データＵＤをメモリー６１から消去できるうえ、カードＣの挿抜検出に伴うプールの再割当てを、それが実行可能になった段階で速やかに実行できる。
【０１０８】
（１０）格納画像Ｎ枚のカードＣから格納画像Ｍ枚（但し、Ｍ＜Ｎ）のカードＣに挿し替えたときに、毎回異なる画像データを選択しつつ十分な枚数の画像を印刷した後、それまで印刷した画像の順番の逆を辿る順番で画像データを選択しつつ毎回異なる画像データに基づく画像を印刷する。この場合、印刷速度が遅くなるまでに相対的に高速で印刷できる画像の枚数が、格納画像Ｎ枚のカードＣが挿着されているときのＡ枚よりも、Ｎ枚より少ない格納画像Ｍ枚のカードＣが挿着されているときのＢ枚の方が多い（Ａ＜Ｂ）。よって、格納画像枚数のより少ないカードＣに挿し替えた場合、ファイルキャッシュ用プール３２ｅの記憶容量が増えて、ファイルキャッシュ用プール３２ｅに格納できる画像データＩＤの個数を増やすことができる。
【０１０９】
なお、上記実施形態は以下のような形態に変更することもできる。
・実施形態において、容量取得手段は、カウントアップ部５３が計数した格納画像枚数を利用する構成ではなく、例えばカード情報ＣＤのサイズから容量を特定してもよい。また、格納画像数分のカード情報の容量を外部記憶媒体に一情報（容量情報）として格納する構成とし、外部記憶媒体から読み込んだその容量情報に基づき容量を取得する構成でもよい。
【０１１０】
・外部記憶媒体の挿着の検出に伴い外部記憶媒体から読み込むべき画像特定情報は、カード情報ＣＤに限定されない。カード情報ＣＤのうち一部の情報でもよい。例えばファイル情報とパス情報のうち一方だけでもよい。但し、キー部２８（操作手段）の操作で指定された画像に対応する画像データを迅速に読み込むために外部記憶媒体における画像データの格納位置を特定できるパス情報を含むことが好ましい。
【０１１１】
・実施形態において、固定長のプール（格納領域）は複数あってもよい。この場合、複数の固定長のプールはメモリーの先頭側の領域に配置し、カード情報保存用プール３２ｂは固定長のプールに対してメモリー終端側の位置でかつ可変長のプールの中で一番先頭側の位置に配置すればよい。
【０１１２】
・固定長のプール（格納領域）が、メモリーの終端側のエリアに配置される構成でもよい。この場合、画像特定情報保存用の格納領域（一例としてカード情報保存用プール３２ｂ）は、モード変更後の再割当ての際に使用できない領域が発生しないように固定長の格納領域に対して隣接する位置に配置されることが望ましい。さらに画像特定情報保存用の格納領域は、固定長のプールに対し隣接する位置に配置されることに限定されず、可変長のプールである限りにおいて任意の位置に配置してよい。この場合、外部記憶媒体を挿着したままモード変更した場合に、使用できない空きが発生するものの、少なくとも外部記憶媒体の挿着検出時においては、画像特定情報保存用の格納領域が、外部記憶媒体の格納画像数に応じて容量を変化させるように可変長の格納領域として作成されるので、メモリーの領域を有効に活用できる。
【０１１３】
・電子機器は、印刷機能を有するだけの印刷装置（プリンター）でもよい。さらに電子機器は、リアルタイムＯＳのようなガーベージ・コレクションの機能を有しないＯＳで動作する電子機器に広く適用できる。この場合、動作部は、印刷動作部に限定されず、外部記憶媒体から読み込んだ画像データに基づく画像を表示手段に表示させる表示動作部であってもよい。ガーベージ・コレクションの機能を有しないＯＳで動作する電子機器である限りにおいて、プロジェクター、写真表示装置（デジタルフォトフレーム）、携帯電話などの電子機器に適用することもできる。
【０１１４】
・外部記憶媒体は、メモリーカード、ＵＳＢメモリー以外のものでもよく、例えばＩＣカード、ＤＶＤ、ＣＤ−Ｒなどの光ディスクや磁気ディスクでもよい。ディスクの場合、電子機器の本体に組み込まれた読取装置のディスクセット用のトレイが被挿着部に相当する。
【０１１５】
上記実施形態及び変形例から把握される技術的思想を以下に記載する。
（イ）前記動作部に動作を行わせるための画像を指定する操作手段（２８）を更に備え、前記格納手段（５８）は、指定された画像に係る画像データの前記外部記憶媒体における格納位置を所得し、当該外部記憶媒体の前記格納位置から画像データを読み込んで前記メモリーに格納し、前記動作部は前記メモリーに格納された前記画像データに基づいて動作することを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【０１１６】
（ロ）前記容量取得手段は、前記外部記憶媒体にアクセスして格納画像数を計数し、当該計数した格納画像数に基づいて前記容量を取得することを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【０１１７】
（ハ）前記再割当手段は、プログラムを格納するためのプログラム用の格納領域（３２ａ）を含む少なくとも１つの固定長の格納領域（３２ａ）を前記メモリーの先頭側の領域に割り当て、前記画像特定情報の格納領域を可変長とし、前記固定長の格納領域（３２ａ）に対してメモリーの終端側でかつ可変長の他の格納領域（３２ｃ，３２ｄ）よりも先頭側に配置することを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【０１１８】
（ニ）前記メモリーにおいて前記再割当手段が格納領域を割り当てた残りの領域が、前記動作部の動作を行うために用いられた画像データを保存しておくための格納領域（３２ｅ）として使用されることを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【０１１９】
（ホ）前記格納手段（５８）は、前記外部記憶媒体が挿着されているときは、操作手段（２８）の操作により指定された画像のアドレスを前記画像特定情報を参照して得ると共に前記外部記憶媒体における前記アドレスから画像データを読み込んで、前記メモリーにおける前記画像データ保存用の格納領域（３２ｅ）に格納することを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【０１２０】
（ヘ）案内表示手段（２１）と、前記メモリーにおける不連続領域を連続領域に置き直すガーベージ・コレクション機能を有しないオペレーティングシステムと前記動作部の動作を制御する制御プログラムとを含むプログラムと、前記案内表示手段にそのときの動作モードに応じた画面を表示させるために用いられる画面データ（ＵＤ）とを記憶する不揮発性メモリー（３３）とを更に備え、前記再割当手段は、前記プログラムを格納するための固定長のプログラム保存用の格納領域（３２ａ）と、そのときの動作モードに応じた前記画面データを格納するための可変長の画面データ保存用の格納領域（３２ｃ）と、前記外部記憶媒体から読み込むべき前記画像特定情報を格納すべき可変長の画像特定情報保存用の格納領域（３２ｂ）と、前記画像データを前記動作部が動作を行える制御データに変換する過程のデータを一時格納するバッファーとして用いられる可変長の制御データ生成用の格納領域（３２ｄ）と、前記メモリーにおいて前記各格納領域が再割当てされた残りの領域を前記画像データを格納するための画像データ保存用の格納領域（３２ｅ）とを含む複数の格納領域を再割当てすることを特徴とする請求項１乃至７のうちいずれか一項に記載の電子機器。
【符号の説明】
【０１２１】
１１…電子機器としての複合機、１９Ａ，１９Ｂ…被挿着部としてのスロット、２０…被挿着部としてのＵＳＢポート、２１…案内表示手段を構成するモニター、２８…キー部（操作手段）、３０…コンピューターを構成するＣＰＵ、３１…コンピューターを構成するＲＯＭ、３２…コンピューターを構成すると共にメモリーとしてのＲＡＭ、３２ａ…固定長の格納領域としてのプログラム保存用プール、３２ｂ…可変長の格納領域としてのカード情報保存用プール、３２ｃ…可変長の格納領域としてのＵＩ画像保存用プール、３２ｄ…可変長の格納領域としての印刷画像生成用プール、３２ｅ…可変長の格納領域としてのファイルキャッシュ用プール、３３…ＥＥＰＲＯＭ（不揮発性メモリー）、３６…スキャナー機能部、３７…プリンター機能部、３８…メモリーカードＩ／Ｆ部、３９…通信Ｉ／Ｆ部、４０…、４１…コントロール部、４２…カードデバイス部、４３…ユーザーインターフェイス部、５１…有効カード判定部、５２…判断手段としての動作判定部、５３…容量取得手段を構成するカウントアップ部、５４…容量取得手段を構成する演算部、５５…再割当手段としての再割当部、５６…画像データ処理部、５７…検出手段としてのカード挿抜検出部、５８…格納手段を構成するデータ格納処理部、５９…受付処理部、６０…表示制御部、６１…メモリー、６２…カード情報保存用プール、ＭＣ，ＭＣ１…外部記憶媒体及び第１の外部記憶媒体としてのメモリーカード、ＭＣ，ＭＣ２…外部記憶媒体及び第２の外部記憶媒体としてのメモリーカード、ＵＭ…外部記憶媒体としてのＵＳＢメモリー、Ｃ…外部記憶媒体としてのカード、ＰＲ…プログラム、ＣＤ…画像特定情報としてのカード情報、ＵＤ…画面データとしてのＵＩ画像データ、ＰＤ…印刷画像データ（制御データ）、ＩＤ…画像データ。
【図１】
2011081606.tif 000003
【図２】
2011081606.tif 000004
【図３】
2011081606.tif 000005
【図４】
2011081606.tif 000006
【図５】
2011081606.tif 000007
【図６】
2011081606.tif 000008
【図７】
2011081606.tif 000009
【図８】
2011081606.tif 000010