(57)【要約】【課題】読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを効果的に防止する。【解決手段】制御部４０は、リードポインターに追従する破棄ポインターによって、破棄ポインターをライトポインターが所定方向側に超えないように、ライトポインターの移動を制御すると共に、リードポインターの位置にかかわらず、読み出しが完了していないデータを含むラインデータが書き込まれている前記ラインの位置を所定方向側に超えないように、破棄ポインターの移動を制御する。【選択図】図４
2012190169.tif 000002
【特許請求の範囲】
【請求項１】
媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、
記憶部と、
前記記憶部の記憶領域に形成されたリングバッファーと、
前記光学読取部によりライン単位で読み取った読取データを前記リングバッファーに巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出す制御部と、を備え、
前記制御部は、
前記読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理し、
さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする光学読取装置。
【請求項２】
前記制御部は、
前記所定の領域が複数の場合は、それぞれの領域毎に読み出されるような態様で、前記読取データの読み出しが可能であり、
１のラインに、複数の前記所定の領域のそれぞれに属する前記読取データが包含されている場合は、各領域に属する前記読取データのそれぞれの読み出しが完了するまでは、前記リードポインターの位置にかかわらず、前記破棄ポインターが、当該１のラインの位置を超えないようにすることを特徴とする請求項１に記載の光学読取装置。
【請求項３】
前記制御部は、
前記リングバッファーを複数の前記ラインごとに分割して形成されたブロック毎に、１のブロックに属する各前記ラインへの前記読取データの書き込みが完了した後、当該１のブロック内で前記リードポインターの位置を移動させつつ、当該ブロックに属する前記ラインの前記読取データを読み出し、
１のブロックに、複数の所定の領域が属している場合、前記リードポインターの位置にかかわらず、当該１のブロックに属する前記ラインのうち、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする請求項２に記載の光学読取装置。
【請求項４】
媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置の制御方法であって、
前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、
さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする光学読取装置の制御方法。
【請求項５】
媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、前記記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置を制御する制御部により実行されるプログラムであって、
前記制御部を、
前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、
さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御する手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み取り対象の媒体を光学的に読み取る光学読取装置、当該光学読取装置の制御方法、及び、当該光学読取装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、読み取り対象の媒体を光学的に読み取り、読み取り結果を順次リングバッファーに書き込む光学読取装置が知られている（例えば、特許文献１参照）。
この種の光学読取装置では、リングバッファーに書き込まれたデータが、順次、読み出されるのが一般的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−９４７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した光学読取装置のように、読み取り結果をリングバッファーに書き込むものでは、未だ読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを防止する必要がある。
本発明は、上述した事情に鑑みてなされたものであり、リングバッファーに読み取り結果を書き込む光学読取装置において、読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを効果的に防止することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、光学読取装置であって、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部と、前記記憶部の記憶領域に形成されたリングバッファーと、前記光学読取部によりライン単位で読み取った読取データを前記リングバッファーに巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出す制御部と、を備え、前記制御部は、前記読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。
この構成によれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。
ここで、リングバッファーにおいて、有用な読取データのみを読み出すようにし、有用な読取データが含まれる所定の領域のみを取り扱うのが効率的である。この場合、同じラインに複数の有用な読取データが含まれる所定の領域が存在する場合、一つの領域を読み出した後一旦リードポインターが進んでいるので、ライトポインターを進めて書き込みを行ってしまうと、まだ読み出しが済んでいない所定の領域に書き込みがされてしまうおそれがある。ライトポインターとリードポインターのみの管理ではこのような問題がある。そこで、破棄ポインターにより、読み出しが済んでいない所定の領域を含むラインの位置を超えないように、該当するラインの全ての所定の領域の読み出しが終わっていて、消去または上書き可能なラインの位置を示すものとして管理する。ラインポインターが破棄ポインターの位置を超えなければ、まだ読み出しが済んでいない所定の領域に書き込みがされてしまうことがない。また、破棄ポインターの位置までライトポインターを進めてよいことがわかり、効率的な読み取り動作も可能となる。
【０００６】
また、上記発明の光学読取装置であって、本発明は、前記制御部は、前記所定の領域が複数の場合は、それぞれの領域毎に読み出されるような態様で、前記読取データの読み出しが可能であり、１のラインに、複数の前記所定の領域のそれぞれに属する前記読取データが包含されている場合は、各領域に属する前記読取データのそれぞれの読み出しが完了するまでは、前記リードポインターの位置にかかわらず、前記破棄ポインターが、当該１のラインの位置を超えないようにすることを特徴とする。
この構成によれば、リングバッファーにおける複数の領域に属する読取データを領域毎に読み出す場合において、１のラインに、複数の異なる領域のそれぞれに属する読取データが包含されている場合であっても、包含された全ての読取データの読み出しが完了する前に、当該１のラインに、新たに読取データが書き込まれることを効果的に防止できる。
【０００７】
また、上記発明の光学読取装置であって、本発明は、前記制御部は、前記リングバッファーを複数の前記ラインごとに分割して形成されたブロック毎に、１のブロックに属する各前記ラインへの前記読取データの書き込みが完了した後、当該１のブロック内で前記リードポインターの位置を移動させつつ、当該ブロックに属する前記ラインの前記読取データを読み出し、１のブロックに、複数の所定の領域が属している場合、前記リードポインターの位置にかかわらず、当該１のブロックに属する前記ラインのうち、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。
この構成によれば、ブロック単位で読取データの読み出しを実行することによる読み出し処理の効率化を実現しつつ、ブロック内に、複数の所定領域がある場合であっても、読み出しが完了していない読取データを含むラインを超えないように破棄ポインターの移動が制御され、当該ラインに新たに読取データが書き込まれることを効果的に防止できる。
【０００８】
また、上記目的を達成するために、本発明は、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置の制御方法であって、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。
この制御方法によれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。
【０００９】
また、上記目的を達成するために、本発明は、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、前記記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置を制御する制御部により実行されるプログラムであって、前記制御部を、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御する手段として機能させることを特徴とする。
このプログラムを実行すれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。
【発明の効果】
【００１０】
本発明によれば、読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを効果的に防止できる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るドットインパクトプリンターの外観斜視図である。
【図２】プリンター本体を示す斜視図である。
【図３】プリンター本体の側断面図である。
【図４】ドットインパクトプリンターの機能的構成を示すブロック図である。
【図５】画像バッファーを模式的に示す図である。
【図６】ブロックを説明するため、画像バッファーを模式的に示す図である。
【図７】エリアスキャンを説明するため、画像バッファーを模式的に示す図。
【図８】破棄ポインターを説明するため、画像バッファーを模式的に示す図。
【図９】エリアスキャン時の画像バッファーを模式的に示す図である。
【図１０】エリアスキャン時の画像バッファーを模式的に示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係るドットインパクトプリンター１０（光学読取装置）の外観を示す正面斜視図である。図２は、プリンター本体１１を示す外観斜視図である。図３は、図１のドットインパクトプリンター１０を示す側断面図である。
図１に示すドットインパクトプリンター１０は、記録ヘッド１８（図３参照）が備える複数の記録ワイヤーを、リボンカートリッジ（図示略）から繰り出したインクリボン（図示略）を介して記録媒体Ｓに押し付け、この記録媒体Ｓの記録面上にドットを形成することにより、文字を含む画像を記録する。ドットインパクトプリンター１０は、光学読取装置１１０（図３参照）を備え、光学読取装置としても機能し、記録媒体Ｓの表面に表示された文字や記号、画像等を光学的に読み取ることができる。
【００１３】
ドットインパクトプリンター１０で使用可能な記録媒体Ｓ（媒体）としては、所定長さに切断されたカット媒体と、複数枚が連接された連続紙とが挙げられる。カット媒体としては、例えば単票紙や単票複写紙などの他、通帳や葉書、封筒などがあり、連続紙には連続複写紙やミシン目などで連接されたファンフォールド紙を含む。本実施形態では、記録媒体Ｓとして、金融機関等が発行する小切手または手形（以下、総称して小切手という）や、金融機関等が発行する通帳が使用される。小切手は、磁気インクによって、その表面の一部の領域ＭＡに使用者の口座番号や当該小切手のシリアル番号等のＭＩＣＲ（Magnetic Ink Character Recognition）情報が印刷された単票紙である。通帳は、複数枚の記録用紙が綴じられた冊子形態となっており、この冊子を開いた内側の面が記録面となっている。通帳の裏表紙に相当する面の後部には、磁気ストライプが設けられている。
【００１４】
ドットインパクトプリンター１０は、図１に示すように、外装体としての上部カバー１２、上部ケース１３及び下部ケース１４を備え、上部ケース１３及び下部ケース１４の前面には、記録媒体Ｓを挿入及び排出する手差口１５が開口している。一方、上部ケース１３及び下部ケース１４の背面には記録媒体Ｓを排出する排出口２０が開口している。ドットインパクトプリンター１０により処理された記録媒体Ｓを手差口１５から排出するか、或いは排出口２０から排出するかは、後述するホストコンピューター２００からドットインパクトプリンター１０に対して送信されるコマンドにより設定できる。手差口１５が開口した側、すなわち図３中の左側をフロント（前）側とし、排出口２０が開口した側、すなわち図３中の右側をリア（後）側とする。
ドットインパクトプリンター１０は、図２に示すように、上記の外装体に覆われるプリンター本体１１を有している。プリンター本体１１は、下本体部１１Ａと、この下本体部１１Ａの後端部に軸１１Ｃで支持される上本体部（図示略）とを備えている。上本体部は、上本体部の左側面に設置されている開閉レバー（図示略）の操作によって回転可能であり、上本体部を回転させるとプリンター本体１１の内部が露出する。
【００１５】
図２及び図３に示すように、プリンター本体１１は、ベースフレーム１６と、このベースフレーム１６の両端に固定される一対の右サイドフレーム１７Ａ及び左サイドフレーム１７Ｂとを備える。両サイドフレーム１７Ａ、１７Ｂの外側には、上本体部の両サイドフレーム（図示略）があり、その間にキャリッジガイド軸３１が架け渡されると共に、両サイドフレーム１７Ａ、１７Ｂ間に平坦面形状の前方媒体案内２４及び後方媒体案内２５が固定して設けられる。これらの前方媒体案内２４と後方媒体案内２５との間に、平面形状のプラテン２１が配置され、このプラテン２１の上方には、プラテン２１に対向するように記録ヘッド１８が配置されている。
記録ヘッド１８は、キャリッジガイド軸３１に摺動自在に挿通されるキャリッジ１９に搭載されている。キャリッジ１９は、当該キャリッジ１９を駆動するキャリッジ駆動モーター５６（図４）の正転又は逆転により、タイミングベルト（図示略）を介して駆動され、キャリッジガイド軸３１に案内されて往復移動される。キャリッジ１９は、図１中符号Ｃで示す方向、すなわち、キャリッジガイド軸３１の軸方向及びプラテン２１の長手方向と一致する主走査方向に、上本体部両サイドフレームの間で往復走査される。なお、キャリッジ１９の主走査方向Ｃに直交する方向、すなわち図１中符号Ｄで示す方向を副走査方向とする。
【００１６】
キャリッジ１９に搭載される記録ヘッド１８は、キャリッジ１９と共に走行される間に、その先端面においてプラテン２１に対向するワイヤー突出部（図示略）から記録ワイヤーを突出させてインクリボンに打ち当て、プラテン２１と記録ヘッド１８との間に搬送される記録媒体Ｓにインクリボンのインクを付着させて、記録媒体Ｓに文字を含む画像を記録する。インクリボンは、上記の本体フレーム又はキャリッジ１９に装着されるリボンカートリッジ（図示略）内に折り畳まれて収納され、キャリッジ１９の走査に伴って繰り出される。また、記録ヘッド１８の後方側には、図３に示すように、プラテン２１の上方に位置するように媒体幅センサー５５が配設される。媒体幅センサー５５は、キャリッジ１９に搭載されてキャリッジ１９とともにプラテン２１上を走査され、記録媒体Ｓの側端の位置や記録媒体Ｓの幅を求めるために使用される。
【００１７】
プラテン２１は、図２、図３に示すように、キャリッジ１９の走行方向に延在して平面形状に形成され、付勢ばね１８０により記録ヘッド１８に向けて付勢され、かつ弾性支持されている。付勢ばね１８０は圧縮コイルばねであり、この付勢ばね１８０の付勢力により、記録ヘッド１８の記録動作時における記録ワイヤーの突出力が支持される。また、プラテン２１は、記録媒体Ｓの搬送中にこの記録媒体Ｓの厚さが変化した場合、又はプリンター本体１１に厚さの異なる記録媒体Ｓが搬入された場合に、付勢ばね１８０の付勢力に抗して、記録ヘッド１８の先端により押圧されて記録ヘッド１８から離れる方向に移動する。これにより、記録媒体Ｓの厚さにかかわらず、記録ヘッド１８の先端と記録媒体Ｓの記録面との間のギャップが一定に確保される。
【００１８】
プリンター本体１１は、図３に示すように、記録媒体Ｓを搬送する媒体搬送機構（搬送部）１００と、この媒体搬送機構１００で搬送される記録媒体Ｓの先端が突き当てられて当該記録媒体Ｓを整列させる整列機構２８と、小切手に設けられたＭＩＣＲ情報の読み取りや、通帳に設けられた磁気ストライプに対して磁気情報の読み取り又は書き込みを行う磁気ヘッド３４を備えた磁気データ読書部２９と、この磁気データ読書部２９の磁気ヘッド３４がＭＩＣＲ情報の読み取りを含む磁気情報処理の実行時に、記録媒体Ｓの浮き上がりを抑制すべく、記録媒体Ｓを上から押える媒体押え部３０と、を有している。
【００１９】
媒体搬送機構１００は、図２、図３に示すように、プラテン２１、第１駆動ローラー２２Ａ、第１従動ローラー２２Ｂ、第２駆動ローラー２３Ａ、第２従動ローラー２３Ｂ、第３駆動ローラー１２４Ａ、第３従動ローラー１２４Ｂ、前方媒体案内２４、後方媒体案内２５、媒体搬送モーター２６及び駆動輪列部２７を備えて構成されている。媒体搬送機構１００は、前方媒体案内２４及び後方媒体案内２５上に、各ローラーを介して記録媒体Ｓを搬送する搬送路Ｐを構成し、前方媒体案内２４及び後方媒体案内２５の上面が搬送路Ｐの搬送面ＰＡとなっている。
本構成では、第１駆動ローラー２２Ａ、第１従動ローラー２２Ｂは、プラテン２１及び記録ヘッド１８に対してプリンター本体１１のフロント側に配置され、第２駆動ローラー２３Ａ、第２従動ローラー２３Ｂ及び第３駆動ローラー１２４Ａ、第３従動ローラー１２４Ｂは、プラテン２１及び記録ヘッド１８に対してプリンター本体１１のリア側に順次配置されている。
【００２０】
第１駆動ローラー２２Ａと第１従動ローラー２２Ｂとは、上下方向に配置されて対をなし、第２駆動ローラー２３Ａと第２従動ローラー２３Ｂとは、上下方向に配置されて対をなし、第３駆動ローラー１２４Ａと第３従動ローラー１２４Ｂとは、上下方向に配置されて対をなす。
第１駆動ローラー２２Ａ、第２駆動ローラー２３Ａ及び第３駆動ローラー１２４Ａは、媒体搬送モーター２６及び駆動輪列部２７によって回転駆動される駆動ローラーであり、第１従動ローラー２２Ｂ、第２従動ローラー２３Ｂ及び第３従動ローラー１２４Ｂは、それぞれ第１駆動ローラー２２Ａ、第２駆動ローラー２３Ａ、及び、第３駆動ローラー１２４Ａ側に所定の押圧力でばね４２Ａ、４２Ｂ、４２Ｃによりばね付勢されている従動ローラーである。これによって、第１駆動ローラー２２Ａと第１従動ローラー２２Ｂとが互いに反対方向に回転駆動され、第２駆動ローラー２３Ａと第２従動ローラー２３Ｂとが互いに反対方向に回転駆動され、第３駆動ローラー１２４Ａと第３従動ローラー１２４Ｂとが互いに反対方向に回転駆動される。
【００２１】
駆動輪列部２７は、図２に示すように、右サイドフレーム１７Ａの外側に配置される。この駆動輪列部２７は、正転又は逆転可能な媒体搬送モーター２６の駆動軸に回転一体に固定されたモーターピニオン５１を備える。このモーターピニオン５１からの駆動力が、減速ギア５２を介して第２駆動ローラー２３Ａの第２ローラー軸３３に取り付けられた第２駆動ギア５３Ｂへ伝達され、更に、この第２駆動ギア５３Ｂから中間ギア５４を介して第１駆動ローラー２２Ａの第１ローラー軸３２に取り付けられた第１駆動ギア５３Ａに伝達される。また、第２駆動ローラー２３Ａの第２ローラー軸３３の回転力が、例えば、駆動ベルト（図示略）によって第３駆動ローラー１２４Ａの第３ローラー軸１３４に伝達される。これにより、図３に示す第１駆動ローラー２２Ａ、第２駆動ローラー２３Ａ、及び、第３駆動ローラー１２４Ａが同一方向に回転して、記録媒体Ｓをプリンター本体１１内に搬送可能とする。つまり、図３に示す第１駆動ローラー２２Ａ、第２駆動ローラー２３Ａ、及び、第３駆動ローラー１２４Ａは、媒体搬送モーター２６が正転している場合、副走査方向に沿って、図中符号Ｆで示すようにプリンター本体１１内に記録媒体Ｓを搬送し、媒体搬送モーター２６が逆転している場合、図中符号Ｒで示すように、プリンター本体１１内から排出する方向に記録媒体Ｓを搬送する。
【００２２】
整列機構２８は、記録ヘッド１８による記録媒体Ｓへの記録や、光学読取装置１１０による記録媒体Ｓの表面の読み取りを行う前に、この記録媒体Ｓを整列するものである。整列機構２８は、第１駆動ローラー２２Ａ及び第１従動ローラー２２Ｂと記録ヘッド１８及びプラテン２１との間に、主走査方向に並べて設けられ、搬送路Ｐ内に突出する複数の整列板３８と、整列板３８を駆動する整列モーター５８（図４）とを備え、これら整列板３８に記録媒体Ｓの先端部を突き当てることで記録媒体Ｓの向き整列させることができる。
【００２３】
プリンター本体１１は、図２に示すように、搬送路Ｐにおける整列板３８の上流側近傍に、これら整列板３８に突き当てられた記録媒体Ｓの有無を検知する複数の整列センサー３９を備える。整列センサー３９は、それぞれ搬送路Ｐを挟んで対向する発光部（ＬＥＤ等）と受光部（フォトトランジスター等）とを備える光透過型のセンサーであり、主走査方向に並べて配設されている。複数の整列センサー３９のうち記録媒体Ｓの先端を検出したセンサーの数及び配置により、整列機構２８による整列後の記録媒体Ｓの搬送方向に対する傾きが、許容範囲内あるか否かを判定できる。
また、ドットインパクトプリンター１０は、媒体搬送モーター２６の駆動制御、キャリッジ１９の走行制御、記録ヘッド１８の記録ワイヤーによる記録動作の制御、光学読取装置１１０の読取動作の制御等、ドットインパクトプリンター１０の全体を制御する制御部として、例えばプリンター本体１１の後側の下方に、制御基板部（図示略）を備えている。
【００２４】
プリンター本体１１において、第１駆動ローラー２２Ａのフロント側には、搬送路Ｐへの記録媒体Ｓの挿入を検知する複数の媒体端センサー４７が並設されている。これら媒体端センサー４７は、搬送路Ｐに向けて光を発する発光部と、その反射光を検出する受光部とを備えた光反射型センサーであり、手差口１５から挿入された記録媒体Ｓを検出する。なお、媒体端センサー４７は搬送路Ｐを挟んで対向するように発光部と受光部とを配した光透過型センサーであっても良い。本構成では、すべての媒体端センサー４７の受光部が、受光した状態から、いずれか１つの媒体端センサー４７で受光が遮られた場合には、記録媒体Ｓが搬送路Ｐ内に挿入されたと判断される。
【００２５】
また、プリンター本体１１は、図３に示すように、記録媒体Ｓの表面に表示された文字、記号または画像等を読み取る光学読取装置１１０（光学読取部）を備える。この光学読取装置１１０は、記録媒体Ｓの上面側に印刷等で表示されている情報を読み取る第１スキャナー１１１（読取部）と、この第１スキャナー１１１に対向配置され、当該記録媒体Ｓの下面側に印刷等で表示されている情報を読み取る第２スキャナー１１２（読取部）とを備える。通常、記録媒体Ｓは、ＭＩＣＲ情報が印刷されている面が下面になるよう、手差口１５から挿入される。
第１スキャナー１１１及び第２スキャナー１１２は、第２駆動ローラー２３Ａと第３駆動ローラー１２４Ａとの間に配置され、搬送路Ｐを搬送中の記録媒体Ｓの情報を連続的に読み取る光学イメージセンサーである。
【００２６】
第１スキャナー１１１及び第２スキャナー１１２は、例えば、ＣＩＳ（Contact Image Sensor）型の画像読取センサーであり、記録媒体Ｓに密着する平坦なカバーガラス１４０、１５０と、これらカバーガラス１４０、１５０を保持する本体ケース１４１、１５１とをそれぞれ備える。これら本体ケース１４１、１５１の内側には、ＬＥＤ等の光源から出力される光を記録媒体Ｓの読み取り領域に対して照射する照射部（図示略）と、主走査方向（Ｃ方向）に一列に配列された複数の受光センサー（図示略）と、この受光センサーからの信号を上記制御基板部に出力する出力部（図示略）とがそれぞれ収容されている。なお、第１スキャナー１１１及び第２スキャナー１１２はＣＩＳを備えたものに限らず、ＣＣＤ（Charge Coupled Device）を備えたものであってもよい。
第２スキャナー１１２は、図２に示すように、プラテン２１と略平行にドットインパクトプリンター１０の幅方向に延在して長手形状に構成される本体ケース１５１及びカバーガラス１５０を備え、この本体ケース１５１は、カバーガラス１５０の上面（ガラス面）が後方媒体案内２５に形成された開口を通じて搬送路Ｐに露出するように配置されている。第１スキャナー１１１は、図３に示すように、カバーガラス１４０の下面（ガラス面）が、上記カバーガラス１５０の上面に対向するように第２スキャナー１１２の上方に設けられ、幅方向においても第２スキャナー１１２と略同一の長さの長手形状に形成されている。
【００２７】
第１スキャナー１１１の上部には付勢部材１１３が設けられ、第１スキャナー１１１は、付勢部材１１３によって後方媒体案内２５の記録媒体Ｓに対して近接するように付勢されている。また、付勢部材１１３は、第１スキャナー１１１を幅方向に渡って略均一な力で第２スキャナー１１２側に押し付けている。ここで、付勢部材１１３としては、コイルばねや板ばね、或いは、エラストマー製のクッション部材等を使用することができる。カバーガラス１４０、１５０のガラス面間には、所定の厚さの記録媒体が入り込み可能な間隔が設けられており、記録媒体Ｓを読み取る際には、搬送された記録媒体Ｓによって第１スキャナー１１１が上方に押し退けられ、付勢部材１１３が縮むことによりカバーガラス１４０、１５０間を記録媒体Ｓが通過可能となる。すなわち、光学読取装置１１０では、付勢部材１１３によって付勢された第１スキャナー１１１によって記録媒体Ｓを第２スキャナー１１２側に押し付けることで、記録媒体Ｓとカバーガラス１４０、１５０のガラス面とを確実に密着させて、読み取り品質を向上させている。
【００２８】
第１スキャナー１１１及び第２スキャナー１１２の受光センサー（図示略）は、ドットインパクトプリンター１０の主走査方向に一列に並べられ、主走査方向に延びるライン状に読み取りを行う。すなわち、光学読取部たる第１スキャナー１１１、及び、第２スキャナー１１２は、ライン状に並んだ光素子を有している。第１スキャナー１１１及び第２スキャナー１１２の受光センサーは、主走査方向における記録ヘッド１８の印字可能範囲よりも広い範囲に配設されており、ドットインパクトプリンター１０が印刷可能な全ての記録媒体よりも広い幅で読み取りを行える。すなわち、光学読取装置１１０は、ドットインパクトプリンター１０で使用する全ての記録媒体Ｓの全面を読み取ることができる。
第１スキャナー１１１と第２スキャナー１１２とは、図３に示すように搬送路Ｐを挟んで対向して配設されているが、第１スキャナー１１１が備えるライン状の受光センサーと、第２スキャナー１１２が備えるライン状の受光センサーとは、記録媒体Ｓの搬送方向において５ｍｍ程度オフセットされている。この構成により、互いの光源からの光が他方の受光センサーに与える影響を解消でき、より高い読取品質が得られる。
【００２９】
第１スキャナー１１１及び第２スキャナー１１２は、それぞれ、Ｒ、Ｇ、Ｂの光源を備え、モノクロ（２値、１６階調、２５６階調）及びフルカラーの読み取りが可能である。また、第１スキャナー１１１及び第２スキャナー１１２の読取解像度は、例えば、２００ｄｐｉ（ドット／インチ）、３００ｄｐｉ、６００ｄｐｉの３段階に設定可能である。記録媒体Ｓの搬送方向（副走査方向）における読取ライン数は、主走査方向における読取解像度に合わせて設定され、読み取り時の記録媒体Ｓの搬送速度は読取解像度と、受光センサーの検出値の処理速度等の仕様に合わせて調整される。
【００３０】
図４は、ドットインパクトプリンター１０の制御系の構成を示すブロック図である。
この図４に示す各部は、制御基板（図示略）に実装されたハードウェアとソフトウェアとの協働により実現される。
ドットインパクトプリンター１０は、ＣＰＵや、その他の周辺回路を備え、制御プログラムに基づいてドットインパクトプリンター１０の全体を制御する制御部４０、制御部４０によりＥＥＰＲＯＭ４２から読み出された制御プログラムやデータ等を一時的に記憶するＲＡＭ４１（記憶部）、制御部４０により実行される制御プラグラムや処理されるデータ等を記憶したＥＥＰＲＯＭ４２、ドットインパクトプリンター１０を制御するホストコンピューター２００との間で情報を送受信する際のデータ形式を変換するインターフェイス（Ｉ／Ｆ）４３、各種センサー類に接続されたゲートアレイ（Ｇ／Ａ）４５、各種モーターを駆動するモータードライバー４６、及び、ヘッドを駆動するヘッドドライバー４８を備え、これらの各部はバス４９を介して接続されている。
ＲＡＭ４１には、光学読取装置１１０が読み取った読取画像データが書き込まれる画像バッファー６０が形成されている。詳細は後述するが、この画像バッファー６０は、所定の手順に準拠して巡回的にデータが書き込まれるリングバッファーであり、制御部４０は、当該画像バッファー６０に書き込まれた読取画像データを読み出して、ホストコンピューター２００へ出力する。
【００３１】
ゲートアレイ４５には、整列センサー３９、媒体端センサー４７、媒体幅センサー５５、第１スキャナー１１１、及び、第２スキャナー１１２が接続されている。ゲートアレイ４５は、整列センサー３９、媒体端センサー４７及び媒体幅センサー５５から入力されるアナログ電圧を量子化してデジタルデータとし、制御部４０に出力する。
第１スキャナー１１１及び第２スキャナー１１２は、記録媒体Ｓの表面をＣＩＳにより光学的に読み取り、ＣＩＳの検出電圧をＣＩＳの画素毎にゲートアレイ４５に供給し、ゲートアレイ４５は、第１スキャナー１１１及び第２スキャナー１１２から供給されたアナログ電圧を量子化してデジタルデータとして制御部４０に出力する。制御部４０は、後述する所定の手順に準拠して、取得したデジタルデータに基づいて、読取画像データを画像バッファー６０に展開する。
モータードライバー４６は、媒体搬送モーター２６、キャリッジ駆動モーター５６、磁気ヘッド駆動モーター５７、及び整列モーター５８に接続され、これら各モーターに駆動電流や駆動パルスを供給して、これらのモーターを動作させる。なお、モータードライバー４６には、整列板３８（図３）を動作させる整列モーター５８（図４）等が接続されていてもよい。
媒体端センサー４７は、記録ヘッド１８及び磁気ヘッド３４に接続され、記録ヘッド１８に対して駆動電流を供給することによって記録ワイヤーを突出させる一方、磁気ヘッド３４に対して読取／書込用の駆動電流を出力するとともに、磁気データの読取を行う場合には、磁気ヘッド３４の検出電圧（アナログ電圧）を検出し、デジタルデータとして制御部４０に出力する。
【００３２】
制御部４０は、ＥＥＰＲＯＭ４２に格納された制御プログラムに基づいて、ゲートアレイ４５、モータードライバー４６及びヘッドドライバー４８を介して、各種センサーの検知状態を取得するとともに各モーターを駆動して記録媒体Ｓを搬送し、各ヘッドを駆動することにより、記録媒体Ｓへの記録を実行する。
【００３３】
次いで、画像バッファー６０に読取画像データが書き込まれ、書き込まれた読取画像データが順次読み出される際の動作について詳述する。
【００３４】
図５は、所定の読取解像度（例えば６００ｄｐｉ）で、所定のサイズの単票紙たる記録媒体Ｓを読み取る場合にＲＡＭ４１に形成される画像バッファー６０の状態を模式的に示す図である。図５（Ａ）は、第１スキャナー１１１の読取結果に基づいて読取画像データが書き込まれる画像バッファー６０である第１画像バッファー６０ａを示し、図５（Ｂ）は、第２スキャナー１１２の読み取り結果に基づいて読取画像データが書き込まれる画像バッファー６０である第２画像バッファー６０ｂを示している。
図５に示すように、本実施形態では、ＲＡＭ４１に、２つのバッファーが形成され、一方のバッファーである第１画像バッファー６０ａに、第１スキャナー１１１の読み取り結果に基づいて読取画像データが書き込まれ、また、他方のバッファーである第２画像バッファー６０ｂに、第２スキャナー１１２の読み取り結果に基づいて読取画像データが書き込まれる構成となっている。
以下の説明では、第１画像バッファー６０ａを利用して、画像バッファー６０の構成、及び、画像バッファー６０の利用の態様を説明するが、第２画像バッファー６０ｂは、第１画像バッファー６０ａと同様の構成であり、かつ、利用の態様も同様である。
【００３５】
第１画像バッファー６０ａは、読取画像データが展開されるバッファーである。
読取画像データは、ビットマップ形式のデータであり、データ上で読取解像度に準じたピッチでドットマトリクス状に配置された各画素について、画素毎にＲＧＢ系の色成分を階調値（例えば、ＲＧＢ系の色成分のそれぞれを０−２５６段階で表した階調値や、モノクロに係る色成分を２値で表した値）として保持する。以下、説明の便宜のため、画素毎に保持する情報のことを単に「画素」と表現することがあるものとする。
図５（Ａ）の例では、第１画像バッファー６０ａは、所定方向（矢印Ｙ１）に８４００ドット、この所定方向に直交する方向であるライン方向（矢印Ｙ２）に５１００ドットの画素が展開可能な構成となっている。また、第１画像バッファー６０ａは、ライン方向に延びる複数（８４００本）のライン（ラインＬ１〜ラインＬ８４００）が所定方向に並んで配置されて形成されている。図５（Ａ）に示すように、所定方向とは、具体的には、ラインＬ１からラインＬ８４００へ向かう方向である。
【００３６】
第１画像バッファー６０ａの各ラインには、第１スキャナー１１１の読み取り結果に応じて、ラインごとに所定方向へ向かって順次ラインデータ（読取データ）が書き込まれる。
詳述すると、上述したように、第１スキャナー１１１は、主走査方向（図１のＣ方向）に一列に配列された複数の受光センサーを備えており、記録媒体Ｓの上面の読み取りの際には、記録媒体Ｓの搬送に伴って、一列の受光センサーによって、間欠的に、スキャン方向（搬送方向の逆方向）へ向かって、記録媒体Ｓの上面が読み取られる。その際、一列の受光センサーの読み取りごとに、一列の受光センサーの出力値に基づいて、主走査方向（Ｃ方向）に対応する方向に延びる５１００ドットの画素（画素ごとの色に係る情報）からなるラインデータが、順次、生成される。
第１画像バッファー６０ａにおいて、ライン方向（矢印Ｙ２）は主走査方向（Ｃ方向）に対応する方向であり、かつ、所定方向（矢印Ｙ１）はスキャン方向に対応する方向である。そして、上記のようにして生成されたラインデータは、ラインごとに所定方向へ向かって、順次、書き込まれる。より具体的には、一列の受光センサーの最初の読み取り結果に基づいて生成されたラインデータが、ラインＬ１に書き込まれ、次に一列の受光センサーの読み取り結果に基づいて生成されたラインデータが、ラインＬ２に書き込まれ、という具合に、順次、ラインデータがラインごとに所定方向へ向かって書き込まれる。
ここで、第１画像バッファー６０ａは、リングバッファーであり、ラインデータの書き込みは、所定方向へ向かって巡回的に行われる。より具体的には、ラインＬ８４００へラインデータの書き込みが行われた場合、次は、ラインＬ１へのラインデータの書き込みが行われる。この場合、ラインＬ１には、既にラインデータが書き込まれているが、新たなラインデータによって上書きされる。
【００３７】
本実施形態では、制御部４０は、ライトポインターＰＷ、及び、リードポインターＰＲによって、ラインデータの書き込み、及び、読み出しの対象となるラインを管理する。
詳述すると、ライトポインターＰＷは、ラインデータを書き込むラインを示すポインターである。ポインターとは、特定のラインを示す値を保持する情報であればよく、例えば、ポインターを管理するためのプログラム上に定義された変数であってもよく、また、ＲＡＭ４１の所定の領域に書き換え可能に記憶されたデータであってもよい。このことは、リードポインターＰＲや、後述する破棄ポインターＰＨについても同様である。
制御部４０は、生成されたラインデータを第１画像バッファー６０ａのラインに書き込む際、ライトポインターＰＷが示すラインにラインデータを書き込み、かつ、ラインデータの書き込みが終了した後は、ライトポインターＰＷが示すラインを、所定方向側へ１つ移動させる。
【００３８】
以下の説明では、ポインターが示すラインを、所定方向側へ移動させることを、単に、「ポインターを所定方向へ移動する」と表現することがあるものとする。
また、以下の説明において、「ポインターの位置」とは、ポインターが示すラインのことである。
【００３９】
また、リードポインターＰＲは、ラインデータを読み出すラインを示すポインターである。
制御部４０は、第１画像バッファー６０ａに書き込まれたラインデータを読み出す際、リードポインターＰＲが示すラインに書き込まれているラインデータを読み出し、かつ、ラインデータの読み出しが終了した後は、リードポインターＰＲが示すラインを、所定方向側へ１つ移動させる。なお、制御部４０は、読み出したラインデータを、後述する所定の手順に従って、インターフェイス４３を介して、ホストコンピューター２００に転送する。
リードポインターＰＲは、基本的には、ライトポインターＰＷの移動に追従して、移動する。これにより、第１画像バッファー６０ａに書き込まれたラインデータが、書き込まれた順に読み出され、ホストコンピューター２００に転送される。
【００４０】
本実施形態では、ラインデータの読み出し、及び、転送は、ブロック単位で行われる。
【００４１】
図６は、ブロックを説明するための図であり、ブロックごとに分割された第１画像バッファー６０ａの様子を模式的に示す図である。
図６に示すように、本実施形態では、第１画像バッファー６０ａが複数のラインごとに分割されて、ｎ個のブロック（ブロックＢ１〜ブロックＢｎ）が形成されている。１つのブロックを構成するラインの数は、５００個を超えない範囲で、ドットインパクトプリンター１０とホストコンピューター２００との間の通信速度等を考慮して、ラインデータの転送に適した値に規定される。
本実施形態では、上記のようにして形成されているブロック単位で、ラインデータの転送が行われる。
詳述すると、図６を参照し、第１スキャナー１１１によって記録媒体Ｓの上面の画像の読み取りが実行されると、ラインＬ１から所定方向へ向かってラインごとに、順次、ラインデータの書き込みが実行される。この場合において、ラインＬ１が属するブロックＢ１を構成するＫ１個のラインへのラインデータの書き込みが完了するまでは、ラインデータの読み取りは実行されず、従って、リードポインターＰＲは、ラインＬ１を示した状態が維持される。
そして、ラインデータの書き込みが進行し、ブロックＢ１を構成するＫ１個の全てのラインへのラインデータの書き込みが完了すると、制御部４０により、ブロックＢ１を構成するラインのそれぞれについて、ラインデータの読み出しが所定方向へ向かって順次実行される。そして、ブロックＢ１を構成する全てのラインのラインデータの読み出しが完了した後、制御部４０は、読み出したラインデータの全てを所定のプロトコルに準拠して、ホストコンピューター２００に転送する。なお、ブロックＢ１を構成する全てのラインのラインデータの読み出しが完了した時点では、リードポインターＰＲは、ブロックＢ２の先頭のラインを示している状態となる。
制御部４０は、ブロックＢ１を構成するラインのラインデータの転送が終了した後、ブロックＢ２についても同様にしてラインデータを転送する。すなわち、ブロックＢ２を構成する全てのラインへのラインデータの書き込みが完了するまで、ブロックＢ２を構成するラインに書き込まれたラインデータの読み出しを停止し、ブロックＢ２を構成する全てのラインへのラインデータの書き込みが完了した後に、ラインデータの読み出しを開始し、読み出したラインデータを包括的にホストコンピューター２００に転送する。
このようにして、制御部４０は、ブロック単位で、ラインデータの転送を実行するが、これにより、既にラインデータが書き込まれており、かつ、転送を考慮してそのサイズ（ライン数）が規定されている一群の領域（ブロック）に対して、一括して読み出し、及び、転送に係る処理を実行でき、読み出し、及び、転送に係る処理が効率化する。
【００４２】
また、本実施形態に係るドットインパクトプリンター１０は、第１画像バッファー６０ａにおける所定の領域に属するラインデータのみの読み出し、転送を行うエリアスキャンを実行可能である。
【００４３】
図７は、エリアスキャンを説明するため、第１画像バッファー６０ａを模式的に示す図である。
図７では、第１画像バッファー６０ａが所定の座標系に展開されているものとし、第１画像バッファー６０ａを構成する画素（＝第１画像バッファー６０ａに展開される読取画像データを構成する画素）のうち、図中最左の最上に配置された画素を原点として、当該画素に座標として（０、０）を付与すると共に、当該原点から図中右方向へ向かう方向をｘ軸＋方向と規定し、かつ、当該原点から図中下方向へ向かう方向をｙ軸＋方向と規定し、図中最右の最上に配置された画素に座標として（５１００、０）を付与し、図中最左の最下に配置された画素に座標として（０、８４００）を付与し、図中最右の最下に配置された画素に座標として（５１００、８４００）を付与している。第１画像バッファー６０ａを構成する全ての画素は、原点からの相対的な位置を示す座標によって一意に特定される。
図７の例において、エリアスキャンでは、例えば、Ｐ１（１０００、４０００）、Ｐ２（４０００、４０００）、Ｐ３（１０００、８０００）、及び、Ｐ４（４０００、８０００）の４点によって定義される領域Ａ１に含まれる（属する）ラインデータのみの読み出し、及び、転送を実行可能である。この場合、記録媒体Ｓの画像のうち、領域Ａ１に属する画像の画像データのみが、最終的に、ホストコンピューター２００に転送されることとなる。
なお、エリアスキャンの実行にあたっては、ホストコンピューター２００が提供する所定のユーザーインターフェイスを利用して、ユーザーは、記録媒体Ｓの上面において画像の転送を行いたい矩形の領域を指定する。この指定に基づいて、ホストコンピューター２００は、第１画像バッファー６０ａにおいて、指定された領域に対応する領域の４点の座標を算出し、算出した座標をドットインパクトプリンター１０の制御部４０に出力する。
【００４４】
図７を用いて領域Ａ１に対するエリアスキャン時の動作について詳述する。なお、図７に示すように、領域Ａ１は、ブロックＢ（ｉ−１）、ブロックＢｉ、及び、ブロックＢ（ｉ＋１）の３つのブロックに跨った領域である。
エリアスキャンでは、ラインデータの書き込みは、エリアスキャンを行わない場合と同様にして、ラインごとに所定方向へ向かって、順次、実行される。そして、第１スキャナー１１１による記録媒体Ｓの上面に読み取りに伴って、ラインデータの所定方向への書き込みが進行し、ブロックＢ（ｉ−１）の１つ手前のブロックであるブロックＢ（ｉ−２）を構成する全てのラインへのラインデータの書き込みが完了したものとする。この場合、ライトポインターＰＷは、ブロックＢ（ｉ−１）の先頭のラインであるラインＬａを示した状態となる。
一方、制御部４０は、ブロックＢ（ｉ−２）の書き込みが終了した時点では、読み出しを実行すべきラインデータが存在しないため、リードポインターＰＲを移動させず、リードポインターＰＲがラインＬ１を示した状態を維持する。
ブロックＢ（ｉ−２）へのラインデータの書き込みが完了した後、さらに所定方向へのラインデータの書き込みが進み、ブロックＢ（ｉ−１）を構成する全てのラインデータへの書き込みが完了したとする。ブロックＢ（ｉ−１）には、領域Ａ１が延在しているが、上述したように、ラインデータの読み出し、及び、転送はブロック単位で行われるため、制御部４０は、ブロックＢ（ｉ−１）を構成する全てのラインデータへのラインデータの書き込みが完了するまでは、リードポインターＰＲの移動を行わず、リードポインターＰＲがラインＬ１を示した状態を維持する。
【００４５】
ブロックＢ（ｉ−１）を構成する全てのラインデータへの書き込みが完了した場合、制御部４０は、リードポインターＰＲを、ラインＬａに至るまで所定方向へ向かって移動させる。この移動に際し、ラインデータの読み取りは行われない。次いで、制御部４０は、領域Ａ１が属していないラインデータが書き込まれているライン、具体的には、ラインＬａとラインＬｂとの間に介在するライン（ラインＬａを含み、ラインＬｂを含まない）については、ラインデータの読み出しを行うことなく、リードポインターＰＲが示すラインを、所定方向へ向かって順次移動させた後、リードポインターＰＲが示すラインを、ラインＬｂとする。このラインＬｂは、領域Ａ１に属するデータが含まれるラインデータであって、ブロックＢ（ｉ−１）において最も所定方向と逆方向側に位置するラインデータが書き込まれているラインである。
次いで、制御部４０は、ラインＬｂに書き込まれたラインデータのうち、領域Ａ１に属するデータ（図７中斜線で表したエリアのデータ）の読み出しを実行する。次いで、制御部４０は、リードポインターＰＲを所定方向へ１つ移動させ、当該リードポインターＰＲが示すラインに書き込まれたラインデータのうち、領域Ａ１に属するデータの読み出しを実行する。このようにして、制御部４０は、ブロックＢ（ｉ−１）について、領域Ａ１に属するデータをラインごとに所定方向へ向かって順次読み出していく。
このようにして、ブロックＢ（ｉ−１）において、リードポインターＰＲの所定方向への移動、及び、領域Ａ１に属するデータの読み出しを順次実行し、リードポインターＰＲが示すラインが、ブロックＢｉの先頭のラインであるラインＬｃとなった時点で、制御部４０は、読み出したデータ（＝ブロックＢ（ｉ−１）において領域Ａ１に属するデータ）をホストコンピューター２００に転送する。
制御部４０は、ブロックＢｉ、及び、ブロックＢ（ｉ＋１）についても、ブロックＢ（ｉ−１）と同様にして、ブロック単位での領域Ａ１に属するデータの読み出し、及び、データの転送を実行する。これにより、領域Ａ１に属する全てのデータがホストコンピューター２００に転送されることとなる。
このように、領域Ａ１に属するデータついては、ブロック単位で、一括して、読み出し、転送が実行されるため、読み出し、及び、転送に係る処理の効率化を実現可能である。
【００４６】
上述したように、第１画像バッファー６０ａは、リングバッファーであり、ライトポインターＰＷ、及び、このライトポインターＰＷに追従するリードポインターＰＲは、第１画像バッファー６０ａの末端のライン（図５（Ａ）の例ではラインＬ８４００）の次は、先頭のライン（図５（Ａ）の例では、ラインＬ１）へ移動する構成となっている。
この場合、ライトポインターＰＷの所定方向への移動が進み、リードポインターＰＲを所定方向側へ超えてしまう、といった事態が発生する可能性がある。この場合、ラインデータの読み出しが行われていないラインに対して、新たにラインデータが書き込まれてしまうこととなるため、上記事態が発生することを防止する必要がある。
このことを防止するため、本実施形態では、ライトポインターＰＷ、及び、リードポインターＰＲのほか、破棄ポインターＰＨを備え、制御部４０は、この破棄ポインターＰＨによって、ライトポインターＰＷがリードポインターＰＲを所定方向側に超えることが無いよう、ライトポインターＰＷの位置を管理している。
【００４７】
図８は、破棄ポインターＰＨの基本的な動きを説明するため、第１画像バッファー６０ａを模式的に示す図である。
図８では、ライトポインターＰＷ、リードポインターＰＲ、及び、破棄ポインターＰＨを模式的に示しており、各ポインターの図形の先端が指し示すラインが、各ポインターが示すラインである。
以下の説明では、説明の明確化のため、上述したエリアスキャンではなく、第１画像バッファー６０ａに展開された読取画像データの全てが転送されることを前提とし、また、ブロックを考慮しないものとする。
図８（Ａ）に示すように、破棄ポインターＰＨは、後述する例外を除き、基本的に、リードポインターＰＲを追従して動く。本実施形態では、破棄ポインターＰＨは、基本的に、リードポインターＰＲが示すラインから１０ライン分、所定方向と逆方向（以下、単に「逆方向」という）に位置するラインを示す状態が維持されるように、リードポインターＰＲを追従する。
さらに、ライトポインターＰＷは、破棄ポインターＰＨを所定方向側へ超えないように、その位置が制御される。これにより、ライトポインターＰＷが、リードポインターＰＲを超えることが防止され、読み出しが終わっていないラインデータが書き込まれたラインに、新たにラインデータが書き込まれることが防止される。
図８を用いて具体的に説明すると、ライトポインターＰＷ、リードポインターＰＲ、及び、破棄ポインターＰＨの位置関係が、図８（Ａ）に示す状態であるものとする。なお、図８（Ａ）中、ライトポインターＰＷとリードポインターＰＲとの間に介在するライン（斜線で示したエリアに含まれるライン）に書き込まれたラインデータは、書き込みが終了しているものの読み出しが行われていないラインデータである。
そして、図８（Ａ）に示す状態から、ライトポインターＰＷの所定方向への移動が進行し、図８（Ｂ）に示す状態へと、状態が遷移したいとする。この場合において、ライトポインターＰＷは、破棄ポインターＰＨを所定方向側へ向かって超えないよう、その位置が制御されるため、ライトポインターＰＷが、書き込みが終了しているものの読み出しが行われていないラインデータが書き込まれたラインが存在するエリア（図８（Ｂ）中、斜線で示すエリア）に至ることが確実に防止される。
【００４８】
また、上述したエリアスキャンでは、第１画像バッファー６０ａにおいて異なる複数の領域に属するデータのみの読み出し、及び、転送を実行することが可能である。そして、異なる複数の領域のそれぞれについて、ライン方向において重なった部分が存在する場合がある。このような場合は、以下のようにして、異なる複数の領域に属するデータの読み出しが実行される。
【００４９】
図９は、ライン方向に重なった部分が存在する領域のそれぞれに属するデータを読み出す際の処理を説明するため、第１画像バッファー６０ａを模式的に示す図である。
図９の例では、領域Ａ２、及び、領域Ａ３についてエリアスキャンを行うものとする。すなわち、領域Ａ２、及び、領域Ａ３に属するデータのみの読み出し、及び、転送を実行するものとする。図９に示すように、領域Ａ２、及び、領域Ａ３は、範囲Ｑ１においてそれぞれライン方向に重なった部分が存在している。
このような場合、領域Ａ２のうちブロックＢｉに属する領域である領域ａ２、及び、領域Ａ３のうちブロックＢｉに属する領域である領域ａ３について、個別に、読み取りが実行される。
なお、以下の説明において、制御部４０は、ブロックＢｉにおける領域ａ２、及び、領域ａ３の状態（範囲）を、ブロックＢｉに関する情報や、ホストコンピューター２００から入力された領域Ａ２、及び、領域Ａ３の各頂点の座標等に基づいて、事前に検出しており、この検出結果に基づいて、リードポインターＰＲの移動を管理する。
ブロックＢｉを構成する全てのラインへのラインデータの書き込みが終了していることを前提として詳述すると、制御部４０は、まず、領域ａ２に属するデータを、上述した方法により、ラインごとに所定方向へ向かって順次読み出していく。この場合、リードポインターＰＲは、矢印Ｙ４に示すように移動し、最終的に、位置Ｔ１へ至ることとなる。領域ａ２に属するデータの読み出しが終了すると、制御部４０は、読み出したデータをホストコンピューター２００に転送する。このように、本実施形態では、同一のブロックに異なる複数の領域が存在している場合、領域毎に、データの読み取り、転送が行う構成となっており、これにより、異なる領域に属するデータは、領域毎にそれぞれ一括して、データの読み取り、転送が実行されることとなり、読み取り、及び、転送に係る処理の単純化、これに伴う処理効率の向上を実現している。
領域ａ２に属するデータの読み出しが終了すると、制御部４０は、リードポインターＰＲを、領域ａ３の先頭の位置Ｔ２へ移動する。次いで、制御部４０は、領域ａ３に属するデータを、ラインごとに所定方向へ向かって順次読み出していく。この場合、リードポインターＰＲは、矢印Ｙ５に示すように移動する。次いで、制御部４０は、読み出した領域ａ３に属するデータをホストコンピューター２００に出力する。
以上のようにして制御部４０は、領域ａ２に属するデータ、及び、領域ａ３に属するデータのそれぞれについて、個別に読み出し、ホストコンピューター２００に転送する。
【００５０】
ここで、上述した破棄ポインターＰＨを、いかなる場合であっても、リードポインターＰＲが示すラインから１０ライン分、逆方向に位置するラインを示す状態が維持されるように、移動させた場合、図９の例のようにライン方向に重なった部分が存在する複数の領域についてエリアスキャンを実行する場合に、以下のような不具合が生じる可能性がある。
すなわち、領域ａ２に属するデータの読み出しが完了し、リードポインターＰＲが位置Ｔ１に至った場合に、これに伴って、破棄ポインターＰＨが、それより１０ライン分逆方向側の位置である位置Ｔ３に移動したとする。
この場合、位置Ｔ２と、位置Ｔ３との間の範囲Ｑ２に属するラインに関しては、読み出すべきデータであって、かつ、読み出しが終了していないデータ（領域ａ３に属するデータ）が残存した状態である。従って、範囲Ｑ２に属するラインについては、領域ａ３に属するデータの読み出しが終了するまでは、新たにラインデータを書き込むべきではない。しかしながら、破棄ポインターＰＨは、位置Ｔ３に位置しているため、当該破棄ポインターＰＨを所定方向側に超えないようにその移動が制御されるライトポインターＰＷが、破棄ポインターＰＨの位置に至り、これに伴って、範囲Ｑ２に属するラインについて、読み出しが終了していない段階で新たなラインデータが書き込まれる、といった事態が発生する可能性がある。
以上を踏まえ、制御部４０は、上記のような場合、破棄ポインターＰＨの位置を以下のように制御する。
【００５１】
すなわち、制御部４０は、破棄ポインターＰＨを所定方向へ１ライン分移動させる際、まず、移動予定のラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かを判別する。そして、制御部４０は、当該データが含まれていない場合は、破棄ポインターＰＨの１ライン分の移動を実行し、当該データが含まれている場合は、破棄ポインターＰＨの移動を停止する。そして、制御部４０は、上記移動後のラインに書き込まれたラインデータのうち、読み出すべきデータであって、かつ、読み出しが終了していないデータの全ての読み出しが終了したか否かを監視し、当該データの全ての読み出しが終了し、かつ、破棄ポインターＰＨとリードポインターＰＲとの間の所定方向における距離が１０ラインを超えた場合に、破棄ポインターＰＨの所定方向への１ライン分の移動を実行する。
例えば、図９を参照し、破棄ポインターＰＨが、位置Ｔ２の１ライン分逆方向側の位置Ｔ４に位置しているものとする。さらに、領域ａ２に属するデータの読み出しは終了しているものの、領域ａ３に属するデータは一切読み出しが実行されていないものとする。このような状況下で、制御部４０が、リードポインターＰＲの所定方向への移動に伴って、破棄ポインターＰＨを位置Ｔ４から位置Ｔ２へ移動させようとしている場合を想定する。
この場合、制御部４０は、破棄ポインターＰＨの位置Ｔ２への移動の前に、位置Ｔ２に対応するラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かを判別する。この判別は、データの読み出しの状況を示す情報を記憶しておき、当該情報に基づいて行ってもよく、また、ラインごとに、ラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かをフラグによって管理し、当該フラグの状態に基づいて行うようにしてもよい。
そして、位置Ｔ２に対応するラインに書き込まれたラインデータには、読み出すべきデータであって、かつ、読み出しが終了していないデータ（領域ａ３に係るデータ）が含まれているため、制御部４０は、破棄ポインターＰＨの位置Ｔ２への移動を停止する。
次いで、制御部４０は、位置Ｔ２に対応するラインに書き込まれたラインデータに含まれる領域ａ３に属するデータの読み出しが終了したか否かを監視し、換言すれば、位置Ｔ２に対応するラインに書き込まれたラインデータのうち、読み出すべきデータであって、かつ、読み出しが終了していないデータの全ての読み出しが終了したか否かを監視し、領域ａ３に属するデータの読み出しが終了した場合であって、かつ、破棄ポインターＰＨとリードポインターＰＲとの間の所定方向における距離が１０ラインを超えている場合に、破棄ポインターＰＨを位置Ｔ４から位置Ｔ３へ移動させる。
【００５２】
このように、本実施形態では、制御部４０は、ある１のラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれている場合、制御部４０は、リードポインターＰＲの位置にかかわらず、破棄ポインターＰＨが、当該１のラインを所定方向に超えて移動しないように、破棄ポインターＰＨの移動を制御する。
これにより、読み出すべきデータであって、かつ、読み出しが終了していないデータが存在しているラインに対して、新たにラインデータが書き込まれることが好適に防止される。
さらに、上記のように破棄ポインターＰＨの移動を制御すれば、ブロック内に異なる複数の領域が存在している場合において、これら領域がライン方向に重なっていない範囲（例えば、図９の範囲Ｑ３）については、ラインデータに含まれる読み出すべきデータの読み出しの状況に応じて、適宜、破棄ポインターＰＨが所定方向へ移動することとなり、不必要に、破棄ポインターＰＨの所定方向への移動が制限され、これに伴って、新たなラインデータを書き込み可能な領域が不必要に狭められることが防止される。図９を用いて、具体的に説明すると、範囲Ｑ３については、領域ａ２に係るデータの読み取りが終了すれば、この範囲Ｑ３に属するラインに書き込まれたラインデータのうち読み出すべきデータの読み出しが終了したこととなるため、破棄ポインターＰＨを所定方向へ移動させてもよいが、上記のように破棄ポインターＰＨの移動を制御することにより、範囲Ｑ３については、領域ａ２に係るデータの読み出しに応じて、適切にはきポインターＰＨが所定方向へ移動することとなる。
【００５３】
また、上述したエリアスキャンでは、所定方向に離間して配置された領域に属するデータの読み出しを実行可能である。
【００５４】
図１０は、所定方向に離間して配置された領域に属するデータの読み出しを説明するため、第１画像バッファー６０ａを模式的に示す図である。
まず、図１０（Ａ）を用いて、本願発明が適用される前の従来の読み出しに係る処理について説明する。
図１０（Ａ）の例では、領域Ａ４、及び、この領域Ａ４と所定方向に離間して配置された領域Ａ５について、エリアスキャンが実行される。
図１０（Ａ）に示すように、領域Ａ４は、第１画像バッファー６０ａに形成された複数のブロックのうち、先頭のブロックであるブロックＢ１に属し、また、領域Ａ５は、第１画像バッファー６０ａに形成された複数のブロックのうち、末尾のブロックであるブロックＢｎに属している。
従来は、上記のように領域Ａ４、及び、領域Ａ５が規定されている場合において、第１スキャナー１１１の記録媒体Ｓの上面の読み取りに応じて、ブロックＢ１を構成する全てのラインへのラインデータの書き込みが完了すると、制御部４０は、上述したように、領域Ａ４に属するデータの読み出し、及び、転送を実行する。ブロックＢ１に含まれる領域Ａ４に属するデータの読み出し、及び、転送が完了した時点では、リードポインターＰＲは、ブロックＢ２の先頭のラインに対応する位置である位置Ｔ６に位置した状態となる。
ブロックＢ１を構成する全てのラインへのラインデータの書き込みが完了した後も、ラインデータの書き込みは継続して実行され、ブロックＢ２〜ブロックＢ（ｎ−１）を構成する全てのラインへのラインデータの書き込みが完了したとする。この場合、ブロックＢ２〜ブロックＢ（ｎ−１）には、読み出すべきデータが存在しないため、制御部４０は、リードポインターＰＲについて、ブロックＢ１に含まれる領域Ａ４に属するデータの読み出し、及び、転送が完了した時点の状態、すなわち、ブロックＢ２の先頭のラインに対応する位置Ｔ６に位置した状態を維持する。
【００５５】
さらに、ラインデータの所定方向への書き込みが進行し、ブロックＢｎを構成する全てのラインへのラインデータの書き込みが完了したとする。ブロックＢｎ、すなわち、領域Ａ５を包含するブロックへのラインデータの書き込みの完了をトリガーとして、制御部４０は、リードポインターＰＲの所定方向への移動を開始する。この場合、ブロックＢ２〜ブロックＢ（ｎ−１）を構成するラインについては、読み出しを実行すべきデータが存在しないため、実際にデータの読み出しを行うことなく、リードポインターＰＲの所定方向への移動を行う。
そして、制御部４０は、リードポインターＰＲを、ブロックＢｎの先頭のラインに至るまで移動させた後、ブロックＢｎ内の領域Ａ５に属するデータについて、データの読み出し、及び、転送を実行する。
【００５６】
このような従来の手法で、所定方向に離間した異なる領域についてエリアスキャンした場合、以下のような不具合が発生する可能性があった。
すなわち、上記の場合、ブロックＢｎへのラインデータの書き込みの完了をトリガーとして、位置Ｔ６に位置するリードポインターＰＲの所定方向への移動を開始する構成であるため、このリードポインターＰＲを追従する破棄ポインターＰＨと、ライトポインターＰＷとの所定方向における距離（図１０（Ａ）において符号Ｄ１を付した矢印で示す距離）が、近接した状態が現出し、これに起因して、破棄ポインターＰＨによってライトポインターＰＷの動きが制限され、新たに書き込むべきラインデータが生成されているにもかかわらず、生成されたラインデータを第１画像バッファー６０ａに書き込めないという事態が発生する可能性があった。
これを踏まえ、本実施形態では、制御部４０は、リードポインターＰＲの位置を以下のように制御する。
【００５７】
すなわち、制御部４０は、ライトポインターＰＷと、リードポインターＰＲとの間のライン数を常に監視する。
そして、ライトポインターＰＷと、リードポインターＰＲとの間のライン数が、閾値として予め定められたライン数を上回った場合、このライトポインターＰＷとリードポインターＰＲとにはされた領域に、読み出しを実行すべきデータが存在するか否かを判別する。読み出しを実行すべきデータが存在しない場合、制御部４０は、これらライトポインターＰＷとリードポインターＰＲとに挟まれた領域に属するラインについては、ラインデータの読み出しを行うことなく、リードポインターＰＲを所定方向へ移動させるダミーリード処理を実行する。
図１０（Ｂ）を用いて具体的に説明すると、ブロックＢ１に属する領域Ａ４の読み出し、及び、転送が完了し、リードポインターＰＲが位置Ｔ６に位置している状態において、制御部４０は、ライトポインターＰＷと、リードポインターＰＲとの間のライン数を監視する。そして、図１０（Ｂ）に示すように、ライトポインターＰＷと、リードポインターＰＲとの間のライン数が、閾値として定められた「１０００」を上回った場合、制御部４０は、これらライトポインターＰＷと、リードポインターＰＲとの間の範囲Ｑ４に読み出すべきデータが存在するか否かを判別する。そして、範囲Ｑ４に読み出すべきデータが存在しない場合、制御部４０は、これら範囲Ｑ４に属するラインについては、リードポインターＰＲを所定方向へ向かって移動させる一方、ラインデータの読み出しを実行しないダミーリード処理を実行する。
このように範囲Ｑ４について、ダミーリード処理が実行されることにより、ブロックＢｎを構成する全てのラインへのラインデータの書き込みが完了する前に、リードポインターＰＲが、位置Ｔ７へ移動し、このリードポインターＰＲの移動に追従して、破棄ポインターＰＨが、所定方向へ向かって移動することとなる。なお、リードポインターＰＲの位置Ｔ７への移動後も、ライトポインターＰＷとリードポインターＰＲとの間のライン数が閾値を上回り、かつ、これらポインターに介在する範囲に読み出しを実行すべきデータが存在しない場合は、適宜、ダミーリード処理が実行され、リードポインターＰＲ、及び、破棄ポインターＰＨの所定方向への移動が実行される。
【００５８】
このように、本実施形態では、ライトポインターＰＷとリードポインターＰＲとの間のライン数が閾値を上回り、かつ、これらポインターに介在する範囲に読み出しを実行すべきデータが存在しない場合は、適宜、ダミーリード処理が実行され、リードポインターＰＲ、及び、破棄ポインターＰＨの所定方向への移動が実行される。ここで破棄ポインターＰＨは、ライトポインターＰＷの移動を制限するためのストッパーとしての機能を有するポインターであるため、ダミーリード処理に伴う破棄ポインターＰＨの所定方向への移動により、第１画像バッファー６０ａにおいて、新たなラインデータを書き込み可能な領域が、従来と比べて拡張され、これにより生成したラインデータを第１画像バッファー６０ａに書き込めない事態が発生するリスクを低減できる。また、所定方向に離間した異なる領域についてエリアスキャンを行う場合であっても、ライトポインターＰＷと、破棄ポインターＰＨとの距離が近接する事態が発生しにくくなり、新たに書き込むべきラインデータが生成されているにもかかわらず、生成されたラインデータを第１画像バッファー６０ａに書き込めないという事態が発生することを極力防止することが可能である。
なお、本実施形態では、ライトポインターＰＷと、リードポインターＰＲとの間のライン数の閾値として「１０００」が設定されているが、この閾値は、以下の観点から設定されている。
すなわち、上述したように、本実施形態では、１つのブロックを構成するラインの数は、５００を超えないものとされる。そして、閾値は、ライン数が最大（５００ライン）のブロック２つ分の値（１０００ライン）とされる。これは、ライトポインターＰＷとリードポインターＰＲとが、ライン数が最大（５００ライン）のブロック２つ分離間した場合、第１画像バッファー６０ａ全域の所定方向のライン数（８４００ライン）との関係で、相対的に十分大きな距離、ライトポインターＰＷとリードポインターＰＲとが離間したと言えるからである。
【００５９】
以上説明したように、本実施形態では、制御部４０は、リードポインターＰＲの位置にかかわらず、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないように、破棄ポインターＰＨの移動を制御する。
これによれば、破棄ポインターＰＨは、リードポインターＰＲの位置にかかわらず、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないよう、その移動が制御されており、ライトポインターＰＷは、この破棄ポインターＰＨを所定方向側へ超えないようにその移動が制御されるため、読み出しが完了していないデータを含むラインデータが書き込まれているラインに対して、新たにラインデータが書き込まれることを効果的に防止できる。
【００６０】
また、本実施形態では、制御部４０は、エリアスキャンにおいて、リングバッファーたる第１画像バッファー６０ａにおける複数の異なる領域に属するデータが領域毎に読み出されるような態様で、データの読み出しが可能である。そして、制御部４０は、１のラインデータに、複数の異なる領域のそれぞれに属するデータが包含されている場合は、各領域に属するデータのそれぞれの読み出しが完了するまでは、リードポインターＰＲの位置にかかわらず、破棄ポインターＰＨが、当該１のラインデータが書き込まれているラインの位置を所定方向側に超えないようにする。
これによれば、エリアスキャン時、リングバッファーたる第１画像バッファー６０ａにおける複数の異なる領域に属するデータを領域毎に読み出す場合において、１のラインデータに、複数の異なる領域のそれぞれに属するデータが包含されている場合であっても、包含された全てのデータの読み出しが完了する前に、当該１のラインデータが書き込まれているラインに、新たにラインデータが書き込まれることを効果的に防止できる。
【００６１】
また、本実施形態では、制御部４０は、リングバッファーたる第１画像バッファー６０ａを複数のラインごとに分割して形成されたブロック毎に、１のブロックに属する各ラインへのラインデータの書き込みが完了した後、当該１のブロック内で前記所定方向へリードポインターＰＲを移動させつつ、当該ブロックに属するラインのラインデータを所定方向へ向かって読み出し、１のブロックに、異なる領域が属している場合、リードポインターＰＲの位置にかかわらず、当該１のブロックに属するラインのうち、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないように、破棄ポインターＰＨの移動を制御する。
これによれば、ブロック単位でラインデータの読み出しを実行することによる読み出し処理の効率化を実現しつつ、ブロック内に、読み出しが完了していないデータを含むラインデータが存在する場合は、当該ラインデータが書き込まれたラインを所定方向側に超えないように破棄ポインターＰＨの移動が制御され、当該ラインに新たにラインデータが書き込まれることを効果的に防止できる。
【００６２】
また、本実施形態では、制御部４０は、リングバッファーたる第１画像バッファー６０ａを複数のラインごとに分割して形成されたブロック毎に、１のブロックに属する各ラインへのラインデータの書き込みが完了した後、当該１のブロックにおける読み出しを行うべきラインを示す位置にリードポインターＰＲを移動し、当該１のブロック内で所定方向へリードポインターＰＲを移動させつつ、当該ブロックに属するラインのラインデータを所定方向へ向かって読み出し、ライトポインターＰＷと、リードポインターＰＲとの間に介在するラインであって、読み出しを必要としないラインデータが書き込まれているラインについては、当該ラインに書き込まれたラインデータを読み出すことなく、リードポインターＰＲを所定方向へ向かって移動させるダミーリード処理を実行する。
これによれば、ライトポインターＰＷと、リードポインターＰＲとの間に介在するラインであって、読み出しを必要としないラインデータが書き込まれているラインについては、当該ラインに書き込まれたラインデータを読み出すことなく、リードポインターＰＲを所定方向へ向かって移動させるダミーリード処理が実行されるため、ブロックに属する全てのラインへのラインデータの書き込みが完了する前に、リードポインターＰＲが所定方向へ向かって移動することが可能となり、これにより、第１画像バッファー６０ａにおいて読み出しが完了し、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。
【００６３】
また、本実施形態では、制御部４０は、ライトポインターＰＷと、リードポインターＰＲとが所定方向に閾値以上離間した場合であって、これらポインターの間に介在するラインのそれぞれに書き込まれているラインデータが、読み出しを必要としないデータである場合に、これらポインターの間に介在するラインについてダミーリード処理を実行する。
これによれば、ライトポインターＰＷと、リードポインターＰＲとが所定方向に閾値以上離間し、かつ、これらポインターの間に介在するラインのそれぞれに書き込まれているラインデータが、読み出しを必要としないデータである場合に、これらポインターの間に介在するラインについてダミーリード処理を実行するため、必要な場合に適切にダミーリード処理が実行されることとなる。
【００６４】
また、本実施形態では、制御部４０は、第１画像バッファー６０ａにおける複数の異なる領域に属するラインデータが領域毎に読み出されるような態様で、ラインデータの読み出しが可能であり、第１画像バッファー６０ａにおける１の領域と、他の領域との間が所定方向に離間しており、当該１の領域が属する１のブロックと、当該他の領域が属する他のブロックとの間に、読み出しを必要としないラインデータが書き込まれたラインが介在している場合に、これらラインについてダミーリード処理を実行する。
これによれば、１の領域が属する１のブロックと、他の領域が属する他のブロックとの間に存在するラインについて、読み出しを必要とするデータが存在しない場合は、ダミーリード処理が実行されることとなり、これにより、他の領域が属するブロックを構成する全てのラインへのラインデータの書き込みが完了する前に、リードポインターＰＲが所定方向へ向かって移動することが可能となり、これにより、第１画像バッファー６０ａにおいて読み出しが完了した領域、換言すれば、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。
【００６５】
また、本実施形態では、制御部４０は、リードポインターＰＲに追従する破棄ポインターＰＨによって、当該破棄ポインターＰＨをライトポインターＰＷが所定方向側に超えないように、ライトポインターＰＷの移動を制御する。
これによれば、ダミーリード処理によりリードポインターＰＲが所定方向へ移動するのに伴って、このリードポインターＰＲに追従する破棄ポインターＰＨも所定方向へ移動することとなり、これに応じて、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。
【００６６】
以上、本発明の一実施形態について説明したが、本発明は、これに限定されるものではない。
上記実施形態では、ドットインパクトプリンター１０に搭載された制御基板（図示略）に実装された制御部４０が、各ポインターを管理する構成であったが、例えば、ドットインパクトプリンター１０に外部接続された装置が、これらポインターを管理する構成であってもよい。すんわち、図４に示した各機能ブロックは、ハードウェアとソフトウェアとの協働により実現されるものであって、具体的なハードウェアの実装形態やソフトウェアの仕様等は任意であり、その他の細部構成についても任意に変更可能である。
また、上記実施の形態では、記録媒体Ｓを水平に搬送するフラットベッド型の装置に本発明を適用した場合を例に挙げて説明したが、本発明はこれに限定されず、小切手などの帳票形態の記録媒体Ｓを立てた状態で搬送する搬送路を備えた装置に適用することも勿論可能である。また、上記実施形態では、光学読取装置１１０を備えたドットインパクトプリンター１０を例に挙げて説明したが、本発明はこれに限定されるものではなく、例えば、インクジェット式のプリンターや、サーマルプリンター、レーザープリンター等に、光学読取装置１１０に相当する光学読取部を設けた構成としても良い。さらに、独立したプリンターとして使用される機器に限らず、他の機器（ＡＴＭ（Ａｕｔｏｍａｔｅｄ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）やＣＤ（Ｃａｓｈ  Ｄｉｓｐｅｎｓｅｒ）等）に組み込まれた装置に、光学読取装置１１０に相当する光学読取部を設けたものであってもよい。
さらに、紙等の記録媒体に文字や画像を記録する装置に一体として光学読取装置１１０を設けた構成に限らず、本発明は、例えば、独立したスキャナー装置や複写機を含む多様な機器に適用可能である。
すなわち、媒体を光学的に読み取り可能な光学読取装置に広く本願発明を適用可能である。
【符号の説明】
【００６７】
１０…ドットインパクトプリンター（光学読取装置）、４０…制御部、４１…ＲＡＭ（記憶部）、６０…画像バッファー（リングバッファー）、６０ａ…第１画像バッファー（リングバッファー）、６０ｂ…第２画像バッファー（リングバッファー）、１１１…第１スキャナー（読取部）、１１２…第２スキャナー（読取部）、２００…ホストコンピューター、ＰＨ…破棄ポインター、ＰＲ…リードポインター、ＰＷ…ライトポインター、Ｓ…記録媒体（媒体）。
【図１】
2012190169.tif 000003
【図２】
2012190169.tif 000004
【図３】
2012190169.tif 000005
【図４】
2012190169.tif 000006
【図５】
2012190169.tif 000007
【図６】
2012190169.tif 000008
【図７】
2012190169.tif 000009
【図８】
2012190169.tif 000010
【図９】
2012190169.tif 000011
【図１０】
2012190169.tif 000012