説明

画像処理装置、画像処理装置の制御方法、及びプログラム

【課題】 USBメモリ等の外部記憶装置を接続することが可能な画像処理装置において、接続された外部記憶装置によって書き込み速度が異なり、前記画像形成装置内の画像転送用バッファ領域を適切に確保できなかった。
【解決手段】 装着されたUSBメモリ411の書き込み速度を計測した結果に基づいて、適切なサイズの蓄積用バッファ領域504をDRAM402中に確保する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は外部記憶装置を接続可能な画像処理装置に関する。
【背景技術】
【0002】
近年USBメモリやメモリカード等、着脱可能な外部記憶装置が多品種にわたり市場に供給されている。そして、このような着脱可能な外部記憶媒体を接続可能な画像処理装置が提案されている(例えば、特許参考文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−28556号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、これらの外部記憶装置は製品によって性能、例えば書き込み速度のばらつきが大きい。
【0005】
例えば、画像処理装置が原稿をスキャンして生成した画像データをUSBメモリのような外部記憶媒体へ格納する場合を考える。画像データをUSBメモリへ書き込むためには画像処理装置のメインメモリ内にバッファ領域を確保する必要がある。上述のように、USBメモリの書き込み速度のばらつきが大きいと、装着したUSBメモリの種類によって確保すべきバッファ領域のサイズも変動する。そこでUSBメモリの書き込み速度のばらつきを考慮して予め十分な容量の書き込みバッファをメインメモリ内に確保することも考えられる。しかし、そうしてしまうと同じくメインメモリ内に確保するプログラム実行のための領域やワーク領域の容量が小さくなり、画像処理装置のパフォーマンスが低下する。またメインメモリ自体の容量を大きくすることも考えられるが、画像処理装置のコストが高くなる。
【0006】
本発明は、装着された外部記憶装置の書き込み速度(転送速度)に応じて適切なバッファサイズを確保することのできる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は上記課題を鑑みてなされたものであり、本発明の画像処理装置は、着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶する第1バッファ領域を含む記憶手段と、前記第1バッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送手段と、前記着脱可能な記憶装置の書き込みに関する能力を特定する特定手段と、前記特定手段が特定した前記記憶装置の書き込み能力に基づいて前記記憶手段の前記第1バッファ領域のサイズを決定する第1決定手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、接続された外部記憶装置の書き込み速度に応じて適切なサイズのバッファ領域を確保することが可能になる。
【図面の簡単な説明】
【0009】
【図1】本実施形態の画像処理装置におけるハードウェア構成の一例を示すブロック図である。
【図2】本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをUSBメモリへ格納する処理の一例を示すフローチャートである。
【図3】本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをUSBメモリへ格納する処理の一例を示すフローチャートである(図2の続き)。
【図4】本実施形態の画像処理装置における、バッファ容量決定処理の一例を示すフローチャートである。
【図5】本実施形態の画像処理装置における、USBメモリの速度計測処理の一例を示すフローチャートである。
【図6】本実施形態におけるDRAMのメモリマップの一例を示す図である。
【図7】本実施形態における外部デバイスI/F部とUSBメモリ間のBULK通信の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0011】
<画像処理装置の構成>
図1は本実施形態における画像処理装置のハードウェア構成の一例を示すブロック図である。本実施形態の画像処理装置40は、原稿を読み取る読み取り部406とプリンタ部405とを備える複合画像形成装置である。
【0012】
制御部401は、CPU400を備える。CPU400は、FLASH ROM403に記憶されているプログラムをDRAM402へロードして実行することで画像処理装置40全体を制御する。DRAM402は画像処理装置40のプログラムをロードする領域や、画像データを一時的に記憶しておく領域や、後述するバッファ領域として用いられる。FLASH ROM403は画像処理装置40の動作パラメータ、あるいはCPU400が実行するプログラム等を格納する。電源部404は画像処理装置40の各部に電力を供給する。プリンタ部405は、制御部401により転送される画像データを印刷出力する。
【0013】
読み取り部406は制御部401の制御の下、原稿を読み取って画像データを生成し制御部401へ出力する。ネットワークI/F部407はLAN450とのインターフェースである。操作表示部408はユーザからの操作入力を制御部401へ出力する。操作表示部408は表示部409を備え、操作画面を表示する。外部デバイスI/F410は、外部デバイスとのインターフェースであり、外部記憶装置の接続を検出し、外部記憶装置に電源供給したり、データ通信を行う。本実施形態では、外部デバイスI/F410はUSBインターフェースであるものとする。また、外部デバイスI/F410は他の種類のインターフェース、たとえばIEEE1394等のインターフェースであってもよい。USBメモリ411は外部記憶装置の一例であり、外部デバイスI/F部410を介して画像処理装置40と接続する。外部デバイスI/F410には、USBメモリ411以外のUSBデバイスを接続することも可能である。
【0014】
次に、画像処理装置40が原稿を読み取って生成した画像データをUSBメモリ411へ格納する処理について説明する。
【0015】
<DRAM402のメモリマップ>
DRAM402の内部に確保される領域について説明する。
【0016】
図6は、本実施形態におけるDRAMのメモリマップの一例を示す図である。
【0017】
プログラム領域501はCPU400画像処理装置40を制御するために実行するプログラムをロードするための領域である。画像処理装置40の電源が投入された後、FLASH ROM403から読み出されたプログラムがこの領域に格納される。ワーク領域502は、CPU400が画像データに対して画像処理する際に一時的に画像データを格納するために用いる領域である。第2バッファ領域の一例であるスキャンバッファ領域503は、読み取り部406から出力された画像データを制御部401へ転送するために一時的に画像データを格納する領域である。第1バッファ領域の一例である蓄積用バッファ領域504は、スキャンバッファ領域503から制御部401へ転送され、制御部401内でエンコードされた画像データを一時的に格納する。蓄積用バッファ領域504から読み出されたエンコード済み画像データは外部デバイスI/F410を介してUSBメモリ411へ転送される。USBメモリ411は、外部デバイスI/F410から転送されたエンコード済み画像データを格納する。なお、本実施形態では画像データのエンコード方法としてJPEG圧縮を用いるものとする。転送用画像バッファ領域505は、USBメモリ内に蓄積された画像データをネットワークI/F部407を介して、外部へ送信する処理を実行する場合のための転送用画像バッファ領域である。
【0018】
<原稿画像をスキャンしてUSBメモリへ書き込む処理>
図2、図3は、本実施形態の画像処理装置における、原稿画像を読み取って生成した画像データをUSBメモリへ格納する処理の一例を示すフローチャートである。本フローチャートは画像処理装置40のCPU400がFLASH ROM403に格納されたプログラムを実行することで実現する。
【0019】
ステップS101において、USBメモリ411が外部デバイスI/F410に接続されたか否かを判断する。検出された場合には、S102へ進み、接続されたUSBメモリ411の書き込み速度を計測する。この計測処理の詳細については図5のフローチャートで詳述する。
【0020】
次に、ステップS103へ進み、操作表示部408を介して画像処理装置40のユーザからの画像読み取りに関する各種の設定(解像度、読み取りモード等)を受け付ける。そして、ステップS104へ進み、DRAM402内に確保すべきバッファ容量を決定する。このバッファ容量の決定処理の詳細については図4のフローチャートで詳述する。
【0021】
バッファ容量が決定されたらステップS105へ進み、スキャンバッファ領域503、蓄積用画像バッファ領域504が許容最大サイズ以下であるか否かを制御部401が判定する。許容最大サイズとは、DRAM402の容量から他の用途のために既に確保されている領域やワーク領域502を引いた残りの領域を、蓄積用画像バッファ504とスキャンバッファ領域503に振り分けた領域の各サイズである。本実施形態では原稿を読み取って生成した画像データはJPEGエンコード処理により圧縮する。例えば圧縮後の画像データのサイズは圧縮前の画像データの1/10のサイズになると仮定すると、蓄積用画像バッファ領域504は、読み取り画像バッファ領域の1/10となるよう割り当てられる。よって、残領域のサイズの10/11がスキャンバッファ領域503に対する許容最大サイズとなり、残領域のサイズの1/11が蓄積用画像バッファ領域504に対する許容最大サイズとなる。スキャンバッファ領域503、蓄積用画像バッファ領域504の少なくともいずれかが許容最大サイズを越えている場合には、ステップS106へ進む。この場合は、装着されたUSBメモリへの書き込み速度とJPEG圧縮された画像データが蓄積用画像バッファ領域504へ蓄積されていく速度との比較から、原稿の読み取り動作を停止することなしに1ページの原稿画像を読み取ることができない。ステップS106では、操作表示部408内の表示部409に警告を表示して本フローチャートを終了する。
【0022】
一方、スキャンバッファ領域503、蓄積用画像バッファ領域504のいずれも許容最大サイズを越えていない場合には、ステップS107へ進み原稿の読み取り動作を開始する。そして、ステップS108にて、スキャンバッファ領域503内の残容量が所定の第1の最小値以上であるか否かを制御部401が判定する。第1の最小値としては、スキャンバッファ領域503の残容量がそれ以上小さくなるとバッファオーバーフローが発生して原稿画像の読み取りを正常に行うことができなくなってしまうサイズが設定される。残容量が最小値以上あればステップS109へ進み、そうでなければステップS110へ進む。ステップS109では、蓄積用画像バッファ領域504の残容量が所定の第2の最小値以上であるかを制御部401が判定する。第2の最小値としては、蓄積用画像バッファ領域504の残容量がそれ以上小さくなるとバッファオーバーフローが発生して原稿画像の読み取りを正常に行うことができなくなってしまうサイズが設定される。残容量が最小値以上あればステップS112へ進む。そうでなければ読み取り動作に支障があるものと判断し、ステップS110へ進む。
【0023】
次にS112において、画像データを蓄積用画像バッファ領域504からUSBメモリ411へ転送している間に、特定のコマンド、即ち“NAK”、“NYET”の受信回数(発生回数)が所定回数以下であるか否かを制御部401が判定する。“NAK”、“NYET”が発生する、即ちハンドシェークが多いということはUSBメモリへの画像データの転送レート(転送速度)が高すぎるということを示している。
【0024】
ここで、外部デバイスI/F部410からUSBメモリ411へデータを書き込む場合の手順について説明する。
【0025】
図7は、本実施形態における外部デバイスI/F部とUSBメモリ間のBULK通信の一例を示す図である。図中左側は外部デバイスI/F部410であり、右側はUSBメモリ411である。
【0026】
外部デバイスI/F部410からUSBメモリ411へ画像データを転送する場合、外部デバイスI/F部410からUSBメモリ411へ“OUT Token”を出力する(601)。次に外部デバイスI/F部410はUSBメモリ411へ“DATA”を出力する(602)。本実施形態の場合、“DATA”としては、原稿を読み取ってJPEG圧縮された画像データが相当する。“DATA”を受信したUSBメモリ411は、更なる“DATA”を受信不可能の場合には、“NYET”を外部デバイスI/F部410へ送信する(603)。“NYET”を受信した外部デバイスI/F部410は、USBメモリ411の状態を問い合わせるコマンドである“PING”を送信する(604)。USBメモリ411は、更なる“DATA”を受信できなければ外部デバイスI/F部410に対して“NAK”を送信する(605)。“NAK”を受信した外部デバイスI/F部410はUSBメモリ411に対して再度“PING”を送信する(606)。USBメモリ411は次の“DATA”が受信可能であれば、外部デバイスI/F部410に対して“ACK”を返答する(607)。“ACK”を受信した外部デバイスI/F部410は次のデータ送信のために“OUT Token”を送信した(608)後、“DATA”を送信する(609)。USBメモリ411は“DATA”を受信し、更なる“DATA”を受信することが可能であれば外部デバイスI/F部410に対して“ACK”を送信する。
【0027】
以上のような手順例に従って画像データは外部デバイスI/F部410から、USBメモリ411に転送される。
【0028】
図3のフローチャートに戻る。S112にて“NAK”、“NYET”の受信回数(発生回数)が所定回数以上であると判定した場合は、外部デバイスI/F部410とUSBメモリ411間のデータ転送レートが高すぎるということを示している。この場合、ステップS113へ進み、確保すべき蓄積用画像バッファ領域504のサイズを変更する。具体的には、確保すべき蓄積用画像バッファ領域504のサイズを拡大する。そして外部デバイスI/F部410からUSBメモリ411へのデータ転送レートを低下させる。本実施形態では、拡大するサイズはUSBメモリ411へのデータ転送サイズ(8,16,32,64バイトまたは、512バイト)の整数倍とする。そして、外部デバイスI/F部410の転送レートを低下させたことによってUSBメモリ411へのデータの書き込み速度が低下するので、ステップS109での判定に用いる所定値を変更する。具体的にはより小さい値に変更する。次に、ステップS114へ進み、変更された蓄積用画像バッファ領域504のサイズが許容最大バッファサイズ以下であるか否かを制御部401が判定する。もし、ステップS113で変更した蓄積用画像バッファ領域504のサイズが許容最大バッファサイズより大きければ、ステップS110へ進み、そうでなければステップS115へすすむ。ステップS115では、原稿1ページの読み取りが終了したか否かを制御部401が確認する。原稿1ページの読み取りが終了し邸内と判定した場合にはステップS107へ戻り、次の原稿の読み取りを行う。原稿1ページの読み取りが終了したと判断した場合、ステップS116へ進み、1ページ内での蓄積用画像バッファ領域504のサイズ変更があったか否かを判定する。サイズ変更があったと判定した場合、ステップS117へ進み、ページ間で原稿読み取りを一時停止する。この結果、蓄積用画像バッファ領域504内の全画像データをUSBメモリ411に転送し、蓄積用画像バッファ領域504をクリアにする。その後、ステップS118へ進み、全ページの原稿読み取りが終了したか否かを判定する。終了したと判定した場合には本フローチャートを終了する。終了していないと判定した場合にはステップS107に戻って次の原稿の読み取りを行う。
【0029】
ステップS110では原稿の読み取りを中止し、ステップS111に進み、表示部409に原稿の読み取りが中断した旨を示す警告表示を行う。なお、ステップS110にて読み取り中断後、バッファ領域が空くのを待ち、その後、動作を再開することも可能である。このようにすることにより、生産性は低下するものの原稿読み取り処理を完遂することが可能となる。
【0030】
図2、図3のフローチャートによれば、“NAK”、“NYET”の発生回数を検出することによって、USBメモリ411の状態に応じた最適な転送速度に変更することが可能となる。
【0031】
上記のバッファ制御を行いながら、読み取り部406が読み取った原稿の画像データはUSBメモリ411に格納される。更に、USBメモリ411をバッファとして用い、画像データをLAN450を介して接続されたPC(不図示)に転送することもできる。この場合、USBメモリ411から読み出された画像データは、外部デバイスI/F部410を介してDRAM402内に確保された転送用画像バッファ領域505に転送される。そして、制御部401は転送用画像バッファ領域505から読み出した画像データをネットワークI/F部407へと転送し、LAN450を介して不図示のPCへ画像を送信する。
【0032】
次に、図2のステップS102の処理である、USBメモリの速度計測処理の詳細について説明する。
【0033】
図5は、本実施形態の画像処理装置における、USBメモリの速度計測処理の一例を示すフローチャートである。
【0034】
ステップS301にてUSBメモリ411の残容量を検出する。そして、ステップS302にて、残容量からUSBメモリ411の速度計測のために用いるテストデータのデータ量(サイズ)を決定する。そしてステップS303にて、USBメモリ411に対してテストデータの書き込みを開始する。そして、ステップS304書き込み速度計測のために制御部401は時間測定を開始する。ステップS305にて、テストデータの書き込みが終了したか否かを判定する。書き込みが終了したと判定したらステップS306へ進む。そして、ステップS306にて、制御部401はテストデータのライト時間の計測を終了する。
【0035】
次にステップS307にて、USBメモリ411に書き込んだテストデータの読み出しを開始し、S308にて制御部401は時間測定を開始する。ステップS309にて、テストデータ読み出しが完了したか否かを判定する。読み出しが完了したと判定したら、ステップS310へ進み、読み出し時間測定を終了する。
【0036】
そして、ステップS311にて、制御部401はテストデータのデータ量と測定した書き込み時間とから書き込み速度を算出する。更に、ステップS311では、制御部401はテストデータのデータ量と測定した読み出し時間とから読み出し速度を算出する。そして本フローチャートを終了する。
【0037】
なお、図5のフローチャートでは、USBメモリ411の能力として書き込み速度と読み出し速度の両方を算出したが、例えば、書き込み速度だけを算出するようにしてもよい。その場合、ステップS307〜S310の処理を行わずに、USBメモリ411に書き込んだテストデータを削除するようにすればよい。
【0038】
次に、図2のステップS104の処理である、バッファ容量決定処理の詳細について説明する。
【0039】
図4は、本実施形態の画像処理装置における、バッファ容量決定処理の一例を示すフローチャートである。
【0040】
まず、ステップS201では、ステップS103で設定された画像読み取りの設定に従い、スキャンバッファ領域503を確保する。そして、ステップS202において、S102にて測定したUSBメモリの速度(書き込み速度)と、スキャンバッファ領域503から蓄積用画像バッファ領域504へ転送されるJPEGエンコード後の画像データ転送速度を比較する。ここで、USBメモリの速度が速い場合(ステップS202でYES)、ステップS203へ進み、DRAM402から蓄積用画像バッファ領域504の領域として画像1ページ分のサイズを確保する。画像1ページ分のサイズとしては、読み取り部406における原稿読み取りに関する設定に基づいて予測されるJPEGエンコード後の画像データ1ページ分データが少なくとも記憶できるサイズとする。一方、USBメモリの速度が遅い場合(ステップS202でNO)には、S204へ進み、蓄積用画像バッファ領域504の領域として、{(蓄積用画像バッファ入力速度/USBメモリ速度)*画像1ページ分}から算出されるサイズを確保する。ここで、蓄積用画像バッファ入力速度は蓄積用画像バッファ領域504にJPEGエンコードされた画像データが書き込まれる速度である。本実施形態では、この速度はJPEGエンコードされた画像データが蓄積用画像バッファ領域504へ転送される速度と等しいものとする。
【0041】
以上、本実施形態の画像処理装置によれば、装着されたUSBメモリの書き込み速度に応じて最適なサイズのバッファ領域を確保することが可能になる。
【0042】
なお、本実施形態では、外部記憶装置としてUSBメモリを例にあげて説明したが、外部記憶装置としては他の着脱可能な記憶媒体、例えば、各種のメモリカードであっても構わない。この場合、画像処理装置40には外部デバイスI/F410の代わりにメモリカードリーダライタが設けられ、メモリカードリーダライタにメモリカードが装着される。
【0043】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(制御プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0044】
40 画像形成装置
402 DRAM
406 読取り部
410 外部デバイスI/F部
411 USBメモリ
503 スキャンバッファ領域
504 蓄積用画像バッファ領域

【特許請求の範囲】
【請求項1】
着脱可能な記憶装置と接続するためのインターフェース手段と、
前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶する第1バッファ領域を含む記憶手段と、
前記第1バッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送手段と、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定手段と、
前記特定手段が特定した前記記憶装置の書き込み能力に基づいて前記記憶手段の前記第1バッファ領域のサイズを決定する第1決定手段と、を備えることを特徴とする画像処理装置。
【請求項2】
前記記憶装置の書き込み能力は前記記憶装置の書き込み速度であり、
前記記憶装置への書き込み速度が前記第1バッファ領域へ画像データが書き込まれる速度よりも遅い場合、前記第1決定手段は前記記憶装置への書き込み速度が前記第1バッファ領域へ画像データが書き込まれる速度よりも早い場合よりも大きくなるよう前記第1バッファ領域のサイズを決定することを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
原稿を読み取って画像データを生成する読み取り手段を更に備え、
前記第1決定手段は、前記記憶装置への書き込み速度が前記第1バッファ領域へ画像データが書き込まれる速度よりも早い場合、前記読み取り手段における原稿読み取りに関する設定に基づいて前記第1バッファ領域のサイズを決定することを特徴とする、請求項2に記載の画像処理装置。
【請求項4】
原稿を読み取って画像データを生成する読み取り手段を更に備え、
前記記憶手段は、前記読み取り手段が生成した画像データを記憶するための第2バッファ領域を更に含み、
前記第2バッファ領域のサイズを決定する第2決定手段を更に備えることを特徴とする、請求項1に記載の画像処理装置。
【請求項5】
前記第1決定手段が決定したサイズの前記第1バッファ領域と、前記第2決定手段が決定したサイズの前記第2バッファ領域とを前記記憶手段に確保することができない場合、前記読み取り手段による原稿読み取り動作を中断するよう制御する制御手段を更に備えることを特徴とする、請求項4に記載の画像処理装置。
【請求項6】
前記記憶装置の書き込み能力は前記記憶装置の書き込み速度であり、
前記転送手段による前記第1バッファ領域と前記着脱可能な外部記憶装置との間の画像データの転送速度が前記着脱可能な外部記憶装置の書き込み速度よりも速い場合、前記転送手段は前記第1バッファ領域と前記着脱可能な外部記憶装置との間の画像データの転送速度を遅くし、前記第1決定手段は前記第1バッファ領域のサイズをより大きいサイズとなるよう決定することを特徴とする、請求項1に記載の画像処理装置。
【請求項7】
着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶するバッファ領域を含む記憶手段とを備える画像処理装置の制御方法であって、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定工程と、
前記特定工程で特定された前記記憶装置の書き込み能力に基づいて、前記記憶手段の前記バッファ領域のサイズを決定する決定工程と、
前記決定工程で決定されたサイズのバッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送工程と、を備えることを特徴とする制御方法。
【請求項8】
着脱可能な記憶装置と接続するためのインターフェース手段と、前記インターフェース手段に接続された着脱可能な記憶装置へ転送すべき画像データを記憶するバッファ領域を含む記憶手段とを備える画像処理装置に制御方法を実行させるための制御プログラムであって、
前記着脱可能な記憶装置の書き込みに関する能力を特定する特定ステップと、
前記特定ステップで特定された前記記憶装置の書き込み能力に基づいて、前記記憶手段の前記バッファ領域のサイズを決定する決定ステップと、
前記決定ステップで決定されたサイズのバッファ領域に記憶された画像データを読み出して前記着脱可能な記憶装置に転送する転送ステップと、を備えることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−30009(P2011−30009A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−174519(P2009−174519)
【出願日】平成21年7月27日(2009.7.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】