JP4613984B2 - 画像読取装置、及び記憶領域割り当て方法 - Google Patents
画像読取装置、及び記憶領域割り当て方法 Download PDFInfo
- Publication number
- JP4613984B2 JP4613984B2 JP2008174935A JP2008174935A JP4613984B2 JP 4613984 B2 JP4613984 B2 JP 4613984B2 JP 2008174935 A JP2008174935 A JP 2008174935A JP 2008174935 A JP2008174935 A JP 2008174935A JP 4613984 B2 JP4613984 B2 JP 4613984B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- full
- allocation
- cpu
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32358—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0081—Image reader
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0086—Image transceiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3285—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
- H04N2201/3297—Simultaneous use of a single memory for different image storage purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3285—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
- H04N2201/3298—Checking or indicating the storage space
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Facsimiles In General (AREA)
- Storing Facsimile Image Data (AREA)
- Processing Or Creating Images (AREA)
Description
本発明は上記のような事情に基づいて完成されたものであって、複数のバッファ領域への記憶領域の割り当てが容易な画像読取装置、及び記憶領域割り当て方法を提供することを目的とする。
この発明によると、変更手段が各バッファ領域の使用状況に基づいて少なくとも2つのバッファ領域の間で記憶領域の割り当てを変更するので、ユーザは自ら割り当てを変更する作業を行う必要がない。
よってこの発明によると、複数のバッファ領域への記憶領域の割り当てが容易である。
更に、この発明によると、複数のバッファ領域の間で適切に記憶領域の割り当てが変更された状態で原稿の所定範囲以降の範囲の読み取りを実行でき、所定範囲以降の範囲を読み取る際のパフォーマンスを好適に向上できる。
更に、この発明によると、1つの原稿を読み取っている間に原稿内容の変化に応じてよりきめ細かく記憶領域の割り当てを変更できるので、より適切に変更できる。
一般に送信手段の送信能力はバッファ領域の使用状況に大きく影響する。逆にいうと、送信能力が前回と同じであれば、送信手段以外の処理手段による影響はあるものの、画像読取装置は概ね前回と同程度のパフォーマンスを維持できる可能性がある。
ところで、送信能力は送信手段にのみ依存するのではなく、送信先の機器の受信能力にも依存する。したがって、送信先及び送信手段が前回と同じである場合は、前回と概ね同程度の処理能力を維持できるものとして使用状況の取得や割り当ての変更を省略することにより、効率よく処理を実行できる。
バッファフルが発生した順番が相対的に早いバッファ領域は今後もバッファフルが発生する可能性が高いバッファ領域であり、逆にバッファフルが発生した順番が相対的に遅いバッファ領域は今後もバッファフルが発生する可能性が低いバッファ領域であるといえる。したがって、バッファフルが発生した順番が相対的に遅いバッファ領域への記憶領域の割り当てを減らしてバッファフルが発生した順番が相対的に早いバッファ領域への記憶領域の割り当てを増やすことにより、バッファフルが発生する可能性を低減でき、パフォーマンスを好適に向上できる。
バッファフルになった回数が相対的に多いバッファ領域は今後もバッファフルが発生する可能性が高いバッファ領域であり、逆にバッファフルになった回数が相対的に少ないバッファ領域は今後もバッファフルが発生する可能性が低いバッファ領域であるといえる。したがって、バッファフルになった回数が相対的に少ないバッファ領域への記憶領域の割り当てを減らし、バッファフルになった回数が相対的に多いバッファ領域への記憶領域の割り当てを増やすことにより、バッファフルが発生する可能性を低減でき、パフォーマンスを好適に向上できる。
バッファフルの継続時間が相対的に長いバッファ領域は今後もバッファフルが発生する可能性が高いバッファ領域であり、逆にバッファフルの継続時間が相対的に短いバッファ領域は今後もバッファフルが発生する可能性が低いバッファ領域であるといえる。したがって、バッファフルの継続時間が相対的に短いバッファ領域への記憶領域の割り当てを減らしてバッファフルの継続時間が相対的に長いバッファ領域への記憶領域の割り当てを増やすことにより、バッファフルが発生する可能性を低減でき、パフォーマンスを好適に向上できる。
この発明によると、減らされる側のバッファ領域について記憶領域を減らし過ぎてしまうことを低減でき、記憶領域をより適切に割り当てることができる。
読取手段から出力される画像データを記憶するバッファ領域がバッファフルになると読み取りが途中で中断することにより画像品質が低下する可能性がある。読取手段から出力される画像データを記憶するバッファ領域への記憶領域の割り当てを優先的に増やすと、そうした画像品質の低下を低減できる。
本発明の実施形態1を図1ないし図11によって説明する。
(1−1)複合機の構成
図1は、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能等を有する複合機1(画像読取装置の一例)の模式図である。複合機1は、スキャナ部11、プリンタ部12、操作部13、インタフェース部14、制御部15などを備えている。
第2の原稿検知センサ20は、例えば検知位置Dまで挿し込まれるように第2原稿台22上に原稿Nが載置されるとオンになり、検知位置Dに原稿Nが無いとオフになるスイッチである。制御部15は第2の原稿検知センサ20から出力されるセンサ出力に基づいて第2原稿台22上の原稿Nの有無を判定する。
操作部13は、操作者が各種の設定や動作の指示を行うための操作ボタンや液晶ディスプレイなどの表示装置などで構成されている。
図2は、複合機1が原稿を読み取って外部の機器に送信するまでの画像データの流れを示すブロック図である。図示するように本実施形態ではRAM30に4つのバッファ領域(ラインバッファ32、画像処理後バッファ33、圧縮バッファ34、I/F転送バッファ35)が割り当てられる。画像データは、原稿を読み取って外部の機器に送信するまでの間にイメージセンサ制御回路26、画像処理回路27、CPU28、及びインタフェース部14の間でこれら4つのバッファ領域(以下、単に「バッファ」という)を介して受け渡される。本実施形態ではこれらのバッファはいずれもリングバッファとして用いられる。
イメージセンサ23は1ライン分の原稿を読み取ると、当該1ライン分の原稿を表す画像信号を図示しないA/D変換回路に出力する。A/D変換回路に出力された画像信号はA/D変換回路でA/D変換され、1ライン分の画像データとしてイメージセンサ制御回路26に出力される。
ラインバッファ32に記憶されているラインバッファデータは、画像処理回路27にDMA転送される。
このDMA転送は画像処理回路27による制御の元で実行される。画像処理回路27は「ラインバッファ有効ライン数カウンタ」が所定の値に達すると、すなわちラインバッファ32に記憶されているラインバッファデータのライン数が所定のライン数に達すると、DMAコントローラ29を制御して当該所定のライン数分のラインバッファデータを画像処理回路27にDMA転送させる。DMA転送後、画像処理回路27は「ラインバッファ有効ライン数カウンタ」からDMA転送したライン数分の値を減じる。
ラインバッファ32から画像処理回路27にDMA転送された画像データは画像処理回路27によって色空間変換や先鋭化処理などの各種の画像処理が施される。画像処理が施された後の画像データ(画像処理後データ)は、画像処理後バッファ33にDMA転送される。
画像処理後バッファ33に記憶されている画像処理後データはCPU28によって読み出され、JPEG圧縮などの所定の圧縮処理が施されて圧縮バッファ34に書き込まれる。すなわち、画像処理後バッファ33からCPU28への読み込み、及びCPU28から圧縮バッファ34への書き込みはDMAコントローラ29ではなくCPU28によって実行される。
圧縮バッファ34に記憶されている圧縮後の画像処理後データ(圧縮データ)はCPU28によって読み出され、インタフェースに応じた形式のI/F転送データに変換されてI/F転送バッファ35に書き込まれる。すなわち、圧縮バッファ34からCPU28への読み込み、及びCPU28からI/F転送バッファ35への書き込みは、DMAコントローラ29ではなくCPU28によって実行される。
I/F転送バッファ35に記憶されているI/F転送データは、USBインタフェース37やネットワークインタフェース38(以下、単に「インタフェース」という)にDMA転送される。
I/F転送DMA転送を起動すると、DMAコントローラによってI/F転送バッファ35からインタフェースにI/F転送データがDMA転送される。そして、インタフェースはそのDMA転送が終了すると「インタフェースDMA転送中フラグ」にOFFをセットする。
図3は、原稿の読み取りと各バッファの記憶領域の割り当てを変更する処理のフローチャートである。本実施形態では原稿が1ページのみのときは各バッファの使用状況の取得は行わず、したがってその場合には割り当ての変更も行わず、原稿が複数ページに亘るときのみ使用状況を取得して割り当てを変更する。
なお、上述した「イメージセンサ制御回路26からラインバッファ32へのDMA転送」及び「ラインバッファ32から画像処理回路27へのDMA転送」はCPU28が関与しない転送であるため、本フローチャート中には表れない。
S115では、CPU28は「各バッファ容量決定処理」を実行する。「各バッファ容量決定処理」は各バッファの初期容量を決定する処理であり、詳細については後述する。
なお、第1原稿台16上に複数ページの原稿を1ページずつ順に載置して読み取らせる場合もあるので、そのような場合は例えば原稿が1ページであるか複数ページであるかをユーザが操作部13を操作して入力するようにしてもよい。
S130では、CPU28は「パフォーマンス測定スキャン処理」を実行する。「パフォーマンス測定スキャン処理」は1ページ目をスキャンする処理であるとともに1ページ目を読み取って1ページ目分の画像データを送信するまでの間の各バッファの使用状況を取得する処理であり、詳細については後述する。
S145では、CPU28は全ページのスキャンを終了したかを判定する。終了していない場合はS140に戻って全ページのスキャンが終了するまで処理を繰り返す。
図4は、各バッファ容量決定処理のフローチャートである。
S205では、CPU28は各バッファに割り当てる記憶領域の合計容量を取得する。この合計容量は例えばROMに固定で記憶されており、CPU28はROMからその合計容量を読み込みことによって取得する。
ラインバッファ容量=3MB
画像処理後バッファ容量=5MB
圧縮バッファ容量=1MB
I/F転送バッファ容量=1MB
図5は、パフォーマンス測定開始処理のフローチャートである。
S305では、CPU28は各バッファのバッファフル発生順を記憶する変数「第1のバッファ種別」、「第2のバッファ種別」、「第3のバッファ種別」、及び「第4のバッファ種別」を初期化する。各バッファには固有のバッファ種別番号が付与されており、初期化すると各変数にはいずれのバッファに付与されているバッファ種別番号とも異なる値(例えば0)が設定される。
図6〜図9は、パフォーマンス測定スキャン処理のフローチャートである。
図6〜図9に示すフローチャートは実施形態1〜実施形態5を一つのフローチャートで説明するためのものであり、フローチャート中の「×××のパフォーマンス測定処理2」及び「×××のパフォーマンス測定処理3」は一部の実施形態では実行されない。ここで「×××」は各バッファの名前である。これらの処理が実行されるか否かは各実施形態においてその都度説明する。
S403では、CPU28はイメージセンサ制御回路26を制御してスキャンを開始させる。これにより、イメージセンサ23による原稿のスキャンが開始される。
次に、CPU28は「I/F転送DMA転送容量」に初期値として0(零)をセットする。「I/F転送DMA転送容量」に0をセットする理由は後述するS435で説明する。
次に、CPU28はI/F転送DMA転送が起動中であるか否かを示すフラグ「I/F転送DMA転送中フラグ」に起動中でないことを示すOFFをセットする。「I/F転送DMA転送中フラグ」にOFFをセットする理由は後述するS434で説明する。
S407の「ラインバッファのパフォーマンス測定3」は実施形態1では実行しない。
S410では、CPU28はイメージセンサ制御回路26を制御しスキャンを中断させる。これによりイメージセンサ23からの画像信号の出力が停止し、未処理のラインバッファデータの上書きが防止される。
次に、CPU28は「ラインバッファフル停止中フラグ」にONをセットし、S414に進む。
S412の「ラインバッファのパフォーマンス測定2」は実施形態1では実行しない。
S414では、CPU28は「画像処理後DMA転送中フラグ」がOFFであるか否かを判定する。S405からS413までの間に画像処理後DMA転送が終了していれば、この時点で「画像処理後DMA転送中フラグ」はOFFになっている。逆に、未だDMA転送が終了していなければこの時点で「画像処理後DMA転送中フラグ」はONのままになっている。CPU28は「画像処理後DMA転送中フラグ」がOFF、すなわち画像処理後DMA転送が終了している場合はS415に進み、ON、すなわち画像処理後DMA転送が未だ終了していない場合はS424に進む。
ここでS415を初めて実行するときはS404が「前回の画像処理後DMA転送の起動時」となり、S415の実行が2回目以降の場合は後述するS423が「前回の画像処理後DMA転送の起動時」となる。
S417では、CPU28は更新した「画像処理後バッファ空き容量」が所定容量以上であるか否かを判定する。この所定容量はバッファフルの判定基準となる値である。CPU28は「画像処理後バッファ空き容量」が所定容量以上のときはバッファフルは発生していないと判定してS420に進み、所定容量未満のときはバッファフルが発生したと判定してS418に進む。
S419では、CPU28は「画像処理後バッファフル停止中フラグ」をONにする。
S420では、CPU28は「画像処理後バッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「画像処理後バッファフル停止中フラグ」がOFFのときはS423に進み、ONのときはS421に進む。
S422では、CPU28は「画像処理後バッファフル停止中フラグ」をOFFにする。
これとともにCPU28は「画像処理後バッファDMA転送中フラグ」をONにする。
S425では、CPU28は「画像処理後バッファ有効データ容量」が所定容量以上であるか否かを判定する。例えば画像処理後データを16ライン単位で圧縮するとした場合は、16ライン分のデータ量が所定容量に相当する。「画像処理後バッファ有効データ容量」が所定容量未満(16ライン未満)のときは圧縮を実行できないので、CPU28は圧縮処理をスキップしてS434に進む。
S428では、CPU28は「圧縮バッファフル停止中フラグ」をONにする。
S429では、CPU28は「圧縮バッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「圧縮バッファフル停止中フラグ」がOFFのときはS432に進み、ONのときはS430に進む。
S431では、CPU28は「圧縮バッファフル停止中フラグ」をOFFにする。
次に、CPU28は圧縮前の画像処理後データのデータ量の分だけ「画像処理後バッファ空き容量」を増やす。
次に、CPU28は圧縮バッファ34に書き込んだ圧縮後の画像処理後データ(圧縮データ)のデータ量の分だけ「圧縮バッファ空き容量」を減らす。
S434では、CPU28は「I/F転送DMA転送中フラグ」がOFFであるか否かを判定する。CPU28は「I/F転送DMA転送中フラグ」がOFFであるときはS435に進み、ONであるときはS406に戻る。
前述したようにCPU28はS405において「I/F転送DMA転送中フラグ」にOFFをセットしているので、最初にS434を実行するときは「I/F転送DMA転送中フラグ」はOFFであると判定されることになる。つまり前述したS405で「I/F転送DMA転送中フラグ」にOFFを設定した理由は、最初にS434を実行したときにOFFであると判定されてS435に進むようにするためである。
最初にS435を実行するときは未だI/F転送DMA転送は起動されておらず、この場合は前述したS405で「I/F転送DMA転送容量」に0(零)をセットしているので「I/F転送バッファ空き容量」は増えないことになる。つまり前述したS405で「I/F転送DMA転送容量」に0を設定した理由は、最初にS435を実行したときに「I/F転送バッファ空き容量」が増えてしまわないようにするためである。S435の実行が2回目以降である場合は、「前回のI/F転送DMA転送の起動時」とは後述するS444のことをいう。
S437では、CPU28は「圧縮バッファ有効データ容量」が所定容量以上であるか否かを判定する。圧縮バッファ34に圧縮データがなければ転送できないので、CPU28は「圧縮バッファ有効データ容量」が所定容量未満のときはI/F転送バッファ35への転送をスキップしてS406に戻る。
S440では、CPU28は「I/F転送バッファフル停止中フラグ」をONにする。
S441では、CPU28は「I/F転送バッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「I/F転送バッファフル停止中フラグ」がOFFのときはS444に進み、ONのときはS442に進む。
S443では、CPU28は「I/F転送バッファフル停止中フラグ」をOFFにする。
次に、CPU28は読み出した圧縮データのデータ量の分だけ「圧縮バッファ空き容量」を増やす。
次に、CPU28はI/F転送バッファ35に書き込んだI/F転送データのデータ量の分だけ「I/F転送バッファ空き容量」を減らす。
次に、CPU28はI/F転送バッファ35に書き込んだI/F転送データのデータ量を「I/F転送DMA転送容量」に設定し、I/F転送DMA転送を起動する。
次に、CPU28はI/F転送DMA転送中フラグをONにする。
S445の後、CPU28はS406に戻って処理を繰り返す。
実施形態1では、「ラインバッファのパフォーマンス測定処理1」、「画像処理後バッファのパフォーマンス測定処理1」、「圧縮バッファのパフォーマンス測定処理1」、及び「I/F転送バッファのパフォーマンス測定処理1」は同一の処理である。
S501では、CPU28は変数「第1のバッファ種別」の値がS305で設定した初期値のままであるか否かを判定する。CPU28は「第1のバッファ種別」の値が初期値のままであるときはS502に進み、初期値でなければS503に進む。
図11は、パフォーマンス測定結果に基づいた各バッファ容量変更処理の流れを示すフローチャートである。
S601では、CPU28は変数「第1のバッファ種別」の値がS305で設定した初期値のままであるか否かを判定する。「第1のバッファ種別」の値が初期値であるということは、いずれのバッファにおいてもバッファフルが発生しなかったことを意味する。いずれのバッファにおいてもバッファフルが発生していなければ、各バッファの記憶容量は概ね適切であり、バッファ間での記憶領域の割り当ての変更は不要であるといえる。そのため、CPU28は「第1のバッファ種別」の値が初期値である場合は処理を終了する。CPU28は「第1のバッファ種別」の値が初期値でない場合はS602に進む。
S603では、CPU28は変数「第4のバッファ種別」の値がS305で設定した初期値のままであるか否かを判定する。「第4のバッファ種別」が初期値のままであるということは、少なくとも一つのバッファについてはバッファフルが発生していないことを意味する。CPU28は「第4のバッファ種別」の値が初期値のままである場合はS604に進み、初期値ではない場合はS605に進む。
S605では、CPU28は変数「減らすバッファ種別」に「第4のバッファ種別」の値をセットする。
例えば減らすバッファがI/F転送バッファ35であり、増やすバッファが画像処理後バッファ33であるとする。この場合、これら2つのバッファの間で以下のように記憶領域の割り当てを変更する。
I/F転送バッファ容量=1MB÷2=0.5MB
画像処理後バッファ容量=5MB+0.5MB=5.5MB
次に、本発明の実施形態2を図12ないし図14によって説明する。
実施形態2では、バッファフルになった回数が少ないバッファへの記憶領域の割り当てを減らし、バッファフルになった回数が多いバッファへの記憶領域の割り当てを増やす。
図12は、実施形態2に係るパフォーマンス測定開始処理のフローチャートである。
S701では、CPU28はバッファフルが発生した回数をバッファ毎にカウントする変数「ラインバッファフル回数カウンタ」、「画像処理後バッファフル回数カウンタ」、「圧縮バッファフル回数カウンタ」、及び「I/F転送バッファフル回数カウンタ」を初期化する。初期化すると各変数にはバッファフルが発生していないことを示す値である0(零)がセットされる。
実施形態2のパフォーマンス測定スキャン処理でも、実施形態1と同じく、いずれのバッファについても「パフォーマンス測定2」及び「パフォーマンス測定3」は実行しない。
実施形態2のパフォーマンス測定1は、バッファ毎にそれぞれ異なる処理が実行される。ただし、処理内容は実質的に同一であるので、ここでは代表して「ラインバッファのパフォーマンス測定1」について説明する。
S801では、CPU28は「ラインバッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「ラインバッファフル停止中フラグ」がOFFの場合はS802に進み、OFFでない場合、すなわちONの場合は処理を終了する。
図14は、パフォーマンス測定結果に基づいた各バッファ容量変更処理の流れを示すフローチャートである。
S901では、CPU28は各バッファのバッファフル回数カウンタが全て初期値(0回)のままであるか否かを判定する。各バッファのバッファフル回数カウンタが全て初期値であるということは、いずれのバッファにおいてもバッファフルが発生しなかったことを意味する。いずれのバッファにおいてもバッファフルが発生していなければ、各バッファの容量は概ね適切であり、バッファ間での記憶領域の割り当ての変更は不要であるといえる。そのため、CPU28は各バッファのバッファフル回数カウンタが全て初期値である場合は処理を終了する。CPU28はいずれかのバッファフル回数カウンタが初期値でない場合はS902に進む。
S903では、CPU28は変数「減らすバッファ種別」にバッファフル回数カウンタの値が最小のバッファのバッファ種別番号をセットする。
例えば減らすバッファが圧縮バッファ34であり、増やすバッファが画像処理後バッファ33であるとする。この場合、これら2つのバッファの間で以下のように記憶領域の割り当てを変更する。
圧縮バッファ容量=1MB÷2=0.5MB
画像処理後バッファ容量=5MB+0.5MB=5.5MB
次に、本発明の実施形態3を図15ないし図18によって説明する。
実施形態3では、バッファフルの継続時間が短いバッファへの記憶領域の割り当てを減らし、バッファフルの継続時間が長いバッファへの記憶領域の割り当てを増やす。
図15は、実施形態3に係るパフォーマンス測定開始処理のフローチャートである。
S1001では、CPU28はバッファフルが継続していた時間のうち最も長く継続していた時間である最長継続時間を記憶するための変数「ラインバッファフル最長継続時間」、「画像処理後バッファフル最長継続時間」、「圧縮バッファフル最長継続時間」、及び「I/F転送バッファフル最長継続時間」を初期化する。初期化すると各変数には初期値として0ミリ秒がセットされる。
実施形態3のパフォーマンス測定スキャン処理では、いずれのバッファについても「パフォーマンス測定1」及び「パフォーマンス測定2」を実行し、「パフォーマンス測定3」は実行しない。
実施形態3のパフォーマンス測定1もバッファ毎にそれぞれ異なる処理が実行される。ただし、処理内容は実質的に同一であるので、ここでは代表して「ラインバッファのパフォーマンス測定1」について説明する。
S1101では、CPU28は「ラインバッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「ラインバッファフル停止中フラグ」がOFFのときはS1102に進み、OFFでないとき、すなわちONのときは処理を終了する。
S1102では、CPU28はラインバッファフルが発生した時刻を記憶する変数「ラインバッファフル発生時刻」に現在の時刻をセットする。
パフォーマンス測定2についても処理内容は実質的に同一であるので、ここでは代表して「ラインバッファのパフォーマンス測定2」について説明する。
図17は、「ラインバッファのパフォーマンス測定2」の処理の流れを示すフローチャートである。
S1201では、CPU28は変数「ラインバッファフル発生時刻」に記憶されている時刻と現在の時刻との時間差を算出し、算出した時間差を今回のラインバッファフル継続時間とする。
図18は、パフォーマンス測定結果に基づいた各バッファ容量変更処理の流れを示すフローチャートである。
S1301では、CPU28は各バッファのバッファフル最長継続時間が全て初期値(0ミリ秒)のままであるか否かを判定する。各バッファのバッファフル最長継続時間が全て初期値であるということは、いずれのバッファにおいてもバッファフルが発生しなかったことを意味する。CPU28はいずれかのバッファフル最長継続時間が初期値でない場合はS1302に進み、全て初期値である場合は処理を終了する。
S1303では、CPU28は変数「減らすバッファ種別」にバッファフル最長継続時間が最も短いバッファのバッファ種別番号をセットする。
例えば減らすバッファが圧縮バッファ34であり、増やすバッファがI/F転送バッファ35であるとする。この場合、これら2つのバッファの間で以下のように記憶領域の割り当てを変更する。
圧縮バッファ容量=1MB÷2=0.5MB
I/F転送バッファ容量=1MB+0.5MB=1.5MB
次に、本発明の実施形態4を図19ないし図21によって説明する。
実施形態4では、バッファフルが発生しなかったバッファへの記憶領域の割り当てを減らす場合に、バッファフルが発生しなかったバッファの最小空き容量分を減らし、その分だけ他のバッファへの記憶領域の割り当てを増やす。
図19は、実施形態4に係るパフォーマンス測定開始処理のフローチャートである。
S1401では、CPU28は各バッファのバッファフル発生順を記憶する変数「第1のバッファ種別」、「第2のバッファ種別」、「第3のバッファ種別」及び「第4のバッファ種別」を初期化する。
実施形態4のパフォーマンス測定スキャン処理では、いずれのバッファについても「パフォーマンス測定1」及び「パフォーマンス測定3」を実行し、「パフォーマンス測定2」は実行しない。
実施形態4のパフォーマンス測定1は実施形態1のパフォーマンス測定1と同じ処理であり、各バッファについて同一の処理が呼び出される。処理内容は実施形態1のパフォーマンス測定1と同一であるため説明は省略する。
パフォーマンス測定3はバッファ毎にそれぞれ異なる処理が実行される。ただし、処理内容は実質的に同一であるため、ここでは代表して「ラインバッファのパフォーマンス測定3」について説明する。
S1501では、CPU28はラインバッファ32の現在の空き容量を取得し、「ラインバッファ最小空き容量」と現在の空き容量とを比較する。CPU28は「ラインバッファ最小空き容量」よりも現在の空き容量の方が少ないときはS1502に進み、「ラインバッファ最小空き容量」が現在の空き容量と同じかそれよりも少ないときは処理を終了する。
S1502では、CPU28は「ラインバッファ最小空き容量」に現在の空き容量をセットする。
図21は、パフォーマンス測定結果に基づいた各バッファ容量変更処理の流れを示すフローチャートである。
S1601では、CPU28は変数「第1のバッファ種別」の値がS1402で設定した初期値のままであるか否かを判定する。「第1のバッファ種別」の値が初期値である場合はいずれのバッファもバッファフルが発生していないということであるため、CPU28は記憶領域の割り当てを変更しないで処理を終了する。
S1603では、CPU28は変数「減らすバッファ種別」に、いずれかバッファフルが発生していないバッファのバッファ種別番号をセットする。例えばバッファフルが発生していないバッファが複数ある場合は、それら複数のバッファのバッファ種別番号をセットする。
具体的には例えば、減らすバッファが圧縮バッファ34とI/F転送バッファ35であり、増やすバッファが画像処理後バッファ33であるとする。そして、圧縮バッファ34及びI/F転送バッファ35の最小空き容量はそれぞれ0.8MB、0.3MBであったとする。この場合、これら3つのバッファの間で以下のように記憶領域の割り当てを変更する。
圧縮バッファ容量=1MB−0.8MB=0.2MB
I/F転送バッファ容量=1MB−0.3MB=0.7MB
画像処理後バッファ容量=5MB+0.8MB+0.3MB=6.1MB
なお、全てのバッファでバッファフルが発生した場合は実施形態1と同様にして最後にバッファフルが発生したバッファの記憶領域を減らすようにすればよい。
次に、本発明の実施形態5を図22ないし図25によって説明する。
実施形態5では、最初にバッファフルが発生したバッファ以外のバッファのうちバッファフルの継続時間が最も短かったバッファの記憶領域を減らし、その分だけ最初にバッファフルが発生したバッファの記憶領域を増やす。
図22は、実施形態5に係るパフォーマンス測定開始処理のフローチャートである。
S1701では、CPU28は各バッファのバッファフル発生順を記憶する変数「第1のバッファ種別」、「第2のバッファ種別」、「第3のバッファ種別」及び「第4のバッファ種別」を初期化する。
実施形態5のパフォーマンス測定スキャン処理では、いずれのバッファについても「パフォーマンス測定1」及び「パフォーマンス測定2」を実行し、「パフォーマンス測定3」は実行しない。
実施形態5のパフォーマンス測定1もバッファ毎にそれぞれ異なる処理が実行される。ただし、処理内容は実質的に同一であるので、ここでは代表して「ラインバッファのパフォーマンス測定1」について説明する。
S1801では、CPU28は変数「第1のバッファ種別」の値がS1701で設定した初期値のままであるか否かを判定する。CPU28は「第1のバッファ種別」の値が初期値のままであるときはS1802に進み、初期値でなければS1803に進む。
S1809では、CPU28は「ラインバッファフル停止中フラグ」がOFFであるか否かを判定する。CPU28は「ラインバッファフル停止中フラグ」がOFFのときはS1810に進み、OFFでないとき、すなわちONのときは処理を終了する。
S1810では、CPU28は「ラインバッファフル発生時刻」に現在の時刻をセットする。
パフォーマンス測定2についても処理内容は実質的に同一であるので、ここでは代表して「ラインバッファのパフォーマンス測定2」について説明する。
S1901では、CPU28は変数「ラインバッファフル発生時刻」に記憶されている時刻と現在の時刻との時間差を算出し、算出した時間差を今回のラインバッファフル継続時間とする。
S1903では、CPU28は「ラインバッファフル最長継続時間」に今回のラインバッファフル継続時間をセットする。
図25は、パフォーマンス測定結果に基づいた各バッファ容量変更処理の流れを示すフローチャートである。
S2001では、CPU28は変数「第1のバッファ種別」の値がS1701で設定した初期値のままであるか否かを判定し、「第1のバッファ種別」の値が初期値である場合は処理を終了する。
例えば減らすバッファが圧縮バッファ34であり、増やすバッファがI/F転送バッファ35であるとする。この場合、これら2つのバッファの間で以下のように記憶領域の割り当てを変更する。
圧縮バッファ容量=1MB÷2=0.5MB
I/F転送バッファ容量=5MB+0.5MB=5.5MB
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
一般にインタフェースの送信能力はバッファの使用状況に大きく影響する。逆にいうと、送信能力が前回と同じであれば、インタフェース以外の処理手段による影響はあるものの、概ね前回と同程度のパフォーマンスを維持できる可能性がある。ところで、送信能力はインタフェースにのみ依存するのではなく、送信先の機器の受信能力にも依存する。したがって、送信先及びインタフェースが前回と同じである場合は、前回と概ね同程度の処理能力を維持できるものとして使用状況の取得や割り当ての変更を省略することにより、効率よく処理を実行できる。
23…イメージセンサ(読取手段)
26…イメージセンサ制御回路(読取手段)
27…画像処理回路(処理手段)
28…CPU(読取手段、処理手段、送信手段、記憶手段、取得手段、変更手段)
30…RAM(記憶手段)
37…USBインタフェース(送信手段)
38…ネットワークインタフェース(送信手段)
Claims (8)
- ADFによって読取位置上を搬送されている原稿、又は、原稿台に平行な方向に移動して当該原稿台上に載置されている原稿を読み取って画像データを生成する読取手段と、
前記読取手段から出力される画像データを順次処理する1つ以上の処理手段と、
前記処理手段から出力される画像データを送信する送信手段と、
前記読取手段、1つ以上の前記処理手段、及び前記送信手段の間で画像データを受け渡すための複数のバッファ領域が割り当てられる記憶手段と、
前記原稿の所定範囲を読み取って当該所定範囲分の画像データを送信するまでの間の各前記バッファ領域の使用状況を取得する取得手段と、
前記取得手段によって前記所定範囲についての使用状況が取得された後、前記読取手段によって当該所定範囲より後の範囲の読み取りが開始される前に、当該取得された使用状況に基づいて、バッファフルが発生し難くなるように少なくとも2つの前記バッファ領域の間で記憶領域の割り当てを変更する変更手段と、
を備え、
前記原稿は前記ADFによって前記原稿が移動する方向又は前記読取手段が前記原稿台に対して移動する方向に互いに離間して複数の前記所定範囲が設定され、
前記取得手段は前記所定範囲毎に使用状況を取得し、
前記変更手段は前記取得手段によって使用状況が取得される毎に記憶領域の割り当てを変更する、画像読取装置。 - 画像データが前回と同じ送信先に前回と同じ前記送信手段で送信される場合、前記取得手段は使用状況の取得を行わず、前記変更手段は記憶領域の割り当てを変更しない請求項1に記載の画像読取装置。
- 前記取得手段は、前記使用状況としてバッファ領域を使い切るバッファフルが発生した順番を取得し、
前記変更手段は、バッファフルが発生した順番が相対的に遅い前記バッファ領域への記憶領域の割り当てを減らし、バッファフルが発生した順番が相対的に早い前記バッファ領域への記憶領域の割り当てを増やす請求項1又は請求項2のいずれか一項に記載の画像読取装置。 - 前記取得手段は、前記使用状況としてバッファ領域を使い切るバッファフルが発生した回数を前記バッファ領域毎に取得し、
前記変更手段は、バッファフルになった回数が相対的に少ない前記バッファ領域への記憶領域の割り当てを減らし、バッファフルになった回数が相対的に多い前記バッファ領域への記憶領域の割り当てを増やす請求項1又は請求項2のいずれか一項に記載の画像読取装置。 - 前記取得手段は、前記使用状況としてバッファ領域を使い切るバッファフルの継続時間を前記バッファ領域毎に取得し、
前記変更手段は、バッファフルの継続時間が相対的に短い前記バッファ領域への記憶領域の割り当てを減らし、バッファフルの継続時間が相対的に長い前記バッファ領域への記憶領域の割り当てを増やす請求項1又は請求項2のいずれか一項に記載の画像読取装置。 - 前記取得手段は、前記使用状況として各前記バッファ領域の最小空き容量を更に取得し、
前記変更手段は、バッファ領域を使い切るバッファフルが発生しなかった前記バッファ領域への記憶領域の割り当てを減らす場合、当該バッファ領域の最小空き容量分を減らし、その分だけ他の前記バッファ領域への記憶領域の割り当てを増やす請求項3乃至請求項5のいずれか一項に記載の画像読取装置。 - 前記変更手段は、前記読取手段から出力される画像データを記憶する前記バッファ領域への記憶領域の割り当てを優先的に増やす請求項1乃至請求項6のいずれか一項に記載の画像読取装置。
- ADFによって読取位置上を搬送されている原稿、又は、原稿台に平行な方向に移動して当該原稿台上に載置されている原稿を読み取って画像データを生成する読取手段と、
前記読取手段から出力される画像データを順次処理する1つ以上の処理手段と、
前記処理手段から出力される画像データを送信する送信手段と、
前記読取手段、1つ以上の前記処理手段、及び前記送信手段の間で画像データを受け渡すための複数のバッファ領域が割り当てられる記憶手段とを備える画像読み取り装置の各前記バッファ領域に記憶領域を割り当てる記憶領域割り当て方法であって、
前記原稿の所定範囲を読み取って当該所定範囲分の画像データを送信するまでの間の各前記バッファ領域の使用状況を取得する取得段階と、
前記取得段階において前記所定範囲についての使用状況が取得された後、前記読取手段によって当該所定範囲より後の範囲の読み取りが開始される前に、当該取得された使用状況に基づいて、バッファフルが発生し難くなるように少なくとも2つの前記バッファ領域の間で記憶領域の割り当てを変更する変更段階と、
を含み、
前記原稿は前記ADFによって前記原稿が移動する方向又は前記読取手段が前記原稿台に対して移動する方向に互いに離間して複数の前記所定範囲が設定され、
前記取得段階において前記所定範囲毎に使用状況を取得し、
前記変更段階において、前記取得段階において使用状況が取得される毎に記憶領域の割り当てを変更する、記憶領域割り当て方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008174935A JP4613984B2 (ja) | 2008-07-03 | 2008-07-03 | 画像読取装置、及び記憶領域割り当て方法 |
US12/496,098 US8498023B2 (en) | 2008-07-03 | 2009-07-01 | Image scanning device and computer-readable record medium storing program for storage area allocation in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008174935A JP4613984B2 (ja) | 2008-07-03 | 2008-07-03 | 画像読取装置、及び記憶領域割り当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010016646A JP2010016646A (ja) | 2010-01-21 |
JP4613984B2 true JP4613984B2 (ja) | 2011-01-19 |
Family
ID=41464142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008174935A Active JP4613984B2 (ja) | 2008-07-03 | 2008-07-03 | 画像読取装置、及び記憶領域割り当て方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8498023B2 (ja) |
JP (1) | JP4613984B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5422640B2 (ja) * | 2011-12-28 | 2014-02-19 | 京セラドキュメントソリューションズ株式会社 | 画像読取装置 |
JP5949529B2 (ja) * | 2012-12-21 | 2016-07-06 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
JP6171629B2 (ja) * | 2013-06-28 | 2017-08-02 | ブラザー工業株式会社 | 画像読み取り装置 |
US10322881B1 (en) | 2013-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Notifying users to provide picked items to a drop off location for processing |
CN106610796A (zh) * | 2015-10-26 | 2017-05-03 | 中国华冶科工集团有限公司 | 多功能扫描辅助工具 |
JP6922250B2 (ja) * | 2017-02-24 | 2021-08-18 | セイコーエプソン株式会社 | 読取装置、読取装置の制御方法、制御装置、及び、プログラム |
US10810415B1 (en) * | 2018-01-22 | 2020-10-20 | Apple Inc. | Low bandwidth transmission of event data |
JP2022168547A (ja) * | 2021-04-26 | 2022-11-08 | キヤノン株式会社 | 画像読取装置、画像読取装置システム、画像読取装置の制御方法およびプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003008797A (ja) * | 2001-06-22 | 2003-01-10 | Sharp Corp | 画像形成装置 |
JP2005110020A (ja) * | 2003-09-30 | 2005-04-21 | Canon Inc | 画像入出力装置およびメモリ管理方法およびプログラムおよび画像形成装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63292747A (ja) * | 1987-05-25 | 1988-11-30 | Hitachi Ltd | バツフア管理方式 |
JPH04142867A (ja) * | 1990-10-03 | 1992-05-15 | Canon Inc | ファクシミリ装置 |
JP2922664B2 (ja) | 1991-04-12 | 1999-07-26 | キヤノン株式会社 | 画像処理装置 |
JPH07273957A (ja) * | 1994-03-31 | 1995-10-20 | Toshiba Corp | 画像形成記憶装置 |
JP3539781B2 (ja) * | 1995-02-14 | 2004-07-07 | 東芝テック株式会社 | 複合型画像形成装置 |
JPH09222986A (ja) * | 1996-02-16 | 1997-08-26 | Fuji Xerox Co Ltd | 画像処理装置及び情報処理装置 |
JP2002011906A (ja) | 2000-06-27 | 2002-01-15 | Canon Inc | 印刷装置およびバッファリング方法 |
US6877048B2 (en) * | 2002-03-12 | 2005-04-05 | International Business Machines Corporation | Dynamic memory allocation between inbound and outbound buffers in a protocol handler |
US7330943B2 (en) * | 2004-08-03 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Storage device flow control |
-
2008
- 2008-07-03 JP JP2008174935A patent/JP4613984B2/ja active Active
-
2009
- 2009-07-01 US US12/496,098 patent/US8498023B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003008797A (ja) * | 2001-06-22 | 2003-01-10 | Sharp Corp | 画像形成装置 |
JP2005110020A (ja) * | 2003-09-30 | 2005-04-21 | Canon Inc | 画像入出力装置およびメモリ管理方法およびプログラムおよび画像形成装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2010016646A (ja) | 2010-01-21 |
US8498023B2 (en) | 2013-07-30 |
US20100002270A1 (en) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4613984B2 (ja) | 画像読取装置、及び記憶領域割り当て方法 | |
US6154286A (en) | Image forming apparatus | |
US9088679B2 (en) | Image forming apparatus, and control method and program for the same | |
JPH04261274A (ja) | 画像処理装置 | |
JP2010130111A (ja) | 画像読取装置 | |
JP5247588B2 (ja) | 画像処理装置、その制御方法及びプログラム | |
US6816273B1 (en) | Image forming method | |
EP1071273A2 (en) | Data flow control and storage facility for an image reproduction system | |
JP3882356B2 (ja) | デジタル画像出力装置 | |
JP2015080104A (ja) | 画像読取装置、画像読取装置の制御方法、プログラム、及び記憶媒体 | |
US7911647B2 (en) | Reader apparatus | |
JPH10123881A (ja) | 画像処理装置 | |
JP5168044B2 (ja) | 画像読取装置および画像形成装置 | |
JP3486503B2 (ja) | デジタル複写機 | |
JP7433881B2 (ja) | 画像読取装置、その制御方法、及びプログラム | |
US20170180602A1 (en) | Image processing apparatus with memory storing pre-processed image data | |
JPH11122475A (ja) | 画像読取装置及び画像読取方法 | |
JP2005014247A (ja) | 画像形成装置 | |
JP2021111883A (ja) | モノクロ画像形成装置及びモノクロ画像形成方法 | |
JPH09168070A (ja) | ファクシミリ装置 | |
CN113037940A (zh) | 图像处理装置、图像处理方法和存储介质 | |
JP2006080876A (ja) | 画像入出力装置、画像入出力方法、コンピュータプログラム及び記録媒体 | |
JP5552782B2 (ja) | 画像読み取り装置及び画像形成装置 | |
JP2021190844A (ja) | 画像形成装置 | |
JP3666197B2 (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20091016 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091016 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100830 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100921 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4613984 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131029 Year of fee payment: 3 |