(57)【要約】      （修正有）【課題】圧縮した画像データを格納するメモリをより効率的に使用できるようにする。【解決手段】非圧縮の画像データを、第１のモードでは第１の単位分ごとに圧縮し、第２のモードでは、第１の単位よりも小さい第２の単位分ごとに圧縮する。メモリに、第１のモードが設定されている画像ごとにすべての圧縮データを記憶するための第１の領域を確保し、第２のモードが設定されている画像ごとに１つの圧縮データを記憶するための第２の領域を確保し、第１のモードが設定されている画像のすべての圧縮データがメモリに揃うごとに当該すべての圧縮データをストレージへ転送し互いに対応付けて記憶させ、第２のモードが設定されている画像の圧縮データがメモリに記憶されるごとに当該圧縮データをストレージに転送し当該画像の他の圧縮データと対応付けて記憶させ、ストレージから、現在の出力の処理の対象である画像の圧縮データをすべてメモリへ転送させる。【選択図】図４
2015177260.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の入力手段のそれぞれによって入力される画像のいずれかを出力手段によって出力する画像処理装置であって、
前記画像ごとに、当該画像を圧縮するモードを第１のモードおよび第２のモードのうちのいずれかに設定する、モード設定手段と、
前記画像の圧縮されていない画像データである非圧縮画像データを、当該画像の前記モードが前記第１のモードに設定されている場合は第１の単位分ごとに圧縮し、前記第２のモードに設定されている場合は前記第１の単位よりも小さい第２の単位分ごとに圧縮することによって、圧縮データを生成する圧縮手段と、
揮発性のメモリと、
前記メモリに、前記第１のモードが設定されている前記画像ごとにすべての前記圧縮データを記憶するための第１の領域を確保し、前記第２のモードが設定されている前記画像ごとに１つの前記圧縮データを記憶するための第２の領域を確保し、前記出力手段による現在の処理の対象である前記画像のすべての前記圧縮データを記憶するための第３の領域を確保する領域確保手段と、
不揮発性のストレージと、
前記第１のモードが設定されている前記画像のすべての前記圧縮データが前記メモリに揃ったら当該すべての圧縮データを前記ストレージへ転送し当該画像と対応付けて記憶させ、前記第２のモードが設定されている前記画像の前記圧縮データが前記メモリに記憶されるごとに当該圧縮データを前記ストレージに転送し当該画像と対応付けて前記ストレージに記憶させる第１の転送手段と、
前記ストレージから、前記出力手段による現在の出力の処理の対象である前記画像の前記圧縮データをすべて前記メモリへ転送する第２の転送手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記モード設定手段は、前記画像の前記モードを、前記メモリに当該画像の前記第１の領域分の空きがある場合は前記第１のモードに設定し、そうでない場合は前記第２のモードに設定する、
請求項１に記載の画像処理装置。
【請求項３】
前記圧縮手段は、前記モードが前記第２のモードに設定されている前記画像の前記圧縮データを、前記メモリの使用も確保もされていない空き領域に当該圧縮データを記憶することができるサイズを前記第２の単位として当該画像の前記非圧縮データを圧縮することによって生成する、
請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記入力手段のそれぞれは、それぞれの前記画像を、用紙の印刷面をスキャンすることによって入力し、
前記第１の単位は、前記用紙の１面のサイズであり、
前記圧縮手段は、前記モードが前記第２のモードに設定されている前記画像の前記圧縮データを、前記空き領域に当該画像の（１／Ｍ）面分（ただし、Ｍ≧２）を記憶させることができるが、（１／（Ｍ−１））面分を記憶させることができない場合に、（１／Ｍ）面のサイズを前記第２の単位として当該画像の前記非圧縮データを圧縮することによって生成する、
請求項３に記載の画像処理装置。
【請求項５】
前記領域確保手段は、前記第１の領域、前記第２の領域、および前記第３の領域を、それぞれに前記非圧縮データが記憶される前記画像の特性に基づいて確保する、
請求項１ないし請求項４のいずれかに記載の画像処理装置。
【請求項６】
前記入力手段のうちの同一の入力手段から連続的に前記画像が複数入力される場合は、
前記モード設定手段は、当該複数の画像について前記モードを共通に設定し、
前記領域確保手段は、当該複数の画像のうちの最初の画像のために、当該設定されたモードに応じて前記第１の領域および前記第２の領域のうちのいずれかの領域を確保し、その後、当該確保した領域を残りの画像のために確保し続ける、
請求項１ないし請求項５のいずれかに記載の画像処理装置。
【請求項７】
前記入力手段のうちの同一の入力手段から連続的に前記画像が複数入力され、かつ、当該複数の画像の用紙のサイズが異なる場合は、
前記モード設定手段は、当該複数の画像について、当該複数の画像のサイズのうち最も大きいサイズに応じて前記モードを共通に設定し、
前記領域確保手段は、当該複数の画像のうちの最初の画像のために、当該設定されたモードに応じて前記第１の領域および前記第２の領域のうちのいずれかの領域を確保し、その後、当該確保した領域を残りの画像のために確保し続ける、
請求項１ないし請求項５のいずれかに記載の画像処理装置。
【請求項８】
前記入力手段のうちの同一の入力手段から連続的に前記画像が複数入力され、かつ、当該複数の画像のサイズが異なる場合は、
前記モード設定手段は、当該複数の画像のそれぞれについて、それぞれの画像のサイズに応じて前記モードを設定し、
前記領域確保手段は、当該複数の画像それぞれが入力される際に、当該入力される画像のために、当該入力される画像について設定されたモードに応じて前記第１の領域および前記第２の領域のうちのいずれかの領域を確保し、当該入力される画像の前記圧縮データがすべて前記ストレージに転送されたら当該領域を解放させる、
請求項１ないし請求項５のいずれかに記載の画像処理装置。
【請求項９】
前記領域確保手段は、前記出力手段による現在の出力の対象である前記画像に対して画像処理として、拡大し、縮小し、回転させ、または他の画像とともに１面に集約する処理を行って出力する場合は、さらに、当該画像処理が施された画像の処理済画像データを記憶するための第４の領域を前記メモリに確保する、
請求項１ないし請求項８のいずれかに記載の画像処理装置。
【請求項１０】
１つまたは複数の入力手段と、揮発性のメモリと、不揮発性のストレージと、前記１つまたは複数の入力手段のそれぞれによって入力される画像のいずれかを出力する出力手段とを有する画像処理装置における画像データ処理方法であって、
前記画像ごとに、当該画像を圧縮するモードを第１のモードおよび第２のモードのうちのいずれかに設定し、
前記画像の非圧縮の画像データを、当該画像の前記モードが前記第１のモードに設定されている場合は第１の単位分ごとに圧縮し、前記第２のモードに設定されている場合は前記第１の単位よりも小さい第２の単位分ごとに圧縮することによって、圧縮データを生成し、
前記メモリに、前記第１のモードが設定されている前記画像ごとにすべての前記圧縮データを記憶するための第１の領域を確保し、前記第２のモードが設定されている前記画像ごとに１つの前記圧縮データを記憶するための第２の領域を確保し、前記出力手段による現在の処理の対象である前記画像のすべての前記圧縮データを記憶するための第３の領域を確保し、
前記第１のモードが設定されている前記画像のすべての前記圧縮データが前記メモリに揃うごとに当該すべての圧縮データを前記ストレージへ転送し互いに対応付けて記憶させ、前記第２のモードが設定されている前記画像の前記圧縮データが前記メモリに記憶されるごとに当該圧縮データを前記ストレージに転送し当該画像の他の圧縮データと対応付けて前記ストレージに記憶させ、
前記ストレージから、前記出力手段による現在の出力の処理の対象である前記画像の前記圧縮データをすべて前記メモリへ転送させる、
ことを特徴とする画像データ処理方法。
【請求項１１】
１つまたは複数の入力手段のそれぞれによって入力される画像のいずれかを出力する処理を行なうコンピューターに用いられるコンピュータープログラムであって、
前記コンピューターに、
前記画像ごとに、当該画像を圧縮するモードを第１のモードおよび第２のモードのうちのいずれかに設定する処理を実行させ、
前記画像の非圧縮の画像データを、当該画像の前記モードが前記第１のモードに設定されている場合は第１の単位分ごとに圧縮し、前記第２のモードに設定されている場合は前記第１の単位よりも小さい第２の単位分ごとに圧縮することによって、圧縮データを生成する処理を実行させ、
揮発性のメモリに、前記第１のモードが設定されている前記画像ごとにすべての前記圧縮データを記憶するための第１の領域を確保し、前記第２のモードが設定されている前記画像ごとに１つの前記圧縮データを記憶するための第２の領域を確保し、現在の出力の処理の対象である前記画像のすべての前記圧縮データを記憶するための第３の領域を確保する処理を実行させ、
前記第１のモードが設定されている前記画像のすべての前記圧縮データが前記メモリに揃うごとに当該すべての圧縮データを不揮発性のストレージへ転送し互いに対応付けて記憶させ、前記第２のモードが設定されている前記画像の前記圧縮データが前記メモリに記憶されるごとに当該圧縮データを前記ストレージに転送し当該画像の他の圧縮データと対応付けて前記ストレージに記憶させる処理を実行させ、
前記ストレージから、現在の出力の処理の対象である前記画像の前記圧縮データをすべて前記メモリへ転送させる処理を実行させる、
ことを特徴とするコンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮して不揮発性のメモリに記憶させる画像データ処理に関する。
【背景技術】
【０００２】
複写機は、スキャナーによって原稿の用紙から画像を読み取り、プリンターによって新しい用紙に印刷する。
【０００３】
複写の指令後、スキャナーは、直ちに読取りを開始することができるが、プリンターは、定着器の温度を上げなければならず、印刷を開始するまでに時間が掛かることがある。また、通常、スキャナーが１枚の用紙から画像を読み取る速さのほうが、プリンターが１枚の用紙に画像を印刷する速さよりも速い。
【０００４】
そこで、従来、複写機は、画像を次のように複写する。スキャナーによって画像を読み取ると、この画像の画像データを圧縮して揮発性のメモリに記憶させ、圧縮した画像データをメモリから不揮発性のストレージに待避させる。そして、プリンターにおける処理の進行の状況に応じて、圧縮した画像データをストレージからメモリに読み出し、これを伸張することによって画像データを復元し、プリンターによって画像を用紙に印刷する。
【０００５】
画像データを圧縮して不揮発性のストレージに待避させるのは、メモリが高価なので、製造のコストの削減のために容量の小さいメモリを使用できるようにするためである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２００２９号公報
【特許文献２】特開２００３−１９８８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複写機のメモリを管理する方法として、次のような方法が提案されている。１ページの画像データを、１ページ未満のバンドデータとして逐次、次のように処理を行う。メモリ管理手段は、画像出力手段が起動後停止不可能な出力手段である場合には、符号メモリを、出力するページ分のデータが全て収まるサイズのメモリ容量だけ確保するとともにビットマップメモリを、ページ分に満たないバンド単位のメモリサイズだけ確保し、画像出力手段が起動後停止不可能な出力手段でない場合には、第２の符号メモリおよびビットマップメモリの両方をバンド単位で確保する（特許文献１）。
【０００８】
または、メモリ制御部のＤＭＡ制御により、入力画像に対してデータ圧縮変換を施した後、変換データを画像メモリのバッファ領域を通してＨＤＤへ転送する一連の処理を行う際、複数のデータ転送（同時転送）要求があるか否かにより、分割（複数回）／一括（１回）の各転送操作を選択する。１画像を分割転送する場合にバッファ領域として、ＨＤＤへの分割転送量に相当する容量を、又一括転送する場合に一括転送量に相当する容量を確保する（特許文献２）。
【０００９】
上述の方法によると、圧縮した画像データを格納するメモリを効率的に使用することができる。しかし、さらに効率的にこのメモリを使用する方法が求められる。
【００１０】
本発明は、このような課題に鑑み、圧縮した画像データを格納するメモリをより効率的に使用できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一形態に係る画像処理装置は、１つまたは複数の入力手段のそれぞれによって入力される画像のいずれかを出力手段によって出力する画像処理装置であって、前記画像ごとに、当該画像を圧縮するモードを第１のモードおよび第２のモードのうちのいずれかに設定する、モード設定手段と、前記画像の圧縮されていない画像データである非圧縮画像データを、当該画像の前記モードが前記第１のモードに設定されている場合は第１の単位分ごとに圧縮し、前記第２のモードに設定されている場合は前記第１の単位よりも小さい第２の単位分ごとに圧縮することによって、圧縮データを生成する圧縮手段と、揮発性のメモリと、前記メモリに、前記第１のモードが設定されている前記画像ごとにすべての前記圧縮データを記憶するための第１の領域を確保し、前記第２のモードが設定されている前記画像ごとに１つの前記圧縮データを記憶するための第２の領域を確保し、前記出力手段による現在の処理の対象である前記画像のすべての前記圧縮データを記憶するための第３の領域を確保する領域確保手段と、不揮発性のストレージと、前記第１のモードが設定されている前記画像のすべての前記圧縮データが前記メモリに揃ったら当該すべての圧縮データを前記ストレージへ転送し当該画像と対応付けて記憶させ、前記第２のモードが設定されている前記画像の前記圧縮データが前記メモリに記憶されるごとに当該圧縮データを前記ストレージに転送し当該画像と対応付けて前記ストレージに記憶させる第１の転送手段と、前記ストレージから、前記出力手段による現在の出力の処理の対象である前記画像の前記圧縮データをすべて前記メモリへ転送する第２の転送手段と、を有する。
【発明の効果】
【００１２】
本発明によると、圧縮した画像データを格納するメモリをより効率的に使用できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るＭＦＰのハードウェア構成の概略を示す図である。
【図２】ＭＦＰの画像処理部の構成を示す図である。
【図３】画像処理部内のデータの流れを示す図である。
【図４】画像処理部に関わる第１のメモリ使用方法および第２のメモリ使用方法を示す図である。
【図５】画像処理部のコントローラーの機能構成を示す図である。
【図６】メモリ使用方法の設定処理のフローチャートである。
【図７】図６の必要メモリ容量の算出ルーチンのフローチャートである。
【図８】図６の空きメモリ容量の算出ルーチンのフローチャートである。
【図９】図６のメモリ割当てルーチンのフローチャート図である。
【図１０】図９のバンドサイズの算出サブルーチンのフローチャートである。
【図１１】メモリ割り当ての第１例を示す図である。
【図１２】メモリ割当ての第２例を示す図である。
【図１３】メモリ割当ての第３例を示す図である。
【図１４】メモリ割当ての第４例を示す図である。
【図１５】メモリ使用方法の設定処理の他の例を示すフローチャートである。
【図１６】図１４の必要メモリ容量の算出ルーチンのフローチャートである。
【発明を実施するための形態】
【００１４】
本発明の実施形態に係る画像処理装置としてＭＦＰ（Multi-functional Peripheral）を挙げる。ＭＦＰはオフィスワークに有用な複数の機能を集約した複合型の情報機器であり、投入されるジョブに応じて、コピー機、プリンター、ネットワークスキャナー、ファクシミリ機、ドキュメントサーバーなどとして動作する。
【００１５】
図１に示されるように、ＭＦＰ１は、メインコントローラー１０、画像処理部１３、ストレージ１４、通信インタフェース１５、操作パネル１６、２つのイメージスキャナー１７Ａ，１７Ｂ、プリンターエンジン１９、および電源回路２０を備える。
【００１６】
メインコントローラー１０は、ＭＦＰ１を制御するためのプログラムを実行するＣＰＵ（Central Processing Unit）、プログラムを記憶するＲＯＭ（Read Only Memory）、およびプログラム実行のワークアリアとして用いられるＲＡＭ（Random Access Memory）を有している。
【００１７】
画像処理部１３は、イメージスキャナー１７Ａ，１７Ｂのそれぞれから入力される画像データ（スキャンデータ）を圧縮する処理、および圧縮された画像データを伸張する処理を行なう。画像処理部１３では、圧縮と伸張とに用いるメモリの使用方法として、後述するように第１のメモリ使用方法と第２のメモリ使用方法とが画像データの入出力の状況に応じて設定される。
【００１８】
ストレージ１４は例えば数百ギガバイト以上の記憶容量をもつハードディスクドライブである。ストレージ１４は、アプリケーションプログラムの保存、設定データの保存、画像処理部１３で圧縮された画像データの一時的な記憶などに用いられる。また、ストレージ１４には、文書（ドキュメント）の保存用のボックス群が設けられる。ボックス群は、個々のユーザーに割り当てられる個人ボックスおよび複数のユーザーが共有する共有ボックスといった複数のボックスから構成される。
【００１９】
通信インタフェース１５は、ＭＦＰ１と外部装置との通信を可能にする。通信インタフェース１５は、ＭＦＰ１をＬＡＮ（Local Area Network）に通信可能に接続するネットワーク・インタフェース・カード（ＮＩＣ）、および公衆電話回線によるファクシミリ通信のためのモデムを含んでいる。
【００２０】
操作パネル１６は、タッチパネルディスプレイとハードキーパネルとを有している。タッチパネルディスプレイは、ソフトウェアキーであるボタンの配置された操作用の画面を表示し、画面に対するタッチ操作を検出する入出力デバイスである。タッチパネルディスプレイは、液晶パネルとその表面に密着する透光性のタッチ面部を有したタッチパネルとから構成される。ハードキーパネルには、処理の開始を指示するスタートキーを含む複数のハードキーが配置されている。
【００２１】
２つのイメージスキャナー１７Ａ，１７Ｂはそれぞれ、プラテンガラス上に置かれた原稿シートからそれに記録されている画像を線順次走査によって光学的に読み取る。本実施形態では、これらイメージスキャナー１７Ａ，１７Ｂが同型であり、カラー画像およびモノクロ画像の読取りが可能であり、最大読取りサイズがＡ３サイズであり、かつ共にＡＤＦ（Auto Document Feeder）を備えているものとする。イメージスキャナー１７Ａ，１７Ｂは、原稿シートのサイズを公知の手法によって検知するためのシート検出信号を出力するセンサーを有している。
【００２２】
なお、以下においてイメージスキャナー１７Ａ，１７Ｂを総称してイメージスキャナー１７ということがある。
【００２３】
プリンターエンジン１９は、コピー、プリントおよびファクシミリ受信において、例えば電子写真法によって画像を用紙に印刷する。印刷方法はインクジェット法または他の方法であってもよい。
【００２４】
電源回路２０は、商用交流電源から供給される電力を、駆動系および制御系にそれらに適した電圧の電力に変換して供給する。
【００２５】
このようなＭＦＰ１は、操作パネル１６を用いてユーザーが指定するジョブ、および外部装置からのアクセスによって指定されるジョブを実行する。ＭＦＰ１が実行可能な様々なジョブの中に、原稿シートからの画像の読取りを伴うジョブ（これを“画像読取りジョブ”と呼称する）が含まれる。１つの画像読取りジョブでは、イメージスキャナー１７Ａ，１７Ｂのいずれか片方が用いられる。
【００２６】
画像読取りジョブとして、コピー、スキャン・トゥー・ボックス、およびデータ送信がある。コピーは読み取った原稿画像を用紙に印刷するジョブである。スキャン・トゥー・ボックスは、読取りで得られた画像データをストレージ１４のボックスに保存データとして格納するジョブである。データ送信は、読取りで得られた画像データに基づいて送信用の画像データを生成し、生成した画像データを指定された相手先へ送るジョブである。データ送信で指定される相手先は、パーソナルコンピューターに代表されるユーザー端末、ファイルサーバー、電子メールサーバー、ファクシミリ機などである。ＭＦＰ１の内部にサーバーが設けられている場合、そのサーバーを相手先とすることができる。
【００２７】
ＭＦＰ１は、イメージスキャナー１７Ａによる画像の読取りと、イメージスキャナー１７Ｂによる画像の読取りとを並行して行なうことができる。ＭＦＰ１では、ユーザーが投入した画像読取りジョブ（Ｊ）によってイメージスキャナー１７Ａ，１７Ｂの一方が使用されているときに、当該ユーザーまたは他のユーザーはイメージスキャナー１７Ａ，１７Ｂの他方を使用する画像読取りジョブ（Ｋ）の実行開始を指示することができる。
【００２８】
図２は画像読取りジョブに関係する画像処理部１３の構成を示している。図示のように画像処理部１３はＡＳＩＣ（Application Specific Integrated Circuit）３０と符合メモリ３５とを有する。ＡＳＩＣ３０は、ビットマップメモリ３１、圧縮・伸張回路３２、ＤＭＡ転送回路３３、およびコントローラー３４を備える。
【００２９】
ビットマップメモリ３１は、ラスター形式の画像データの一時記憶に用いられる。ビットマップメモリ３１は、２つのイメージスキャナー１７Ａ，１７Ｂの両方を用いて複数の原稿の読取りを並行して行ないながら画像を印刷するのを可能にするメモリ容量を有している。
【００３０】
圧縮・伸張回路３２は、画像データの圧縮および圧縮した画像データの伸張を受け持つ。圧縮・伸張回路３２は、イメージスキャナー１７Ａ，１７Ｂのそれぞれによって得られた画像データを並行して圧縮することが可能に構成されている。並行して圧縮するための構成は、同時に圧縮を行なうことが可能な複数の圧縮器を備えるものでもよいし、複数の画像データを時分割で圧縮するものであってもよい。
【００３１】
ＤＭＡ転送回路３３は、画像処理部１３の内部のデータ転送および画像処理部１３と外部とのデータの入出力をＤＭＡ（Direct Memory Access）によって行なうための回路である。
【００３２】
コントローラー３４は、ビットマップメモリ３１および符合メモリ３５のそれぞれのメモリ領域を管理する。コントローラー３４は、ＤＭＡ転送回路３３に対して、ビットマップメモリ３１および符合メモリ３５のそれぞれにおけるデータの格納または読出しのためにアクセスすべきメモリ領域を指定する。このような処理を実現するための制御プログラムを実行するプロセッサー３４０をコントローラー３４は備えている。プロセッサー３４０が実行する制御プログラムはＡＳＩＣ３０内のＲＯＭによって記憶されている。
【００３３】
図３は画像処理部内のデータの流れを示している。画像処理部１３では次の[１]〜[８]のようにデータが転送される。
【００３４】
[１]  画像読取りジョブの実行が開始されると、使用される一方のイメージスキャナー１７（例えばイメージスキャナー１７Ａ）から原稿シートの走査で得られた画像データＤ１が逐次に画像処理部１３に入力される。入力された画像データＤ１はＤＭＡ転送されてビットマップメモリ３１にいったん格納される。
【００３５】
[２]  原稿の１ページ分またはそれより少ないデータ量の画像データＤ１がビットマップメモリ３１に格納されると、ビットマップメモリ３１から圧縮・伸張回路３２へ画像データＤ１がＤＭＡ転送される。このとき、イメージスキャナー１７Ａからの画像データＤ１の入力が続いている場合、ビットマップメモリ３１からの格納されている画像データＤ１の読出しと並行して、イメージスキャナー１７Ａから新たに入力された画像データＤ１のビットマップメモリ３１への格納が行なわれる。
【００３６】
[３]  画像データＤ１を圧縮した画像データＤ２が、圧縮・伸張回路３２から符合メモリ３５へＤＭＡ転送される。
【００３７】
[４]  符合メモリ３５からストレージ１４へ画像データＤ２がＤＭＡ転送される。
【００３８】
以上の[１]〜[４]の転送は並行して行なわれる。すなわち、画像データＤ１をビットマップメモリ３１に格納しつつ先に格納された画像データＤ１を読み出して圧縮し、得られた画像データＤ２を直ちに符合メモリ３５に一時記憶させながら、適宜に画像データＤ２をストレージ１４に蓄積する、という処理が行なわれる。
【００３９】
なお、ストレージ１４への転送に先立って画像データＤ１を圧縮することにより、転送対象のデータ量を低減して転送の所要時間を短縮することができる。
【００４０】
画像読取りジョブがスキャン・トゥー・ボックスである場合には、１枚または複数枚の原稿シートから得られる画像データＤ１に対応する画像データＤ２が全てストレージ１４に格納されることでジョブが完了する。
【００４１】
これに対して、画像読取りジョブがコピーまたはデータ送信である場合、[１]〜[４]の転送と並行して、次の[５]〜[８]の転送が行なわれる。図３ではコピーの場合が例示されている。
【００４２】
[５]  ストレージ１４から符合メモリ３５へ１ページ分の画像データＤ２がＤＭＡ転送される。
【００４３】
[６]  符合メモリ３５から圧縮・伸張回路３２へ１ページ分の画像データＤ２がＤＭＡ転送される。画像データＤ２は圧縮・伸張回路３２によって伸張される。
【００４４】
[７]  画像データＤ２を伸張した画像データＤ３が、圧縮・伸張回路３２からビットマップメモリ３１へＤＭＡ転送される。
【００４５】
[８]  ビットマップメモリ３１からプリンターエンジン１９へ画像データＤ３がＤＭＡ転送される。この後、プリンターエンジン１９内で画像データＤ３に基づいて印刷用のラスター画像データが生成される。
【００４６】
[１]〜[４]の転送と[５]〜[８]の転送とが並行して行なわれるとき、符合メモリ３５には、圧縮・伸張回路３２からの画像データＤ２を記憶する入力用のメモリ領域と、ストレージ１４から読み出される１ページ分の画像データＤ２を記憶する出力用のメモリ領域とが割り当てられる。
【００４７】
このような[１]〜[８]の転送が行なわれる画像処理部１３におけるビットマップメモリ３１および符合メモリ３５の使用に関して、第１のメモリ使用方法および第２のメモリ使用方法がある。画像処理部１３では、これら２つのメモリ使用方法が画像読取りジョブの実行開始後の符合メモリ３５の空きメモリ容量の増減に応じて動的に使い分けられる。
【００４８】
図４（Ａ）は第１のメモリ使用方法を示し、図４（Ｂ）は第２のメモリ使用方法を示している。図４（Ａ）、（Ｂ）では、複数枚の原稿シートで構成されるドキュメント（これを原稿という）４０の画像をイメージスキャナー１７Ａが読み取る場合が想定されている。ただし、原稿４０は１枚の原稿シートであってもよいし、イメージスキャナー１７Ｂが原稿４０の画像を読み取ってもよい。図中、メモリ領域６０，７０に付された斜線は１ページ分のメモリ容量（メモリサイズ）を有することを表わしている。斜線の付されていないメモリ領域５０，８０のメモリ容量は１ページ分未満である。
【００４９】
本明細書において、「ページ」という用語は、原稿シートの片面を意味する。「１ページ分」とは、原稿シートの片面から読み取られる画像の全体に対応する分量であることを意味する。
【００５０】
図４（Ａ）に示される第１のメモリ使用方法は、各画像読取りジョブについて、ビットマップメモリ３１に原稿４０の１ページ分よりも少ない分量（例えば１ぺージ分の半分）の画像データＤ１の格納が可能なメモリ領域５０を確保し、符合メモリ３５に１ページ分の圧縮された画像データＤ２の格納が可能なメモリ領域６０を確保する方法である。この方法は、符合メモリ３５内の解放されたメモリ領域の容量である空きメモリ容量がメモリ領域６０の確保に必要な容量以上である場合に適用される。
【００５１】
第１のメモリ使用方法を適用した場合、例えば２分の１ぺージ分の画像データＤ１がメモリ領域５０に格納された段階（つまり、１ぺージ分の画像データＤ１が格納される段階よりも早い段階）で、画像データＤ１の圧縮が開始される。そして、圧縮された画像データＤ２がメモリ領域６０に１ページ分貯められ、ページ単位でストレージ１４に転送される。
【００５２】
図４（Ｂ）に示される第２のメモリ使用方法は、各画像読取りジョブについて、ビットマップメモリ３１に原稿４０の１ページ分の画像データＤ１の格納が可能なメモリ領域７０を確保し、符合メモリ３５に１ページ分よりも少ない量の画像データＤ２の格納が可能なメモリ領域８０を確保する方法である。この方法は、符合メモリ３５に１ページ分のメモリ領域６０を確保することができない場合に適用される。メモリ領域８０のメモリ容量は、符合メモリ３５の空きメモリ容量を超えない範囲内の分量に設定される。
【００５３】
第２のメモリ使用方法を適用した場合、１ぺージ分の画像データＤ１がメモリ領域７０に格納され始めた後、圧縮してメモリ領域８０に格納し切れる量の画像データＤ１が格納されるごとに、画像データＤ１の圧縮が行なわれる。そして、圧縮されてメモリ８０に一時記憶された画像データＤ２が、逐次にストレージ１４に転送される。１ページ分の画像データＤ２の保持はストレージ１４によって行なわれる。
【００５４】
第２のメモリ使用方法には、符合メモリ３５の空きメモリ容量が１ページ分に満たない場合に、メモリ割当てを行なおうとしている画像読取りジョブではない他の画像読取りジョブが終了して空きメモリ容量が１ページ分以上に増えるのを待たずに、原稿４０の読取りを始めることができるという利点がある。ただし、第１のメモリ使用方法と比べて１ページ当たりの圧縮処理の回数が多くなって転送の効率が低下し、原稿４０を走査してデータをストレージ１４に貯める一連の動作のパフォーマンス（処理速度）が第１のメモリ使用方法を適用した場合よりも低くなることがある。
【００５５】
図５は画像処理部のコントローラーの機能構成を示している。コントローラー３４は、入力モード判別部３４１、必要メモリ容量算出部３４２、空きメモリ容量算出部３４３、およびメモリ領域割当て部３４４を有している。これら構成要素は、プロセッサー３４０が制御プログラムを実行することによって実現される機能要素である。
【００５６】
入力モード判別部３４１は、ＭＦＰ１に投入された画像読取りジョブに関してメインコントローラー１０から与えられる情報に基づいて、画像処理部１３におけるメモリ割当てに関わる入力モードを判別する。入力モードは、投入された画像読取りジョブの種別、使用するイメージスキャナー１７Ａ，１７Ｂの個数、および読取り条件（読取り対象ページのサイズ、解像度、カラーモードなど）によって分類される。
【００５７】
必要メモリ容量算出部３４２は、１ページ分の圧縮された画像データＤ２を格納する場合に符合メモリ３５に割り当てるべきメモリ領域のメモリ容量である必要メモリ領域（Ｘ）を算出する。必要メモリ領域（Ｘ）は、読取り条件に依存する。
【００５８】
空きメモリ容量算出部３４３は、符合メモリ３５における入力に利用可能なメモリ領域のメモリ容量（Ｙ）を算出する。メモリ容量（Ｙ）は、画像読取りジョブの種別（出力用のメモリ領域の必要なジョブかどうか）に依存する。
【００５９】
メモリ割当て部３４４は、必要メモリ容量算出部３４２および空きメモリ容量算出部３４３によって得られた必要メモリ領域（Ｘ）とメモリ容量（Ｙ）とに応じて、ページの読取りに適用するメモリ使用方法を決める。そして、メモリ割当て部３４４は、ビットマップメモリ３１および符合メモリ３５のそれぞれに、メモリ使用方法に応じたメモリ容量をもつメモリ領域を割り当て、割り当てたメモリ領域のアドレスをＤＭＡ転送回路３３に通知する。
【００６０】
図６は、画像処理部のコントローラーが実行するメモリ使用方法の設定処理の流れを示している。コントローラー３４は、メインコントローラー１０から画像読取りジョブがＭＦＰ１に投入されたことが通知されたときに、図６の処理（これをメインルーチンという）を実行する。
【００６１】
ここでの説明では、原稿４０の画像を読み取る画像読取りジョブ（Ｊ１）の投入を契機としてメインルーチンの実行が開始され、この画像読取りジョブ（Ｊ１）の投入に際してユーザーがイメージスキャナー１７Ａを選択したものとする。画像読取りジョブ（Ｊ１）が完了する以前に、他の画像読取りジョブ（Ｊ２）が投入される場合があり得る。この場合、画像読取りジョブ（Ｊ２）にイメージスキャナー１７Ｂが用いられ、２つのイメージスキャナー１７Ａ，１７Ｂのそれぞれから画像データＤ１が画像処理部１３に入力されることになる。
【００６２】
コントローラー３４は、イメージスキャナー１７Ａが原稿４０から１ページずつ順に連続的に画像を読み取る過程で、各ページの読取りが開始されるとき（Ｓ０１でＹＥＳ）、原稿４０の態様が“混載”であるかどうかをチェックする（Ｓ０２）。“混載”とは、原稿４０を構成する複数の原稿シートのサイズが同一ではない態様、すなわち少なくとも１枚の原稿シートのサイズが他の原稿シートのサイズと異なる態様である。
【００６３】
本実施形態では、ステップＳ０２のチェックは、画像読取りジョブ（Ｊ１）の投入の際にユーザーによって混載モードが選択されているかどうかのチェックとされている。コントローラー３４は、メインコントローラー１０から取得した画像読取りジョブ（Ｊ１）の設定に関する情報に基づいて、混載モードが選択されているかどうかをチェックする。コントローラー３４は、混載モードが選択されている場合、原稿４０の態様が混載であると判断し、混載モードが選択されていない場合、原稿４０の態様が混載ではないと判断する。
【００６４】
原稿４０の態様が混載ではない場合（Ｓ０２でＮＯ）、コントローラー３４は、現在の画像入力数を取得し（Ｓ０３）、前回取得した画像入力数と比べることによって画像入力数が変化したかどうかをチェックする（Ｓ０４）。画像入力数は、イメージスキャナー１７Ａ，１７Ｂのうち、使用されている状態のものの個数である。使用されている状態とは、原稿４０がＡＤＦの給紙トレイにセッティングされてから最後のページの走査が終了するまでの状態である。
【００６５】
メインルーチンの実行が開始された後に初めて取得される画像入力数は「１」である。初めて画像入力数が取得されるとき、前回の画像入力数は「０」とされる。そして、ステップＳ０４のチェックでは、画像入力数が「０」から「１」へ変化したと判断され、チェック結果はＹＥＳとなる。
【００６６】
画像読取りジョブ（Ｊ１）の実行中に画像読取りジョブ（Ｊ２）の実行が開始された場合、画像読取りジョブ（Ｊ２）の実行が開始された後に初めて取得される画像入力数は「２」である。このとき前回の画像入力数は「１」であるので、ステップＳ０４のチェックでは、画像入力数が「１」から「２」へ変化したと判断され、チェック結果はＹＥＳとなる。
【００６７】
また、画像読取りジョブ（Ｊ１）の実行中に画像読取りジョブ（Ｊ２）の実行が開始され、その後にいずれか一方の画像読取りジョブによるイメージスキャナー１７の使用が終了した場合、イメージスキャナー１７の使用が終了した後に初めて取得される画像入力数は「１」である。このとき前回の画像入力数は「２」であるので、ステップＳ０４のチェックでは画像入力数が「２」から「１」へ変化したと判断され、チェック結果はＹＥＳとなる。
【００６８】
一方、画像読取りジョブ（Ｊ１）および画像読取りジョブ（Ｊ２）のいずれか１つのみが実行されている状態での２回目以降のステップＳ０３の実行で取得される画像入力数は「１」である。このとき前回の画像入力数は「１」であるので、ステップＳ０４のチェックでは画像入力数が変化していないと判断され、チェック結果はＮＯとなる。ステップＳ０４のチェック結果がＮＯである場合、フローはステップＳ０８へ進む。
【００６９】
画像読取りジョブ（Ｊ１）および画像読取りジョブ（Ｊ２）によって２つのイメージスキャナー１７Ａ，１７Ｂの両方が使用されている状態での２回目以降のステップＳ０３の実行で取得される画像入力数は「２」である。このとき前回の画像入力数は「２」であるので、ステップＳ０４のチェックでは画像入力数が変化していないと判断され、チェック結果はＮＯとなる。
【００７０】
ステップＳ０４のチェック結果がＹＥＳである場合、フローはステップＳ０５へ進み、コントローラー３４は、必要メモリ容量の算出ルーチン（Ｓ０５）、空きメモリ容量の算出ルーチン（Ｓ０６）、およびメモリ割当てルーチン（Ｓ０７）を実行する。これら３つのルーチンが実行されることによって、ビットマップメモリ３１および符合メモリ３５のメモリ割当てが必要に応じて変更される。
【００７１】
ステップＳ０７のルーチンを実行した後、コントローラー３４は、イメージスキャナー１７Ａからの画像入力（画像データＤ１の入力）が終了したかどうかをチェックする（Ｓ０８）。イメージスキャナー１７Ｂも使用された場合は、イメージスキャナー１７Ｂからの画像入力が終了したかどうかもチェックする。すなわち、イメージスキャナー１７Ａ，１７Ｂの一方または両方が使用されている状態から両方が共に使用されていない状態になったかどうかをチェックする。
【００７２】
ステップＳ０８のチェック結果がＹＥＳである場合、コントローラー３４はメインルーチンの実行を終える。その際、コントローラー３４は、ビットマップメモリ３１および符合メモリ３５のそれぞれに確保されている入力用のメモリ領域を解放して空きメモリ領域とするメモリ管理処理を行なう。
【００７３】
図７は図６の必要メモリ容量の算出ルーチンのフローチャートである。
【００７４】
コントローラー３４は、イメージスキャナー１７による読取りの解像度、同じく読取りのカラーモード、およびイメージスキャナー１７による走査が開始されまたは開始されようとしているページの画像サイズを、メインコントローラー１０から取得する（Ｓ５１、Ｓ５２、Ｓ５３）。解像度は、200dpi、300dpi、400dpi、600dpiといった選択肢のうちのユーザーによって選択されたいずれかである。カラーモードは、フルカラー、グレースケール、モノクロ２階調といった選択肢のうちのユーザーによって選択されたいずれかであり、１画素あたりのビット数を特定する情報として取得される。画像サイズは、イメージスキャナー１７のプラテンガラス上に置かれまたは置かれようとしている原稿シートのサイズである。
【００７５】
コントローラー３４は、取得した解像度、カラーモードおよび画像サイズに基づいて、必要メモリ容量（Ｘ）を算出する（Ｓ５４）。この必要メモリ容量（Ｘ）とは、１ページ分の画像データＤ１を圧縮した画像データＤ２を符合メモリ３５に記憶させるのに必要なメモリ容量である。例えば、読取り条件が、最大読取りサイズであるＡ３サイズ（297mm×420mm）の原稿シートの画像を600dpiでフルカラー（１画素あたり２４ビット）で読み取るという条件（これを「最大条件」と呼称する）である場合、画像データＤ１のデータ量は、おおよそ２００メガバイトになる。このデータ量と圧縮率との積が必要メモリ容量（Ｘ）である。圧縮率は画像の内容に依存し、圧縮を行なわない段階では真の圧縮率は不明である。そこで、ステップＳ５４では、あらかじめ想定される最も低い圧縮率よりもマイジンを見込んで低く定められた圧縮率（例えば７０％）を用いて必要メモリ容量（Ｘ）が算出される。ここでの例のように画像データＤ１のデータ量が２００メガバイトである場合、必要メモリ容量（Ｘ）は１４０メガバイトとなる。
【００７６】
図８は図６の空きメモリ容量の算出ルーチンのフローチャートである。
【００７７】
コントローラー３４は、符合メモリ３５の現在の空きメモリ容量（Ｚ）を取得する（Ｓ６１）。空きメモリ容量（Ｚ）は、入力用または出力用に既に割り当てられてるメモリ領域のメモリ容量に依存する。すなわち、符合メモリ３５のメモリ容量から解放されていないメモリ領域のメモリ容量を差し引いた容量が空きメモリ容量（Ｚ）である。なお、必ずしも空きメモリ容量（Ｚ）の取得を当該ルーチンの最初の処理として行なう必要はなく、後述のステップＳ７０を実行する以前に空きメモリ容量（Ｚ）を取得すればよい。
【００７８】
コントローラー３４は、注目する原稿読取りジョブが出力用のメモリ領域を必要とするジョブであるかどうかをチェックする。注目する原稿読取りジョブとは、実行中の１つまたは２つの原稿読取りジョブのうち、メモリ割当てを行ないたい原稿読取りジョブ、すなわち本ルーチンの実行の契機となった１ページの読取りの開始（図６のステップＳ０１）に対応する原稿読取りジョブである。
【００７９】
注目する原稿読取りジョブがスキャン・トゥー・ボックスである場合、ストレージ１４から画像データＤ２を読み出さないので、出力用のメモリ領域は不要である。これに対して、注目する原稿読取りジョブがコピーまたはデータ送信である場合、圧縮されている画像データＤ２を伸張してプリンターエンジン１９または通信インタフェース１５へ送るために、出力用のメモリ領域が必要である。
【００８０】
ジョブの種別ごとの出力用のメモリ領域の要否を示す情報を参照することによって、注目する原稿読取りジョブが出力用のメモリ領域を必要としないジョブであるとコントローラー３４が判断した場合（Ｓ６２でＮＯ）、フローはステップＳ６３へ進む。
【００８１】
ステップＳ６３において、コントローラー３４は出力ページ数（Ｑ）を「０」とする。出力ページ数（Ｑ）は、何ページ分の出力用のメモリ領域が必要であるかを示す変数である。伸張がページ単位で行なわれることから、必要なメモリ容量を１ページ分の画像データ量を基準に計算するために出力ページ数（Ｑ）が定められる。出力ページ数（Ｑ）が「０」であることは、必要なメモリ容量が０ページ分であること、すなわち出力用のメモリ領域が不要であることを意味する。
【００８２】
一方、注目する原稿読取りジョブが出力用のメモリ領域を必要とするジョブであるとコントローラー３４が判断した場合（Ｓ６２でＹＥＳ）、フローはステップＳ６２からステップＳ６４へ進み、次のように出力モードに応じて出力ページ数（Ｑ）が定められる。
【００８３】
まず、ステップＳ６４でコントローラー３４は、少なくとも１ページ分のメモリ領域が必要であることから、出力ページ数（Ｑ）を「１」とする。
【００８４】
次に、コントローラー３４は、出力モードが、９０度単位の指定された角度だけ回転させて画像の向きを変える「回転」、または画像のサイズを変える「拡大／縮小」を行なうモードであるかどうかをチェックする（Ｓ６５）。「回転」および「拡大／縮小」のそれぞれは、処理前のデータの記憶と処理後のデータの記憶とに１ページ分ずつ計２ページ分のメモリ領域を必要とする。したがって、出力モードが「回転」または「拡大／縮小」を行なうモードであると判断した場合（Ｓ６５でＹＥＳ）、コントローラー３４は出力ページ数（Ｑ）を「２」とする（Ｓ６６）。ステップＳ６５のチェック結果がＮＯである場合、フローはステップＳ６６をジャンプしてステップＳ６７へ進む。
【００８５】
なお、「回転」および「拡大／縮小」の両方の処理を行なう出力モードである場合、計２ページ分メモリ領域を用いて一方の処理と他方の処理とが順に行なわれる。すなわち、この場合も出力ページ数（Ｑ）は「２」とされる。
【００８６】
ステップＳ６７において、コントローラー３４は、出力モードが複数のページの画像を１ページに配置する「集約」（Ｎ in １ともいう）を行なうモードであるかどうかをチェックする。Ｎは記録シートの１つの面に集約するページの数（２、４、６、９など）である。「集約」では、Ｎページ分の画像データＤ２を符合メモリ３５に記憶させるので、Ｎページ分のメモリ領域が必要である。そして、「回転」または「拡大／縮小」と「集約」とを行なう場合、２Ｎページ分のメモリ領域が必要である。
【００８７】
ステップＳ６７のチェック結果がＹＥＳである場合、コントローラー３４は、出力ページ数（Ｑ）をそのＮ倍の値「Ｎ＊Ｑ」に置き換える（Ｓ６８）。つまり、ステップＳ６８で、出力ページ数（Ｑ）は「Ｎ」または「２Ｎ」となる。
【００８８】
フローはステップＳ６８からステップＳ６９へ進む。また、ステップＳ６７のチェック結果がＮＯである場合、フローはステップＳ６７をジャンプしてステップＳ６９へ進む。
【００８９】
ステップＳ６９において、コントローラー３４は、符合メモリ３５に割り当てるべき出力用のメモリ領域のメモリ容量（Ｖ）を算出する。ここで行なう演算は、１ページ分の画像データＤ２のデータ量に相当する図７のステップＳ５４で算出した必要メモリ容量（Ｘ）とステップＳ６２からステップＳ６８までの処理で得られた出力ページ数（Ｑ）との乗算である。すなわち、必要メモリ容量（Ｘ）と出力ページ数（Ｑ）との積がメモリ容量（Ｖ）として算出される。出力ページ数（Ｑ）が「０」の場合、メモリ容量（Ｖ）は「０」となる。
【００９０】
続いて、コントローラー３４は、符合メモリ３５の空きメモリ領域（Ｚ）のうちの入力に利用可能なメモリ領域のメモリ容量（Ｙ）を算出する（Ｓ７０）。メモリ容量（Ｙ）は、ステップＳ６１で取得した空きメモリ容量（Ｚ）からステップＳ６９で算出した出力用のメモリ容量（Ｖ）を差し引いた値である。メモリ容量（Ｙ）を算出したコントローラー３４はメインルーチンへ戻ってメモリ割当てルーチンを実行する。
【００９１】
図９は図６のメモリ割当てルーチンのフローチャートである。
【００９２】
コントローラー３４は、圧縮・伸張回路３２で圧縮された画像データＤ２の１ページ分を符合メモリ３５に格納することが可能であるかどうかを判定する（Ｓ７１）。この判定に際して、コントローラー３４は、既に算出されている必要メモリ容量（Ｘ）とメモリ容量（Ｙ）とを比較する。メモリ容量（Ｙ）が必要メモリ容量（Ｘ）以上である場合、コントローラー３４は１ページ分の格納が可能であると判定し、判定結果を「可能」とする。メモリ容量（Ｙ）が必要メモリ容量（Ｘ）未満である場合、コントローラー３４は１ページ分の格納が可能ではないと判定し、判定結果を「不可能」とする。
【００９３】
判定結果が「可能」である場合、コントローラー３４は、符合メモリ３５およびビットマップメモリ３１について、第１のメモリ使用方法を適用したメモリ割当てを行なう。すなわち、図４（Ａ）のように、符合メモリ３５内に１ページ分の画像データＤ２の記憶が可能なメモリ容量をもつメモリ領域６０を確保する。このとき、メモリ領域６０のメモリ容量は必要メモリ容量（Ｘ）とされる。また、ビットマップメモリ３１内に１ページ分未満の画像データＤ１の記憶が可能なメモリ容量をもつメモリ領域５０を確保する。
【００９４】
一方、判定結果が「不可能」である場合、コントローラー３４は、バンドサイズ（Ｒ）を設定するバンドサイズ設定サブルーチンを実行し（Ｓ７４）、その後に第２のメモリ使用方法を適用したメモリ割当てを行なう（Ｓ７５）。バンドサイズ（Ｒ）とは、１ページ分の画像データＤ１を複数回に分けて圧縮する過程において、各回の圧縮に際してビットマップメモリ３１から読み出して符合メモリ３５へ転送する画像データＤ１のデータ量である。なお、ステップＳ７５の処理を実行した後にステップＳ７４のサブルーチンを実行するようにしてもよい。
【００９５】
図１０は図９のバンドサイズ設定サブルーチンのフローチャートである。このサブルーチンでは、入力に利用可能な空きメモリ領域のメモリ容量（Ｙ）に応じて、できるだけ大きいバンドサイズ（Ｒ）が設定される。それは、バンドサイズ（Ｒ）を大きくすることによって、ビットマップメモリ３１から圧縮・伸張回路３２への転送の回数が少なくなってパフォーマンスが高くなるからである。
【００９６】
コントローラー３４は、上述の必要メモリ容量（Ｘ）およびメモリ容量（Ｙ）を取得し（Ｓ７０１、Ｓ７０２）、必要メモリ容量（Ｘ）に対するメモリ容量（Ｙ）の比率（Ｙ／Ｘ）を算出する（Ｓ７０３）。そして、コントローラー３４は、あらかじめ定められた複数の閾値（５０％、３４％、２５％、２０％、１７％）と比率（Ｙ／Ｘ）との大小関係に応じて、次のようにバンドサイズ（Ｒ）を設定する。なお、各閾値および閾値の個数は例示に限るものではなく、適宜選定することができる。
【００９７】
比率（Ｙ／Ｘ）が５０％以上１００％未満である場合（Ｓ７０４でＹＥＳ）、コントローラー３４は、必要メモリ容量（Ｘ）の０．５倍をバンドサイズ（Ｒ）に設定する（Ｓ７０５）。この場合、１ページ分の画像データＤ１が２回に分けて圧縮されることになる。
【００９８】
比率（Ｙ／Ｘ）が３４％以上５０％未満である場合（Ｓ７０６でＹＥＳ）、コントローラー３４は、必要メモリ容量（Ｘ）の０．３４倍をバンドサイズ（Ｒ）に設定する（Ｓ７０７）。この場合、１ページ分の画像データＤ１が３回に分けて圧縮されることになる。
【００９９】
比率（Ｙ／Ｘ）が２５％以上３４％未満である場合（Ｓ７０８でＹＥＳ）、コントローラー３４は、必要メモリ容量（Ｘ）の０．２５倍をバンドサイズ（Ｒ）に設定する（Ｓ７０９）。この場合、１ページ分の画像データＤ１が４回に分けて圧縮されることになる。
【０１００】
比率（Ｙ／Ｘ）が２０％以上２５％未満である場合（Ｓ７１０でＹＥＳ）、コントローラー３４は、必要メモリ容量（Ｘ）の０．２倍をバンドサイズ（Ｒ）に設定する（Ｓ７１１）。この場合、１ページ分の画像データＤ１が５回に分けて圧縮されることになる。
【０１０１】
比率（Ｙ／Ｘ）が１７％以上２０％未満である場合（Ｓ７１２でＹＥＳ）、コントローラー３４は、必要メモリ容量（Ｘ）の０．１７倍をバンドサイズ（Ｒ）に設定する（Ｓ７１３）。この場合、１ページ分の画像データＤ１が６回に分けて圧縮されることになる。
【０１０２】
比率（Ｙ／Ｘ）が１７％未満である場合（Ｓ７１２でＮＯ）、コントローラー３４は、あらかじめ定められた最小バンドサイズ（Ｒｍｉｎ）をバンドサイズ（Ｒ）に設定する（Ｓ７１４）。最小バンドサイズ（Ｒｍｉｎ）ではなく、メモリ容量（Ｙ）をバンドサイズ（Ｒ）に設定してもよい。いずれにしても、この場合は１ページ分の画像データＤ１が７回以上に分けて圧縮されることになる。
【０１０３】
以上のとおり、ＭＦＰ１では、イメージスキャナー１７Ａおよびイメージスキャナー１７Ｂのいずれかで原稿４０から１つのページの読取りが開始されるごとに、画像処理部１３に関するメモリ割当てが最適化される。次にメモリ割当ての複数の例を挙げる。
【０１０４】
図１１はメモリ割り当ての第１例を示している。
【０１０５】
図１１（Ａ）では、１つの画像読取りジョブ（Ｊａ）が実行中であり、イメージスキャナー１７Ａを用いて原稿４３の読取りが行なわれている。イメージスキャナー１７Ｂは使用されていない。原稿４３はＡ３サイズ（最大読取りサイズ）の複数の原稿シートを有しており、Ａ３サイズのページの読取りが進行中である。画像読取りジョブ（Ｊａ）はスキャン・トゥー・ボックスである。スキャン・トゥー・ボックスでは出力用のメモリ領域を割り当てる必要がない。
【０１０６】
図１１（Ａ）では、ページの読取りに第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の分量の画像データＤ１ａの格納が可能なメモリ領域５１が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ａの格納が可能なメモリ領域６１が割り当てられている。
【０１０７】
符合メモリ３５のメモリ容量は、画像処理部１３の回路設計に際して、上述の最大条件での読取りに際して２ページ分の画像データＤ２の格納が可能となる最小限の分量に選定されている。したがって、図１１（Ａ）の状態で、符合メモリ３５は、最大条件での少なくとも１ページ分の空きメモリ容量を有している。
【０１０８】
図１１（Ｂ）では図１１（Ａ）の状態から移行した状態が示されている。図１１（Ｂ）では、イメージスキャナー１７Ａを用いる上述の画像読取りジョブ（Ｊａ）とともに、イメージスキャナー１７Ｂを用いて原稿４４を走査する画像読取りジョブ（Ｊｂ）が実行中である。画像読取りジョブ（Ｊｂ）はスキャン・トゥー・ボックスである。原稿４４はＡ３サイズの複数の原稿シートを有しており、イメージスキャナー１７ＢによるＡ３サイズのページの読取り（ＳＢ）と、この読取り（ＳＢ）の開始時点で既に進行中であったイメージスキャナー１７ＡによるＡ３サイズのページの読取り（ＳＡ）とが進行中である。
【０１０９】
読取り（ＳＢ）の開始時点で、既に図１１（Ａ）と同様に第１のメモリ使用方法を適用して読取り（ＳＡ）が行なわれているものとする。読取り（ＳＢ）の開始に際して、図６のメインルーチンの実行によって、読取り（ＳＢ）に適用するメモリ使用方法が決まる。
【０１１０】
読取り（ＳＢ）に適用するメモリ使用方法を決めるとき、上述のとおり符合メモリ３５には、最大条件での少なくとも１ページ分の空きメモリ領域が存在する。つまり、読取り（ＳＢ）の必要メモリ容量（Ｘ）以上の空きメモリ容量（Ｚ）を符合メモリ３５が有しており、図９のステップ７２の判定結果は「可能」となる。
【０１１１】
したがって、図１１（Ｂ）では読取り（ＳＢ）に第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の分量の画像データＤ１ｂの格納が可能なメモリ領域５２が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ｂの格納が可能なメモリ領域６２が割り当てられている。ビットマップメモリ３１は入力用の２つのメモリ領域５１，５２を有し、符合メモリ３５は入力用の２つのメモリ領域６１，６２を有している。
【０１１２】
図１２はメモリ割り当ての第２例を示している。
【０１１３】
図１２（Ａ）では、１つの画像読取りジョブ（Ｊｃ）が実行中であり、イメージスキャナー１７Ａを用いて原稿４５の読取りが行なわれている。イメージスキャナー１７Ｂは使用されていない。原稿４５はＡ３サイズの複数の原稿シートを有しており、Ａ３サイズのページの読取りが進行中である。画像読取りジョブ（Ｊｃ）はスキャン・トゥー・ボックスである。
【０１１４】
図１２（Ａ）では、ページの読取りに第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の分量の画像データＤ１ｃの格納が可能なメモリ領域５３が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ｃの格納が可能なメモリ領域６３が割り当てられている。図１２（Ａ）の状態において符合メモリ３５は、最大条件での少なくとも１ページ分の空きメモリ容量（Ｚ）を有している。
【０１１５】
図１２（Ｂ）では図１２（Ａ）の状態から移行した状態が示されている。図１２（Ｂ）では、イメージスキャナー１７Ａを用いる上述の画像読取りジョブ（Ｊｃ）とともに、イメージスキャナー１７Ｂを用いて原稿４６を読み取る画像読取りジョブ（Ｊｄ）が実行中である。画像読取りジョブ（Ｊｄ）はコピーである。原稿４６はＡ３サイズの複数の原稿シートを有しており、イメージスキャナー１７ＢによるＡ３サイズのページの読取り（ＳＤ）と、この読取り（ＳＤ）の開始時点で既に進行中であったイメージスキャナー１７ＡによるＡ３サイズのページの読取り（ＳＣ）とが進行中である。
【０１１６】
読取り（ＳＤ）の開始時点で、既に図１２（Ａ）と同様に第１のメモリ使用方法を適用して読取り（ＳＣ）が行なわれているものとする。読取り（ＳＤ）の開始に際して、図６のメインルーチンの実行によって、読取り（ＳＤ）に適用するメモリ使用方法が決まる。
【０１１７】
読取り（ＳＤ）に適用するメモリ使用方法を決めるとき、上述のとおり符合メモリ３５には、最大条件での少なくとも１ページ分の空きメモリ領域（Ｚ）が存在する。しかし、読取り（ＳＤ）を伴う画像読取りジョブ（Ｊｄ）はコピーであるので、符合メモリ３５に出力用のメモリ領域９１を割り当てる必要がある。このため、符合メモリ３５の空きメモリ容量（Ｚ）から出力用のメモリ領域９１のメモリ容量（Ｖ）を差し引いたメモリ容量、すなわち入力に利用可能なメモリ領域８１のメモリ容量（Ｙ）は、圧縮後の画像データＤ２ｄの１ページ分よりも少ない。図９のステップ７２の判定結果は「不可能」となる。
【０１１８】
したがって、図１２（Ｂ）では読取り（ＳＤ）に第２のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分の画像データＤ１ｄの格納が可能なメモリ領域７１が割り当てられ、符合メモリ３５には１ページ分未満の分量の圧縮された画像データＤ２ｄの格納が可能なメモリ領域８１が割り当てられている。ビットマップメモリ３１は入力用の２つのメモリ領域５３，７１および出力用の１つのメモリ領域９２を有し、符合メモリ３５は入力用の２つのメモリ領域６３，８１および出力用の１つのメモリ領域９１を有している。
【０１１９】
メモリ領域８１の割当てにあたって、図１０のバンドサイズ設定サブルーチンが実行され、ビットマップメモリ３１のメモリ領域７１からの読出しに関わる上述のバンドサイズ（Ｒ）が設定される。メモリ領域７１に格納された１ページ分の画像データＤ１ｄはバンドサイズ分ずつ読み出されて圧縮・伸張回路３２へ転送され、バンドサイズ分の圧縮された画像データＤ２ｄがメモリ領域７１に一時記憶された後、ストレージ１４に転送される。ストレージ１４では、バンドサイズ分ずつ入力される１ページ分の画像データＤ２ｄが出力用のひとかたまりのデータとして記憶される。
【０１２０】
なお、ビットマップメモリ３１のメモリ領域９２には、ストレージ１４から符合メモリ３５のメモリ領域９１へ読み出され、その後に圧縮・伸張回路３２で伸張された画像データＤ３ｄが格納される。その後、メモリ領域９２からプリンターエンジン１９へ画像データＤ３ｄが転送される。
【０１２１】
図１３はメモリ割当ての第３例を示している。図１３（Ａ）の示す状態は上述の図１２（Ｂ）の示す状態と同一である。図１３（Ｂ）の示す状態は、図１３（Ａ）で実行中であった画像読取りジョブ（Ｊｃ）の実行が完了し、イメージスキャナー１７Ｂを用いる画像読取りジョブ（Ｊｄ）の実行が続いている状態である。
【０１２２】
図１３（Ｂ）では、原稿４６のＡ３サイズのページの読取り（ＳＤ）が進行中である。ただし、現在の読取り対象のページは図１３（Ａ）での読取り対象とは異なるページである。このような読取り（ＳＤ）の開始時点で、既にイメージスキャナー１７Ａを使用する画像読取りジョブ（Ｊｃ）は終了していたものとする。
【０１２３】
読取り（ＳＤ）の開始時点で符合メモリ３５における入力に利用可能なメモリ容量（Ｙ）は、符合メモリ３５の空きメモリ容量（Ｚ）であり、最大条件での１ページ分以上の分量である。なぜなら、符合メモリ３５は最大条件での２ページ分以上のメモリ領域を有し、以前に割り当てられたメモリ領域８１は解放されているとみなされ、出力用に割り当てわれているメモリ領域９１のメモリ容量が最大条件での１ページ分以下の分量であるからである。
【０１２４】
したがって、図１３（Ｂ）では読取り（ＳＤ）に第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の画像データＤ１ｄの格納が可能なメモリ領域５６が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ｄの格納が可能なメモリ領域６６が割り当てられている。ビットマップメモリ３１は入力用の１つのメモリ領域５６および出力用の１つのメモリ領域９２を有し、符合メモリ３５は入力用の１つのメモリ領域６６および出力用の１つのメモリ領域９１を有している。
【０１２５】
このように図１３の例では、イメージスキャナー１７Ｂを使用する画像読取りジョブ（Ｊｄ）の実行の途中で画像入力数が「２」から「１」に変化したことに伴って、画像処理部１３のメモリ使用方法が第２のメモリ使用方法から第１のメモリ使用方法に変更されている。
【０１２６】
図１４はメモリ割り当ての第４例を示している。
【０１２７】
図１４（Ａ）では、１つの画像読取りジョブ（Ｊｅ）が実行中であり、イメージスキャナー１７Ａを用いて原稿４７の読取りが行なわれている。イメージスキャナー１７Ｂは使用されていない。画像読取りジョブ（Ｊｅ）はコピーである。原稿４７はＡ４サイズの複数の原稿シートを有しており、Ａ４サイズのページの読取りが進行中である。そして、読取りと並行してプリンターエンジン１９による印刷が行なわれている。印刷のために出力用のメモリ領域９３，９４が図示のように符合メモリ３５およびビットマップメモリ３１に割り当てられている。
【０１２８】
図１４（Ａ）では、ページの読取りに第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の分量の画像データＤ１ｅの格納が可能なメモリ領域５４が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ｅの格納が可能なメモリ領域６４が割り当てられている。符合メモリ３５の空きメモリ容量（Ｚ）は、符合メモリ３５のもつメモリ容量から入力用のメモリ領域６４および出力用のメモリ領域９３のそれぞれのメモリ容量を差し引いた分量となっている。
【０１２９】
図１４（Ｂ）では図１４（Ａ）の状態から移行した状態が示されている。図１４（Ｂ）では、イメージスキャナー１７Ａを用いる上述の画像読取りジョブ（Ｊｅ）とともに、イメージスキャナー１７Ｂを用いて原稿４８の画像を読み取る画像読取りジョブ（Ｊｆ）が実行中である。画像読取りジョブ（Ｊｆ）はスキャン・トゥー・ボックスである。原稿４８はＡ４サイズの複数の原稿シートを有しており、イメージスキャナー１７ＢによるＡ４サイズのページの読取り（ＳＦ）と、この読取り（ＳＦ）の開始時点で既に進行中であったイメージスキャナー１７ＡによるＡ４サイズのページの読取り（ＳＥ）とが進行中である。
【０１３０】
読取り（ＳＦ）の開始時点で、既に図１４（Ａ）と同様に第１のメモリ使用方法を適用して読取り（ＳＥ）が行なわれているものとする。読取り（ＳＦ）の開始に際して、図６のメインルーチンの実行によって、読取り（ＳＦ）に適用するメモリ使用方法が決まる。
【０１３１】
読取り（ＳＦ）に適用するメモリ使用方法を決めるとき、符合メモリ３５の空きメモリ容量（Ｚ）は読取り（ＳＦ）の必要メモリ容量（Ｘ）以上であった。
【０１３２】
したがって、図１４（Ｂ）では読取り（ＳＦ）に第１のメモリ使用方法が適用されている。すなわち、ビットマップメモリ３１には１ページ分未満の分量の画像データＤ１ｆの格納が可能なメモリ領域５５が割り当てられ、符合メモリ３５には１ページ分の圧縮された画像データＤ２ｆの格納が可能なメモリ領域６５が割り当てられている。ビットマップメモリ３１は入力用の２つのメモリ領域５４，５５および出力用の１つのメモリ領域９４を有し、符合メモリ３５は入力用の２つのメモリ領域６４，６５および出力用の１つのメモリ領域９３を有している。
【０１３３】
図１５はメモリ使用方法の設定処理の他の例を示すフローチャートである。図６のメインルーチンは、原稿の態様が混載である場合に、読取り対象のページのサイズに応じて読取りに適用するメモリ使用方法を決めるものであった。これに対して、図１５の例は、原稿の態様が混載である場合に、当該原稿の全てのページのサイズが当該原稿における最大サイズであるものと見なして、読取りに適用するメモリ使用方法を決めるものである。混載モードにおいて読取り対象のページのサイズを一律に最大サイズと見なす点を除いて、図１５の処理の内容は図６の処理の内容とほぼ同様である。
【０１３４】
コントローラー３４は、イメージスキャナー１７が原稿４０から１ページずつ順に連続的に画像を読み取る過程で、各ページの読取りが開始されるとき（Ｓ２１でＹＥＳ）、現在の画像入力数を取得し（Ｓ２２）、前回取得した画像入力数と比べることによって画像入力数が変化したかどうかをチェックする（Ｓ２３）。ステップＳ２３のチェック結果がＮＯである場合、フローはステップＳ２７へ進む。
【０１３５】
ステップＳ２３のチェック結果がＹＥＳである場合、フローはステップＳ２４へ進み、コントローラー３４は、必要メモリ容量の算出ルーチンを実行する（Ｓ２４）。続いて、コントローラー３４は、入力に利用可能なメモリ領域のメモリ容量（Ｙ）を図８の手順で算出し（Ｓ２５）、図９の手順のメモリ割当てを実行する（Ｓ２６）。その後、コントローラー３４は、イメージスキャナー１７Ａ，１７Ｂの一方または両方が使用されている状態から両方共に使用されていない状態になったかどうかをチェックする（Ｓ２７）。
【０１３６】
ステップＳ２７のチェック結果がＮＯである場合、フローはステップＳ２１へ戻る。ステップＳ２７のチェック結果がＹＥＳである場合、コントローラー３４は図１５の処理の実行を終える。その際、コントローラー３４は、ビットマップメモリ３１および符合メモリ３５のそれぞれに確保されている入力用のメモリ領域を解放して空きメモリ領域とする。
【０１３７】
図１６は図１５の必要メモリ容量の算出ルーチンのフローチャートである。
【０１３８】
コントローラー３４は、イメージスキャナー１７による読取りの解像度、および同じく読取りのカラーモードをメインコントローラー１０から取得する（Ｓ４１、Ｓ４２）。さらに、原稿の態様が混載ではない場合（Ｓ４３でＮＯ）、イメージスキャナー１７による走査が開始されまたは開始されようとしているページの画像サイズを、メインコントローラー１０から取得する（Ｓ５４）。また、原稿の態様が混載である場合（Ｓ４３でＹＥＳ）、コントローラー３４は、原稿を構成する複数の原稿シートのうちの最も大きい原稿シートのサイズ（最大サイズ）を画像サイズに定める（Ｓ４６）。そして、コントローラー３４は、解像度、カラーモードおよび画像サイズに基づいて、必要メモリ容量（Ｘ）を算出する（Ｓ４５）。
【０１３９】
以上の実施形態において、イメージスキャナー１７Ａ，１８が同型である必要はない。イメージスキャナー１７，１７Ｂの一方または両方がカラーの読取りができないものであってもよいし、ＡＤＦを備えていないものであってもよい。
【０１４０】
イメージスキャナー１７Ａ，１７Ｂの個数が３以上である場合にも、本発明を適用することができる。イメージスキャナーの個数に応じて、符合メモリ３５のメモリ容量を例えばメモリモジュールの増設によって増大させることができる。
【０１４１】
画像処理部１３の構成は図２の例示に限らない。例えば、ＡＳＩＣ３０の中に符合メモリ３５を形成してもよい。また、ビットマップメモリ３１をＡＳＩＣ３０の中に形成せずに、ＡＳＩＣ３０を外付けのメモリデバイスの中に設けてもよい。
【０１４２】
コピーとファクシミリ送信とを行なうというように、出力用のメモリ領域を用いる複数の画像読取りジョブを並行して行なうことができる。その場合、符合メモリ３５に出力用の複数のメモリ領域を割り当てた残りのメモリ容量（Ｙ）に応じて、第１のメモリ使用方法または第２のメモリ使用方法を適用して入力用のメモリ領域を割り当てればよい。
【０１４３】
第１のメモリ使用方法を適用した読取りにおいて、符合メモリ３５から画像データＤ２をストレージ１４へ転送する際に、画像データＤ２を格納しているメモリ領域に加えて新たに１つのメモリ領域を確保するようにしてもよい。これにより、ストレージ１４への読出しと符合メモリ３５への書込みとを並行して行なってパフォーマンスを高めることができる。
【符号の説明】
【０１４４】
１    ＭＦＰ（画像処理装置）
１７Ａ，１７Ｂ    イメージスキャナー（入力手段）
１９    プリンターエンジン（出力手段）
１５    通信インタフェース（出力手段）
Ｄ１    画像データ（非圧縮画像データ）
Ｄ２    画像データ（圧縮データ）
３２    圧縮・伸張回路（圧縮手段、伸張手段）
３５    符合メモリ（揮発性のメモリ）
６０    メモリ領域（第１の領域）
８０    メモリ領域（第２の領域）
９１，９３    メモリ領域（第３の領域）
３４４    メモリ割当て部（モード設定手段、領域確保手段）
１４    ストレージ
３３    ＤＭＡ転送回路（第１の転送手段、第２の転送手段）
【図１】
2015177260.tif 000003
【図２】
2015177260.tif 000004
【図３】
2015177260.tif 000005
【図４】
2015177260.tif 000006
【図５】
2015177260.tif 000007
【図６】
2015177260.tif 000008
【図７】
2015177260.tif 000009
【図８】
2015177260.tif 000010
【図９】
2015177260.tif 000011
【図１０】
2015177260.tif 000012
【図１１】
2015177260.tif 000013
【図１２】
2015177260.tif 000014
【図１３】
2015177260.tif 000015
【図１４】
2015177260.tif 000016
【図１５】
2015177260.tif 000017
【図１６】
2015177260.tif 000018