(57)【要約】【課題】複数の実メモリによるファイルメモリを従来よりも簡単に管理する。【解決手段】メインメモリに対応するメイン領域１４と、標準ローカルメモリおよびオプションローカルメモリの両方に共通して対応するローカル領域１５と、からなるファイルメモリ１６を定義し、ファイルメモリ１６の中の使用されていない未使用領域を列に連ねて管理する。第一のデータまたは第二のデータを記憶することができるサイズの領域を、列の先頭から選出し、予約領域として確保する。第一のデータが取得された場合は、メインメモリの中の、予約領域に対応する第一の対応領域、および、標準ローカルメモリの中の、予約領域に対応する第二の対応領域へ第一のデータが書き込む。第二のデータが取得された場合は、第一の対応領域、および、第二のローカルメモリの中の、予約領域に対応する第三の対応領域へ第二のデータを書き込む。【選択図】図６
2016140015.tif 000002
【特許請求の範囲】
【請求項１】
第一のデータ取得手段および当該第一のデータ取得手段によって取得された第一のデータを書き込むことができる第一のローカルメモリを有する第一のデータ取得ユニットならびに第二のデータ取得手段および当該第二のデータ取得手段によって取得された第二のデータを書き込むことができる第二のローカルメモリを有する第二のデータ取得ユニットと接続されて使用され、かつ、前記第一のデータおよび前記第二のデータを書き込むことができるメインメモリを有する画像処理装置であって、
前記メインメモリの一部分に対応するメイン領域と、前記第一のローカルメモリの全部分または一部分および前記第二のローカルメモリの全部分または一部分の両方に共通して対応するローカル領域と、からなるファイルメモリを定義し、当該ファイルメモリの中の使用されていない未使用領域を列に連ねて管理する、ファイルメモリ管理手段と、
前記第一のデータまたは前記第二のデータが取得されるのに際して、当該第一のデータまたは第二のデータを記憶することができるサイズの領域を、前記列の先頭から選出し、予約領域として確保する、予約領域確保手段と、
を有し、
前記第一のデータが取得された場合は、前記メインメモリの中の、前記予約領域に対応する第一の対応領域、および、前記第一のローカルメモリの中の、当該予約領域に対応する第二の対応領域へ、当該第一のデータが書き込まれ、前記第二のデータが取得された場合は、当該第一の対応領域、および、前記第二のローカルメモリの中の、当該予約領域に対応する第三の対応領域へ、当該第二のデータが書き込まれる、
ことを特徴とする画像処理装置。
【請求項２】
前記ファイルメモリ管理手段は、前記予約領域の全部分または一部分が不要になった場合に、当該全部分または一部分を開放して前記列の末尾に連結させる、
請求項１に記載の画像処理装置。
【請求項３】
前記メイン領域は、所定のサイズの第一のセルに分割されており、
前記ローカル領域は、前記所定のサイズの第二のセルに分割されており、
前記予約領域確保手段は、前記予約領域として、前記第一のデータまたは前記第二のデータを記憶することができる個数の前記第一のセルまたは前記第二のセルを確保する、
請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第一のデータは、前記第一のデータ取得手段が用紙の第一の面から画像を読み取ることによって取得された第三のデータを圧縮したものであり、
前記第二のデータは、前記第二のデータ取得手段が前記用紙の第二の面から画像を読み取ることによって取得された第四のデータを圧縮したものであり、
前記予約領域確保手段は、前記第三のデータまたは前記第四のデータを記憶することができるサイズの領域を前記予約領域として確保し、
前記ファイルメモリ管理手段は、前記予約領域の中の、前記第一のデータまたは前記第二のデータが記憶されなかった部分を開放して前記列の末尾に連結させる、
請求項１ないし請求項３のいずれかに記載の画像処理装置。
【請求項５】
前記第二のデータの全部分または一部分が前記第三の対応領域へ書き込まれた場合に、当該第二のデータを補助記憶装置へ待避させる、待避手段、を有する、
請求項１ないし請求項４のいずれかに記載の画像処理装置。
【請求項６】
前記第一のデータが前記第一の対応領域または前記第二の対応領域へ書き込まれ、または、前記第二のデータが前記第一の対応領域または前記第三の対応領域へ書き込まれた後、前記未使用領域が特定のサイズ未満になった場合に、当該第一のデータまたは当該第二のデータを補助記憶装置へ待避させる、待避手段、を有する、
請求項１ないし請求項４のいずれかに記載の画像処理装置。
【請求項７】
前記補助記憶装置から、前記第一のデータまたは前記第二のデータを前記第一の対応領域または前記第二の対応領域へ復帰させる、復帰手段、を有する、
請求項５または請求項６に記載の画像処理装置。
【請求項８】
前記第一のデータまたは前記第二のデータを出力装置へ送出する、送出手段、を有し、
前記ファイルメモリ管理手段は、前記第一のデータまたは前記第二のデータが送出された場合に、当該第一のデータまたは当該第二のデータが記憶されていた部分を前記列の末尾に連結させる、
請求項１ないし請求項６のいずれかに記載の画像処理装置。
【請求項９】
前記第一のデータ取得ユニットは標準品であり、
前記第二のデータ取得ユニットはオプション品である、
請求項１ないし請求項８のいずれかに記載の画像処理装置。
【請求項１０】
第一のデータ取得手段および当該第一のデータ取得手段によって取得された第一のデータを書き込むことができる第一のローカルメモリを有する第一のデータ取得ユニットならびに第二のデータ取得手段および当該第二のデータ取得手段によって取得された第二のデータを書き込むことができる第二のローカルメモリを有する第二のデータ取得ユニットと接続されて使用され、かつ、前記第一のデータおよび前記第二のデータを書き込むことができるメインメモリを有する画像処理装置におけるメモリ使用方法であって、
前記メインメモリの一部分に対応するメイン領域と、前記第一のローカルメモリの全部分または一部分および前記第二のローカルメモリの全部分または一部分の両方に共通して対応するローカル領域と、からなるファイルメモリを定義し、当該ファイルメモリの中の使用されていない未使用領域を列に連ねて管理し、
前記第一のデータまたは前記第二のデータが取得されるのに際して、当該第一のデータまたは第二のデータを記憶することができるサイズの領域を、前記列の先頭から選出して予約領域として確保し、
前記第一のデータが取得された場合は、前記メインメモリの中の、前記予約領域に対応する第一の対応領域、および、前記第一のローカルメモリの中の、当該予約領域に対応する第二の対応領域へ、当該第一のデータを書き込み、前記第二のデータが取得された場合は、当該第一の対応領域、および、前記第二のローカルメモリの中の、当該予約領域に対応する第三の対応領域へ、当該第二のデータを書き込む、
ことを特徴とするメモリ使用方法。
【請求項１１】
第一のデータ取得手段および当該第一のデータ取得手段によって取得された第一のデータを書き込むことができる第一のローカルメモリを有する第一のデータ取得ユニットならびに第二のデータ取得手段および当該第二のデータ取得手段によって取得された第二のデータを書き込むことができる第二のローカルメモリを有する第二のデータ取得ユニットと接続されて使用され、かつ、前記第一のデータおよび前記第二のデータを書き込むことができるメインメモリを有する画像処理装置に用いられるコンピュータプログラムであって、
前記コンピュータに、
前記メインメモリの一部分に対応するメイン領域と、前記第一のローカルメモリの全部分または一部分および前記第二のローカルメモリの全部分または一部分の両方に共通して対応するローカル領域と、からなるファイルメモリを定義し、当該ファイルメモリの中の使用されていない未使用領域を列に連ねて管理する処理を実行させ、
前記第一のデータまたは前記第二のデータが取得されるのに際して、当該第一のデータまたは第二のデータを記憶することができるサイズの領域を、前記列の先頭から選出して予約領域として確保する処理を実行させ、
前記第一のデータが取得された場合は、前記メインメモリの中の、前記予約領域に対応する第一の対応領域、および、前記第一のローカルメモリの中の、当該予約領域に対応する第二の対応領域へ、当該第一のデータを書き込み、前記第二のデータが取得された場合は、当該第一の対応領域、および、前記第二のローカルメモリの中の、当該予約領域に対応する第三の対応領域へ、当該第二のデータを書き込む処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の実メモリによって実現されるファイルメモリの技術に関する。
【背景技術】
【０００２】
図３１は、従来のファイルメモリの管理の例を示す図である。
【０００３】
従来、スキャンユニットは、スキャナおよび圧縮回路などによって構成される。スキャナによって用紙から読み取られた画像の画像データは、圧縮回路によって圧縮される。そして、メモリに記憶（保存）される。メモリには、圧縮された画像データを記憶するための領域として、「ファイルメモリ」または「ファイルメモリエリア」などと呼ばれる領域が設けられる。
【０００４】
ファイルメモリは、複数のセルに分割され、管理される。各セルは、メモリのいずれかの物理アドレスに対応している。つまり、実メモリ（物理メモリ）の所定の領域に対応している。
【０００５】
また、各セルは、すべて、初期において、空いている。空いているセル同士は、一列に連結されている。以下、空いているセルからなる列を「未使用列」と記載する。
【０００６】
画像データを圧縮してファイルメモリに記憶させる際に、その画像データを記憶させるのに必要な個数のセルが未使用列の先頭から順に選出される。ただし、どれくらい圧縮されるのかが分からない。そこで、余裕を持たせるために、圧縮前の画像データを記憶させるのに必要な個数のセルが選出され、確保される。セルが確保されたことによって、未使用列の先頭が変わる。
【０００７】
なお、圧縮前の画像データは、ローデータ（Raw Data）なので、圧縮前の画像データのサイズは、用紙のサイズおよび読取解像度などに基づいて予め知ることができる。
【０００８】
そして、その画像データが圧縮され、確保されたセルに記憶される。確保された一部のセルが使用されないことがある。この場合は、この一部のセルは、開放され、未使用列の末尾のセルに連結される。
【０００９】
また、画像データは、使用されて不要になったら、確保されたセルから削除される。これにより、この確保されたセルは、開放され、未使用列の末尾のセルに連結される。
【００１０】
ファイルメモリは、複数の実メモリによって構成することができる。例えば、複合機において、本体のメインメモリの一部分と標準のスキャンユニットのメモリの全部分または一部分とによってファイルメモリを構成することができる。画像データは、２つのメモリに跨がって記憶されることがある。
【００１１】
複数の実メモリによってファイルメモリを実現するために、図３１に示すテーブルによってファイルメモリが管理される。このテーブルによると、各セルには、１つずつレコードが与えられている。「セル番号」は、そのセルを識別するための番号である。「種類」は、そのセルがメインメモリのものなのかスキャンユニットのメモリのものなのかを示す。「前セル番号」および「後セル番号」は、それぞれ、そのセルの１つ前のセルおよび１つ後ろのセルのセル番号である。ただし、そのセルが未使用列の先頭である場合は前セル番号が「ＦＦＦＦ」であり、未使用の末尾である場合は後セル番号が「ＦＦＦＦ」である。
【００１２】
そのほか、増設されたメモリを使用する方法として、次のような方法が提案されている。１以上のメモリカードに分散記録され得るデジタルＡＶ情報を、所定フォーマット（全てのメモリカードに共通のフォーマット）に従い管理する。メモリカード各々にそのメモリカードを特定する識別情報を記録し、かつメモリカード各々に前記デジタルＡＶ情報のどの部分が何処に配置されているかを示すアロケーション情報（ＦＡＴ）を記録する。この識別情報で識別された１以上のメモリカード各々のアロケーション情報を収集し、収集したアロケーション情報を統合する。この情報の収集と統合を、メモリカードの着脱がある毎に行う（特許文献１）。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−２８２８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ところで、複合機にオプションのスキャンユニットを増設し、標準のスキャンユニットと同時に使用することができる。
【００１５】
図３１に示したテーブルを用いる従来の方法は、簡素であり、処理に時間があまり掛からない。複合機にオプションのスキャンユニットを増設していないときは、ファイルメモリの管理をこの従来の方法で行うことが望ましい。
【００１６】
複合機にオプションのスキャンユニットを増設した場合は、オプションのスキャンユニットのメモリをメインメモリおよび標準のスキャンユニットのメモリとともに用いて、ファイルメモリを構成することができる。
【００１７】
しかし、図３１に示したテーブルを用いる従来の方法によると、オプションのスキャンユニットによって得られた画像データを記憶するために確保されたセルの全部または一部が標準のスキャンユニットのメモリに対応するセルである場合は、画像データを記憶させることができない。
【００１８】
そこで、画像データが得られたスキャンユニットごとにセルの確保の仕方を変えることが考えられる。
【００１９】
しかし、この方法によると、セルの確保および管理が煩雑になってしまい処理に時間が掛かってしまう。
【００２０】
本発明は、このような問題点に鑑み、メインメモリ、標準のスキャンユニットのメモリ、およびオプションのスキャンユニットのメモリによって実現されるファイルメモリを従来よりも簡単に管理することを、目的とする。
【課題を解決するための手段】
【００２１】
本発明の一形態に係る画像処理装置は、第一のデータ取得手段および当該第一のデータ取得手段によって取得された第一のデータを書き込むことができる第一のローカルメモリを有する第一のデータ取得ユニットならびに第二のデータ取得手段および当該第二のデータ取得手段によって取得された第二のデータを書き込むことができる第二のローカルメモリを有する第二のデータ取得ユニットと接続されて使用され、かつ、前記第一のデータおよび前記第二のデータを書き込むことができるメインメモリを有する画像処理装置であって、前記メインメモリの一部分に対応するメイン領域と、前記第一のローカルメモリの全部分または一部分および前記第二のローカルメモリの全部分または一部分の両方に共通して対応するローカル領域と、からなるファイルメモリを定義し、当該ファイルメモリの中の使用されていない未使用領域を列に連ねて管理する、ファイルメモリ管理手段と、前記第一のデータまたは前記第二のデータが取得されるのに際して、当該第一のデータまたは第二のデータを記憶することができるサイズの領域を、前記列の先頭から選出し、予約領域として確保する、予約領域確保手段と、を有し、前記第一のデータが取得された場合は、前記メインメモリの中の、前記予約領域に対応する第一の対応領域、および、前記第一のローカルメモリの中の、当該予約領域に対応する第二の対応領域へ、当該第一のデータが書き込まれ、前記第二のデータが取得された場合は、当該第一の対応領域、および、前記第二のローカルメモリの中の、当該予約領域に対応する第三の対応領域へ、当該第二のデータが書き込まれる。
【００２２】
好ましくは、前記ファイルメモリ管理手段は、前記予約領域の全部分または一部分が不要になった場合に、当該全部分または一部分を開放して前記列の末尾に連結させる。
【００２３】
または、前記メイン領域は、所定のサイズの第一のセルに分割されており、前記ローカル領域は、前記所定のサイズの第二のセルに分割されており、前記予約領域確保手段は、前記予約領域として、前記第一のデータまたは前記第二のデータを記憶することができる個数の前記第一のセルまたは前記第二のセルを確保する。
【００２４】
または、前記第一のデータは、前記第一のデータ取得手段が用紙の第一の面から画像を読み取ることによって取得された第三のデータを圧縮したものであり、前記第二のデータは、前記第二のデータ取得手段が前記用紙の第二の面から画像を読み取ることによって取得された第四のデータを圧縮したものであり、前記予約領域確保手段は、前記第三のデータまたは前記第四のデータを記憶することができるサイズの領域を前記予約領域として確保し、前記ファイルメモリ管理手段は、前記予約領域の中の、前記第一のデータまたは前記第二のデータが記憶されなかった部分を開放して前記列の末尾に連結させる。
【発明の効果】
【００２５】
本発明によると、メインメモリ、標準のスキャンユニットのメモリ、およびオプションのスキャンユニットのメモリによって実現されるファイルメモリを従来よりも簡単に管理することができる。
【図面の簡単な説明】
【００２６】
【図１】複合機の外観の例を示す図である。
【図２】複合機のハードウェア構成の例を示す図である。
【図３】標準読取ユニット、オプション読取ユニット、およびＡＤＦの配置の例を示す図である。
【図４】標準読取ユニット、オプション読取ユニット、およびプリントユニットなどのハードウェアの接続の例を示すブロック図である。
【図５】ファイルメモリ管理プログラムおよびデータ制御プログラムによって実現される機能的構成の例を示す図である。
【図６】ファイルメモリの例を示す図である。
【図７】ローカル領域の構成の例を示す図である。
【図８】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図９】スキャンから圧縮画像データの記憶までの処理およびデータの流れの例を示す図である。
【図１０】ファイルメモリ状況テーブルの例を示す図である。
【図１１】ローカル領域構成テーブルの例を示す図である。
【図１２】圧縮画像データの待避の際のデータの流れの例を示す図である。
【図１３】ファイルメモリ状況テーブルの例を示す図である。
【図１４】ローカル領域構成テーブルの例を示す図である。
【図１５】圧縮画像データの復帰および伸張したデータの送出の際のデータの流れの例を示す図である。
【図１６】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図１７】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図１８】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図１９】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図２０】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図２１】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図２２】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図２３】ファイルメモリ状況テーブルおよびローカル領域構成テーブルの例を示す図である。
【図２４】ファイルメモリ管理プログラムによる全体的な処理の流れの例を説明するフローチャートである。
【図２５】読取処理の流れの例を説明するフローチャートである。
【図２６】メモリ確保処理の流れの例を説明するフローチャートである。
【図２７】印刷処理の流れの例を説明するフローチャートである。
【図２８】送信処理の流れの例を説明するフローチャートである。
【図２９】画像入力処理の流れの例を説明するフローチャートである。
【図３０】画像出力処理の流れの例を説明するフローチャートである。
【図３１】従来のファイルメモリの管理の例を示す図である。
【発明を実施するための形態】
【００２７】
図１は、複合機１の外観の例を示す図である。図２は、複合機１のハードウェア構成の例を示す図である。図３は、標準読取ユニット２、オプション読取ユニット３、およびＡＤＦ４の配置の例を示す図である。
【００２８】
図１に示す複合機１は、コピー（複写）、ＰＣプリント、スキャン、およびファクシミリなどの機能を集約した画像処理装置である。一般に、「ＭＦＰ（Multi Function Peripherals）」または「画像形成装置」と呼ばれることがある。
【００２９】
複合機１は、図２に示すように、ＣＰＵ（Central Processing Unit）１０ａ、メインメモリ１０ｂ、ＲＯＭ（Read Only Memory）１０ｃ、大容量記憶装置１０ｄ、フラッシュメモリ１０ｅ、タッチパネルディスプレイ１０ｆ、操作キーパネル１０ｇ、ＮＩＣ（Network Interface Card）１０ｈ、ファクシミリモデム１０ｉ、外部出力インタフェース１０ｊ、プリントユニット１０ｋ、標準読取ユニット２、オプション読取ユニット３、およびＡＤＦ（Auto Document Feeder）４などによって構成される。
【００３０】
タッチパネルディスプレイ１０ｆは、操作用の画面および処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ１０ｆは、タッチされた位置を示す信号をＣＰＵ１０ａへ送る。
【００３１】
操作キーパネル１０ｇは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
【００３２】
ＮＩＣ１０ｈは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルで他の装置とデータをやり取りする。
【００３３】
ファクシミリモデム１０ｉは、ファクシミリ端末との間でＧ３などのプロトコルでデータをやり取りする。
【００３４】
外部出力インタフェース１０ｊは、デジタルカメラ、可搬型の記録装置、またはタブレットコンピュータなどの外部の装置と接続し、外部の装置とデータをやり取りする。外部出力インタフェース１０ｊとしてＵＳＢ（Universal Serial Bus）またはＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４などの規格の入出力装置が用いられる。
【００３５】
標準読取ユニット２、オプション読取ユニット３、およびＡＤＦ４は、用紙の各面に記されている画像を同時期に読み取って画像データを生成するために用いられる。
【００３６】
ＡＤＦ４は、図３のように、所定の位置にセットされた用紙５を標準読取ユニット２およびオプション読取ユニット３へ搬送する。複数の用紙５がセットされた場合は、１枚ずつ搬送する。
【００３７】
ＡＤＦ４から用紙５が搬送されてくると、標準読取ユニット２は、用紙５の一方の面（以下、「表（おもて）面」と記載する。）の画像を読み取り、オプション読取ユニット３は、他方の面（以下、「裏面」と記載する。）の画像を読み取る。読取の際の処理については、後にさらに詳細に説明する。
【００３８】
なお、標準読取ユニット２は、複合機１に標準に備わっているが、オプション読取ユニット３は増設されたものである。
【００３９】
プリントユニット１０ｋは、標準読取ユニット２またはオプション読取ユニット３によって読み取られた画像を、白紙に印刷（複写）する。そのほか、ＮＩＣ１０ｈ、ファクシミリモデム１０ｉ、または外部出力インタフェース１０ｊを介して他の装置から入力されたデータに基づいて画像を白紙に印刷する。
【００４０】
ＲＯＭ１０ｃ、大容量記憶装置１０ｄ、またはフラッシュメモリ１０ｅには、複合機１の全体を制御するためのオペレーティングシステムおよび上述の各機能を実現するためのプログラムが記憶されている。特に、コピーの際のメモリの管理を行うためのプログラムとして、ファイルメモリ管理プログラム１０Ｐが記憶されている。
【００４１】
そのほか、メインメモリ１０ｂならびに後述する標準ローカルメモリ２０ｃおよびオプションローカルメモリ３０ｃを制御するためのデータ制御プログラム１０Ｑが記憶されている。
【００４２】
これらのプログラムは、必要に応じてメインメモリ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。
【００４３】
大容量記憶装置１０ｄとして、ハードディスクまたはＳＳＤ（Solid State Drive）などが用いられる。
【００４４】
図４は、標準読取ユニット２、オプション読取ユニット３、およびプリントユニット１０ｋなどのハードウェアの接続の例を示すブロック図である。図５は、ファイルメモリ管理プログラム１０Ｐおよびデータ制御プログラム１０Ｑによって実現される機能的構成の例を示す図である。
【００４５】
次に、標準読取ユニット２およびオプション読取ユニット３の構成ならびにメモリの管理などを、参照しながら順次、説明する。
【００４６】
標準読取ユニット２は、図４に示すように、標準スキャナ２０ａ、標準ＡＳＩＣ（Application Specific Integrated Circuit）２０ｂ、および標準ローカルメモリ２０ｃなどによって構成される。
【００４７】
標準スキャナ２０ａは、イメージセンサ、光学系、ＣＰＵ、およびメモリなどを有し、用紙５の表面の画像を読み取ってローデータ（Raw Data）である画像データ６１を生成する。
【００４８】
標準ＡＳＩＣ２０ｂは、画像データ６１を圧縮し、ファイルメモリ１６へ書き込む処理を実行する。以下、圧縮された画像データ６１を「圧縮画像データ６２」と記載する。
【００４９】
オプション読取ユニット３は、オプションスキャナ３０ａ、オプションＡＳＩＣ３０ｂ、およびオプションローカルメモリ３０ｃなどによって構成される。
【００５０】
オプションスキャナ３０ａは、標準スキャナ２０ａと同様に、イメージセンサ、光学系、ＣＰＵ、およびメモリなどを有する。そして、用紙５の裏面の画像を読み取ってローデータである画像データ６６を生成する。
【００５１】
オプションＡＳＩＣ３０ｂは、画像データ６６を圧縮し、ファイルメモリ１６へ書き込む処理を実行する。以下、圧縮された画像データ６６を「圧縮画像データ６７」と記載する。
【００５２】
標準ローカルメモリ２０ｃおよびオプションローカルメモリ３０ｃの使い方は、後に説明する。
【００５３】
ファイルメモリ管理プログラム１０Ｐは、図５に示すファイルメモリ状況テーブル１０１、ローカル領域構成テーブル１０２、記憶可否判別部１０３、領域予約部１０４、ローカルメモリ管理部１０５、スキャン指示部１０６、セル開放反映部１０７、待避指示部１０８、および画像出力指示部１０９などを実現するためのプログラムである。
【００５４】
データ制御プログラム１０Ｑは、データ待避制御部１８１、データ伸張出力部１８２、データ削除制御部１８３、およびデータ復帰制御部１８４などを実現するためのプログラムである。各部の機能については、後に順次、説明する。
【００５５】
〔ファイルメモリ１６の構成〕
図６は、ファイルメモリ１６の例を示す図である。図７は、ローカル領域１５の構成の例を示す図である。図８は、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２の例を示す図である。
【００５６】
ところで、メインメモリ１０ｂの一部の領域が、圧縮画像データ６２および圧縮画像データ６７を記憶するために割り当てられている。以下、この領域を「メイン領域１４」と記載する。
【００５７】
標準ローカルメモリ２０ｃの全部または一部の領域およびオプションローカルメモリ３０ｃの全部または一部の領域も同様に、圧縮画像データ６２または圧縮画像データ６７を記憶するために割り当てられている。以下、前者を「標準ローカル領域１５２」と記載し、後者を「オプションローカル領域１５３」と記載する。標準ローカル領域１５２のサイズおよびオプションローカル領域１５３のサイズは、等しい。
【００５８】
そして、図６に示すように、メイン領域１４およびローカル領域１５によってファイルメモリ１６が構成されている。メイン領域１４は、所定のサイズの複数のセル１４Ｃに分割されている。ローカル領域１５も同様に、所定のサイズのセル１５Ｃに分割されている。
【００５９】
図６の例では、メイン領域１４が１０個のセル１４Ｃに分割されており、１番目のセル１４Ｃから順に１６進数の連続する番号「１」、「２」、…、「９」がセル番号として付されている。また、ローカル領域１５が９個のセル１５Ｃに分割されており、１番目のセル１５Ｃから順に１６進数の連続する番号「Ａ」、「Ｂ」、…、「１２」がセル番号として付されている。以下、図６の例に基づいて説明する。
【００６０】
１０個のセル１４Ｃおよび９個のセル１５Ｃが、初期において、セル番号の順に連なって１つの列をなしている。その後、複数の列に分断したり、複数の列が１つの列に結合したりする。これについては、後述する。
【００６１】
ローカル領域１５は、標準ローカル領域１５２およびオプションローカル領域１５３によって次のように実現される。
【００６２】
ローカル領域１５のサイズは、標準ローカル領域１５２、オプションローカル領域１５３のサイズと同じである。
【００６３】
図７に示すように、標準ローカル領域１５２は、所定のサイズの第一のセル１５２Ｃに分割されている。オプションローカル領域１５３も同様に、所定のサイズの第二のセル１５３Ｃに分割されている。上述の通り、ローカル領域１５のサイズは標準ローカル領域１５２、オプションローカル領域１５３のサイズと同じなので、第一のセル１５２Ｃ、第二のセル１５３Ｃの個数も同じである。つまり、９個である。
【００６４】
さらに、セル１５Ｃと同様のセル番号が付されている。つまり、１番目の第一のセル１５２Ｃから順に１６進数の連続する番号「Ａ」、「Ｂ」、…、「１２」がセル番号として付されており、１番目の第二のセル１５３Ｃから順に１６進数の連続する番号「Ａ」、「Ｂ」、…、「１２」がセル番号として付されている。
【００６５】
そして、各セル番号のセル１５Ｃとして、同じセル番号の第一のセル１５２Ｃおよび第二のセル１５３Ｃのいずれか一方のみが用いられる。他方の第一のセル１５２Ｃまたは第二のセル１５３Ｃは、一方が使用されている間、使用することができない。
【００６６】
ただし、初期においては、セル１５Ｃとして、第一のセル１５２Ｃおよび第二のセル１５３Ｃのいずれが用いられるのかは、未だ決まっていない。スキャンなどの処理の際に決まる。
【００６７】
このように、ローカル領域１５は、標準ローカル領域１５２およびオプションローカル領域１５３によって冗長に構成される。第一のセル１５２Ｃおよび第二のセル１５３Ｃの使い分けは、ファイルメモリ管理プログラム１０Ｐ（図５参照）によって行われる。
【００６８】
ファイルメモリ状況テーブル１０１は、ファイルメモリ１６の状況を示す。具体的には、図８のように、ファイルメモリ１６を構成する１９個のセル（１０個のセル１４Ｃおよび９個のセル１５Ｃ）ごとのレコードがファイルメモリ状況テーブル１０１に格納されている。そして、各レコードには、そのレコードに係るセルのセル番号のほか、次の事項の情報が示される。
【００６９】
「種類」は、そのレコードに係るセルの種類である。セル１４Ｃである場合は種類として「メイン」が示され、セル１５Ｃである場合は「ローカル」が示される。
【００７０】
「前セル番号」は、そのレコードに係るセルの１つ前のセル１４Ｃまたはセル１５Ｃのセル番号である。「後セル番号」は、１つ後ろのセルのセル番号である。
【００７１】
ただし、そのレコードに係るセルが列の先頭である場合は、前セル番号として「ＦＦＦＦ」が示される。また、列の末尾である場合は、後セル番号として「ＦＦＦＦ」が示される。
【００７２】
「使用状況」は、そのレコードに係るセルが現在使用されているか否かである。使用されていれば、そのセルがどのページのために使用されているのかが示される。使用されていなければ「未使用」が示される。
【００７３】
初期においては、上述の通り、セル番号順にセルが一列に連なっている。また、セルが１つも使用されていない。よって、ファイルメモリ状況テーブル１０１の各レコードには、図８の通りの内容が示される。
【００７４】
ローカル領域構成テーブル１０２は、ローカル領域１５の状況を示す。具体的には、図８のように、ローカル領域１５を構成するセル１５Ｃごとのレコードがローカル領域構成テーブル１０２に示されている。そして、各レコードには、そのレコードに係るセル１５Ｃのセル番号のほか、そのセル１５Ｃとして第一のセル１５２Ｃおよび第二のセル１５３Ｃのいずれが使用されているかが示される。第一のセル１５２Ｃが使用されている場合は、「ローカル０」が示される（図２１参照）。一方、第二のセル１５３Ｃが使用されている場合は「ローカル１」が示される（図１７参照）。いずれも使用されていない場合は、「未使用」が示される。
【００７５】
ローカル領域構成テーブル１０２は、後述する各部がセル１５Ｃへアクセスする際に、第一のセル１５２Ｃおよび第二のセル１５３Ｃのどちらにアクセスすべきかを判断するために用いられる。
【００７６】
〔ファイルメモリの管理〕
次に、ファイルメモリの管理および画像データの処理などを説明する。
【００７７】
〔ファイルメモリへの読取画像のデータの記憶〕
図９は、スキャンから圧縮画像データ６２、６７の記憶までの処理およびデータの流れの例を示す図である。図１０は、ファイルメモリ状況テーブル１０１の例を示す図である。図１１は、ローカル領域構成テーブル１０２の例を示す図である。
【００７８】
ＡＤＦ４は、用紙５がセットされて所定の操作（例えば、スタートのボタンの押下）が行われると、用紙５を標準スキャナ２０ａおよびオプションスキャナ３０ａへ搬送する。
【００７９】
すると、図９に示すように、標準読取ユニット２およびオプション読取ユニット３の各部において処理が行われる。
【００８０】
標準スキャナ２０ａは、用紙５の表面の画像を読み取る（図９のＳ１）。これにより、画像データ６１が得られる。
【００８１】
標準ＡＳＩＣ２０ｂは、画像データ６１を圧縮することによって圧縮画像データ６２を生成し（Ｓ２）、圧縮画像データ６２ファイルメモリ１６（図６参照）へ書き込む（Ｓ３）。なお、圧縮画像データ６２の全部分または一部分をローカル領域１５へ書き込む場合は、セル１５Ｃとして第一のセル１５２Ｃ（図７参照）が用いられる。
【００８２】
一方、オプションスキャナ３０ａは、用紙５の裏面の画像を読み取る（Ｓ４）。これにより、画像データ６６が得られる。
【００８３】
オプションＡＳＩＣ３０ｂは、画像データ６６を圧縮することによって圧縮画像データ６７を生成し（Ｓ５），圧縮画像データ６７をファイルメモリ１６へ書き込む（Ｓ６）。なお、圧縮画像データ６７の全部分または一部分をローカル領域１５へ記憶させる場合、セル１５Ｃとして第二のセル１５３Ｃが用いられる。
【００８４】
ところで、圧縮画像データ６２をファイルメモリ１６へ記憶させるには、画像データ６１を記憶するスペース（空き領域）がファイルメモリ１６になければならない。
【００８５】
しかし、画像データ６１を圧縮するのには、多少の時間を要する。しかも、圧縮が終わらなければ、圧縮画像データ６２のサイズが分からない。一方、画像データ６１はローデータなので、画像データ６１のサイズは、用紙５の面のサイズおよび設定された読取解像度などの条件に基づいて予め知ることができる。
【００８６】
そこで、記憶可否判別部１０３（図５参照）は、空き領域があるか否かを次のように判別し、記憶の可否を判別する。
【００８７】
記憶可否判別部１０３は、ファイルメモリ状況テーブル１０１の中の使用状況が「未使用」を示すレコードの個数をカウントし、その個数および１つのセル当たりのサイズに基づいて、ファイルメモリ１６の未使用の領域のサイズ（空き容量）を算出する。そして、空き容量が画像データ６１のサイズ以上であれば、空き領域があると判別する。空き容量が画像データ６１のサイズ未満であれば、空き領域がないと判別する。
【００８８】
圧縮画像データ６７を記憶する空き領域がファイルメモリ１６にあるか否かも、同様の方法によって、つまり、圧縮前のサイズ（画像データ６６のサイズ）に基づいて判別される。
【００８９】
空き領域があると記憶可否判別部１０３によって判別された場合に、圧縮画像データ６２を記憶させるセルが領域予約部１０４およびローカルメモリ管理部１０５によって次のように予約される。
【００９０】
領域予約部１０４は、ファイルメモリ状況テーブル１０１の中から、前セル番号が「ＦＦＦＦ」でありかつ使用状況が「未使用」であるレコードを検索する。このレコードは、空いている（予約されていない）セルからなる列の先頭のセルのレコードである。以下、この列を「未使用列」と記載する。
【００９１】
領域予約部１０４は、次に、画像データ６１を記憶させるのに必要な個数のセルを、未使用列の先頭のセルから順番に選出する。この際に、各レコードの後セル番号が用いられる。
【００９２】
例えば、ファイルメモリ状況テーブル１０１が図１０（Ａ）に示す状態であり、かつ、必要な個数が５個である場合は、領域予約部１０４は、最初に、セル番号が「８」のセルを選出する。このセルの後セル番号は、「９」である。よって、２番目に、セル番号が「９」のセルを選出する。このセルの後セル番号は、「Ａ」である。よって、３番目に、セル番号が「Ａ」のセルを選出する。以下、同様に後セル番号を辿ることによって、セル番号がそれぞれ「Ｅ」および「Ｆ」のセルを選出する。
【００９３】
そして、領域予約部１０４は、ファイルメモリ状況テーブル１０１を次のように更新する。
【００９４】
（Ａ１）  選出したセルの使用状況を、画像データ６１に係るページを示す情報（例えば、ページ番号）に更新する。図１０（Ａ）の例の場合において、画像データ６１に係るページが５ページ目であれば、図１０（Ｂ）のように、セル番号が「８」および「９」の２つのセル１４Ｃの使用状況ならびにセル番号が「Ａ」、「Ｅ」、および「Ｆ」の３つのセル１５Ｃの使用状況を「５ページ目」に更新する。
【００９５】
（Ａ２）  最後に選出したセルの後セル番号を「ＦＦＦＦ」に更新する。図１０（Ａ）の例の場合は、図１０（Ｂ）のように、セル番号が「Ｆ」のセル１５Ｃの後セル番号を「ＦＦＦＦ」に更新する。
【００９６】
（Ａ３）  最後に選出したセルの後セル番号が指すセルの前セル番号を「ＦＦＦＦ」に更新する。ただし、この後セル番号は、Ａ２を行う前のものである。図１０（Ａ）の例の場合は、図１０（Ｂ）のように、セル番号が「１０」のセル１５Ｃの前セル番号を「ＦＦＦＦ」に更新する。
【００９７】
Ａ１およびＡ２によって、圧縮画像データ６２を記憶するためのセルが確保される。また、Ａ３によって、未使用列の新たな先頭がファイルメモリ状況テーブル１０１に反映される。
【００９８】
このようにして、領域予約部１０４によってセルが予約される。以下、領域予約部１０４によって予約されたセル（セル１４Ｃまたはセル１５Ｃ）を「予約セル」と記載することがある。
【００９９】
ローカルメモリ管理部１０５は、Ａ１の処理に応じて、ローカル領域構成テーブル１０２を次のように更新する。
【０１００】
ローカルメモリ管理部１０５は、予約セルのうちのセル１５Ｃのレコードを検索する。そして、そのレコードの使用セルを、そのセル１５Ｃとして第一のセル１５２Ｃが使用される場合は「ローカル０」に更新し、第二のセル１５３Ｃが使用される場合は「ローカル１」に更新する。
【０１０１】
上述の通り、圧縮画像データ６２の全部分または一部分をセル１５Ｃに記憶させる場合は、セル１５Ｃとして第一のセル１５２Ｃが用いられる。よって、そのレコードの使用セルは「ローカル０」に更新される。複数のレコードが検索された場合は、各レコードの使用セルを同様に更新する。予約セルがセル１４Ｃのみの場合は、いずれのレコードも更新しない。
【０１０２】
図１０の例の場合は、ローカル領域構成テーブル１０２は、図１１（Ａ）に示す状態から図１１（Ｂ）に示す状態に更新される。
【０１０３】
圧縮画像データ６７を記憶させるためのセルも、同様の方法によって予約される。つまり、画像データ６６を記憶させるのに必要な個数のセルが、圧縮画像データ６７を記憶させるためのセルとして予約される。そして、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２が更新される。
【０１０４】
スキャン指示部１０６は、圧縮画像データ６２（表面の圧縮データ）の予約セルが得られたら、用紙５の表面のスキャンを開始するように標準スキャナ２０ａへ指示する。この際に、予約セルのセル番号を標準ＡＳＩＣ２０ｂへ通知する。
【０１０５】
すると、標準スキャナ２０ａは、用紙５の表面の画像を読み取り、画像データ６１を生成する。
【０１０６】
標準ＡＳＩＣ２０ｂは、画像データ６１を圧縮して圧縮画像データ６７を生成する。そして、ファイルメモリ１６の中の、通知されたセル番号のセル（予約セル）へ、圧縮画像データ６７を次のように記憶させる。
【０１０７】
通知されたセル番号がすべてセル１５Ｃのものである場合は、標準ＡＳＩＣ２０ｂは、通知された各セル番号の第一のセル１５２Ｃへ圧縮画像データ６７を記憶させる。これにより、圧縮画像データ６７の全部分が標準ローカルメモリ２０ｃに記憶される。
【０１０８】
または、通知されたセル番号の一部がセル１５Ｃのものであり残りがセル１４Ｃのものである場合は、標準ＡＳＩＣ２０ｂは、当該一部のセル番号の個数および当該残りのセル番号の個数の比率に応じて２つの分割データに圧縮画像データ６７を分割する。そして、当該一部の各セル番号の第一のセル１５２Ｃへ一方の分割データを記憶させる。さらに、当該残りの各セル番号のセル１４Ｃへ他方の分割データを記憶させる。これにより、圧縮画像データ６７が標準ローカルメモリ２０ｃおよびメインメモリ１０ｂに跨がって記憶される。
【０１０９】
または、通知されたセル番号がすべてセル１４Ｃのものである場合は、標準ＡＳＩＣ２０ｂは、通知された各セル番号のセル１４Ｃへ圧縮画像データ６７を記憶させる。これにより、圧縮画像データ６７の全部分がメインメモリ１０ｂに記憶される。
【０１１０】
一方、圧縮画像データ６７（裏面の圧縮データ）の予約セルが得られたら、スキャン指示部１０６は、用紙５の裏面のスキャンを開始するようにオプションスキャナ３０ａへ指示するとともに、予約セルのセル番号をオプションＡＳＩＣ３０ｂへ通知する。
【０１１１】
すると、オプションスキャナ３０ａは、用紙５の裏面の画像を読み取り、画像データ６６を生成する。
【０１１２】
オプションＡＳＩＣ３０ｂは、画像データ６６を圧縮して圧縮画像データ６７を生成する。そして、ファイルメモリ１６の中の、通知されたセル番号の予約セルへ圧縮画像データ６７を次のように記憶させる。
【０１１３】
通知されたセル番号がすべて、セル１５Ｃのものである場合は、オプションＡＳＩＣ３０ｂは、通知された各セル番号の第二のセル１５３Ｃへ圧縮画像データ６７を記憶させる。これにより、圧縮画像データ６７の全部分がオプションローカルメモリ３０ｃに記憶される。
【０１１４】
または、通知されたセル番号の一部がセル１５Ｃのものであり残りがセル１４Ｃのものである場合は、オプションＡＳＩＣ３０ｂは、当該一部のセル番号の個数および当該残りのセル番号の個数の比率に応じて２つの分割データに圧縮画像データ６７を分割する。そして、当該一部の各セル番号の第二のセル１５３Ｃへ一方の分割データを記憶させる。さらに、当該残りの各セル番号のセル１４Ｃへ他方の分割データを記憶させる。これにより、圧縮画像データ６７がオプションローカルメモリ３０ｃおよびメインメモリ１０ｂに跨がって記憶される。
【０１１５】
または、通知されたセル番号がすべて、セル１４Ｃのものである場合は、通知された各セル番号のセル１４Ｃへ圧縮画像データ６７を記憶させる。これにより、圧縮画像データ６７の全部分がメインメモリ１０ｂに記憶される。
【０１１６】
なお、用紙５の両面を読み取る場合は、圧縮画像データ６２および圧縮画像データ６７の両方の予約セルが得られた場合に、用紙５が搬送されるようにＡＤＦ４を制御してもよい。
【０１１７】
〔余剰の予約セルの返却および圧縮画像データの待避〕
図１２は、圧縮画像データ６２、６７の待避の際のデータの流れの例を示す図である。図１３は、ファイルメモリ状況テーブル１０１の例を示す図である。図１４は、ローカル領域構成テーブル１０２の例を示す図である。
【０１１８】
予約セルは、画像データ６１または画像データ６６に必要な個数だけ、確保されている。よって、予約セルの一部に圧縮画像データ６２または圧縮画像データ６７が記憶されず、余ることがある。
【０１１９】
そこで、セル開放反映部１０７は、空いた予約セルをファイルメモリ状況テーブル１０１に反映させる。ここで、反映の処理を、ファイルメモリ状況テーブル１０１が図１０（Ｂ）の状態である際に、セル番号が「Ｅ」および「Ｆ」の２つの予約セルが空いた場合を例に説明する。
【０１２０】
（Ｂ１）  空いた予約セルのレコードの使用状況を「未使用」に更新する。これにより、図１３（Ａ）のように、セル番号が「Ｅ」および「Ｆ」の２つのレコードの使用状況が「未使用」に更新される。
【０１２１】
（Ｂ２）  未使用列の末尾のセルを検索する。この末尾のセルは、ファイルメモリ状況テーブル１０１の中から使用状況が「未使用」でありかつ後セル番号が「ＦＦＦＦ」であるレコードを検索することによって得られる。そして、空いた予約セルのレコードのうちの先頭のレコードの予約セルの前セル番号を、この末尾のセルのセル番号に更新する。さらに、この末尾のセルの後セル番号を、この予約セルのセル番号に更新する。これにより、図１３（Ａ）のように、セル番号が「１２」のレコードの後セル番号が「Ｅ」に更新され、セル番号が「Ｅ」のレコードの前セル番号が「１２」に更新される。
【０１２２】
（Ｂ３）  空いた予約セルのレコードのうちの末尾のレコードの後セル番号を「ＦＦＦＦ」に更新する。これにより、図１３（Ａ）のように、セル番号が「Ｆ」のレコードの後セル番号が「ＦＦＦＦ」に更新される。
【０１２３】
（Ｂ４）  予約セルのうちの空かない（つまり、圧縮画像データ６２が記憶される）予約セルの末尾のレコードの後セル番号を「ＦＦＦＦ」に更新する。これにより、図１３（Ａ）のように、セル番号が「Ａ」のレコードの後セル番号が「ＦＦＦＦ」に更新される。
【０１２４】
Ｂ１〜Ｂ３の処理によって、未使用列の末尾に、空いた（開放された）セルが連結される。また、Ｂ４の処理によって、圧縮画像データ６２が記憶される予約セルの状態が反映される。
【０１２５】
ローカルメモリ管理部１０５は、空いた予約セルとしてセル１５Ｃが用いられていた場合（つまり、空いた予約セルのセル番号が「Ａ」〜「１２」のいずれかである場合）は、ローカル領域構成テーブル１０２の中のその予約セルのレコードの使用セルを「未使用」に更新する。上述の例においては、図１４（Ａ）のように、セル番号が「Ｅ」および「Ｆ」の２つのレコードの使用セルを「未使用」に更新する。
【０１２６】
圧縮画像データ６２は、適宜、大容量記憶装置１０ｄへ待避（スワップ）される（Ｓ１１）。特に、新たな圧縮画像データ６２または圧縮画像データ６７を記憶する空き領域がファイルメモリ１６にないと記憶可否判別部１０３によって判別された場合に、図１２に示すように、大容量記憶装置１０ｄへ待避される。
【０１２７】
また、圧縮画像データ６７は、少なくとも一部分がオプションローカルメモリ３０ｃ（ファイルメモリ１６のローカル領域１５）に記憶された場合に、必ず大容量記憶装置１０ｄへ待避される（Ｓ１２）。オプションローカルメモリ３０ｃに記憶されているデータをプリントユニット１０ｋなどへ直接送ることができないからである。
【０１２８】
待避指示部１０８は、ファイルメモリ１６に記憶されている圧縮画像データ６２または圧縮画像データ６７を待避するようにデータ待避制御部１８１に対して指示する。
【０１２９】
すると、データ待避制御部１８１は、圧縮画像データ６２または圧縮画像データ６７を大容量記憶装置１０ｄへ待避させる。これにより、圧縮画像データ６２または圧縮画像データ６７が記憶されていたセル（予約セル）が空いて、ファイルメモリ１６の空き容量が増加する。
【０１３０】
すると、セル開放反映部１０７は、空いたすべてのセルをファイルメモリ状況テーブル１０１に反映させる。ここで、反映の処理を、ファイルメモリ状況テーブル１０１が図１３（Ａ）の状態である際に、セル番号が「９」のセル１４Ｃおよびセル番号が「Ａ」のセル１５Ｃが空いた場合を例に説明する。
【０１３１】
（Ｃ１）  空いたセルのレコードの使用状況を「未使用」に更新する。これにより、図１３（Ｂ）のように、セル番号が「８」、「９」、および「Ａ」の３つのレコードの使用状況が「未使用」に更新される。
【０１３２】
（Ｃ２）  未使用列の末尾のセルを検索する。そして、空いたセルのレコードのうちの先頭のセルの前セル番号を、検索した末尾のセルのセル番号に更新する。さらに、検索した末尾のセルの後セル番号を、この先頭のセルのセル番号に更新する。これにより、図１３（Ｂ）のように、セル番号が「Ｆ」のレコードの後セル番号が「８」に更新され、セル番号が「８」のレコードの前セル番号が「Ｆ」に更新される。
【０１３３】
Ｃ１およびＣ２の処理によって、未使用列の後ろに、空いたセル（本例では、３つのセル）が連結される。
【０１３４】
ローカルメモリ管理部１０５は、空いたセルとしてセル１５Ｃが用いられていた場合は、ローカル領域構成テーブル１０２の中のそのセル１５Ｃのレコードの使用セルを「未使用」に更新する。上述の例においては、図１４（Ｂ）のように、セル番号が「Ａ」レコードの使用セルを「未使用」に更新する。
【０１３５】
〔画像の出力によるセルの開放および待避したデータの復帰〕
図１５は、圧縮画像データ６２、６７の復帰および伸張したデータの送出の際のデータの流れの例を示す図である。
【０１３６】
圧縮画像データ６２または圧縮画像データ６７は、画像の出力のタイミングに応じて伸張される。これにより、画像データ６１または圧縮画像データ６２に戻る。そして、図１５に示すように、画像データ６１または圧縮画像データ６２が、出力の方法に応じたモジュールへ送られる（Ｓ２２）。例えば、コピーの場合は、プリントユニット１０ｋへ送られる。
【０１３７】
ただし、圧縮画像データ６２または圧縮画像データ６７は、大容量記憶装置１０ｄに待避している場合は、ファイルメモリ１６（図６参照）へ戻されてから（Ｓ２１）、伸張され、モジュールへ送られる（Ｓ２２）。また、この際に、ローカル領域１５が予約セルとして割り当てられた場合は、セル１５Ｃとして第一のセル１５２Ｃが用いられる。第二のセル１５３Ｃは用いられない。以下、図１５に示した処理の内容を詳細に説明する。
【０１３８】
データ伸張出力部１８２は、出力の対象の画像の圧縮画像データ６２または圧縮画像データ６７を伸張する。これにより、画像データ６１または画像データ６６が得られる。
【０１３９】
画像出力指示部１０９は、その画像を出力するように、その画像の出力の方法に応じたモジュールへ指示する。この際に、その画像の画像データ６１または画像データ６６をそのモジュールへ送る。コピー（複写）の場合は、プリントユニット１０ｋへ指示する。以下、コピーの場合を例に説明する。
【０１４０】
すると、プリントユニット１０ｋは、画像データ６１または画像データ６６に基づいて画像を用紙に印刷する。
【０１４１】
画像データ６１または画像データ６６がプリントユニット１０ｋなどのモジュールへ送られた後、データ削除制御部１８３は、その元の圧縮画像データ６２または圧縮画像データ６７がローカル領域１５から削除されるようにメインメモリ１０ｂ、標準ローカルメモリ２０ｃ、またはオプションローカルメモリ３０ｃを制御する。
【０１４２】
さらに、セル開放反映部１０７は、上述のＣ１およびＣ２の処理を行うことによって、削除に伴って空いたセルをファイルメモリ状況テーブル１０１に反映させる。また、ローカルメモリ管理部１０５は、空いたセルとしてセル１５Ｃが用いられていた場合は、ローカル領域構成テーブル１０２の中のそのセル１５Ｃのレコードの使用セルを「未使用」に更新する。
【０１４３】
圧縮画像データ６２または圧縮画像データ６７が大容量記憶装置１０ｄへ待避されている場合がある。この場合は、データ伸張出力部１８２は、その圧縮画像データ６２または圧縮画像データ６７をファイルメモリ１６へ復帰させるようにデータ復帰制御部１８４に指示する。
【０１４４】
すると、データ復帰制御部１８４は、その圧縮画像データ６２または圧縮画像データ６７を大容量記憶装置１０ｄからファイルメモリ１６へ次のように移動させる。
【０１４５】
データ復帰制御部１８４は、その圧縮画像データ６２または圧縮画像データ６７を記憶するためのセルを予約するように領域予約部１０４に対して要求する。
【０１４６】
すると、領域予約部１０４は、上述の、画像データ６１または画像データ６６を記憶するためのセルを予約する方法と同様の方法で、空いているセルを必要な個数だけ選出する。ファイルメモリ状況テーブル１０１を、上述のＡ１〜Ａ３の通り更新する。これにより、選出したセルが予約される。
【０１４７】
また、ローカルメモリ管理部１０５は、予約セルがセル１５Ｃである場合は、そのセル１５Ｃに対応するレコードの使用セルを「ローカル０」に更新する。
【０１４８】
そして、領域予約部１０４は、選出したセル（予約セル）をデータ復帰制御部１８４へ通知する。
【０１４９】
データ復帰制御部１８４は、その圧縮画像データ６２または圧縮画像データ６７を大容量記憶装置１０ｄから、ファイルメモリ１６の中の通知されたセル番号の予約セルへ移動させる。ただし、予約セルがセル１５Ｃである場合は、そのセル１５Ｃとして第一のセル１５２Ｃが用いられる。第二のセル１５３Ｃを用いると、プリントユニット１０ｋなどへ圧縮画像データ６２または圧縮画像データ６７を送ることができないからである。
【０１５０】
その後、上述の通り、その圧縮画像データ６２または圧縮画像データ６７は伸張されてプリントユニット１０ｋなどのモジュールへ出力され、ローカル領域１５から削除される。そして、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２が更新される。
【０１５１】
図１６〜図２３は、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２の例を示す図である。
【０１５２】
次に、用紙５を両面コピーする際の処理に伴うファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２の遷移を、図８、図１６〜図２３を参照しながら説明する。
【０１５３】
ファイルメモリ１６は初期化されており、未だデータが記憶されていない。よって、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２は、図８に示す通りの状態である。
【０１５４】
用紙５の表面の画像データ（画像データ６１）を記憶させるのに必要な個数のセルが、未使用列の先頭のセルから順に選出され、予約される。そして、図１６に示すようにファイルメモリ状況テーブル１０１が更新される。
【０１５５】
今回は、セル１４Ｃは選出されるが、セル１５Ｃは選出されない。よって、ローカル領域構成テーブル１０２は、図１６の通り、変化しない。
【０１５６】
表面の場合と同様に、裏面の画像データ（画像データ６６）を記憶させるのに必要な個数のセルが、未使用列の先頭のセルから順に選出され、予約される。そして、図１７に示すようにファイルメモリ状況テーブル１０１が更新される。
【０１５７】
今回は、セル１５Ｃが選出される。そこで、図１７に示すようにローカル領域構成テーブル１０２が更新される。
【０１５８】
そして、標準スキャナ２０ａによって、用紙５の表面の画像が読み取られ、画像データ６１が生成される。標準ＡＳＩＣ２０ｂによって、画像データ６１が圧縮されて圧縮画像データ６２が生成され、予約セル（本例では、セル番号が「０」〜「７」の各セル１４Ｃ）へ圧縮画像データ６２が記憶される。
【０１５９】
同様に、オプションスキャナ３０ａによって、用紙５の裏面の画像が読み取られ、画像データ６６が生成される。オプションＡＳＩＣ３０ｂによって、画像データ６６が圧縮されて圧縮画像データ６７が生成され、予約セル（本例では、セル番号が「８」〜「９」の各セル１４Ｃおよび「Ａ」〜「Ｆ」の各セル１５Ｃ）へ圧縮画像データ６７が記憶される。なお、これらのセル１５Ｃとして、同じセル番号の第二のセル１５３Ｃが用いられる。
【０１６０】
しかし、圧縮画像データ６２の予約セルの一部が、使用されない。そこで、使用されない予約セルが開放され、図１８に示すようにファイルメモリ状況テーブル１０１に反映される。
【０１６１】
今回は、セル１４Ｃは開放されるが、セル１５Ｃが１つも開放されない。よって、ローカル領域構成テーブル１０２は、図１８の通り、変化しない。
【０１６２】
同様に、圧縮画像データ６７の予約セルの一部が、使用されない。そこで、使用されない予約セルが開放され、図１９に示すようにファイルメモリ状況テーブル１０１に反映される。
【０１６３】
今回は、セル１５Ｃが空く。そこで、ローカル領域構成テーブル１０２が図１９のように更新される。
【０１６４】
圧縮画像データ６７の予約セルの少なくとも一部として、第二のセル１５３Ｃが用いられている。そこで、圧縮画像データ６７が大容量記憶装置１０ｄへ待避（スワップ）される。これにより、セル番号が「８」〜「Ｃ」のセルが空く。
【０１６５】
これらのセルが空いたのに伴い、ファイルメモリ状況テーブル１０１が、図２０に示すように更新される。また、ローカル領域構成テーブル１０２が、図２０に示すように更新される。
【０１６６】
圧縮画像データ６７を、プリントユニット１０ｋへの出力のために、再びファイルメモリ１６へ記憶させる必要がある。そこで、圧縮画像データ６７を記憶させるためのセルが予約される。予約に応じてファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２が、図２１に示すように更新される。
【０１６７】
そして、大容量記憶装置１０ｄから予約セルへ圧縮画像データ６７が移動する。本例では、予約セルにセル１５Ｃが含まれているが、セル１５Ｃとして第二のセル１５３Ｃではなく第一のセル１５２Ｃが用いられる。
【０１６８】
圧縮画像データ６２が伸張されてプリントユニット１０ｋへ送られ、ファイルメモリ１６から削除される。これに伴い、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２が、図２２に示すように更新される。
【０１６９】
同様に、圧縮画像データ６７が伸張されてプリントユニット１０ｋへ送られ、ファイルメモリ１６から削除される。これに伴い、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２が、図２３に示すように更新される。
【０１７０】
図２４は、ファイルメモリ管理プログラム１０Ｐによる全体的な処理の流れの例を説明するフローチャートである。図２５は、読取処理の流れの例を説明するフローチャートである。図２６は、メモリ確保処理の流れの例を説明するフローチャートである。図２７は、印刷処理の流れの例を説明するフローチャートである。図２８は、送信処理の流れの例を説明するフローチャートである。図２９は、画像入力処理の流れの例を説明するフローチャートである。図３０は、画像出力処理の流れの例を説明するフローチャートである。
【０１７１】
次に、ファイルメモリ管理プログラム１０Ｐによる全体的な処理の流れを、図２４〜図３０を参照しながら説明する。
【０１７２】
ＣＰＵ１０ａは、ファイルメモリ管理プログラム１０Ｐに基づいて図２４に示す手順で処理を実行する。
【０１７３】
ＣＰＵ１０ａは、初期化処理を実行すると（図２４の＃７０１）、タイマをスタートさせ（＃７０２）、一定の時間ごとにステップ＃７０３〜７０９の処理を繰り返す。
【０１７４】
ＣＰＵ１０ａは、全体制御処理を実行し（＃７０３）、入力処理を実行する（＃７０４）。全体制御処理は、複合機１の全体的な制御の処理である。入力処理は、タッチパネルディスプレイ１０ｆまたは操作キーパネル１０ｇなどからの入力に応じた処理である。
【０１７５】
ＣＰＵ１０ａは、読取処理を実行する（＃７０５）。読取処理の手順は、図２５に示す通りである。
【０１７６】
スタートの要求があった場合は（図２５の＃７２１でＹｅｓ）、ＣＰＵ１０ａは、ＡＤＦ４へ用紙５の搬送を開始するように指示する（＃７２２）。
【０１７７】
次に用紙５から読み取るべき画像（原稿）がある場合は（＃７２３でＹｅｓ）、この画像の画像データ（画像データ６１または画像データ６６）を記憶するのに必要な個数のセルを予約する処理を、図２６に示す手順で行う（＃７２５）。
【０１７８】
ＣＰＵ１０ａは、空き領域がファイルメモリ１６にある場合は（図２６の＃７３１でＹｅｓ）、画像データを記憶するのに必要な個数だけセル（セル１４Ｃまたはセル１５Ｃ）を予約する（＃７３２）。この際に、予約をファイルメモリ状況テーブル１０１（図８など参照）に反映させる。
【０１７９】
予約したセル（予約セル）にセル１５Ｃが含まれている場合は（＃７３３でＹｅｓ）、ＣＰＵ１０ａは、セル１５Ｃとして第一のセル１５２Ｃおよび第二のセル１５３Ｃのいずれが用いられるかに応じてローカル領域構成テーブル１０２を更新する（＃７３４）。そして、セルを予約できた旨およびこれらのセルのセル番号を回答する（＃７３５）。回答先は、標準スキャナ２０ａがスキャンを実行する場合は、標準スキャナ２０ａおよび標準ＡＳＩＣ２０ｂである。オプションスキャナ３０ａがスキャンを実行する場合は、オプションスキャナ３０ａおよびオプションＡＳＩＣ３０ｂである。待避した圧縮画像データ６２または圧縮画像データ６７を復帰させる場合は、データ復帰制御部１８４である。
【０１８０】
一方、画像データを記憶するための空き領域がファイルメモリ１６にない場合は（＃７３１でＮｏ）、圧縮画像データ６２または圧縮画像データ６７がファイルメモリ１６に記憶されていれば（＃７３６でＹｅｓ）、ＣＰＵ１０ａは、これを大容量記憶装置１０ｄへ待避するようにデータ待避制御部１８１へ指令する（＃７３７）。そして、予約に失敗した旨を回答する（＃７３８）。回答先は、上述の通りである。圧縮画像データ６２および圧縮画像データ６７のいずれもファイルメモリ１６に記憶されていない場合も（＃７３６でＹｅｓ）、予約に失敗した旨を回答する（＃７３８）。
【０１８１】
図２５に戻って、セルの予約に成功した場合は（＃７２６でＹｅｓ）、ＣＰＵ１０ａは、スキャンを実行するように標準スキャナ２０ａまたはオプションスキャナ３０ａへ指示する（＃７２７）。標準スキャナ２０ａおよびオプションスキャナ３０ａのどちらに指示するのかは、予め決められたタイミングによる。例えば、用紙５の両面を読み取る場合は、奇数回目は標準スキャナ２０ａへ指示し、偶数回目はオプションスキャナ３０ａへ指示する。上に説明したステップ＃７２５の処理も同様に、行われる。
【０１８２】
セルの予約に失敗した場合は（＃７２６でＮｏ）、ＣＰＵ１０ａは、セルの予約をリトライするように自らに対して要求する（＃７２８）。そして、図２５のルーチンを一旦、終了する。その後、再度、図２５のルーチンを実行する際に、リトライが行われる。
【０１８３】
次に用紙５から読み取るべき画像（原稿）がない場合であっても（＃７２３でＮｏ）、セルの要求のリトライの要求があれば（＃７２４でＹｅｓ）、ＣＰＵ１０ａは、セルを予約する処理を行う（＃７２５）。
【０１８４】
次に用紙５から読み取るべき画像がなく（＃７２３でＮｏ）、セルの要求のリトライの要求もない場合は（＃７２４でＮｏ）、ＣＰＵ１０ａは、必要に応じてその他の処理を実行する（＃７２９）。
【０１８５】
図２４に戻って、ＣＰＵ１０ａは、印刷処理を実行する（＃７０６）。印刷処理の手順は、図２７に示す通りである。
【０１８６】
プリントユニット１０ｋからスタートの要求があった場合は（図２７の＃７４１でＹｅｓ）、ＣＰＵ１０ａは、次に印刷すべきページ（面）の画像の圧縮画像データ６２または圧縮画像データ６７がファイルメモリ１６に記憶されていれば（＃７４２でＹｅｓ）、これを伸張して出力するように自らに対して指令する（＃７４３）。これにより、後に、図３０のルーチンにおいて伸張などの処理が行われる。
【０１８７】
画像の印刷が終了した場合は（＃７４４でＹｅｓ）、ＣＰＵ１０ａは、その画像の圧縮画像データ６２または圧縮画像データ６７をファイルメモリ１６から削除する（＃７４５）。削除に合わせて、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２を更新する。これにより、予約セルが返却される。なお、プリントユニット１０ｋへ、伸張された画像データ６１または画像データ６６が送られた時点で、圧縮画像データ６２または圧縮画像データ６７を削除してもよい。
【０１８８】
画像の印刷が終了していない場合は（＃７４４でＮｏ）、ＣＰＵ１０ａは、必要に応じてその他の処理を実行する（＃７４６）。
【０１８９】
図２４に戻って、ＣＰＵ１０ａは、送信処理を実行する（＃７０７）。印刷処理の手順は、図２８に示す通りである。
【０１９０】
送信用のモジュール（例えば、ファクシミリモデム１０ｉ）からスタートの要求があった場合は（図２８の＃７５１でＹｅｓ）、ＣＰＵ１０ａは、次に送信すべきページ（面）の画像の圧縮画像データ６２または圧縮画像データ６７がファイルメモリ１６に記憶されていれば（＃７５２でＹｅｓ）、これを伸張して出力するように自らに対して指令する（＃７５３）。これにより、後に、図３０のルーチンにおいて伸張などの処理が行われる。
【０１９１】
画像の送信が終了した場合は（＃７５４でＹｅｓ）、ＣＰＵ１０ａは、その画像の圧縮画像データ６２または圧縮画像データ６７をファイルメモリ１６から削除する（＃７５５）。削除に合わせて、ファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２を更新する。これにより、予約セルが返却される。なお、送信用のモジュールへ、伸張された画像データ６１または画像データ６６が送られた時点で、圧縮画像データ６２または圧縮画像データ６７を削除してもよい。
【０１９２】
画像の送信が終了していない場合は（＃７５４でＮｏ）、ＣＰＵ１０ａは、必要に応じてその他の処理を実行する（＃７５６）。
【０１９３】
図２４に戻って、ＣＰＵ１０ａは、画像入力処理を実行する（＃７０８）。画像入力処理の手順は、図２９に示す通りである。
【０１９４】
画像データ６１または画像データ６６が標準読取ユニット２またはオプション読取ユニット３によって生成されると（図２９の＃７６１でＹｅｓ）、ＣＰＵ１０ａは、画像データ６１または画像データ６６の圧縮を標準読取ユニット２またはオプション読取ユニット３に開始させる（＃７６２）。
【０１９５】
圧縮画像データ６７の全部分または一部分がオプションローカル領域１５３に記憶され（＃７６３でＹｅｓ）、かつ、読み取られた画像を印刷する場合は（＃７６４でＹｅｓ）、ＣＰＵ１０ａは、大容量記憶装置１０ｄへの圧縮画像データ６７の待避を開始させる（＃７６５）。
【０１９６】
または、待避の指示があった場合は（＃７６６でＹｅｓ）、ＣＰＵ１０ａは、大容量記憶装置１０ｄへの圧縮画像データ６２または圧縮画像データ６７の待避を開始させる（＃７６７）。
【０１９７】
または、圧縮画像データ６２または圧縮画像データ６７が標準読取ユニット２またはオプション読取ユニット３によってファイルメモリ１６へ記憶させられた場合は（＃７６８でＹｅｓ）、ＣＰＵ１０ａは、予約セルのうちの空いているセル（使用されなかったセル）が反映されるようにファイルメモリ状況テーブル１０１およびローカル領域構成テーブル１０２を更新する（＃７６９）。これにより、空いているセルが返却される。
【０１９８】
上記のいずれでもない場合は（＃７６１でＮｏ、＃７６６でＮｏ、＃７６８でＮｏ）、ＣＰＵ１０ａは、必要に応じてその他の処理を実行する（＃７７０）。
【０１９９】
図２４に戻って、ＣＰＵ１０ａは、画像出力処理を実行する（＃７０９）。画像出力処理の手順は、図３０に示す通りである。
【０２００】
伸張および出力の指示がある場合に（図３０の＃７８１でＹｅｓ）、ＣＰＵ１０ａは、
対象の圧縮画像データ６２または圧縮画像データ６７がファイルメモリ１６に記憶されていれば（＃７８２でＹｅｓ）、その圧縮画像データ６２または圧縮画像データ６７を伸張して出力用のモジュール（プリントユニット１０ｋまたはファクシミリモデム１０ｉなど）への出力を開始する（＃７８３）。
【０２０１】
対象の圧縮画像データ６２または圧縮画像データ６７が大容量記憶装置１０ｄへ待避されている場合は（＃７８２でＮｏ）、ＣＰＵ１０ａは、その圧縮画像データ６２または圧縮画像データ６７のためのセルを予約する（＃７８４）。予約の処理の手順は、前に図２６で説明した通りである。
【０２０２】
そして、予約に成功した場合は（＃７８５でＹｅｓ）、ＣＰＵ１０ａは、その圧縮画像データ６２または圧縮画像データ６７を大容量記憶装置１０ｄからファイルメモリ１６の中の予約セルへ復帰させる（＃７８６）。なお、セル１５Ｃが予約セルに含まれる場合は、そのセル１５Ｃとして第二のセル１５３Ｃではなく第一のセル１５２Ｃが用いられる。
【０２０３】
一方、指示がない場合は（＃７８１でＮｏ）、ＣＰＵ１０ａは、必要に応じてその他の処理を実行する（＃７８７）。
【０２０４】
図２４に戻って、ＣＰＵ１０ａは、複合機１のサービスが停止するまで、ステップ＃７０２〜＃７０９の処理を繰り返し実行する。
【０２０５】
本実施形態によると、メインメモリ１０ｂ、標準ローカルメモリ２０ｃ、およびオプションローカルメモリ３０ｃによって実現されるファイルメモリを従来よりも簡単に管理することができる。
【０２０６】
しかも、メインメモリ１０ｂ、標準ローカルメモリ２０ｃ、およびオプションローカルメモリ３０ｃを高速なバスで接続することなくファイルメモリ１６を実現することができる。よって、従来よりも安価にファイルメモリ１６を実現することができる。
【０２０７】
本実施形態では、ファイルメモリ１６をセル単位で管理したが、もっと小さい単位で管理してもよい。例えば、ＣＰＵ１０ａにおけるデータの処理単位で管理してもよい。例えば、ＣＰＵ１０ａが６４ビットＣＰＵである場合は、６４ビット単位で管理してもよい。
【０２０８】
本実施形態では、メインメモリ１０ｂおよび標準ローカルメモリ２０ｃへの圧縮画像データ６２の書込みをオプションＡＳＩＣ３０ｂが行ったが、ＣＰＵ１０ａが行ってもよい。同様に、メインメモリ１０ｂおよびオプションローカルメモリ３０ｃへの圧縮画像データ６７の書き込みをＣＰＵ１０ａが行ってもよい。
【０２０９】
その他、複合機１、標準読取ユニット２、オプション読取ユニット３の全体または各部の構成、処理内容、処理順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【０２１０】
１  複合機（画像処理装置）
１０ｂ  メインメモリ
１０４  領域予約部（予約領域確保手段）
１０８  待避指示部（待避手段）
１４  メイン領域
１５  ローカル領域
１５２  標準ローカル領域
１５３  オプションローカル領域
１６  ファイルメモリ
１８１  データ待避制御部（待避手段）
１８４  データ復帰制御部（復帰手段）
２  標準読取ユニット（第一のデータ取得ユニット）
２０ａ  標準スキャナ（第一のデータ取得手段）
２０ｂ  標準ＡＳＩＣ（第一のデータ取得手段）
２０ｃ  標準ローカルメモリ（第一のローカルメモリ）
３０ａ  オプションスキャナ（第二のデータ取得手段）
３０ｂ  オプションＡＳＩＣ（第二のデータ取得手段）
３０ｃ  オプションローカルメモリ（第二のローカルメモリ）
３  オプション読取ユニット（第二のデータ取得ユニット）
６１  画像データ（第三のデータ）
６２  圧縮画像データ（第一のデータ）
６６  画像データ（第四のデータ）
６７  圧縮画像データ（第二のデータ）
【図１】
2016140015.tif 000003
【図２】
2016140015.tif 000004
【図３】
2016140015.tif 000005
【図４】
2016140015.tif 000006
【図５】
2016140015.tif 000007
【図６】
2016140015.tif 000008
【図７】
2016140015.tif 000009
【図８】
2016140015.tif 000010
【図９】
2016140015.tif 000011
【図１０】
2016140015.tif 000012
【図１１】
2016140015.tif 000013
【図１２】
2016140015.tif 000014
【図１３】
2016140015.tif 000015
【図１４】
2016140015.tif 000016
【図１５】
2016140015.tif 000017
【図１６】
2016140015.tif 000018
【図１７】
2016140015.tif 000019
【図１８】
2016140015.tif 000020
【図１９】
2016140015.tif 000021
【図２０】
2016140015.tif 000022
【図２１】
2016140015.tif 000023
【図２２】
2016140015.tif 000024
【図２３】
2016140015.tif 000025
【図２４】
2016140015.tif 000026
【図２５】
2016140015.tif 000027
【図２６】
2016140015.tif 000028
【図２７】
2016140015.tif 000029
【図２８】
2016140015.tif 000030
【図２９】
2016140015.tif 000031
【図３０】
2016140015.tif 000032
【図３１】
2016140015.tif 000033