(57)【特許請求の範囲】
【請求項１】
着脱可能な記憶装置と接続するためのインターフェース手段と、
前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶する第１バッファ領域を含む記憶手段と、
前記第１バッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置へ転送する転送手段と、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定手段と、
前記特定手段が特定した前記着脱可能な記憶装置の書き込み能力に基づいて前記記憶手段の前記第１バッファ領域のサイズを決定する第１決定手段と、を備え、
前記転送手段が前記着脱可能な記憶装置へ前記画像データを転送したことに対して前記着脱可能な記憶装置が更なる画像データの受信を行なうことができないことを示す応答を行なった場合に、前記転送手段は前記着脱可能な記憶装置への前記画像データの転送速度を低下させ、前記第１決定手段は前記第１バッファ領域のサイズをより大きいサイズとなるよう決定することを特徴とする画像処理装置。
【請求項２】
前記記憶装置の書き込み能力は前記着脱可能な記憶装置の書き込み速度であり、
前記着脱可能な記憶装置への書き込み速度が前記第１バッファ領域へ画像データが書き込まれる速度よりも遅い場合、前記第１決定手段は前記着脱可能な記憶装置への書き込み速度が前記第１バッファ領域へ画像データが書き込まれる速度よりも早い場合よりも大きくなるよう前記第１バッファ領域のサイズを決定することを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
原稿を読み取って画像データを生成する読み取り手段を更に備え、
前記第１決定手段は、前記着脱可能な記憶装置への書き込み速度が前記第１バッファ領域へ画像データが書き込まれる速度よりも早い場合、前記読み取り手段における原稿読み取りに関する設定に基づいて前記第１バッファ領域のサイズを決定することを特徴とする、請求項２に記載の画像処理装置。
【請求項４】
原稿を読み取って画像データを生成する読み取り手段を更に備え、
前記記憶手段は、前記読み取り手段が生成した画像データを記憶するための第２バッファ領域を更に含み、
前記第２バッファ領域のサイズを決定する第２決定手段を更に備えることを特徴とする、請求項１に記載の画像処理装置。
【請求項５】
前記第１決定手段が決定したサイズの前記第１バッファ領域と、前記第２決定手段が決定したサイズの前記第２バッファ領域とを前記記憶手段に確保することができない場合、前記読み取り手段による原稿読み取り動作を中断するよう制御する制御手段を更に備えることを特徴とする、請求項４に記載の画像処理装置。
【請求項６】
着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶するバッファ領域を含む記憶手段とを備える画像処理装置の制御方法であって、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定工程と、
前記特定工程で特定された前記着脱可能な記憶装置の書き込み能力に基づいて、前記記憶手段の前記バッファ領域のサイズを決定する決定工程と、
前記決定工程で決定されたサイズのバッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送工程と、を有し、
前記転送工程において前記画像データが前記着脱可能な記憶装置へ転送されたことに対して前記着脱可能な記憶装置が更なる画像データの受信を行なうことができないことを示す応答を行なった場合に、前記転送工程における前記着脱可能な記憶装置への前記画像データの転送速度を低下させ、前記決定工程において決定された前記バッファ領域のサイズをより大きいサイズとなるよう変更することを特徴とする制御方法。
【請求項７】
着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶するバッファ領域を含む記憶手段とを備える画像処理装置に制御方法を実行させるための制御プログラムであって、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定ステップと、
前記特定ステップで特定された前記着脱可能な記憶装置の書き込み能力に基づいて、前記記憶手段の前記バッファ領域のサイズを決定する決定ステップと、
前記決定ステップで決定されたサイズのバッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送ステップと、を有し、
前記転送ステップにおいて前記画像データが前記着脱可能な記憶装置へ転送されたことに対して前記着脱可能な記憶装置が更なる画像データの受信を行なうことができないことを示す応答を行なった場合に、前記転送ステップにおける前記着脱可能な記憶装置への前記画像データの転送速度を低下させ、前記決定ステップにおいて決定された前記バッファ領域のサイズをより大きいサイズとなるよう変更することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は外部記憶装置を接続可能な画像処理装置に関する。
【背景技術】
【０００２】
近年ＵＳＢメモリやメモリカード等、着脱可能な外部記憶装置が多品種にわたり市場に供給されている。そして、このような着脱可能な外部記憶媒体を接続可能な画像処理装置が提案されている（例えば、特許参考文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２８５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、これらの外部記憶装置は製品によって性能、例えば書き込み速度のばらつきが大きい。
【０００５】
例えば、画像処理装置が原稿をスキャンして生成した画像データをＵＳＢメモリのような外部記憶媒体へ格納する場合を考える。画像データをＵＳＢメモリへ書き込むためには画像処理装置のメインメモリ内にバッファ領域を確保する必要がある。上述のように、ＵＳＢメモリの書き込み速度のばらつきが大きいと、装着したＵＳＢメモリの種類によって確保すべきバッファ領域のサイズも変動する。そこでＵＳＢメモリの書き込み速度のばらつきを考慮して予め十分な容量の書き込みバッファをメインメモリ内に確保することも考えられる。しかし、そうしてしまうと同じくメインメモリ内に確保するプログラム実行のための領域やワーク領域の容量が小さくなり、画像処理装置のパフォーマンスが低下する。またメインメモリ自体の容量を大きくすることも考えられるが、画像処理装置のコストが高くなる。
【０００６】
本発明は、装着された外部記憶装置の書き込み速度（転送速度）に応じて適切なバッファサイズを確保することのできる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記課題を鑑みてなされたものであり、本発明の画像処理装置は、着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶する第１バッファ領域を含む記憶手段と、前記第１バッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置へ転送する転送手段と、前記着脱可能な記憶装置の書き込みに関する能力を特定する特定手段と、前記特定手段が特定した前記着脱可能な記憶装置の書き込み能力に基づいて前記記憶手段の前記第１バッファ領域のサイズを決定する第１決定手段と、を備え、前記転送手段が前記着脱可能な記憶装置へ前記画像データを転送したことに対して前記着脱可能な記憶装置が更なる画像データの受信を行なうことができないことを示す応答を行なった場合に、前記転送手段は前記着脱可能な記憶装置への前記画像データの転送速度を低下させ、前記第１決定手段は前記第１バッファ領域のサイズをより大きいサイズとなるよう決定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、接続された外部記憶装置の書き込み速度に応じて適切なサイズのバッファ領域を確保することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の画像処理装置におけるハードウェア構成の一例を示すブロック図である。
【図２】本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをＵＳＢメモリへ格納する処理の一例を示すフローチャートである。
【図３】本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをＵＳＢメモリへ格納する処理の一例を示すフローチャートである（図２の続き）。
【図４】本実施形態の画像処理装置における、バッファ容量決定処理の一例を示すフローチャートである。
【図５】本実施形態の画像処理装置における、ＵＳＢメモリの速度計測処理の一例を示すフローチャートである。
【図６】本実施形態におけるＤＲＡＭのメモリマップの一例を示す図である。
【図７】本実施形態における外部デバイスＩ／Ｆ部とＵＳＢメモリ間のＢＵＬＫ通信の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
＜画像処理装置の構成＞
図１は本実施形態における画像処理装置のハードウェア構成の一例を示すブロック図である。本実施形態の画像処理装置４０は、原稿を読み取る読み取り部４０６とプリンタ部４０５とを備える複合画像形成装置である。
【００１２】
制御部４０１は、ＣＰＵ４００を備える。ＣＰＵ４００は、ＦＬＡＳＨ  ＲＯＭ４０３に記憶されているプログラムをＤＲＡＭ４０２へロードして実行することで画像処理装置４０全体を制御する。ＤＲＡＭ４０２は画像処理装置４０のプログラムをロードする領域や、画像データを一時的に記憶しておく領域や、後述するバッファ領域として用いられる。ＦＬＡＳＨ  ＲＯＭ４０３は画像処理装置４０の動作パラメータ、あるいはＣＰＵ４００が実行するプログラム等を格納する。電源部４０４は画像処理装置４０の各部に電力を供給する。プリンタ部４０５は、制御部４０１により転送される画像データを印刷出力する。
【００１３】
読み取り部４０６は制御部４０１の制御の下、原稿を読み取って画像データを生成し制御部４０１へ出力する。ネットワークＩ／Ｆ部４０７はＬＡＮ４５０とのインターフェースである。操作表示部４０８はユーザからの操作入力を制御部４０１へ出力する。操作表示部４０８は表示部４０９を備え、操作画面を表示する。外部デバイスＩ／Ｆ４１０は、外部デバイスとのインターフェースであり、外部記憶装置の接続を検出し、外部記憶装置に電源供給したり、データ通信を行う。本実施形態では、外部デバイスＩ／Ｆ４１０はＵＳＢインターフェースであるものとする。また、外部デバイスＩ／Ｆ４１０は他の種類のインターフェース、たとえばＩＥＥＥ１３９４等のインターフェースであってもよい。ＵＳＢメモリ４１１は外部記憶装置の一例であり、外部デバイスＩ／Ｆ部４１０を介して画像処理装置４０と接続する。外部デバイスＩ／Ｆ４１０には、ＵＳＢメモリ４１１以外のＵＳＢデバイスを接続することも可能である。
【００１４】
次に、画像処理装置４０が原稿を読み取って生成した画像データをＵＳＢメモリ４１１へ格納する処理について説明する。
【００１５】
＜ＤＲＡＭ４０２のメモリマップ＞
ＤＲＡＭ４０２の内部に確保される領域について説明する。
【００１６】
図６は、本実施形態におけるＤＲＡＭのメモリマップの一例を示す図である。
【００１７】
プログラム領域５０１はＣＰＵ４００画像処理装置４０を制御するために実行するプログラムをロードするための領域である。画像処理装置４０の電源が投入された後、ＦＬＡＳＨ  ＲＯＭ４０３から読み出されたプログラムがこの領域に格納される。ワーク領域５０２は、ＣＰＵ４００が画像データに対して画像処理する際に一時的に画像データを格納するために用いる領域である。第２バッファ領域の一例であるスキャンバッファ領域５０３は、読み取り部４０６から出力された画像データを制御部４０１へ転送するために一時的に画像データを格納する領域である。第１バッファ領域の一例である蓄積用バッファ領域５０４は、スキャンバッファ領域５０３から制御部４０１へ転送され、制御部４０１内でエンコードされた画像データを一時的に格納する。蓄積用バッファ領域５０４から読み出されたエンコード済み画像データは外部デバイスＩ／Ｆ４１０を介してＵＳＢメモリ４１１へ転送される。ＵＳＢメモリ４１１は、外部デバイスＩ／Ｆ４１０から転送されたエンコード済み画像データを格納する。なお、本実施形態では画像データのエンコード方法としてＪＰＥＧ圧縮を用いるものとする。転送用画像バッファ領域５０５は、ＵＳＢメモリ内に蓄積された画像データをネットワークＩ／Ｆ部４０７を介して、外部へ送信する処理を実行する場合のための転送用画像バッファ領域である。
【００１８】
＜原稿画像をスキャンしてＵＳＢメモリへ書き込む処理＞
図２、図３は、本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをＵＳＢメモリへ格納する処理の一例を示すフローチャートである。本フローチャートは画像処理装置４０のＣＰＵ４００がＦＬＡＳＨ  ＲＯＭ４０３に格納されたプログラムを実行することで実現する。
【００１９】
ステップＳ１０１において、ＵＳＢメモリ４１１が外部デバイスＩ／Ｆ４１０に接続されたか否かを判断する。検出された場合には、Ｓ１０２へ進み、接続されたＵＳＢメモリ４１１の書き込み速度を計測する。この計測処理の詳細については図５のフローチャートで詳述する。
【００２０】
次に、ステップＳ１０３へ進み、操作表示部４０８を介して画像処理装置４０のユーザからの画像読み取りに関する各種の設定（解像度、読み取りモード等）を受け付ける。そして、ステップＳ１０４へ進み、ＤＲＡＭ４０２内に確保すべきバッファ容量を決定する。このバッファ容量の決定処理の詳細については図４のフローチャートで詳述する。
【００２１】
バッファ容量が決定されたらステップＳ１０５へ進み、スキャンバッファ領域５０３、蓄積用画像バッファ領域５０４が許容最大サイズ以下であるか否かを制御部４０１が判定する。許容最大サイズとは、ＤＲＡＭ４０２の容量から他の用途のために既に確保されている領域やワーク領域５０２を引いた残りの領域を、蓄積用画像バッファ５０４とスキャンバッファ領域５０３に振り分けた領域の各サイズである。本実施形態では原稿を読み取って生成した画像データはＪＰＥＧエンコード処理により圧縮する。例えば圧縮後の画像データのサイズは圧縮前の画像データの１／１０のサイズになると仮定すると、蓄積用画像バッファ領域５０４は、読み取り画像バッファ領域の１／１０となるよう割り当てられる。よって、残領域のサイズの１０／１１がスキャンバッファ領域５０３に対する許容最大サイズとなり、残領域のサイズの１／１１が蓄積用画像バッファ領域５０４に対する許容最大サイズとなる。スキャンバッファ領域５０３、蓄積用画像バッファ領域５０４の少なくともいずれかが許容最大サイズを越えている場合には、ステップＳ１０６へ進む。この場合は、装着されたＵＳＢメモリへの書き込み速度とＪＰＥＧ圧縮された画像データが蓄積用画像バッファ領域５０４へ蓄積されていく速度との比較から、原稿の読み取り動作を停止することなしに１ページの原稿画像を読み取ることができない。ステップＳ１０６では、操作表示部４０８内の表示部４０９に警告を表示して本フローチャートを終了する。
【００２２】
一方、スキャンバッファ領域５０３、蓄積用画像バッファ領域５０４のいずれも許容最大サイズを越えていない場合には、ステップＳ１０７へ進み原稿の読み取り動作を開始する。そして、ステップＳ１０８にて、スキャンバッファ領域５０３内の残容量が所定の第１の最小値以上であるか否かを制御部４０１が判定する。第１の最小値としては、スキャンバッファ領域５０３の残容量がそれ以上小さくなるとバッファオーバーフローが発生して原稿画像の読み取りを正常に行うことができなくなってしまうサイズが設定される。残容量が最小値以上あればステップＳ１０９へ進み、そうでなければステップＳ１１０へ進む。ステップＳ１０９では、蓄積用画像バッファ領域５０４の残容量が所定の第２の最小値以上であるかを制御部４０１が判定する。第２の最小値としては、蓄積用画像バッファ領域５０４の残容量がそれ以上小さくなるとバッファオーバーフローが発生して原稿画像の読み取りを正常に行うことができなくなってしまうサイズが設定される。残容量が最小値以上あればステップＳ１１２へ進む。そうでなければ読み取り動作に支障があるものと判断し、ステップＳ１１０へ進む。
【００２３】
次にＳ１１２において、画像データを蓄積用画像バッファ領域５０４からＵＳＢメモリ４１１へ転送している間に、特定のコマンド、即ち“ＮＡＫ”、“ＮＹＥＴ”の受信回数（発生回数）が所定回数以下であるか否かを制御部４０１が判定する。“ＮＡＫ”、“ＮＹＥＴ”が発生する、即ちハンドシェークが多いということはＵＳＢメモリへの画像データの転送レート（転送速度）が高すぎるということを示している。
【００２４】
ここで、外部デバイスＩ／Ｆ部４１０からＵＳＢメモリ４１１へデータを書き込む場合の手順について説明する。
【００２５】
図７は、本実施形態における外部デバイスＩ／Ｆ部とＵＳＢメモリ間のＢＵＬＫ通信の一例を示す図である。図中左側は外部デバイスＩ／Ｆ部４１０であり、右側はＵＳＢメモリ４１１である。
【００２６】
外部デバイスＩ／Ｆ部４１０からＵＳＢメモリ４１１へ画像データを転送する場合、外部デバイスＩ／Ｆ部４１０からＵＳＢメモリ４１１へ“ＯＵＴ  Ｔｏｋｅｎ”を出力する（６０１）。次に外部デバイスＩ／Ｆ部４１０はＵＳＢメモリ４１１へ“ＤＡＴＡ”を出力する（６０２）。本実施形態の場合、“ＤＡＴＡ”としては、原稿を読み取ってＪＰＥＧ圧縮された画像データが相当する。“ＤＡＴＡ”を受信したＵＳＢメモリ４１１は、更なる“ＤＡＴＡ”を受信不可能の場合には、“ＮＹＥＴ”を外部デバイスＩ／Ｆ部４１０へ送信する（６０３）。“ＮＹＥＴ”を受信した外部デバイスＩ／Ｆ部４１０は、ＵＳＢメモリ４１１の状態を問い合わせるコマンドである“ＰＩＮＧ”を送信する（６０４）。ＵＳＢメモリ４１１は、更なる“ＤＡＴＡ”を受信できなければ外部デバイスＩ／Ｆ部４１０に対して“ＮＡＫ”を送信する（６０５）。“ＮＡＫ”を受信した外部デバイスＩ／Ｆ部４１０はＵＳＢメモリ４１１に対して再度“ＰＩＮＧ”を送信する（６０６）。ＵＳＢメモリ４１１は次の“ＤＡＴＡ”が受信可能であれば、外部デバイスＩ／Ｆ部４１０に対して“ＡＣＫ”を返答する（６０７）。“ＡＣＫ”を受信した外部デバイスＩ／Ｆ部４１０は次のデータ送信のために“ＯＵＴ  Ｔｏｋｅｎ”を送信した（６０８）後、“ＤＡＴＡ”を送信する（６０９）。ＵＳＢメモリ４１１は“ＤＡＴＡ”を受信し、更なる“ＤＡＴＡ”を受信することが可能であれば外部デバイスＩ／Ｆ部４１０に対して“ＡＣＫ”を送信する。
【００２７】
以上のような手順例に従って画像データは外部デバイスＩ／Ｆ部４１０から、ＵＳＢメモリ４１１に転送される。
【００２８】
図３のフローチャートに戻る。Ｓ１１２にて“ＮＡＫ”、“ＮＹＥＴ”の受信回数（発生回数）が所定回数以上であると判定した場合は、外部デバイスＩ／Ｆ部４１０とＵＳＢメモリ４１１間のデータ転送レートが高すぎるということを示している。この場合、ステップＳ１１３へ進み、確保すべき蓄積用画像バッファ領域５０４のサイズを変更する。具体的には、確保すべき蓄積用画像バッファ領域５０４のサイズを拡大する。そして外部デバイスＩ／Ｆ部４１０からＵＳＢメモリ４１１へのデータ転送レートを低下させる。本実施形態では、拡大するサイズはＵＳＢメモリ４１１へのデータ転送サイズ（８，１６，３２，６４バイトまたは、５１２バイト）の整数倍とする。そして、外部デバイスＩ／Ｆ部４１０の転送レートを低下させたことによってＵＳＢメモリ４１１へのデータの書き込み速度が低下するので、ステップＳ１０９での判定に用いる所定値を変更する。具体的にはより小さい値に変更する。次に、ステップＳ１１４へ進み、変更された蓄積用画像バッファ領域５０４のサイズが許容最大バッファサイズ以下であるか否かを制御部４０１が判定する。もし、ステップＳ１１３で変更した蓄積用画像バッファ領域５０４のサイズが許容最大バッファサイズより大きければ、ステップＳ１１０へ進み、そうでなければステップＳ１１５へすすむ。ステップＳ１１５では、原稿１ページの読み取りが終了したか否かを制御部４０１が確認する。原稿１ページの読み取りが終了し邸内と判定した場合にはステップＳ１０７へ戻り、次の原稿の読み取りを行う。原稿１ページの読み取りが終了したと判断した場合、ステップＳ１１６へ進み、１ページ内での蓄積用画像バッファ領域５０４のサイズ変更があったか否かを判定する。サイズ変更があったと判定した場合、ステップＳ１１７へ進み、ページ間で原稿読み取りを一時停止する。この結果、蓄積用画像バッファ領域５０４内の全画像データをＵＳＢメモリ４１１に転送し、蓄積用画像バッファ領域５０４をクリアにする。その後、ステップＳ１１８へ進み、全ページの原稿読み取りが終了したか否かを判定する。終了したと判定した場合には本フローチャートを終了する。終了していないと判定した場合にはステップＳ１０７に戻って次の原稿の読み取りを行う。
【００２９】
ステップＳ１１０では原稿の読み取りを中止し、ステップＳ１１１に進み、表示部４０９に原稿の読み取りが中断した旨を示す警告表示を行う。なお、ステップＳ１１０にて読み取り中断後、バッファ領域が空くのを待ち、その後、動作を再開することも可能である。このようにすることにより、生産性は低下するものの原稿読み取り処理を完遂することが可能となる。
【００３０】
図２、図３のフローチャートによれば、“ＮＡＫ”、“ＮＹＥＴ”の発生回数を検出することによって、ＵＳＢメモリ４１１の状態に応じた最適な転送速度に変更することが可能となる。
【００３１】
上記のバッファ制御を行いながら、読み取り部４０６が読み取った原稿の画像データはＵＳＢメモリ４１１に格納される。更に、ＵＳＢメモリ４１１をバッファとして用い、画像データをＬＡＮ４５０を介して接続されたＰＣ（不図示）に転送することもできる。この場合、ＵＳＢメモリ４１１から読み出された画像データは、外部デバイスＩ／Ｆ部４１０を介してＤＲＡＭ４０２内に確保された転送用画像バッファ領域５０５に転送される。そして、制御部４０１は転送用画像バッファ領域５０５から読み出した画像データをネットワークＩ／Ｆ部４０７へと転送し、ＬＡＮ４５０を介して不図示のＰＣへ画像を送信する。
【００３２】
次に、図２のステップＳ１０２の処理である、ＵＳＢメモリの速度計測処理の詳細について説明する。
【００３３】
図５は、本実施形態の画像処理装置における、ＵＳＢメモリの速度計測処理の一例を示すフローチャートである。
【００３４】
ステップＳ３０１にてＵＳＢメモリ４１１の残容量を検出する。そして、ステップＳ３０２にて、残容量からＵＳＢメモリ４１１の速度計測のために用いるテストデータのデータ量（サイズ）を決定する。そしてステップＳ３０３にて、ＵＳＢメモリ４１１に対してテストデータの書き込みを開始する。そして、ステップＳ３０４書き込み速度計測のために制御部４０１は時間測定を開始する。ステップＳ３０５にて、テストデータの書き込みが終了したか否かを判定する。書き込みが終了したと判定したらステップＳ３０６へ進む。そして、ステップＳ３０６にて、制御部４０１はテストデータのライト時間の計測を終了する。
【００３５】
次にステップＳ３０７にて、ＵＳＢメモリ４１１に書き込んだテストデータの読み出しを開始し、Ｓ３０８にて制御部４０１は時間測定を開始する。ステップＳ３０９にて、テストデータ読み出しが完了したか否かを判定する。読み出しが完了したと判定したら、ステップＳ３１０へ進み、読み出し時間測定を終了する。
【００３６】
そして、ステップＳ３１１にて、制御部４０１はテストデータのデータ量と測定した書き込み時間とから書き込み速度を算出する。更に、ステップＳ３１１では、制御部４０１はテストデータのデータ量と測定した読み出し時間とから読み出し速度を算出する。そして本フローチャートを終了する。
【００３７】
なお、図５のフローチャートでは、ＵＳＢメモリ４１１の能力として書き込み速度と読み出し速度の両方を算出したが、例えば、書き込み速度だけを算出するようにしてもよい。その場合、ステップＳ３０７〜Ｓ３１０の処理を行わずに、ＵＳＢメモリ４１１に書き込んだテストデータを削除するようにすればよい。
【００３８】
次に、図２のステップＳ１０４の処理である、バッファ容量決定処理の詳細について説明する。
【００３９】
図４は、本実施形態の画像処理装置における、バッファ容量決定処理の一例を示すフローチャートである。
【００４０】
まず、ステップＳ２０１では、ステップＳ１０３で設定された画像読み取りの設定に従い、スキャンバッファ領域５０３を確保する。そして、ステップＳ２０２において、Ｓ１０２にて測定したＵＳＢメモリの速度（書き込み速度）と、スキャンバッファ領域５０３から蓄積用画像バッファ領域５０４へ転送されるＪＰＥＧエンコード後の画像データ転送速度を比較する。ここで、ＵＳＢメモリの速度が速い場合（ステップＳ２０２でＹＥＳ）、ステップＳ２０３へ進み、ＤＲＡＭ４０２から蓄積用画像バッファ領域５０４の領域として画像１ページ分のサイズを確保する。画像１ページ分のサイズとしては、読み取り部４０６における原稿読み取りに関する設定に基づいて予測されるＪＰＥＧエンコード後の画像データ１ページ分データが少なくとも記憶できるサイズとする。一方、ＵＳＢメモリの速度が遅い場合（ステップＳ２０２でＮＯ）には、Ｓ２０４へ進み、蓄積用画像バッファ領域５０４の領域として、｛（蓄積用画像バッファ入力速度／ＵＳＢメモリ速度）＊画像１ページ分｝から算出されるサイズを確保する。ここで、蓄積用画像バッファ入力速度は蓄積用画像バッファ領域５０４にＪＰＥＧエンコードされた画像データが書き込まれる速度である。本実施形態では、この速度はＪＰＥＧエンコードされた画像データが蓄積用画像バッファ領域５０４へ転送される速度と等しいものとする。
【００４１】
以上、本実施形態の画像処理装置によれば、装着されたＵＳＢメモリの書き込み速度に応じて最適なサイズのバッファ領域を確保することが可能になる。
【００４２】
なお、本実施形態では、外部記憶装置としてＵＳＢメモリを例にあげて説明したが、外部記憶装置としては他の着脱可能な記憶媒体、例えば、各種のメモリカードであっても構わない。この場合、画像処理装置４０には外部デバイスＩ／Ｆ４１０の代わりにメモリカードリーダライタが設けられ、メモリカードリーダライタにメモリカードが装着される。
【００４３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（制御プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００４４】
４０  画像形成装置
４０２  ＤＲＡＭ
４０６  読取り部
４１０  外部デバイスＩ／Ｆ部
４１１  ＵＳＢメモリ
５０３  スキャンバッファ領域
５０４  蓄積用画像バッファ領域
【図１】
0005483946.tif 000002
【図２】
0005483946.tif 000003
【図３】
0005483946.tif 000004
【図４】
0005483946.tif 000005
【図５】
0005483946.tif 000006
【図６】
0005483946.tif 000007
【図７】
0005483946.tif 000008