(57)【要約】【課題】高画質の画像データを得られる可能性が高い画像読取装置を提供する。【解決手段】読取手段から出力された画像データに対する処理を実行する第１の処理手段と、第１の処理手段が処理の実行に使用する第１のバッファが確保される記憶手段と、第１の処理手段が処理の実行に使用する容量を推定する推定手段と、記憶手段に推定手段で推定された容量以上の空き容量があるか否かを判定する判定手段と、判定手段で推定された容量以上の空き容量があると判定された場合は記憶手段に推定された容量の第１のバッファを確保し、推定された容量以上の空き容量がないと判定された場合は記憶手段の空き容量より少ない容量の第１のバッファを確保する確保手段と、を備える。【選択図】図６
2010154292.tif 000002
【特許請求の範囲】
【請求項１】
原稿を読み取って画像データを出力する読取手段と、
前記読取手段から出力された前記画像データに対する処理を実行する第１の処理手段と、
前記第１の処理手段が前記処理の実行に使用する第１のバッファが確保される記憶手段と、
前記第１の処理手段が前記処理の実行に使用する容量を推定する推定手段と、
前記記憶手段に前記推定手段で推定された容量以上の空き容量があるか否かを判定する判定手段と、
前記判定手段で前記推定された容量以上の空き容量があると判定された場合は前記記憶手段に前記推定された容量の前記第１のバッファを確保し、前記推定された容量以上の空き容量がないと判定された場合は前記記憶手段の空き容量より少ない容量の前記第１のバッファを確保する確保手段と、
前記確保手段を制御して前記記憶手段に前記第１のバッファを確保し、その後に前記読取手段を制御して前記原稿を読み取る制御手段と、
を備え、
前記制御手段は、前記推定された容量より少ない容量の前記第１のバッファが確保された場合は、当該少ない容量の前記第１のバッファで前記原稿の読み取りを試行する、画像読取装置。
【請求項２】
請求項１に記載の画像読取装置であって、
前記第１の処理手段は、前記第１のバッファの空き容量が不足している場合に、利用者に空き容量が不足していることを通知する通知手段を有する。
【請求項３】
請求項１又は請求項２に記載の画像読取装置であって、
前記読取手段で前記原稿を読み取るときの読取条件を指定するための指定手段を備え、
前記推定手段は、前記処理の実行に使用する容量を前記指定手段で指定された読取条件に基づいて推定する。
【請求項４】
請求項３に記載の画像読取装置であって、
前記推定手段は、読取条件と当該読取条件で原稿を読み取った場合に前記第１の処理手段が前記処理の実行に使用する容量の推定値とを対応付けて記憶し、前記指定手段で指定された読取条件に対応する推定値を読み出すことにより、前記第１の処理手段が前記処理の実行に使用する容量を推定する。
【請求項５】
請求項４に記載の画像読取装置であって、
前記確保手段は、前記判定手段で前記推定された容量以上の空き容量がないと判定された場合に確保する容量の候補を読取条件毎に１つ以上対応付けて記憶し、前記指定手段で指定された読取条件に対応する１つ以上の前記候補のうち、前記記憶手段の空き容量以下で最も容量が大きい候補を前記第１のバッファの容量として前記第１のバッファを確保する。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の画像読取装置であって、
前記処理は、前記読取手段から出力された前記画像データを圧縮して圧縮画像データを生成し、生成した圧縮画像データを回転させる第１の回転処理である。
【請求項７】
請求項６に記載の画像読取装置であって、
前記読取手段から出力された圧縮前の前記画像データを回転させる第２の回転処理を実行する第２の処理手段を備え、
前記読取手段で前記原稿を読み取るときの読取条件を指定するための指定手段と、
前記指定手段で指定された読取条件に基づいて、前記第１の回転処理、又は前記第２の回転処理のいずれを実行するかを決定する処理決定手段とを備え、
前記確保手段は、前記処理決定手段で前記第１の回転処理を実行すると決定された場合は前記第１のバッファを確保し、前記第２の回転処理を実行すると決定された場合は前記第２の処理手段が前記第２の回転処理を実行するための第２のバッファを確保する。
【請求項８】
請求項１乃至請求項７のいずれか一項に記載の画像読取装置であって、
前記確保手段は、前記第１の処理手段で処理が実行された後の画像データを記憶するための第３のバッファを前記記憶手段に更に確保し、
前記判定手段は、前記推定した容量と、前記第３のバッファの容量として予め決定されているデータ記憶用容量との合計量以上の空き容量が前記記憶手段にあるか否かを判定し、
前記確保手段は、前記判定手段で前記合計量以上の空き容量がないと判定された場合は、前記第３のバッファとして前記データ記憶用容量より少ない容量を確保する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関する。
【背景技術】
【０００２】
従来、読取手段によって原稿を読み取る前に、読み取った画像の圧縮後のデータ量を推定し、推定したデータ量（推定データ量）と記憶部の記憶可能容量とに基づいて画像の反転処理が可能か否かを判定する画像処理装置が知られている（例えば、特許文献１参照）。この画像処理装置では、反転処理が不可と判定された場合は、データ量を減少させるように読取条件を変更し、それにより反転処理の実行を可能にしている。
【特許文献１】特開２００７−１８４６６４公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の画像処理装置によると、反転処理が不可と判定された場合はデータ量を減少させるように読取条件を変更するので、画像データの画質が低下し、高画質の画像データが得られることを望む利用者にとって利便性が悪いという問題がある。
本発明は上記のような事情に基づいて完成されたものであって、高画質の画像データを得られる可能性が高い画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
第１の発明は、画像読取装置であって、原稿を読み取って画像データを出力する読取手段と、前記読取手段から出力された前記画像データに対する処理を実行する第１の処理手段と、前記第１の処理手段が前記処理の実行に使用する第１のバッファが確保される記憶手段と、前記第１の処理手段が前記処理の実行に使用する容量を推定する推定手段と、前記記憶手段に前記推定手段で推定された容量以上の空き容量があるか否かを判定する判定手段と、前記判定手段で前記推定された容量以上の空き容量があると判定された場合は前記記憶手段に前記推定された容量の前記第１のバッファを確保し、前記推定された容量以上の空き容量がないと判定された場合は前記記憶手段の空き容量より少ない容量の前記第１のバッファを確保する確保手段と、前記確保手段を制御して前記記憶手段に前記第１のバッファを確保し、その後に前記読取手段を制御して前記原稿を読み取る制御手段と、を備え、前記制御手段は、前記推定された容量より少ない容量の前記第１のバッファが確保された場合は、当該少ない容量の前記第１のバッファで前記原稿の読み取りを試行する。
バッファを使用して画像データに対する処理を実行する場合、処理の実行に使用する容量を精度よく推定することは困難な場合があり、推定した容量は実際に使用する容量より十分に多くなることもある。
推定した容量が実際に使用する容量より十分に多い場合、推定した容量は記憶手段の空き容量より多くても、実際に使用する容量は記憶手段の空き容量より少なくなることもある。
つまり、推定した容量が記憶手段の空き容量より多いことをもって直ちに画像データのデータ量を減少させるように読取条件を変更すると、実際にはデータ量を減少させずに処理を実行できるにもかかわらずデータ量を減少させてしまい、それにより画質が低下してしまうことが起こり得る。
この発明によると、推定した容量以上の空き容量が記憶手段にない場合は、直ちにデータ量を減少させるように読取条件を変更するのではなく、記憶手段の空き容量より少ない容量のバッファ（第１のバッファ）を確保して読み取りを試行する。このようにすると、実際に使用する容量が当該確保した容量（推定した容量以上の空き容量がないと判定された場合に確保した容量）より少ない場合には、第１の処理を実行することができるので、画質を低下させずに画像データを得ることができる。
よってこの発明によると、高画質の画像データを得られる可能性が高い。
【０００５】
第２の発明は、第１の発明の画像読取装置であって、前記第１の処理手段は、前記第１のバッファの空き容量が不足している場合に、利用者に空き容量が不足していることを通知する通知手段を有する。
この発明によると、第１のバッファの空き容量が不足した場合は利用者に通知するので、利用者は第１のバッファの空き容量が不足したことを知ることができる。
【０００６】
第３の発明は、第１又は第２の発明の画像読取装置であって、前記読取手段で前記原稿を読み取るときの読取条件を指定するための指定手段を備え、前記推定手段は、前記処理の実行に使用する容量を前記指定手段で指定された読取条件に基づいて推定する。
この発明によると、読取条件に基づいて推定するので、処理の実行に使用する容量をより適切に推定できる。
【０００７】
第４の発明は、第３の発明の画像読取装置であって、前記推定手段は、読取条件と当該読取条件で原稿を読み取った場合に前記第１の処理手段が前記処理の実行に使用する容量の推定値とを対応付けて記憶し、前記指定手段で指定された読取条件に対応する推定値を読み出すことにより、前記第１の処理手段が前記処理の実行に使用する容量を推定する。
この発明によると、読取条件と推定値とを対応付けて記憶しているので、処理の実行に使用する容量を少ない処理量で推定できる。
【０００８】
第５の発明は、第４の発明の画像読取装置であって、前記確保手段は、前記判定手段で前記推定された容量以上の空き容量がないと判定された場合に確保する容量の候補を読取条件毎に１つ以上対応付けて記憶し、前記指定手段で指定された読取条件に対応する１つ以上の前記候補のうち、前記記憶手段の空き容量以下で最も容量が大きい候補を前記第１のバッファの容量として前記第１のバッファを確保する。
この発明によると、指定手段で指定された読取条件に対応する１つ以上の候補のうち、記憶手段の空き容量以下で最も容量が大きい候補を第１のバッファの容量として第１のバッファを確保するので、高画質の画像データを得られる可能性がより高くなる。
【０００９】
第６の発明は、第１〜第５のいずれか発明の画像読取装置であって、前記処理は、前記読取手段から出力された前記画像データを圧縮して圧縮画像データを生成し、生成した圧縮画像データを回転させる第１の回転処理である。
この発明によると、第１の回転処理が実行された高画質の画像データを得られる可能性が高い。
【００１０】
第７の発明は、第６の発明の画像読取装置であって、前記読取手段から出力された圧縮前の前記画像データを回転させる第２の回転処理を実行する第２の処理手段を備え、前記読取手段で前記原稿を読み取るときの読取条件を指定するための指定手段と、前記指定手段で指定された読取条件に基づいて、前記第１の回転処理、又は前記第２の回転処理のいずれを実行するかを決定する処理決定手段とを備え、前記確保手段は、前記処理決定手段で前記第１の回転処理を実行すると決定された場合は前記第１のバッファを確保し、前記第２の回転処理を実行すると決定された場合は前記第２の処理手段が前記第２の回転処理を実行するための第２のバッファを確保する。
この発明によると、記憶手段に使用しないバッファが無用に確保されることを防止できる。
【００１１】
第８の発明は、第１〜第７のいずれかの発明の画像読取装置であって、前記確保手段は、前記第１の処理手段で処理が実行された後の画像データを記憶するための第３のバッファを前記記憶手段に更に確保し、前記判定手段は、前記推定した容量と、前記第３のバッファの容量として予め決定されているデータ記憶用容量との合計量以上の空き容量が前記記憶手段にあるか否かを判定し、前記確保手段は、前記判定手段で前記合計量以上の空き容量がないと判定された場合は、前記第３のバッファとして前記データ記憶用容量より少ない容量を確保する。
この発明によると、第３のバッファの容量を少なくすることにより記憶手段の空き容量が増えるので、第１のバッファを確保できる可能性が高くなり、高画質の画像データを得られる可能性が高くなる。また、データ記憶用容量を予め決定されている容量以上に確保できるので、第１のバッファのみで記憶手段が占有され、画像データが記憶できない状況を低減することができる。
【発明の効果】
【００１２】
本発明によれば、高画質の画像データを得られる可能性が高い。
【発明を実施するための最良の形態】
【００１３】
＜実施形態１＞
本発明の実施形態１を図１ないし図１３によって説明する。
（１）画像読取装置の構成
図１は、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能などを備える複合機１（画像読取装置の一例）の模式図である。
【００１４】
複合機１の筐体１０（図１では一部のみを図示）は概ね箱形に形成されており、上部に第１プラテンガラス１１と第２プラテンガラス１２とが並設されている。
原稿カバー１３は第１プラテンガラス１１を覆う閉姿勢と第１プラテンガラス１１を開放する開姿勢とに回動可能に筐体１０に連結されている。原稿カバー１３には、ＡＤＦ１４（自動原稿供給装置）、原稿トレイ１５、排紙トレイ１６などが設けられている。
【００１５】
ＡＤＦ１４は、一対の搬送ローラ１７、一対の排紙ローラ１８などの各種のローラ、これらを駆動する図示しないモータ、搬送路２１、スイッチバック路２２、回動可能なフラッパ１９などを有しており、原稿トレイ１５に載置された原稿を一枚ずつ搬送する。
ＡＤＦ１４は原稿の一方の面（表面）が読取部２０に読み取られた後に原稿を自動で反転させて他方の面（裏面）が読取部２０に読み取られるように搬送することができる。具体的には、搬送ローラ１７によって搬送路２１に送り出された原稿の後端が排紙ローラ１８に狭持されると、排紙ローラ１８が逆回転することによりスイッチバックされる。図１ではフラッパ１９が原稿に押されて反時計回りに回動した状態であり、そのため搬送路２１が解放されているが、搬送路２１に原稿がない状態ではフラッパ１９は搬送路２１を閉塞する姿勢となる。スイッチバックされた原稿はフラッパ１９に案内されてスイッチバック路２２に送り出され、裏返した状態で後端側から再び搬送路２１に送り出される。これにより裏面が読み取られる。
【００１６】
読取部２０（読取手段の一例）は、複数の受光素子が紙面垂直方向に直線状に配列されたイメージセンサ２３、ＲＧＢ３色の発光ダイオードなどで構成される光源２４、原稿で反射された反射光をイメージセンサ２３の各受光素子に結像させるロッドレンズアレイ２５、これらが搭載されるキャリッジ２６、及びキャリッジ２６を搬送する図示しない搬送機構などで構成されている。読取部２０は、第１プラテンガラス１１に載置されている原稿を読み取るときはキャリッジ２６を第１プラテンガラス１１の盤面に平行な副走査方向（図中のＡ方向）に搬送しながら読み取り、ＡＤＦ１４によって搬送される原稿を読み取るときはキャリッジ２６を第２プラテンガラス１２の直下に停止させて読み取る。
【００１７】
イメージセンサ制御部３０（制御手段の一例）はＡＳＩＣとして構成されており、フレキシブルフラットケーブル２７を介して読取部２０に接続されている。イメージセンサ制御部３０は読取部２０を制御するとともに、イメージセンサ２３から出力される画像データにゲイン調整、Ａ／Ｄ変換などの処理を行う。
画像処理部３１はＡＳＩＣとして構成されており、画像データにガンマ補正、シェーディング補正、ノイズ除去、カラーバランス調整、拡大／縮小、色空間変換などの各種の処理を施す。
【００１８】
ＣＰＵ３２（第１の処理手段、推定手段、判定手段、確保手段、制御手段、通知手段、処理決定手段の一例）は、複合機１の各部を制御する。
ＲＯＭ３３（推定手段の一例）は、ＣＰＵ３２が実行する各種のプログラムや、後述する第１の容量テーブル、第２の容量テーブルなどを記憶している
ＲＡＭ３４（記憶手段の一例）は、ＣＰＵ３２が各種の処理を実行するための主記憶装置として用いられる。
【００１９】
ファクシミリ送受信部３５は、電話回線を介して電話交換機に接続され、所定のファクシミリ通信手順に従って画像データを送受信する。
プリンタ部３６は、画像データに基づいて紙などの被記録媒体にレーザー方式、インクジェット方式などで画像を形成する。
【００２０】
操作部３７（通知手段、指定手段の一例）は、複数のボタンやＬＣＤ（Liquid Crystal Display）などで構成され、利用者は例えばＬＣＤに表示される画面を参照しつつボタンを操作することにより読取条件の指定や読み取りの指示などの各種の操作を行うことができる。
インタフェース部３８はＵＳＢインタフェースやネットワークインタフェースなどで構成されている。
【００２１】
（２）ＲＡＭに確保されるバッファ
ＲＡＭ３４には、原稿を読み取るときに使用される複数のバッファ（ラインバッファ４０、画像処理後バッファ４１、回転バッファ４２、ファイルバッファ４３など）が確保される。これらのバッファは原稿の読み取りを開始する前に確保される。ＲＡＭ３４はファクシミリ送受信部３５によるファクシミリ送受信処理やプリンタ部３６による印刷処理でも使用され、このためＲＡＭ３４の空き容量はファクシミリ送受信処理や印刷処理の実行状況によっても変化する。
【００２２】
ラインバッファ４０は、イメージセンサ２３によって読み取られた画像データを記憶するためのバッファである。イメージセンサ制御部３０にはイメージセンサ２３によって読み取られた画像データが蓄積され、ＤＭＡ調停・ＳＤＲＡＭコントローラ３９（以下、単にＤＭＡコントローラという）はイメージセンサ制御部３０に所定ライン分の画像データが蓄積されると、蓄積されている画像データをラインバッファ４０にＤＭＡ転送する。
【００２３】
画像処理後バッファ４１は、画像処理部３１によって画像処理が施された後の画像データを記憶するためのバッファである。ＤＭＡコントローラ３９はラインバッファ４０に所定ライン分の画像データが蓄積されると、蓄積されている画像データを画像処理部３１にＤＭＡ転送する。画像処理部３１はＤＭＡ転送された画像データに所定の画像処理を施す。ＤＭＡコントローラ３９は画像処理部３１によって画像処理が施された後の画像データを画像処理後バッファ４１にＤＭＡ転送する。
【００２４】
回転バッファ４２（第１のバッファ、第２のバッファの一例）は画像処理後バッファ４１に記憶されている画像データを１８０度回転させる１８０度回転処理や、画像データを９０度回転させる９０度回転処理を実行するために使用されるバッファである。回転バッファ４２の容量は１８０度回転処理を実行するか９０度回転処理を実行するかによって異なる。回転バッファ４２の詳細については後述する。
【００２５】
ファイルバッファ４３（第３のバッファの一例）は、回転処理が実行された画像データを記憶するためのバッファである。ＣＰＵ３２は回転処理が実行された画像データをファイルに格納してファイルバッファ４３に記憶させ、ファイルバッファ４３に記憶されているファイルを所定のタイミングでインタフェース部３８に出力する。
【００２６】
（３）回転処理の概要
原稿を読み取る場合、原稿に形成されている画像の上下が反転して読み取られたり、あるいは９０度回転して読み取られたりする場合がある。以下、その一例について説明する。
【００２７】
図２は、原稿に形成されている画像の上下が反転して読み取られる例を説明するための模式図である。例えば、表面に形成されている画像（図２では「Ａ」という文字）にとっての上方向と、裏面に形成されている画像（図２では「Ｂ」という文字）にとっての上方向とが同方向になるようにして両面に画像が形成されている原稿５０（両面原稿）があるとする。
【００２８】
両面原稿５０をＡＤＦ１４によって両面読み取りする場合、両面原稿５０の表面に形成されている画像が上から下に読み取られるように両面原稿５０が搬送されるとすると、両面原稿５０をスイッチバックすることにより裏面の画像は下から上に読み取られることになり、裏面を読み取った画像データ５２を例えばディスプレイに表示したとき、画像が上下反転してしまうことになる。ここで画像データ５１は表面を読み取った画像データを示している。
【００２９】
図３は、原稿に形成されている画像が９０度回転して読み取られる例を説明するための模式図である。本実施形態では、原稿に形成されている画像にとっての上下方向と副走査方向とが平行になるように原稿を原稿台に載置すると画像が上下正しく読み取られるものとする。この場合、原稿５３に形成されている画像（図３では「Ａ」という文字）にとっての上下方向と主走査方向とが平行になるように原稿５３を載置すると、読み取った画像データ５４を例えばディスプレイに表示したとき、画像が９０度回転してしまうことになる。
【００３０】
画像データが表す画像の上下が反転していたり、あるいは９０度回転していたりすると、利用者にとって見難いものとなる。このため、本実施形態では、画像の上下が反転している場合は画像データに対して１８０度回転処理を実行し、９０度回転している場合は９０度回転処理を実行する。以下、各回転処理の概要について説明する。
【００３１】
（３−１）１８０度回転処理
１８０度回転処理は、画像データをＪＰＥＧ圧縮するか又はＭＲ圧縮（あるいはＭＨ圧縮）するかによって処理内容が異なる。ＭＲ圧縮は白黒二値の画像データを圧縮する圧縮方法であり、画像データをファクシミリ送信するときなどに用いられる。本実施形態では、読取条件の色数に「Color」又は「Gray」が指定されているときはファクシミリ送信ではないとしてＪＰＥＧ圧縮し、色数に「Black & White」が指定されているときはファクシミリ送信であるとしてＭＲ圧縮する。
【００３２】
画像データをＪＰＥＧ圧縮する場合（読取条件の色数に「Color」又は「Gray」が指定されている場合）は、先に画像データを圧縮してから回転する「１８０度回転処理（圧縮後に回転）」を実行する。ＪＰＥＧ圧縮では圧縮後に画像データの回転処理が可能であり、圧縮後に回転することにより回転バッファ４２の容量を少なくできる。１８０度回転処理（圧縮後に回転）は第１の回転処理の一例である。
【００３３】
一方、ＭＲ圧縮の場合（読取条件の色数に「Black & White」が指定されている場合）は、圧縮後に画像データを回転することはできないので、先に画像データを回転してから圧縮する「１８０度回転処理（圧縮前に回転）」を実行する。１８０度回転処理（圧縮前に回転）は第２の回転処理の一例である。
【００３４】
（３−１−１）１８０度回転処理（圧縮後に回転）
図４は、１８０度回転処理（圧縮後に回転）の概要を説明する模式図である。ＣＰＵ３２は、画像処理後バッファ４１に１６ライン分の画像データが蓄積されると、蓄積されている１６ライン分の画像データを画像処理後バッファ４１から読み出し、読み出した１６ラインの並び順を逆にする。これにより、読み出した１６ラインの単位で画像の上下が１８０度回転する。本実施形態ではこれを１次回転処理というものとする。
【００３５】
次に、ＣＰＵ３２は１次回転処理した１６ライン分の画像データをＪＰＥＧ圧縮し、圧縮した画像データを回転バッファ４２に記憶させる。
ＣＰＵ３２は上述した処理を画像処理後バッファ４１に１６ライン分の画像データが蓄積される度に実行する。これにより、回転バッファ４２に１ページ分の圧縮画像データが記憶される。ＪＰＥＧ圧縮では、圧縮した単位にＲＳＴ（リスタート）マーカと呼ばれる情報５５（図４では１つのみに符号を付している）を付加することができ、この情報を用いて圧縮した単位に画像データを読み出すことができる。
【００３６】
次に、ＣＰＵ３２は、回転バッファ４２から圧縮した単位で画像データを読み出し、読み出した１６ライン分の画像データをファイルバッファ４３に記憶させる。このときＣＰＵ３２は最後に圧縮を行った１６ライン分の画像データから先に読み出して記憶させる。これにより、圧縮した単位の並び順が逆になり、画像が１８０度回転する。本実施形態ではこれを２次回転処理というものとする。
１８０度回転処理（圧縮後に回転）を実行するときに確保する回転バッファ４２は第１のバッファの一例である。
【００３７】
（３−１−２）１８０度回転処理（圧縮前に回転）
図５は、１８０度回転処理（圧縮前に回転）の流れを示す模式図である。
ＣＰＵ３２は、画像処理後バッファ４１に１６ライン分の画像データが蓄積されると、蓄積されている１６ライン分の画像データを画像処理後バッファ４１から読み出し、読み出した画像データをそのまま回転バッファ４２に記憶させる。
【００３８】
ＣＰＵ３２は上述した処理を画像処理後バッファ４１に１６ライン分の画像データが蓄積される度に実行する。
次に、ＣＰＵ３２は、回転バッファ４２から記憶させた順とは逆の順で１ラインずつ画像データを読み出し、ＭＲ圧縮してファイルバッファ４３に記憶させる。これにより画像データのラインの並びが逆になり、画像が１８０度回転する。
１８０度回転処理（圧縮前に回転）を実行するときに確保する回転バッファ４２は第２のバッファの一例である。
【００３９】
（３−２）９０度回転処理
９０度回転処理は第２の回転処理の一例である。９０度回転処理も１８０度回転処理と同じく色数に「Color」又は「Gray」が指定されているときはＪＰＥＧ圧縮し、「Black & White」が指定されているときはＭＲ圧縮する。
ただし、９０度回転処理を実行するときは、１８０度回転処理の場合と異なり、圧縮方法によらず、圧縮前に回転する。
【００４０】
ＭＲ圧縮する場合は、上述した１８０度回転処理（圧縮前に回転）と実質的に同一であるが、ＣＰＵ３２は回転バッファ４２に記憶されている画像データをファイルバッファ４３に記憶させるとき、回転バッファ４２から縦に１ライン（副走査方向に対応する１ライン）ずつ読み出し、読み出した１ライン分の画像データを９０度回転させ、ＭＲ圧縮してファイルバッファ４３に記憶させる。
【００４１】
ＪＰＥＧ圧縮する場合は、ＣＰＵ３２は回転バッファ４２に記憶されている画像データをファイルバッファ４３に記憶させるとき、縦に１６ラインずつ読み出し、読み出した１６ライン分の画像データを９０度回転させ、ＪＰＥＧ圧縮してファイルバッファ４３に記憶させる。
９０度回転処理を実行するときに確保する回転バッファ４２は第２のバッファの一例である。
【００４２】
（４）回転処理の実行に使用する容量の推定
回転処理の実行に使用する容量とは、回転処理を実行するときに回転バッファ４２に記憶させるデータ量のことをいう。本実施形態では原稿の読み取り前に「回転処理の実行に使用する容量」を推定し、推定した値に基づいて回転バッファ４２を確保する。回転処理の実行に使用する容量は実行する回転処理によって異なり、また、同じ回転処理でも読取条件によって異なる。
【００４３】
（４−１）１８０度回転処理の実行に使用する容量の推定
図６は、読取条件と１８０度回転処理の実行に使用する容量の推定値とを対応付けて記憶している第１の容量テーブル６０の模式図である。ここでは読取条件として色数、解像度、圧縮パラメータを例に説明する。また、ここでは推定値の単位はＭＢ（メガバイト）であるとする。
【００４４】
色数には「Color」、「Gray」、「Black & White」のいずれかの設定値が指定される。「Color」を指定すると画像データの各画素は２４ビット（ＲＧＢ各２５６階調）で表され、「Gray」を指定すると各画素は８ビット（２５６階調）で表される。「Black & White」を指定すると各画素は１（白）又は０（黒）の１ビットで表される。
【００４５】
前述したように本実施形態では色数に「Color」又は「Gray」が指定されているときは１８０度回転処理（圧縮後に回転）を実行し、「Black & White」が指定されているときは１８０度回転処理（圧縮前に回転）を実行する。つまり、「Color」又は「Gray」に対応付けられている推定値は１８０度回転処理（圧縮後に回転）の実行に使用する容量の推定値であり、「Black & White」に対応付けられている推定値は１８０度回転処理（圧縮前に回転）の実行に使用する容量の推定値である。
【００４６】
解像度には「600dpi」、「300dpi」、「200dpi」、「100dpi」のいずれかが指定される。
圧縮パラメータには「Large」、「Middle」、「Small」のいずれかが指定される。ＪＰＥＧ圧縮は不可逆圧縮であり、「Small」を選択すると多くの情報が切り捨てられて画像データのデータ量は小さくなる反面、画質は低下する。逆に「Large」を選択すると切り捨てられる情報が少ないので画質の低下は少なくなる反面、画像データのデータ量は「Small」に比べて大きくなる。「Middle」はその中間である。
【００４７】
色数が「Color」又は「Gray」の各読取条件に対応付けられている数字のうち、最も左側の数字は、その読取条件で原稿を読み取った場合に１８０度回転処理（圧縮後に回転）の実行に使用する容量の推定値（以下、第１候補容量という）である。矢印を挟んで第１候補容量の右側にある数字は、第１候補容量以上の空き容量がＲＡＭ３４になかった場合に確保する第２候補容量（空き容量がないと判定された場合に確保する容量の候補の一例）である。
【００４８】
第１候補容量は、例えば実際に複数のサンプル原稿を読み取って生成した圧縮画像データのデータ量に基づいて推定されたものである。例えば、生成した複数の圧縮画像データのデータ量の平均値を第１候補容量としてもよいし、最大値を第１候補容量としてもよい。また、例えば最大値にある程度の余裕を持たせた値を第１候補容量としてもよい。
【００４９】
ＣＰＵ３２は、第１の容量テーブル６０から読取条件に対応する第１候補容量を読み出すことにより、１８０度回転処理（圧縮後に回転）の実行に使用する容量を推定する。ＣＰＵ３２は、推定した容量（第１候補容量）以上の空き容量がＲＡＭ３４にある場合は、第１候補容量の回転バッファ４２を確保する。
【００５０】
第２候補容量は、第１候補容量よりも少ない容量であって圧縮画像データのデータ量がその容量より少なくなる可能性のある容量である。ＣＰＵ３２は第１候補容量以上の空き容量がＲＡＭ３４にない場合は、直ちにデータ量を減少させるように読取条件を変更するのではなく、第２候補容量以上の空き容量がＲＡＭ３４にあるか否かを判定する。ＣＰＵ３２は、第２候補容量以上の空き容量がＲＡＭ３４にある場合は、第２候補容量の回転バッファ４２を確保する。
【００５１】
画像データがどの程度圧縮されるかは原稿に形成されている画像の性質によって異なり、圧縮画像データのデータ量を圧縮前に精度よく推定することは一般に困難である。このため、第１候補容量は実際の圧縮画像データのデータ量より十分に多くなることもある。このため、第１候補容量より少ない容量である第２候補容量を確保しても、原稿によっては生成した圧縮画像データのデータ量は第２候補容量より少なくなる可能性もある。生成した圧縮画像データのデータ量が第２候補容量より少ない場合には、回転バッファ４２に圧縮画像データを記憶することができるので、画質を低下させずに１８０度回転処理（圧縮後に回転）を実行することができる。ただし、生成した圧縮画像データのデータ量は第２候補容量より多くなる可能性もあり、その場合には途中で１８０度回転処理（圧縮後に回転）を中止することになる。
【００５２】
つまり、本実施形態では、第１候補容量（推定した容量）よりも少ない容量を確保しても原稿によっては１８０度回転処理（圧縮後に回転）を実行できる可能性があることに着目し、途中で１８０度回転処理（圧縮後に回転）が中止される可能性はあるものの、高画質の画像データが得られることを優先して、推定した容量よりも少ない容量の回転バッファ４２を確保して読み取りを試行する。
【００５３】
本実施形態では、ＲＡＭ３４の空き容量が第２候補容量より少ない場合は試行を行わない。第２候補容量より少ない容量を確保して試行しても中止の可能性が高いからである。
【００５４】
図示するように色数が「Color」及び解像度が「600dpi」である読取条件には２つの第２候補容量が対応付けられている。第２候補容量が複数対応付けられている場合は、ＣＰＵ３２はＲＡＭ３４の空き容量以下で容量が最も大きい第２候補容量を確保する。また、色数が「Color」又は「Gray」で解像度が「100dpi」である読取条件には第２候補容量は対応付けられていない。つまり、高解像度の場合ほど候補容量の選択肢が多く、低解像度ほど候補容量の選択肢が少ない。これは、高解像度の方がデータ量の変動幅が大きいことを考慮したものである。データ量の変動幅が大きい場合は候補容量の選択肢を多くすることにより、第１候補容量以上の空き容量がない場合に、より適切な容量の第２候補容量を選択できる。
【００５５】
前述したように本実施形態では「Black & White」が指定された場合は１８０度回転処理（圧縮前に回転）を実行する。圧縮前に回転する場合、回転バッファ４２に記憶する画像データは圧縮画像データではないので、読取条件が決まれば回転バッファ４２に記憶するデータ量は圧縮パラメータによらず一意に決まる。そのため、「Black & White」の場合は読取条件に基づいて一意に決まるデータ量、あるいはそのデータ量にある程度の余裕を持たせたデータ量が対応付けられており、第２候補容量は対応付けられていない。
【００５６】
なお、読取条件は圧縮画像データのデータ量に影響するものであれば色数、解像度、圧縮パラメータ以外であってもよく、例えば指定された原稿サイズに応じた領域のみを読み取り可能な場合は原稿サイズを読取条件に含めてもよい。
【００５７】
（４−２）９０度回転処理の実行に使用する容量
図７は、読取条件と９０度回転処理の実行に使用する容量とを対応付けて記憶する第２の容量テーブル６２の模式図である。９０度回転処理の場合も、読取条件（色数及び解像度）に対応付けて容量を記憶している。９０度回転処理の場合も回転バッファ４２に記憶する画像データは圧縮した画像データではないので、読取条件が決まれば回転バッファ４２に記憶するデータ量は一意に決まる。各読取条件にはその読取条件に基づいて一意に決まるデータ量、あるいはそのデータ量にある程度の余裕を持たせたデータ量が対応付けられており、第２候補容量は対応付けられていない。
【００５８】
（５）読取処理の流れ
（５−１）全体の流れ
図８は、原稿を読み取る処理のフローチャートである。本処理は、利用者が操作部３７を操作して読取条件を指定した後、読取開始指示を入力すると開始される。
【００５９】
ところで、両面読み取りであっても、原稿の表面に形成されている画像にとっての上方向と裏面に形成されている画像にとっての上方向とが逆方向の場合は１８０度回転処理を必ずしも実行しなくてよい。このように両面読み取りする場合でも裏面を読み取った画像データに１８０度回転処理を実行すべき場合と実行する必要がない場合とがあり、これらを自動判定することは困難である。このため、両面読み取りするときは、裏面を読み取った画像データに１８０度回転処理を実行するか否かを利用者が指定するものとする。
同様に、９０度回転処理を実行すべきか否かを自動判定することは困難であるので、本実施形態では９０度回転処理を実行するか否かについても利用者が指定するものとする。
【００６０】
Ｓ１０１では、ＣＰＵ３２は１８０度回転処理が指定されているか否かを判定する。ＣＰＵ３２は１８０度回転処理が指定されている場合はＳ１０２に進み、１８０度回転処理が指定されていない場合はＳ１０３に進む。
Ｓ１０２では、ＣＰＵ３２は回転バッファ４２を確保する「回転バッファ確保処理（１８０度回転）」を実行する。「回転バッファ確保処理（１８０度回転）」の詳細については後述する。
【００６１】
Ｓ１０３では、ＣＰＵ３２は９０度回転処理が指定されているか否かを判定する。ＣＰＵ３２は９０度回転処理が指定されている場合はＳ１０４に進み、９０度回転処理が指定されていない場合はＳ１０５に進む。
Ｓ１０４では、ＣＰＵ３２は回転バッファ４２を確保する「回転バッファ確保処理（９０度回転）」を実行する。「回転バッファ確保処理（９０度回転）」の詳細については後述する。
【００６２】
Ｓ１０５では、ＣＰＵ３２は、１８０度回転処理も９０度回転処理も実行しないことから、回転バッファ４２の容量を０に決定する。
Ｓ１０６では、ＣＰＵ３２は「読取処理」を実行する。「読取処理」の詳細については後述する。
【００６３】
（５−２）回転バッファ確保処理（１８０度回転）
図９は、「回転バッファ確保処理（１８０度回転）」のフローチャートである。
Ｓ２０１では、ＣＰＵ３２はＲＡＭ３４の空き容量を取得する。
Ｓ２０２では、ＣＰＵ３２は第１の容量テーブル６０から読取条件に対応する第１候補容量、及び第２候補容量を全て取得する。
Ｓ２０３では、ＣＰＵ３２は取得した第１候補容量、及び第２候補容量から候補容量を一つ選択する。この選択は、第１候補容量、第２候補容量の順に選択し、第２候補容量が複数ある場合は容量の大きい第２候補容量から順に選択する。
【００６４】
Ｓ２０４では、ＣＰＵ３２は選択した候補容量が最後の候補容量であるか否かを判定し、最後の候補容量でなければＳ２０５に進み、最後の候補容量であればＳ２０６に進む。
Ｓ２０５では、ＣＰＵ３２は選択した候補容量の５倍以上の空き容量がＲＡＭ３４にあるか否かを判定する（判定手段の一例）。ここで候補容量の５倍以上の空き容量があるか否かを判定するのは、回転バッファ４２として１つの候補容量分を確保し、ファイルバッファ４３として４つの候補容量分を空けておくためである。ファイルバッファ４３として候補容量の４倍の容量を空けた場合には、少なくとも４ページ分の圧縮画像データを記憶することが期待できる。
【００６５】
ここで、Ｓ２０５を最初に実行するとき、選択されている候補容量は第１候補容量であるので、ＣＰＵ３２は、ファイルバッファ４３としてＲＡＭ３４に４つの第１候補容量分を空けた上で、ＲＡＭ３４に１つの第１候補容量以上の空き容量があるか否かを判定していることになる。つまり、ＣＰＵ３２はＲＡＭ３４に推定された容量（第１候補容量）以上の空き容量があるか否かを判定している。
なお、予めファイルバッファ４３を確保し、Ｓ２０５を最初に実行するとき、ＣＰＵ３２はＲＡＭ３４に第１候補容量以上の空き容量があるか否かを判定してもよい。
ＣＰＵ３２は、選択した候補容量の５倍以上の空き容量がある場合はＳ２０７に進み、ない場合はＳ２０３に戻る。
【００６６】
Ｓ２０６では、ＣＰＵ３２は選択した候補容量の３倍以上の空き容量がＲＡＭ３４にあるか否かを判定する。ここで候補容量の３倍以上の空き容量があるか否かを判定するのは、回転バッファ４２として１つの候補容量分を確保し、ファイルバッファ４３として２つの候補容量分を空けておくためである。ファイルバッファ４３として候補容量の２倍の容量を空けた場合には、少なくとも２ページ分の圧縮画像データを記憶することが期待できる。ＣＰＵ３２は、選択した候補容量の３倍以上の空き容量がある場合はＳ２０７に進み、ない場合はＳ２０８進む。
【００６７】
Ｓ２０７では、ＣＰＵ３２は現在選択されている候補容量を回転バッファ４２の容量として回転バッファ４２を確保する（確保手段の一例）。
【００６８】
Ｓ２０８では、ＣＰＵ３２はＲＡＭ３４の空き容量が不足したことを利用者に通知する。空き容量が不足したことが通知された利用者は、圧縮画像データのデータ量が減るように読取条件を変更してもよいし、他の機能によるＲＡＭ３４の使用が終了するのを待って同じ読取条件で再度読み取りを指示してもよい。
【００６９】
（５−３）回転バッファ確保処理（９０度回転）
図１０は、「回転バッファ確保処理（９０度回転）」のフローチャートである。ここでは回転バッファ確保処理（１８０度回転）と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ３０１では、ＣＰＵ３２は第２の容量テーブル６２から読取条件に対応する容量を取得する。
【００７０】
（５−４）読取処理
図１１は、「読取処理」のフローチャートである。
Ｓ４０１では、ＣＰＵ３２は９０度回転処理が指定されているか否かを判定する。ＣＰＵ３２は９０度回転処理が指定されている場合はＳ４０４に進み、指定されていない場合はＳ４０２に進む。
【００７１】
Ｓ４０２では、ＣＰＵ３２は１８０度回転処理が指定されているか否かを判定する。ＣＰＵ３２は１８０度回転処理が指定されている場合はＳ４０３に進み、指定されていない場合はＳ４０３に進む。
Ｓ４０３では、ＣＰＵ３２は読取条件の色数に「Black & White」が指定されているか否かを判定する。ＣＰＵ３２は「Black & White」が指定されている場合はＳ４０４に進み、指定されていない場合はＳ４０５に進む。
【００７２】
Ｓ４０４では、ＣＰＵ３２は「圧縮前に回転する読取処理」を実行する。
Ｓ４０５では、ＣＰＵ３２は「圧縮後に回転する読取処理」を実行する。
Ｓ４０６では、ＣＰＵ３２は回転処理を実行することなく原稿を読み取る。
Ｓ４０７では、ＣＰＵ３２は全ページの読み取りが終了したか否かを判定し、全ページの読み取りが終了するまでＳ４０１に戻って処理を繰り返す。
【００７３】
（５−５）圧縮前に回転する読取処理
「圧縮前に回転する読取処理」は、「１８０度回転処理（圧縮前に回転）」又は「９０度回転処理」を実行する処理である。
図１２は、「圧縮前に回転する読取処理」のフローチャートである。
Ｓ５０１では、イメージセンサ制御部３０は読取部２０を制御して原稿の１ラインを読み取る。
Ｓ５０２では、ＤＭＡコントローラ３９はイメージセンサ制御部３０に蓄積された所定ライン分の画像データをラインバッファ４０に記憶させる。
【００７４】
Ｓ５０３では、画像処理部３１は、ラインバッファ４０に所定ライン分の画像データが蓄積されると、蓄積された所定ライン分の画像データに所定の画像処理を施して画像処理後バッファ４１に記憶させる。
Ｓ５０４では、ＣＰＵ３２は画像処理後バッファ４１に所定ライン分の画像データが蓄積されると、蓄積された所定ライン分の画像データを回転バッファ４２に記憶させる。
【００７５】
Ｓ５０５では、ＣＰＵ３２は１ページ分の読み取りが終了したか否かを判定し、終了するまで５０１に戻って読み取りを繰り返す。
Ｓ５０６では、ＣＰＵ３２は、１８０度回転するときは、回転バッファ４２に記憶されている画像データを、１ラインずつ、記憶した順とは逆の順序で読み出し、読み出した１ライン分の画像データをＭＲ圧縮してファイルバッファ４３に記憶する。この処理を回転バッファ４２に記憶されている画像データの全ラインについて行うことによりを、画像データが１８０度回転する。９０度回転するときは、回転バッファ４２から縦に１ライン（又は１６ライン）ずつ読み出し、読み出した１ライン（又は１６ライン）分の画像データを９０度回転させてＭＲ圧縮（又はＪＰＥＧ圧縮）することを除いて１８０度回転の場合と実質的に同一である。
【００７６】
（５−６）圧縮後に回転する読取処理
図１３は、「圧縮後に回転する読取処理」のフローチャートである。ここでは「圧縮前に回転する読取処理」と実質的に同一の処理には同一の符号を付して説明を省略する。
【００７７】
Ｓ６０１では、ＣＰＵ３２は画像処理後バッファ４１に１６ライン分の画像データが蓄積されているか否かを判定する。ＣＰＵ３２は１６ライン分の画像データが蓄積されている場合はＳ６０２に進み、蓄積されていない場合はＳ５０１に戻って処理を繰り返す。
Ｓ６０２では、ＣＰＵ３２は蓄積されている１６ライン分の画像データをラインバッファ４０から読み出し、読み出した１６ライン分の画像データのラインを逆に並べ替えることによって１次回転処理を実行し、１次回転処理した１６ライン分の画像データをＪＰＥＧ圧縮する。
【００７８】
Ｓ６０３では、ＣＰＵ３２はＪＰＥＧ圧縮した１６ライン分の画像データを回転バッファ４２に記憶させる。
Ｓ６０４では、ＣＰＵ３２は回転バッファ４２に記憶されている１ページ分の圧縮画像データを、圧縮した単位で読み出してファイルバッファ４３に記憶させる。このとき、ＣＰＵ３２は最後に圧縮を行った１６ライン分の圧縮画像データから先に読み出して記憶させることにより、圧縮画像データに２次回転処理を実行する。
【００７９】
（６）実施形態の効果
以上説明した本発明の実施形態１に係る複合機１によると、第１の容量テーブル６０から第１候補容量を取得することにより１８０度回転処理（圧縮後に回転）の実行に使用する容量を推定し、推定した容量（第１候補容量）以上の空き容量がＲＡＭ３４にない場合は、直ちにデータ量を減少させるように読取条件を変更するのではなく、ＲＡＭ３４の空き容量より少ない容量（第２候補容量）の回転バッファ４２を確保して読み取りを試行する。このようにすると、第１候補容量以上の空き容量がない場合でも、実際に使用する容量が当該確保した容量（第１候補容量以上の空き容量がないと判定された場合に確保した第２候補容量）より少ない場合には、１８０度回転処理（圧縮後に回転）を実行することができるので、画質を低下させずに画像データを得ることができる。
よってこの発明によると、高画質の画像データを得られる可能性が高い。
【００８０】
更に、複合機１によると、１８０度回転処理（圧縮後に回転）の実行に使用する容量を読取条件に基づいて推定するので、１８０度回転処理（圧縮後に回転）の実行に使用する容量をより適切に推定できる。
【００８１】
更に、複合機１によると、読取条件と推定値（第１候補容量）とを対応付けて記憶しているので、１８０度回転処理（圧縮後に回転）の実行に使用する容量を少ない処理量で推定できる。
【００８２】
更に、複合機１によると、操作部３７で指定された読取条件に対応する１つ以上の第２候補容量のうち、ＲＡＭ３４の空き容量以下で最も容量が大きい第２候補容量を回転バッファ４２の容量とするので、高画質の画像データを得られる可能性がより高くなる。
【００８３】
更に、複合機１によると、例えば１８０度回転処理（圧縮後に実行）を実行するときは、１８０度回転処理（圧縮前に実行）を実行するための回転バッファ４２（第２のバッファ）を確保せず、逆に１８０度回転処理（圧縮前に実行）を実行するときは、１８０度回転処理（圧縮後に実行）を実行するための回転バッファ４２（第１のバッファ）を確保しないので、ＲＡＭ３４に使用しないバッファが無用に確保されることを防止できる。
【００８４】
更に、複合機１によると、第１候補容量とファイルバッファ４３の容量として予め決定されているデータ記憶用容量（候補容量の４倍の容量、ただし最後の候補容量の場合を除く）との合計量（候補容量の５倍の容量）以上の空き容量がＲＡＭ３４にない場合は、ファイルバッファ４３の容量を少なくする（最後の候補容量の２倍の容量）。これによりＲＡＭ３４の空き容量が増えるので、回転バッファ４２を確保できる可能性が高くなり、高画質の画像データを得られる可能性が高くなる。
また、データ記憶用容量を予め決定されている容量以上に確保できるので、回転バッファ４２のみでＲＡＭ３４が占有され、画像データが記憶できない状況を低減することができる。
【００８５】
＜実施形態２＞
次に、本発明の実施形態２を図１４ないし図１５によって説明する。
図１４及び図１５は、実施形態２に係る「圧縮後に回転する読取処理」のフローチャートである。ここでは実施形態１と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ７０１では、ＣＰＵ３２は回転バッファ４２に空き容量があるか否かを判定する。ＣＰＵ３２は空き容量がある場合はＳ６０３に進み、空き容量がない場合はＳ７０２に進む。
【００８６】
Ｓ７０２では、ＣＰＵ３２はＲＡＭ３４全体の空き容量を取得する。
Ｓ７０３では、ＣＰＵ３２はＲＡＭ３４全体の空き容量が所定の容量以上であるか否かを判定する。ＣＰＵ３２は所定の容量以上であればＳ７０４に進み、所定の容量未満であればＳ７０５に進む。
Ｓ７０４では、ＣＰＵ３２は回転バッファ４２の容量を増やす。これにより回転バッファ４２に空き容量ができて画像データの記憶が可能になるので、ＣＰＵ３２はＳ６０３に進んで回転バッファ４２に画像データを記憶させる。
【００８７】
Ｓ７０５では、ＣＰＵ３２はＲＡＭ３４の容量が不足したために処理を中止することを利用者に通知して処理を終了する（通知手段の一例）。この通知は、例えば操作部３７のＬＣＤにその旨のメッセージを表示することによって行ってもよいし、音声で案内することによって通知してもよい。
【００８８】
Ｓ７０６では、ＣＰＵ３２はファイルバッファ４３に記憶した１ページ分の圧縮画像データのデータ量を取得する。
なお、圧縮画像データのデータ量の取得は、Ｓ５０５で１ページ分の読み取りが終了した後に回転バッファ４２に記憶されている圧縮画像データのデータ量を取得してもよい。あるいは、表面と裏面とで圧縮画像データのデータ量に大差がないという推測の下で、両面原稿の表面を読み取って生成した圧縮画像データのデータ量を、表面の読み取りが終了した時点で取得してもよい。
【００８９】
Ｓ７０７では、ＣＰＵ３２は回転バッファ４２の容量が、Ｓ７０６で取得した１ページ分の圧縮画像データのデータ量に比べて十分に大きいか否かを判定する。例えば、回転バッファ４２の容量がＳ７０６で取得したデータ量の２倍以上であれば十分に大きいと判定してもよい。なお、２倍は一例であり、適宜変更可能である。例えば、１．２倍としてもよい。
ＣＰＵ３２は、十分に大きいと判定した場合はＳ７０８に進み、十分に大きいとは判定しなかった場合は処理を終了する。
【００９０】
Ｓ７０８では、ＣＰＵ３２は回転バッファ４２の容量を減らす。例えば、回転バッファ４２の容量が取得したデータ量の２倍以上であれば、１／２に減らしてもよい。これにより、減らした分をファイルバッファ４３や他の機能に割り当てることが可能になり、ＲＡＭ３４をより効率よく利用できるようになる。
【００９１】
なお、Ｓ７０７における判定は、第１の容量テーブル６０に基づいて判定してもよい。例えば読取条件に「Color」、「300dpi」及び「Large」が指定され、回転バッファ４２の容量が１０ＭＢである場合、取得した圧縮画像データのデータ量が第２候補容量である５ＭＢより小さかった場合は、回転バッファ４２を減らして５ＭＢにしてもよい。
【００９２】
以上説明した本発明の実施形態２に係る複合機によると、回転バッファ４２の空き容量が不足した場合に、ＲＡＭ３４に所定の容量以上の空き容量があれば回転バッファ４２の容量を増やすので、高画質の画像データを得られる可能性がより高くなる。
【００９３】
更に、実施形態２に係る複合機によると、回転バッファ４２の空き容量が不足した場合に、回転バッファ４２の容量を増やすことができない場合は利用者に通知するので、利用者は回転バッファ４２の空き容量が不足したことを知ることができる。
【００９４】
更に、実施形態２に係る複合機によると、回転バッファ４２の容量が実際に生成した圧縮画像データのデータ量より十分に大きい場合は回転バッファ４２の容量を減らすので、その分を他の機能に割り当てることが可能になり、ＲＡＭ３４をより効率よく利用できるようになる。
【００９５】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００９６】
（１）上記実施形態では「画像データに対する処理」として、より具体的には第１の回転処理として、「１８０度回転処理（圧縮後に回転）」を例に説明したが、「画像データに対する処理」はこれ以外の処理であってもよい。
例えば、原稿のサイズにはリーガルサイズとＡ４サイズとがあり、これらは類似したサイズである。そして、原稿がこれらのいずれかのサイズであることまでが特定された場合には、原則として大きい方のサイズであるリーガルサイズであると仮定して読み取る場合がある。
この場合、リーガルサイズの原稿を読み取った画像データを記憶できるだけの空き容量がＲＡＭ３４にない場合は、空き容量より少ないサイズの容量を第１のバッファとして確保してもよい。この場合、原稿のサイズがＡ４サイズであれば、原稿を読み取った画像データのデータ量は確保した第１のバッファの容量より小さくなる可能性があり、その場合には画質を低下させずに画像データを得ることができる。
つまり、「画像データに対する処理」は、使用する容量を実行前に正確に知ることのできない処理であって実行前におおよその容量を知る必要がある処理であればよい。
【００９７】
（２）上記実施形態では推定された容量（第１候補容量）以上の空き容量がない場合は回転バッファ４２として第２候補容量を確保するが、第１候補容量以上の空き容量がない場合は、ＲＡＭ３４の空き容量を全て、あるいは一定容量を残して、回転バッファ４２として確保してもよい。
【００９８】
（３）上記実施形態では推定された容量（第１候補容量）以上の空き容量がなくても第２候補容量を確保できる場合には読み取りを試行するが、試行するか否かを利用者に問い合わせてもよい。
読み取りを試行すると、圧縮画像データのデータ量が第２候補容量より多い場合には、途中で読み取りを中止することになる。利用者は途中で読み取りが中止されるよりもデータ量を減少させるように読取条件を変更して読み取りを行いたいと考える場合もある。
第２候補容量を確保できる場合は、読み取りを試行するか否かを利用者に問い合わせ、利用者が読み取りを試行する選択をした場合のみ試行するようにすると、高画質の画像データが得られることを望む利用者にとっても、途中で読み取りが中止されたくない利用者にとっても利便性がよい。
【００９９】
（４）上記実施形態では１８０度回転処理を実行するとき、色数が「Black & White」の場合はＭＲ圧縮を実行する場合を例に説明したが、「Black & White」の場合であってもＪＰＥＧ圧縮するようにしてもよい。
【０１００】
（５）上記実施形態では、１８０度回転処理を実行するか否かを利用者が指定するが、この指定は例えば原稿の形式を指定することによって行ってもよい。例えば、長辺綴じの両面原稿は、一般に原稿の長辺を上下方向とし、表面に形成されている画像にとっての上方向と、裏面に形成されている画像にとっての上方向とが同方向になる。つまり、両面読み取りを実行すると裏面を読み取った画像データは画像が反転してしまうことになる。従って、例えば利用者が「長辺綴じ両面原稿」を指定すると、１８０度回転処理が指定されたものとしてもよい。
【０１０１】
（６）上記実施形態では画像読取装置として複合機１を例に説明したが、画像読取装置はスキャナ機能のみを備える所謂イメージスキャナであってもよい。
【図面の簡単な説明】
【０１０２】
【図１】本発明の一実施形態に係る画像読取装置の模式図。
【図２】画像の上下が反転して読み取られる例を説明するための模式図。
【図３】画像が９０度回転して読み取られる例を説明するための模式図。
【図４】本発明の一実施形態に係る回転処理を説明する模式図。
【図５】本発明の一実施形態に係る回転処理を説明する模式図。
【図６】本発明の一実施形態に係る容量テーブルの模式図。
【図７】本発明の一実施形態に係る容量テーブルの模式図。
【図８】本発明の一実施形態に係るフローチャート。
【図９】本発明の一実施形態に係るフローチャート。
【図１０】本発明の一実施形態に係るフローチャート。
【図１１】本発明の一実施形態に係るフローチャート。
【図１２】本発明の一実施形態に係るフローチャート。
【図１３】本発明の一実施形態に係るフローチャート。
【図１４】本発明の一実施形態に係るフローチャート。
【図１５】本発明の一実施形態に係るフローチャート。
【符号の説明】
【０１０３】
１…複合機（画像読取装置）
１４…ＡＤＦ（読取手段）
２０…読取部（読取手段）
３０…イメージセンサ制御部（制御手段）
３２…ＣＰＵ（第１の処理手段、推定手段、判定手段、確保手段、制御手段、通知手段、処理決定手段）
３３…ＲＯＭ（推定手段）
３４…ＲＡＭ（記憶手段）
３７…操作部（通知手段、指定手段）
４２…回転バッファ（第１のバッファ、第２のバッファ）
４３…ファイルバッファ（第３のバッファ）
【図１】
2010154292.tif 000003
【図２】
2010154292.tif 000004
【図３】
2010154292.tif 000005
【図４】
2010154292.tif 000006
【図５】
2010154292.tif 000007
【図６】
2010154292.tif 000008
【図７】
2010154292.tif 000009
【図８】
2010154292.tif 000010
【図９】
2010154292.tif 000011
【図１０】
2010154292.tif 000012
【図１１】
2010154292.tif 000013
【図１２】
2010154292.tif 000014
【図１３】
2010154292.tif 000015
【図１４】
2010154292.tif 000016
【図１５】
2010154292.tif 000017