(57)【特許請求の範囲】
【請求項１】
記録媒体に記録を行なうプリンタのインクヘッドカートリッジを移動させるキャリッジ上にスキャナヘッドカートリッジを載せることによって前記プリンタを原稿の読取装置として機能させることが可能なプリンタ／スキャナ装置において、Ａ／Ｄ変換用のレファレンス値（白基準値）の検出手段として、画像スキャンと同一の手段によって１ラスター全域の各位置に対して白基準値を検出し、該検出された各白基準値の平均値を算出し、該算出された平均値に最も近い白基準値を検出した紙上の位置を求め、該求めた位置において白基準値の統計化検出処理を行なって白基準値の代表値を求め、画像スキャン時にはラスターの先頭で前記代表値を白基準値としてヘッドに設定することを特徴とするプリンタ／スキャナ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録媒体に記録を行なうプリンタ（シリアルプリンタ）のインクヘッドカートリッジを移動させるキャリッジ上にスキャナヘッドカートリッジを載せることによって前記プリンタを原稿の読取装置として機能させることが可能なプリンタ／スキャナ装置に関する。
【０００２】
【従来の技術】
一般的なスキャナ装置においては、スキャン対象画像に光を照射し、この光が画像に反射してスキャナの光学系に入り、その光のレベルがアナログ／デジタル変換（以下、Ａ／Ｄ変換と記述する）によってデジタル値に変換されたものが、スキャン画像処理として得られる仕組みになっている。スキャナの画質を決定する重要な要素としてコントラストが挙げられるが、これは画像中の最も暗い画素から最も明るい画素までの濃淡の範囲として定義される。スキャナはこのコントラスト範囲に基づき取り込まれた各々の画素について光学アナログデータをＡ／Ｄ変換する。
【０００３】
コントラスト情報は、スキャナ装置の個体間の光学系特性及び電気回路特性のばらつきがあるため、スキャナ装置の個体によって異なる。そのため、スキャナ装置はスキャン動作を行なう前に必ずこのコントラスト情報を規定する手段を遂行し、その結果を記憶しておく必要がある。
【０００４】
前記コントラスト情報は、具体的にはスキャナ装置が実際に読み取って得られる最も白いデータの値を規定するための基準データ（以下、白基準値と記述する）と、最も黒いデータの値を規定するための基準データ（以下、オフセット値と記述する）とで構成される。各々の画素をＡ／Ｄ変換する際、白基準値及びオフセット値をレファレンスとしてＡ／Ｄ変換を行う。
【０００５】
スキャナ装置が画像や白基準値及びオフセット値を読み込む際、出力値は光源、光学センサ、Ａ／Ｄ変換回路、アンプ等のハードウエアの環境、位置精度、個体差等に依存する。特定の画素を読み込む場合、その出力を一定にし、安定した高画質を実現するためには、この依存度による変動比率が低いことが求められる。これを実現するためには、精度の高い部品の採用、光源の高光量化、画素当たりの読み取り時間の増加、また、Ａ／Ｄ変換処理のレファレンスとなる白基準値及びオフセット値の測定周期を原稿の読み取りごとに行なう等の手段がとられている。
【０００６】
一方、最近ではワードプロセッサ等に用いられるシリアルプリンタにおいて、プリント手段であるインクカートリッジの代わりに同形状のスキャナユニットを搭載することで読取手段としても使用可能となるものが知られている。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述したスキャナユニットを製品化するためには、小型化及び低価格化が必要とされるが、これらの要求を実現するためには、以下のような問題点が生じる。
【０００８】
（１）小型化及び低価格化のために、使用できる光学部品の大きさ及び性能が制限され、理想的な特性を得ることが困難となり、紙とヘッドとの間隔（紙間）の変動にスキャン画質が左右されやすい系ができてしまう。
【０００９】
（２）白基準値の検出を行なうための専用紙（以下、白基準用紙と記述する）を用意して、該白基準用紙を適宜ユーザにセットさせてレファレンス値を検出することにより、白基準値検出のための構成を簡略化する構成を採用することがあるが、このときに正確な白基準値が得られないとスキャン画質が劣化する。
【００１０】
また、より安価な紙の搬送系を実現するための簡素な構成の搬送拍車や、安価な搬送ゴムローラを採用する必要があり、ユーザが単一の白基準用紙を幾度にも亘って使用すると、搬送拍車の噛んだ跡が溝となって残ったり、搬送ゴムローラのゴム跡で汚れが残ってしまう。こうした汚れの位置で検出した白基準値は不正であり、これを用いて画像イメージのスキャンを行なうと画像が不良になるという問題点があった。
【００１１】
（３）ヘッドへの白基準値の設定には長い時間を必要とすることから、スキャンのためにヘッドを移動させている最中には白基準値の設定を行なうことができず、ラスター先頭で白基準値を設定した後は該ラスター中で継続して該白基準値を使用せざるを得ないという条件があり、１ラスターをスキャンするためには、必ず１ラスター全域に対して通用する、より正確な白基準値の代表値をラスター先頭でスキャナヘッドの各ドット画素について設定しておかなければならない前提が存在する。
【００１２】
（４）電気ノイズ等の影響を抑えるために行なわれる白基準値の統計化処理が既に提案されている。代表的な手段としては、１つの位置で数回の白基準値の検出を行なうものが挙げられるが、この手段は処理に長い時間を必要とすることから、ラスター全域の各位置において行なうことは事実上不可能である。
【００１３】
即ち、白基準用紙を用いて白基準値を検出するときに紙間変動の影響を受けてしまうと、この値を用いて画像スキャンを行なったラスター全域の画質が著しく劣化するという問題点があった。
【００１４】
本発明は上述した従来の技術の有するこのような問題点に鑑みてなされたものであり、その第１の目的とするところは、安価で小型なものでありながら、紙間の悪影響を小さくして白基準値を検出することが可能で、画質の向上を図ることができるプリンタ／スキャナ装置を提供しようとするものである。
【００１５】
また、本発明の第２の目的とするところは、安価で小型なものでありながら、紙間の悪影響を回避して画像スキャンを行なうことが可能なプリンタ／スキャナ装置を提供しようとするものである。
【００１６】
また、本発明の第３の目的とするところは、安価で小型なものでありながら、白基準用紙上に付着する汚れの悪影響を回避して画像スキャンを行なうことが可能なプリンタ／スキャナ装置を提供しようとするものである。
【００１７】
更に、本発明の第４の目的とするところは、安価で小型なものでありながら、紙間の悪影響を回避して白基準値を検出することが可能で、画質の向上を図ることができ、また、処理速度の低下を招くことなく画質の向上を図ることが可能なプリンタ／スキャナ装置を提供しようとするものである
【００１８】
【課題を解決するための手段】
上記第４の目的を達成するために請求項１記載のプリンタ／スキャナ装置は、記録媒体に記録を行なうプリンタのインクヘッドカートリッジを移動させるキャリッジ上にスキャナヘッドカートリッジを載せることによって前記プリンタを原稿の読取装置として機能させることが可能なプリンタ／スキャナ装置において、Ａ／Ｄ変換用のレファレンス値（白基準値）の検出手段として、画像スキャンと同一の手段によって１ラスター全域の各位置に対して白基準値を検出し、該検出された各白基準値の平均値を算出し、該算出された平均値に最も近い白基準値を検出した紙上の位置を求め、該求めた位置において白基準値の統計化検出処理を行なって白基準値の代表値を求め、画像スキャン時にはラスターの先頭で前記代表値を白基準値としてヘッドに設定することを特徴とする。
【００２２】
【発明の実施の形態】
以下、本発明の各実施の形態を図面に基づき説明する。
【００２３】
（第１の実施の形態）
まず、本発明の第１の実施の形態について、図１〜図２８に基づき説明する。図１は、本発明の第１の実施の形態に係るシリアル・プリンタ／スキャナ装置を内蔵した携帯型パーソナル・コンピュータ（以下、パソコンと記述する）の構成を示す外観斜視図である。本実施の形態に係るシリアル・プリンタ／スキャナ装置は、シリアル・インクジェット・プリンタの印字ヘッド・カートリッジを移動させるキャリッジ上に、前記印字ヘッド・カートリッジと同形状のスキャナヘッド・カートリッジを載せることによって、プリンタを現行の読取装置として機能させることが可能である。
【００２４】
図１において、１００はパソコン本体、１０１はパソコン本体１００に開閉可能に設けられた蓋体である。パソコン本体１００にはキーボード１０２とプリンタ１０３がそれぞれ設けられている。また、蓋体１０１には液晶表示装置等からなる表示装置１０４が設けられている。
【００２５】
図２は、同パソコンの内部構成を示すブロック図である。同図において、２００はパソコンのホスト部（ＨＯＳＴ）で、このホスト部２００において主制御を司っているのが中央演算処理装置（ＣＰＵ）２０１であり、その基本的制御を指示するのが基本入出力システム・リード・オンリー・メモリ（ＢＩＯＳ  ＲＯＭ）である。書き込み可能な不揮発性メモリ装置であるフロッピーディスク（ＦＤＤ）２０３やハードディスク（ＨＤＤ）２０４からフロッピーディスク・コントローラ（ＦＤＣ）２０５やハードディスク・コントローラ（ＨＤＣ）２０６を経由してアプリケーションプログラムを読み出し、システム・メイン・ダイナミック・ランダム・アクセス・メモリ（ＭＡＩＮ  ＤＲＡＭ）２０７に展開し、また、このＭＡＩＮ  ＤＲＡＭ２０７を利用してプログラムを実行する。このとき、画面の表示方法としては、ビデオ・グラフィック・アレイ・コントローラ（ＶＧＡＣ）２０８を使って液晶表示装置（ＬＣＤ）２０９（図１では１０４）に、ビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）２１０に書き込まれているキャラクタ等の表示を行ない、キーボード２１１（図１では１０２）からのキー入力は、キーボード・コントローラ（ＫＢＣ）２１２を経由して行なわれる。また、図２において数値演算プロセッサ（ＦＰＵ）２１３は、ＣＰＵ２０１に対して演算処理のサポートを行なうものである。リアルタイム・クロック（ＲＴＣ）２１４は現時点で経過時間を示すもので、システム全体の電源が切られた状態においても、専用バッテリーにより動作は行なわれる。図示しないスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）には、システムの動作状態等のシステム情報が格納されている。このＳＲＡＭも、前記専用バッテリーにより電源未投入時にもその格納内容は保持されている。
【００２６】
ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）２１５はメモリ−メモリ間、メモリ−Ｉ／Ｏ（入出力部）間、Ｉ／Ｏ−Ｉ／Ｏ間において高速にデータ転送を行なうために、ＣＰＵ２０１の介在無しでデータの転送を行なう。割り込みコントローラ（ＩＲＱＣ）２１６は、各Ｉ／Ｏからの割り込みを受け付け、優先順位に従って処理を行なう。図示しないタイマーは数チャンネルのフリーラニングタイマーを持ち、各種の時間管理を行なう。その他外部につながるシリアル・インターフェース（ＳＩＯ）２１７、拡張ポート（ＰＯＲＴ）やユーザに動作状態を伝える発光ダイオード（ＬＥＤ）がある。
【００２７】
本パソコンには前述したように本実施の形態に係るプリンタ／スキャナ装置であるシリアル・プリンタ／シリアル・スキャナ・ユニット２１９が具備されている。プリンタ本体のキャリッジに脱着式の印字ヘッド及びスキャナヘッドのいずれかを装着することにより、印字機能もしくはスキャナ機能を実現する。
【００２８】
シリアル・プリンタ／シリアル・スキャナ・ユニット２１９はホスト部２００に対してパラレル・インターフェースでつながっている。ホスト部２００とシリアル・プリンタ／シリアル・スキャナ・ユニット２１９のプリンタ／スキャナ・コントローラはＩ／Ｏポートのレジスタレベルでステータスデータ、印字／スキャンデータの送受を行なう。
【００２９】
また、図２において、２２０は電力供給部（ＰＯＷＥＲ  ＳＵＰＰＬＹ）、２２１はＡＣアダプター、２２２はバッテリー、２２３は電力管理用集積回路（ＰＯＷＥＲ  ＭＡＮＡＧＭＥＮＴ  ＩＣ）である。
【００３０】
図３は、本実施の形態に係るシリアル・プリンタ／シリアル・スキャナ・ユニット２１９の内部構成を示すブロック図である。同図において、シリアル・プリンタ／シリアル・スキャナ・ユニット２１９は、プリンタ制御用のＣＰＵ（ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＣＰＵ）３０１、プリンタ／スキャナ制御プログラムやプリンタ・エミュレーション、印字フォントを備えたＲＯＭ（リード・オンリー・メモリ）３０２、印字のための展開データ、スキャナにより取り込まれた画像データ、図２のホスト部２００からの受信データを蓄えておくＲＡＭ（ランダム・アクセス・メモリ）３０３、プリンタ／スキャナの印字／スキャナヘッド（ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＨＥＡＤ）３０４、モータを駆動するモータドライバ（ＭＯＴＯＲ  ＤＲＩＶＥＲ）３０５、メモリのアクセス制御や図２のホスト部２００とのデータのやり取りやモータドライバ３０５への制御信号送出を行なうコントローラ（ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＣＯＮＴＲＯＬＬＥＲ）３０６、本システム全体の機体温度を管理するためのサーミスタ３０７により構成される。
【００３１】
ＣＰＵ３０１はＲＯＭ３０２内の制御プログラムにより本体の機械的／電気的制御を行ないつつ、図２のホスト部２００からシリアル・プリンタ／シリアル・スキャナ・ユニット２１９へ送られてくるエミュレーション・コマンドをコントローラ３０６内のＩ／Ｏデータレジスタから読み出し、コマンドに対応した制御をコントローラ３０６内のＩ／Ｏデータレジスタ、Ｉ／Ｏポートに書き込み／読み出しを行なう。
【００３２】
図４は、プリンタ／スキャナ・コントローラ３０６の内部構成を示すブロック図であり、このプリンタ／スキャナ・コントローラ３０６の機能ブロックとしては、図２のホスト部２００とのコマンドレベルでのデータのやり取りを行なうＩ／Ｏデータレジスタ（Ｉ／Ｏ  ＤＡＴＡ  ＲＥＧＩＳＴＥＲ）４０１、このＩ／Ｏデータレジスタ４０１から受信データをＲＡＭ３０３に直接書き込む受信バッファコントローラ（ＲＥＣＩＥＶＥ  ＢＵＦＦＥＲ  ＣＯＮＴＲＯＬＬＥＲ）４０２、印字時にはＲＡＭ３０３の記録データバッファに書き込んで行くプリンタ／スキャナ・バッファ・コントローラ（ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＢＵＦＦＥＲ  ＣＯＮＴＲＯＬＬＥＲ）４０３、ＲＡＭ３０３に対して３方向からのメモリアクセスを制御するメモリ・コントローラ（ＭＥＭＯＲＹ  ＣＯＮＴＲＯＬＬＥＲ）４０４、プリンタ／スキャナ・シーケンスをコントロールするシーケンス・コントローラ（ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＢＵＦＦＥＲ  ＣＯＮＴＲＯＬＬＥＲ）４０５、図２のホスト部２００との通信を司るホスト・インターフェース（ＨＯＳＴ  Ｉ／Ｆ）４０６のブロックからなる。
【００３３】
図５は、シリアル・プリンタ／シリアル・スキャナ・ユニット２１９のＩ／Ｏデータレジスタ４０１のマップを示す。図５の中で、モータコントロールポート５０１はレジスタの値を直接書き換えることにより、ポートを制御して各モータを駆動するものである。
【００３４】
記録データ・バッファ・エリア５０２は印字、またはスキャン動作に必要なデータ領域を設定するものであり、開始アドレス５０２１と終了アドレス（スキャン時は開始アドレス）５０２２とを設定することにより、その範囲内で図４のプリンタ／スキャナ・バッファ・コントローラ４０３によりＲＡＭ３０３の開始アドレスから順番に終了アドレスに至るまで記録データの読み出し／書き込みを行なう。このとき、受信データ・アドレス・ポインタは現在データ受信済みになっているデータ・アドレスを示している。
【００３５】
図６では、上記動作におけるＲＡＭ３０３上の記録データ・バッファと受信バッファのアドレス領域６０１，６０２をそれぞれ示している。
【００３６】
図７は、スキャナヘッド・カートリッジの構成を示す外観斜視図であり、同図において、７００はスキャナヘッド・カートリッジで、コネクタ７０１を有し、このコネクタ７０１には接点部７０２が設けられている。
【００３７】
図８は、スキャナヘッド・カートリッジ及び印字ヘッド・カートリッジのプリンタ・ユニットへの着脱状態を示す斜視図である。同図において、８０１はキャリッジで、スキャナヘッド・カートリッジ７００及びプリント用の印字ヘッド・カートリッジ８０２が択一的に着脱可能に装着される。印字ヘッド・カートリッジ８０２は、スキャナヘッド・カートリッジ７００のコネクタ７０１と共通のコネクタ８０３を有し、このコネクタ８０３には接点部８０４が設けられている。
【００３８】
キャリッジ８０１は、スキャナヘッド・カートリッジ７００のコネクタ７０１の接点部７０２、または印字ヘッド・カートリッジ８０２のコネクタ８０３の接点部８０４を介して装置本体より読み取り制御信号を送受信する。また、８０５はヘッドガイドで、このヘッドガイド８０５によりキャリッジ８０１とスキャナヘッド・カートリッジ７００、または印字ヘッド・カートリッジ８０２との連結が行なわれる。読取信号及び制御信号は、接点部７０２、または接点部８０４及びフレキシブルケーブル８０６を介して装置本体のプリンタ／スキャナへ送られる。
【００３９】
図９は、図７のスキャナヘッド・カートリッジ７００の内部構成を示すブロッ図であり、このスキャナヘッド・カートリッジ７００の内部には、図９中の電気系部品を実装したフレキシブル基盤が略箱形状で光学系部品を包み込む構成で配置される。
【００４０】
図９において、７０１はプリンタ本体により読取制御信号を送受信するコネクタ（ＣＯＮＮＥＣＴＯＲ）、７０２はコネクタ７０１の接点部である。また、９０１は読取用原稿、９０２は原稿照明用のＬＥＤ（発光ダイオード）よりなる光源で、コネクタ７０１を介して電源が供給されることにより発光する。９０３は受光レンズ及びミラー（ＭＩＲＲＯＲ）で、光源９０２が照射した光の反射光をＣＣＤ（撮像素子）センサ９０４へ方向付けるものである。ＣＣＤセンサ９０４により検出された反射光のアナログ出力はアンプ（ＡＭＰ）９０５により増幅される。９０６はスキャナ・コントローラ・ＩＣで、本体とのデータ／コマンドの送受、本体からのコマンドに応じたスキャナ動作、光源９０２、ＣＣＤセンサ９０４等の制御信号出力、ＣＣＤセンサ９０４からの読み取りアナログデータを増幅したデータをＡ／Ｄ変換ブロック９０６ａ並びに本体への送出等の制御を行なう。９０７はワーク用ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）で、白基準値、オフセット値の２つのＡ／Ｄレファレンス値、スキャナの動作状態、読み取りデータの展開等を行なうものである。本体からのコマンドの送受は、スキャナ・コントローラ・ＩＣ９０６内のＩ／Ｏポートのレジスタレベルで行なわれる。
【００４１】
図１０に、このレジスタマップを示す。
【００４２】
図１１、図１２は、光学系部品及び読み取り反射光の経路を示す図であり、図１２におけるケース１２０１内において、光源（ＬＥＤ）１２０２に近接して図１１における集光手段である円筒形状のロッド・レンズ１２０３が光源１２０２の並び方向と平行に設置されている。光源１２０２の照射中心は、ロッド・レンズ１２０３のレンズ作用面の中心を通過し、原稿面を斜めに照射する構成となっている。原稿からの反射光は、光軸中心が原稿と略直角方向に設けられた第１の結像系レンズである図１１に示すフィールド・レンズ１２０４を通過した反射光は、読み取り幅方向と平行に設けられたミラー１２０５により、光軸の進行方向が９０度折り曲げられて原稿と平行な光線とされる。１２０６はアバーチャで、フィールド・レンズ１２０４の結像面は、この位置とされる。アバーチャ１２０６の後方には図示しない第２の結像系レンズが設けられている。この第２の結像系レンズの結像位置は、ＣＣＤセンサ１２０７の位置である。
【００４３】
図１３は、図１１、図１２に示した読み取り反射光の経路について、本発明において注目される部分の詳細を示す図であり、図１３（ａ）は、読み取り反射光の経路について横方向から見た図、図１３（ｂ）は、読み取り反射光の経路について上方向から見た図である。
【００４４】
図１３において、図９と同一部分については同一符号が付してある。図１３において、１３０１は光の経路を示し、スキャン対象ライン１３０２は光源９０２からＣＣＤセンサ９０４に達する反射光が読取原稿９０１上で反射する位置を示している。
【００４５】
図１３（ｂ）において明きらかなように、一列に並べられた複数の光源９０２から発せられた光は、スキャン対象ライン１３０２にて反射し、受光レンズ及びミラー９０３（図１３では要点の明確化のために簡略表現されている）で集光され、最終的に一列に並べられた複数のＣＣＤセンサ９０４に達する。各々のＣＣＤセンサ９０４は、読み取った画像の各々の画素に対応する。小型及び安価な構成においては、光源９０２の数を十分に多くすることができないため、列中で両端に位置するＣＣＤセンサ９０４に達する反射光は、中央部に位置するＣＣＤセンサ９０４に達する反射光に比べて少ない。
【００４６】
図１４は、理想的な光学系の構成と、小型及び安価な光学系の構成とを比較するための図である。
【００４７】
理想的な光学系の構成においては、図１４（ａ）に示すように高価なペンタプリズム１４０１が採用されており、読み取り原稿９０１に対して垂直に光は入射する。従って、１４０２，１４０３，１４０４のように読み取り原稿９０１の面の高さが変化しても、受光レンズ及びミラー９０３に達する反射光に変化はない。
【００４８】
一方、小型及び安価な光学系の構成においては、ペンタプリズムが無いため、図１４（ｂ）に示すように光は反射角１４０５のような角度Θを持つに至る。小型化のため、読み取り原稿９０１の面を遠ざけて前記角度Θを小さくすることも困難である。結果として読取原稿９０１の面の高さが変化すると、受光レンズ及びミラー９０３に達する反射光は位置ずれを起こす。安価な受光レンズ及びミラー９０３は、図１４において左右両端部分のゲインが低く、１４０２の読み取り原稿９０１の面基準位置で反射した場合のゲインを最高にして、読取原稿９０１の面が浮いても沈んでもゲインは低下することになる。
【００４９】
次に、光源９０２の数が少数で、受光レンズ及びミラー９０３の長さが短く、ＣＣＤセンサ９０４の数が１２８、各々のＣＣＤセンサ９０４の幅が１／３６０インチ、スキャン幅０．３６インチであるスキャナヘッド・カートリッジ７００について、図１５を用いて説明する。
【００５０】
図１５は、スキャナヘッド・カートリッジ７００を用いて読取原稿９０１の全域をスキャンした場合の動作例を示す図である。走査処理は、カラム方向にＣＣＤセンサ９０４を１２８個並べたヘッドをライン方向に移動することにより行なわれるが、それだけではカラム方向のスキャン幅は０．６インチにしかならない。従って、読取原稿９０１の全域をスキャンするためには、１ラインの走査処理後、スキャン幅分だけ読取原稿９０１をフィードし、再び同様の走査処理を行なう必要がある。従って、本実施の形態に係るプリンタ／スキャナ装置においては、スキャナヘッドの軌跡１５０１のように、スキャナヘッド・カートリッジ７００を移動させて、複数回の走査処理を行なう仕様になっている。
【００５１】
図１６に、蓄積時間とキャリッジ速度、ライン方向読み取り解像度の関係を示す。ここで、蓄積時間とは、１画素を読み込むために要する時間であり、キャリッジ速度とは、スキャナヘッド・カートリッジ７００がライン方向に移動する速度である。このとき、ライン方向の読み取り解像度は、下記（１）式により表わされる。
【００５２】
ライン方向の読み取り解像度＝１／（蓄積時間×キャリッジ速度）…（１）
以下、本実施の形態においては、ライン方向の読み取り解像度が３６０ｄｐｉのときの蓄積時間が２５６マイクロ秒、１８０ｄｐｉのときの蓄積時間が５１２マイクロ秒である構成について説明する。
【００５３】
図１７は、ホスト部２００とプリンタ／スキャナ装置２１９との間の情報のやり取りに使用される専用ステータスポートを示す図である。同図において、１７０１は第１のステータスポートで、８ｂｉｔで構成されており、他のステータスポート及びプリンタ／スキャナ装置２１９の状態に関する情報をやり取りするのに用いる。１７０２は第２のステータスポートで、１６ｂｉｔで構成されており、コマンド及びデータをやり取りするのに用いる。１７０３は第３のステータスポートで、１６ｂｉｔで構成されており、印刷用のイメージデータをホスト部２００からプリンタ／スキャナ装置２１９に送出するために用いる。
【００５４】
図１８は、第１のステータスポート１７０１を示す図で、各々のビットは、ホスト部２００及びプリンタ／スキャナ装置２１９の双方から参照することができる。図１８において、１８０１のビット０は、第２のステータスポート１７０２を介してホスト部２００からプリンタ／スキャナ装置２１９にデータが送られているときは「１」、送られていないときは「０」になる。１８０２のビット１は、第２のステータスポート１７０２を介してプリンタ／スキャナ装置２１９からホスト部２００にデータが送られているときは「１」、送られていないときは「０」になる。１８０３のビット２は、第３のステータスポート１７０３を介してホスト部２００からプリンタ／スキャナ装置２１９にデータを送ることができるときは「０」、できないときは「１」になる。１８０４のビット３は、プリンタ／スキャナ装置２０９の電源が入っているときは「０」、入っていないときは「１」になる。１８０５のビット４は、プリンタ／スキャナ装置２０９が（動作（ｂｕｓｙ）状態にあるときは「１」、準備（ｒｅａｄｙ）状態にあるときは「０」になる。１８０６のビット５は、第１〜第３のステータスポート１７０１〜１７０３が初期化中であるときは「１」、初期化済みであるときは「０」になる。
【００５５】
図１９は、第２のステータスポート１７０２を介してホスト部２００からプリンタ／スキャナ装置２１９に送られるコマンドの一覧表である。ホスト部２００は、これらのコマンドを第２のステータスポート１７０２に書き込んでから１８０１のビット０を立てる。プリンタ／スキャナ装置２１９は、１８０１のビット０が立っていることを検知次第、第２のステータスポート１７０２に書き込まれたコマンドに従って処理を行ない、１８０１のビット０を落とす。該処理が終了次第、第２のステータスポート１７０２に結果を書き込み、１８０２のビット１を立てる。ホスト部２００は、１８０２のビット１が立っていることを検知次第、第２のステータスポート１７０２の内容を読み込み、該読み込みが終了したら、１８０２のビット１を落とす。
【００５６】
以下、コマンドの詳細について説明する。
【００５７】
１９０１の１０００Ｈは、第１〜第３のステータスポート１７０１〜１７０３の初期化を行なうコマンドである。１９０２の４０００Ｈは、印刷イメージの転送を行なうコマンドであり、該コマンドを書き込んだ後、第３のステータスポート１７０３にイメージデータ自体を書き込むことで、印刷を行なうことが可能である。１９０３の８０００Ｈ〜８Ｆ７８Ｈは、スキャナ読み取り用のコマンドであり、下位１２ビットは画像スキャン動作後のフィード量を示す。このコマンド１９３を書き込むと、読み込んだイメージデータが順次第２のステータスポート１７０２を介してプリンタ／スキャナ装置２１９からホスト部２００に送られてくる。このイメージデータ転送後、下位１２ビットの値で示されるフィード量だけフィードした後、動作は終了する。ここで、フィード量の単位は１／３６０インチである。１９０４の９０００Ｈ〜９Ｆ７８Ｈは、フィードを指示するためのコマンドであり、下位１２ビットの値でフィード量を指定する。フィード量の単位は１／３６０インチである。１９０５の９ＦＦ０Ｈは、排紙を指示するためのコマンドである。１９０６の９ＦＦ１Ｈは、給紙を指示するためのコマンドである。１９０７のＡ８０１Ｈは、現在プリンタ／スキャナ装置２１９に搭載されているヘッド・ユニットの情報を取得するためのコマンドであり、このコマンドを発効するとプリンタ／スキャナ装置２１９から図２０に示す１バイトのヘッドユニット情報が第２のステータスポート１７０２を介してホスト部２００に送られてくる。
【００５８】
図２０における２００１のビット０は、現在プリンタ／スキャナ装置２１９に搭載されているヘッド・ユニットの種別を示しており、これが「０」であればスキャナヘッド・ユニット７００が、「１」であれば印字ヘッド・ユニット８０２がそれぞれ搭載されていることを意味する。また、２００２のビット１は、現在プリンタ／スキャナ装置２１９にヘッド・ユニットが搭載されているか否かを示しており、これが「０」であればヘッド・ユニットが搭載されていないことを、「１」であればヘッド・ユニットが搭載されていることを意味する。
【００５９】
再び図１９に戻って、１９０８のＡ８０５Ｈは、現在プリンタ／スキャナ装置２１９において設定されている読み取り解像度の設定値を取得するためのコマンドであり、このコマンド１９０８を発効するとプリンタ／スキャナ装置２１９から図２１に示す１バイトの読み取り解像度情報がホスト部２００に送られてくる。また、図２１において２１０１のビット０が「１」のとき３６０ｄｐｉ、２１０２のビット１が「１」のとき１８０ｄｐｉをそれぞれ意味する。これらのビットが２つ以上同時に「１」になることはない。
【００６０】
再び図１９に戻って、１９０９のＡＤ００Ｈ〜ＡＤ３ＦＨは、蓄積時間５１２マイクロ秒で検出した白基準値を取得するためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンド１９０９を受け取ると、プリンタ／スキャナ装置２１９は該当するドットに設定された１画素当たり１バイトの白基準値を第２のステータスポート１７０２を介してホスト部２００に送り返す。
【００６１】
１９１０のＡＤ４０Ｈ〜ＡＤ７ＦＨは、蓄積時間２５６マイクロ秒で検出した白基準値を取得するためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンド１９１０を受け取ると、プリンタ／スキャナ装置２１９は該当するドットに設定された１画素当たり１バイトの白基準値を第２のステータスポート１７０２を介してホスト部２００に送り返す。
【００６２】
１９１１のＡＤ８０Ｈは、搭載されているヘッド・ユニットのＩＤ（識別子）を取得するためのコマンドである。このコマンドを受け取ると、プリンタ／スキャナ装置２１９は前記ＩＤを第２のステータスポート１７０２を介してホスト部２００に送り返す。１９１２のＡＤ８１Ｈは、プリンタ／スキャナ装置２１９の内部温度情報を取得するためのコマンドである。このコマンドを受け取ると、プリンタ／スキャナ装置２１９は１バイトの前記内部温度情報を第２のステータスポート１７０２を介してホスト部２００に送り返す。
【００６３】
１９１３のＡＤＦ０Ｈは、蓄積時間５１２マイクロ秒でオフセット値の検出動作を行なうためのコマンドであり、このコマンドを受け取ると、プリンタ／スキャナ装置２１９は蓄積時間５１２マイクロ秒でオフセット値の検出動作を行なう。１９１４のＡＤＦ１Ｈは、蓄積時間２５６マイクロ秒でオフセット値の検出動作を行なうためのコマンドであり、このコマンドを受け取ると、プリンタ／スキャナ装置２１９は蓄積時間５１２マイクロ秒でオフセット値の検出動作を行なう。
【００６４】
１９１５のＢ８０５Ｈは、プリンタ／スキャナ装置２１９に新しい読み取り解像度を設定するためのコマンドであり、このコマンドを発効した後に、続けてプリンタ／スキャナ装置２１９に図２１に示す１バイトの読み取り解像度情報を送ることで、新しい読み取り解像度のを設定を行なうことができる。
【００６５】
１９１６のＢＤ００Ｈ〜ＢＤ３ＦＨは、蓄積時間５１２マイクロ秒時の白基準値をホスト部２００からプリンタ／スキャナ装置２１９中のＲＡＭ３０３に送るためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンドを発効した後に、続けてプリンタ／スキャナ装置２１９に１画素当たり１バイトの白基準値を送ることで、該当するドットの白基準値を設定することができる。ＲＡＭ３０３中の白基準値は、実スキャン動作を行なう直前にスキャナ・ヘッドに書き込まれる。
【００６６】
１９１７のＢＤ４０Ｈ〜ＢＤ７ＦＨは、蓄積時間２５６マイクロ秒時の白基準値をホスト部２００からプリンタ／スキャナ装置２１９中のＲＡＭ３０３に送るためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンドを発効した後に、続けてプリンタ／スキャナ装置２１９に１画素当たり１バイトの白基準値を送ることで、該当するドットの白基準値を設定することができる。ＲＡＭ３０３中の白基準値は、実スキャン動作を行なう直前にスキャナ・ヘッドに書き込まれる。
【００６７】
１９１８のＢＤＦ０Ｈは、プリンタ／スキャナ装置２１９中のＲＡＭ３０３に設定された白基準値及びオフセット値をスキャナ・ヘッドに書き込むためのコマンドである。１９１９のＣＤ００Ｈ〜ＣＤ３ＦＨは、蓄積時間５１２マイクロ秒時のオフセット値をプリンタ／スキャナ装置２１９中のＲＡＭ３０３からホスト部２００に送るためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンドを発効するとプリンタ／スキャナ装置２１９から１画素当たり１バイトのオフセット値が送られてくる。
【００６８】
１９２０のＣＤ４０Ｈ〜ＣＤ７ＦＨは、蓄積時間２５６マイクロ秒時のオフセット値をプリンタ／スキャナ装置２１９中のＲＡＭ３０３からホスト部２００に送るためのコマンドであり、下位８ビットがヘッドのドット画素０〜１２７に２画素単位で順次対応している。このコマンドを発効するとプリンタ／スキャナ装置２１９から１画素当たり１バイトのオフセット値が送られてくる。
【００６９】
１９２１のＤ０００Ｈは、ヘッド交換位置へのキャリッジ移動を行なうためのコマンドであり、このコマンドを受信するとプリンタ／スキャナ装置２１９はヘッド・ユニットの初期化を行なってからホームポジションにキャリッジを移動させる。１９２２のＤ１００Ｈは、ヘッド交換位置からホームポジションへキャリッジを戻すためのコマンドであり、このコマンドを受信するとプリンタ／スキャナ装置２１９はヘッド・ユニットの初期化を行なってからホームポジションにキャリッジを移動させる。
【００７０】
１９２３の３０００Ｈ〜３Ｂ４０Ｈは、キャリッジ位置の左オフセット指定を行うためのコマンドであり、下位１２ビットで左端からのキャリッジのオフセット位置情報を指定する。オフセット量の単位は１／３６０インチである。
【００７１】
図２２は、本実施の形態に係るプリンタ／スキャナ装置２１９における基本的なスキャナの動作手順について図２２を用いて説明する。図２２は、本実施の形態に係るプリンタ／スキャナ装置２１９における基本的なスキャナの動作手順について、ホスト部２００の送信するコマンドを用いて説明するためのフローチャートである。
【００７２】
スキャナ動作が開始されると、まず、ステップＳ２２０１でコマンド１９０１を送信してステータスポートの初期化を行なう。次にステップＳ２２０２でビット１８０６を参照して前記ステータスポートの初期化が終了しているか否かを終了するまで判断する。そして、前記ステータスポートの初期化が終了すると、次のステップＳ２２０３でビット２００１及びビット２００２を参照して、スキャナ・ヘッドがキャリッジに装着されているか否かを判断する。そして、スキャナ・ヘッドがキャリッジに装着されていない場合には、ステップＳ２２０４へ進んでコマンド１９１８を送信してヘッド交換を開始する。このコマンド１９１８によりキャリッジはヘッド交換位置に移動するので、使用者は次のステップＳ２２０５でスキャナ・ヘッドをキャリッジに装着する。スキャナ・ヘッドのキャリッジへの装着が終了すると、次のステップＳ２２０６でコマンド１９１９によりヘッドの交換終了を行なった後、前記ステップＳ２２０３へ戻る。
【００７３】
一方、前記ステップＳ２２０３においてスキャナ・ヘッドがキャリッジに装着されている場合は、ステップＳ２２０７へ進んで、読み取り解像度３６０ｄｐｉが選択されたか否かを判断する。そして、読み取り解像度３６０ｄｐｉが選択された場合はステップＳ２２０８へ、読み取り解像度１８０ｄｐｉが選択された場合はステップＳ２２０９へそれぞれ進んで、各々ビット２１０１及びビット２１０２を適正値に設定した後、ステップＳ２２１０へ進み、コマンド１９１４により読み取り解像度の設定を行なう。
【００７４】
次にステップＳ２２１１で使用者は白基準用紙をセットした後、コマンド１９０６を送って給紙を行なう。次いでステップＳ２２１２へ進んで白基準値検出動作を行なう。この白基準値検出動作が終了すると、次のステップＳ２２１３でコマンド１９０５により白基準用紙の排紙を行なう。次にステップＳ２２１４で使用者は読み取り原稿をセットした後、コマンド１９０６を送信して給紙を行なう。次にステップＳ２２１５でコマンド１９０３によりスキャナ読み取りを行なった後、本処理動作を終了する。
【００７５】
以下の説明では説明を簡素化するために、カラム方向１６ドットのスキャナ・ヘッドで、ライン方向３６ドットの画像を１スキャンで走査する場合を例にとり説明する。
【００７６】
図２３は、本発明で解決すべき問題点の原因となる紙間の変動を、ライン方向から見て説明するための図である。同図において、縦軸は紙間を、横軸はライン方向のドット番号をそれぞれ示している。ライン方向の紙間が、うねりながら各ドットに対応する位置によって食い違っていることが分かる。ここで注意すべき点は、本発明においては白基準用紙による白基準値の検出時と、画像スキャン時の紙間の変動が同様の傾向を持っている場合を想定していることである。
【００７７】
即ち、本発明の目的とするところは、図１４で説明した紙面基準位置１４０２がどこに該当するかを求めるものではなく、系の傾向として紙面が浮いてしまっている状態１４０３及び１４０４が認められる場合、該状態を系のデフォルトの状態として検出するものである。
【００７８】
図２４及び図２５は、図２３で示した紙間変動の条件下において白基準用紙を用い、画像スキャンと同一の手段によって１ラスター全域の各位置に対して白基準値を検出した場合の各値を示している。図２４は、実値を示した表であり、カラム方向１６ドットのスキャナ・ヘッドでライン方向３６ドットの検出を行なった結果である。これをグラフ化したものが図２５である。
【００７９】
図１３で説明した理由から、カラム方向の値は中央付近が盛り上がった「カマボコ型」を呈しているが、これは白基準値をスキャナの各ドットごとに独立して持つ公知の手段で解決しており、本発明の問題とするところではない。一方、ライン方向については、紙間の変動に影響されて不規則に値が変化していることが分かる。
【００８０】
図２６は、スキャンの対象となるイメージの具体例である。
【００８１】
図２７は、図２３〜図２５で説明してきた状態において、系の平均的傾向から逸脱した白基準値で図２６のイメージをスキャンした場合の様子を示し、前記白基準値を検出した位置と著しく紙間が異なっていた位置において、カラム方向に筋が出てしまっている様子を示している。
【００８２】
図２８は、本実施の形態に係るプリンタ／スキャナ装置２９１の特徴である白基準値検出動作（図２２におけるステップＳ２２１２）の詳細を示すフローチャートである。
【００８３】
白基準値検出動作が開始すると、まず、ステップＳ２８０１でコマンド１９１３、またはコマンド１９１４でオフセット（黒基準）値検出動作を遂行する。次にステップＳ２８０２でコマンド１９１９、またはコマンド１９２０でプリンタ／スキャナ装置２９１のＲＡＭ３０３からオフセット（黒基準）値を得る。該オフセット値がスキャナ・ヘッドに設定された状態で、ステップＳ２８０３でコマンド１９０３により読み取りを行なう。次にステップＳ２８０４でコマンド１９０２により印刷イメージのデータを得る。次にステップＳ２８０５でラスタ方向画素Ｎｏ”ｉ”、ライン方向画素Ｎｏ”ｊ”に従って、印刷イメージのデータをホスト部２００に転送し、配列ｄａｔａ［ｉ］、［ｊ］に格納する。
【００８４】
ステップＳ２８０６〜ステップＳ２８１４は、各々のラスタ方向画素、即ちスキャナ・ヘッドのＣＣＤセンサ画素に対して、ラスタ上で検出された白基準値の代表値として配列ｗｈｉｔｅ［ｉ］に格納する処理について示している。
【００８５】
即ち、ステップＳ２８０６ではｉを１にセットし、ステップＳ２８０７ではｊを１にセットし、ステップＳ２８０８では［ｓｕｍ］を［０］にセットし、ステップＳ２８０９ではｓｕｍをｄａｔａ［ｉ］［ｊ］＋ｓｕｍにセットする。また、ステップＳ２８１０ではｊが３６より小さいか否かを判断し、ｊが３６より小さくない場合は、ステップＳ２８１１でｗｈｉｔｅ［ｉ］をｓｕｍ／１６にセットする。ステップＳ２８１２ではｉが１６より小さいか否かを判断し、ｉが１６より小さくない場合は本処理動作を終了する。
【００８６】
一方、前記ステップＳ２８１０においてｊが３６より小さい場合は、ステップＳ２８１３でｊをｊ＋１にセットした後、前記ステップＳ２８０８へ戻る。また、前記ステップＳ２８１２においてｉが１６より小さい場合は、ステップＳ２８１４でｉをｉ＋１にセットした後、前記ステップＳ２８０７へ戻る。
【００８７】
（第２の実施の形態）
次に、本発明の第２の実施の形態を図２９〜図３２に基づき説明する。なお、本実施の形態に係るプリンタ／スキャナ装置の基本的な構成は、上述した第１の実施の形態と同一であるから、必要に応じて第１の実施の形態における図面を流用して説明する。
【００８８】
図２９は、図２３〜図２５で述べてきた状態において、紙間変動の悪影響がラスター先頭でヘッドに設定された白基準値の代表値で対応不可能になった場合における図２６のイメージをスキャンした様子を示す図であり、前記白基準値を検出した位置と著しく紙間が異なった位置において、カラム方向に白筋や黒筋が出ている様子を示している。
【００８９】
図３０は、本実施の形態に係るプリンタ／スキャナ装置の特徴となる白基準値検出動作（図２２のステップＳ２２１２）の制御手順を示すフローチャートである。ここでは、第１カラム目の白基準値を代表値として採用した場合について説明している。
【００９０】
白基準値検出動作が開始すると、まず、ステップＳ３００１でコマンド１９１３、またはコマンド１９１４でオフセット（黒基準）値検出動作を遂行する。次にステップＳ３００２でコマンド１９１９、またはコマンド１９２０でプリンタ／スキャナ装置２９１のＲＡＭ３０３からオフセット（黒基準）値を得る。該オフセット値がスキャナ・ヘッドに設定された状態で、ステップＳ３００３でコマンド１９０３により読み取りを行なう。次にステップＳ３００４でコマンド１９０２により印刷イメージのデータを得る。次にステップＳ３００５でラスタ方向Ｍ画素Ｎｏ”ｉ”、ライン方向画素Ｎｏ”ｊ”に従って、印刷イメージのデータをホスト部２００に転送し、配列ｄａｔａ［ｉ］、［ｊ］に格納する。
【００９１】
ステップＳ３００６〜ステップＳ３０１２は、各々のラスタ方向画素、即ちスキャナ・ヘッドのＣＣＤセンサ画素に対して、ライン方向の各位置の画素に対して紙間の変化率を、１ライン目の白基準値の代表値で各位置の白基準値を割ることで算出し、ｈｅｎｋａ［ｉ］、［ｊ］に格納する手段について示している。
【００９２】
即ち、ステップＳ３００６ではｉとｊを１にセットし、ステップＳ３００７では係数データベースｈｅｎｋａ［ｉ］、［ｊ］をｄａｔａ［ｉ］、［ｊ］／ｄａｔａ［ｉ］、［１］にセットする。ステップＳ３００８ではｉが１６より小さいか否かを判断し、ｉが１６より小さくない場合は、ステップＳ３００９で［ｉ］を１にセットする。ステップＳ３０１０ではｊが３６より小さいか否かを判断し、ｊが３６より小さくない場合は本処理動作を終了する。
【００９３】
一方、前記ステップＳ３００８においてｉが１６より小さい場合は、ステップＳ３０１１でｉをｉ＋１にセットした後、前記ステップＳ３００７へ戻る。また、前記ステップＳ３０１０においてｊが３６より小さい場合は、ステップＳ３０１２でｊをｊ＋１にセットした後、前記ステップＳ３００７へ戻る。
【００９４】
図３１は、図２９で説明した係数データベースｈｅｎｋａ［ｉ］、［ｊ］の具体例を示す図である。
【００９５】
図３２は、本実施の形態に係るプリンタ／スキャナ装置の画像データ読み取り動作（図２２のステップＳ２２１５）の制御手順を示すフローチャートである。
【００９６】
画像読み取り動作が開始すると、まず、ステップＳ３２０１で該当する解像度のオフセット（黒基準）値データをコマンド１９１６、またはコマンド１９１７で転送する。次にステップＳ３２０２で該当する解像度の白基準値データｄａｔａ［ｉ］、［１］をコマンド１９０９、またはコマンド１９１０で転送する。次にステップＳ３２０３でコマンド１９０３により読み取りを行なう。次にステップＳ３２０４でコマンド１９０２により印刷イメージのデータを得、ラスタ方向画素Ｎｏ”ｉ”、ライン方向画素Ｎｏ”ｊ”に従って、印刷イメージデータを配列ｉｍａｇｅ［ｉ］、［ｊ］に格納する。ステップＳ３２０５〜ステップＳ３２１１は、画像データ配列ｉｍａｇｅ［ｉ］、［ｊ］の各々のデータを係数データベースｈｅｎｋａ［ｉ］、［ｊ］の対応する各画素で割ることで、画像スキャンデータに紙間の影響を織り込む処理について示している。
【００９７】
即ち、ステップＳ３２０５ではｉとｊを１にセットし、ステップＳ３２０６ではｉｍａｇｅ［ｉ］、［ｊ］をｉｍａｇｅ［ｉ］、［ｊ］／ｈｅｎｋａ［ｉ］、［ｊ］にセットする。ステップＳ３２０７ではｉが１６より小さいか否かを判断し、ｉが１６より小さくない場合は、ステップＳ３２０８で［ｉ］を１にセットする。ステップＳ３２０９ではｊが３６より小さいか否かを判断し、ｊが３６より小さくない場合は本処理動作を終了する。
【００９８】
一方、前記ステップＳ３２０７においてｉが１６より小さい場合は、ステップＳ３２１０でｉをｉ＋１にセットした後、前記ステップＳ３２０６へ戻る。また、前記ステップＳ３２０９においてｊが３６より小さい場合は、ステップＳ３２１１でｊをｊ＋１にセットした後、前記ステップＳ３２０６へ戻る。
【００９９】
（第３の実施の形態）
次に、本発明の第３の実施の形態を図３３〜図３９に基づき説明する。なお、本実施の形態に係るプリンタ／スキャナ装置の基本的な構成は、上述した第１の実施の形態と同一であるから、必要に応じて第１の実施の形態における図面を流用して説明する。
【０１００】
図３３は、本発明において解決すべき問題点の原因となる、白基準用紙の汚れをライン方向から見て解説するための図である。同図において、縦軸は白基準用紙の汚れ具合を示しており、上方が白色、下方が黒色をそれぞれ示す。即ち、下方に向かうに従い汚れていることになる。また、横軸はライン方向のドットの番号を示している。図３３においては、第６ドットの付近及び第２７ドットの付近に搬送拍車の跡がある場合を想定している。
【０１０１】
図３４及び図３５は、図３３で示した白基準用紙を用い、画像スキャンと同一の手段によって１ラスター全域の各位置に対して白基準値を検出した場合の各値を示している。図３４は、実値を示した表であり、カラム方向１６ドットのスキャナ・ヘッドでライン方向３６ドットの検出を行なった結果である。これをグラフ化したものが図３５である。
【０１０２】
図１３で説明した理由から、カラム方向の値は中央付近が盛り上がった「カマボコ型」を呈しているが、これは白基準値をスキャナの各ドットごとに独立して持つ公知の手段で解決しており、本発明の問題とするところではない。一方、ライン方向については、汚れに該当する位置は、カラム方向に向かって帯状に値が侵蝕されていることが分かる。
【０１０３】
図３６は、図２３〜図２５で述べてきた状態を引き起こす原因となる白基準値の具体例を示す図であり、カラム方向にゴムローラ跡及び搬送拍車跡が付着している様子を示している。
【０１０４】
図３７は、スキャンの対象となるイメージの具体例を示す図であり、図３８は、図３４及び図３５で示した白基準値のうち、第６ドットの付近で獲得された白基準値をカラム先頭で設定してしまった場合を示している。不正に白っぽくなってしまっていることが分かる。
【０１０５】
図３９は、本実施の形態に係るプリンタ／スキャナ装置の特徴となる白基準値検出動作（図２２のステップＳ２２１２）の制御手順を示すフローチャートである。
【０１０６】
白基準値検出動作が開始すると、まず、ステップＳ３９０１でコマンド１９１３、またはコマンド１９１４でオフセット（黒基準）値検出動作を遂行する。次にステップＳ３９０２でコマンド１９１９、またはコマンド１９２０でプリンタ／スキャナ装置２９１のＲＡＭ３０３からオフセット（黒基準）値を得る。該オフセット値がスキャナ・ヘッドに設定された状態で、ステップＳ３９０３でコマンド１９０３により読み取りを行なう。次にステップＳ３９０４でコマンド１９０２により印刷イメージのデータを得る。次にステップＳ３９０５でラスタ方向画素Ｎｏ”ｉ”、ライン方向画素Ｎｏ”ｊ”に従って、印刷イメージのデータをホスト部２００に転送し、配列ｄａｔａ［ｉ］、［ｊ］に格納する。
【０１０７】
ステップＳ３９０６〜ステップＳ３９１４は、各々のラスタ方向画素、即ちスキャナ・ヘッドのＣＣＤセンサ画素に対して、ラスタ上で検出された最も大きい白基準値を対応させる処理について示している。
【０１０８】
即ち、ステップＳ３９０６ではｉを１にセットし、ステップＳ３９０７ではｗｈｉｔｅ［ｉ］をｄａｔａ［ｉ］［１］にセットする。ステップＳ３９０８ではｄａｔａ［ｉ］［ｊ］がｄａｔａ［ｉ］［ｊ＋１］より大きいか否かを判断し、ｄａｔａ［ｉ］［ｊ］がｄａｔａ［ｉ］［ｊ＋１］より大きくない場合は、ステップＳ３９０９でｗｈｉｔｅ［ｉ］をｄａｔａ［ｉ］［ｊ＋１］にセットする。ステップＳ３９１０ではｊが［３６−１］より小さいか否かを判断し、ｊが［３６−１］より小さくない場合は、ステップＳ３９１１で［ｉ］を［１］にセットした後、ステップＳ３９１２でｉが１６より小さいか否かを判断する。そして、ｉが１６より小さくない場合は、本処理動作を終了する。
【０１０９】
一方、前記ステップＳ３９０８においてｄａｔａ［ｉ］［ｊ］がｄａｔａ［ｉ］［ｊ＋１］より大きい場合は、前記ステップＳ３９０９をスキップして前記ステップＳ３９１０へ進む。また、前記ステップＳ３９１０においてｊが［３６−１］より小さい場合は、ステップＳ３９１３で［ｊ］を［ｊ＋１］にセットした後、前記ステップＳ３９０８へ戻る。また、前記ステップＳ３９１２においてｉが１６より小さい場合は、ステップＳ３９１４で［ｊ］を［ｉ＋１］にセットした後、前記ステップＳ３９０７へ戻る。
【０１１０】
このような処理により、汚れが付着した部分に相当する小さい値は淘汰され、良好な白基準値のみを摘出して使用することが可能となる。
【０１１１】
（第４の実施の形態）
次に、本発明の第４の実施の形態を図４０及び図４１に基づき説明する。なお、本実施の形態に係るプリンタ／スキャナ装置の基本的な構成は、上述した第１の実施の形態と同一であるから、必要に応じて第１の実施の形態における図面を流用して説明する。
【０１１２】
図４０及び図４１は、本実施の形態に係るプリンタ／スキャナ装置の特徴となる白基準値検出動作（図２２のステップＳ２２１２）の制御手順を示すフローチャートである。
【０１１３】
白基準値検出動作が開始すると、まず、ステップＳ４００１でコマンド１９１３、またはコマンド１９１４でオフセット（黒基準）値検出動作を遂行する。次にステップＳ４００２でコマンド１９１９、またはコマンド１９２０でプリンタ／スキャナ装置２９１のＲＡＭ３０３からオフセット（黒基準）値を得る。該オフセット値がスキャナ・ヘッドに設定された状態で、ステップＳ４００３でコマンド１９０３により読み取りを行なう。次にステップＳ４００４でコマンド１９０２により印刷イメージのデータを得る。次にステップＳ４００５でラスタ方向画素Ｎｏ”ｉ”、ライン方向画素Ｎｏ”ｊ”に従って、印刷イメージのデータをホスト部２００に転送し、配列ｄａｔａ［ｉ］、［ｊ］に格納する。
【０１１４】
ステップＳ４００６〜ステップＳ４０１４は、各々のラスタ方向画素、即ちスキャナ・ヘッドのＣＣＤセンサ画素に対して、ラスタ上で検出された白基準値の平均値を求める処理について示している。
【０１１５】
即ち、ステップＳ４００６ではｉを１にセットし、ステップＳ４００７ではｊを１にセットし、ステップＳ４００８ではｓｕｍを０にセットし、ステップＳ４００９ではｓｕｍをｄａｔａ［ｉ］［ｊ］＋ｓｕｍにセットする。また、ステップＳ４０１０ではｊが３６より小さいか否かを判断し、ｊが３６より小さくない場合は、ステップＳ４０１１でａｖｅｒａｇｅ［ｉ］をｓｕｍ／１６にセットする。ステップＳ４０１２ではｉが１６より小さいか否かを判断し、ｉが１６より小さくない場合は後述する図４１の処理へ進む。
【０１１６】
一方、前記ステップＳ４０１０においてｊが３６より小さい場合は、ステップＳ４０１３でｊをｊ＋１にセットした後、前記ステップＳ４００８へ戻る。また、前記２においてｉが１６より小さい場合は、ステップＳ４０１４でｉをｉ＋１にセットした後、前記ステップＳ４００７へ戻る。
【０１１７】
図４１のステップＳ４１０１〜ステップＳ４１１１は、平均的白基準値に最も近い白基準値を検出した位置を求め、その位置において統計化処理を行ない、白基準値の代表値を求める処理について示している。
【０１１８】
即ち、まず、ステップＳ４１０１でｉを１にセットした後、ステップＳ４１０２でｊとｐｏｓｉｔｉｏｎ［ｉ］を１にセットする。次にステップＳ４１０３でｓｕｂ１をａｖｅｒａｇｅ［ｉ］−ｄａｔａ［ｉ］［１］にセットした後、ステップＳ４１０４でｊをｊ＋１にセットする。次にステップＳ４１０５でｓｕｂ２をａｖｅｒａｇｅ［ｉ］−ｄａｔａ［ｉ］［１］にセットした後、ステップＳ４１０６でｓｕｂ１がｓｕｂ２より小さいか否かを判断する。そして、ｓｕｂ１がｓｕｂ２より小さくない場合は、ステップＳ４１０７でｓｕｂ１、ｓｕｂ２、ｐｏｓｉｔｉｏｎ［ｉ］をｊにセットする。次にステップＳ４１０８でｊが３６より小さいか否かを判断し、ｊが３６より小さくない場合は、ステップＳ４１０９でｐｏｓｉｔｉｏｎ［ｉ］に移動させ、統計化処理により白基準値の代表値ｗｈｉｔｅ［ｉ］を求める。その後、ステップＳ４１１０でｉが１６より小さいか否かを判断し、ｉが１６より小さくない場合は本処理動作を終了する。
【０１１９】
一方、前記ステップＳ４１０６においてｓｕｂ１がｓｕｂ２より小さい場合は、前記ステップＳ４１０７をスキップして前記ステップＳ４１０８へ進む。また、前記ステップＳ４１０８においてｊが３６より小さい場合は、前記ステップＳ４１０４へ戻る。また、ステップＳ４１１０においてｉが１６より小さい場合は、ステップＳ４１１１でｉをｉ＋１にセットした後、前記ステップＳ４１０３へ戻る。
【０１２０】
前記統計化処理については、本発明の特徴とするところではないが、代表的な手段としては、１つの位置で数回の白基準値の検出を行なう手段が挙げられる。この白基準値の統計化処理は、ノイズ等の影響を抑えるために行なうものであるが、処理時間を非常に多く要求されるという問題があり、本発明においては、予め系の平均的白基準値に最も近い白基準値を検出できる位置を特定した上で統計化処理を行なうことで、該統計化処理の実行回数をライン方向の特定の位置でのみ行なうだけでライン全体で最も適切な白基準値を得ることができ、処理の高速化と白基準値の適性化を両立させることができる。
【０１２１】
【発明の効果】
以上詳述したように本発明の請求項１に記載のプリンタ／スキャナ装置によれば、Ａ／Ｄ変換用のレファレンス値（白基準値）の検出手段として、画像スキャンと同一の手段によって１ラスター全域の各位置に対して白基準値を検出し、該白基準値の平均値を算出し、該平均値に最も近い白基準値を検出した紙上の位置を求め、該位置において白基準値の統計化処理を行なって白基準値の代表値を求め、画像スキャン時にはラスターの先頭で前記代表値を白基準値としてヘッドに設定するようにしたから、安価で小型なものでありながら、紙間の影響を回避して白基準値を検出することが可能となり、画質の向上を図ることができ、しかも、紙間変動の検出手段として統計化処理ではなく、画像スキャンと同一の手段を使用することにより、前記画質の向上を処理速度の低下を招くことなく実現することが可能となるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンの構成を示す外観斜視図である。
【図２】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンの内部構成を示すブロック図である。
【図３】本発明の第１の実施の形態に係るプリンタ／スキャナ装置の内部構成を示すブロック図である。
【図４】本発明の第１の実施の形態に係るプリンタ／スキャナ装置におけるプリンタ／スキャナコントローラの内部構成を示すブロック図である。
【図５】本発明の第１の実施の形態に係るプリンタ／スキャナ装置におけるＩ／Ｏデータレジスタのマップ図である。
【図６】本発明の第１の実施の形態に係るプリンタ／スキャナ装置におけるＲＡＭ上の記録データバッファと受信バッファのアドレス領域図である。
【図７】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジの外観斜視図である。
【図８】本発明の第１の実施の形態に係るプリンタ／スキャナ装置の外観斜視図である。
【図９】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジの内部構成を示すブロック図である。
【図１０】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジにおけるスキャナコントローラ内のＩ／Ｏポートレジスタのマップ図である。
【図１１】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジにおける光学系部品及び読み取り反射光の経路を示す外観斜視図である。
【図１２】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジにおける光学系部品及び読み取り反射光の経路を示す縦断側面図である。
【図１３】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジにおける読み取り反射光の経路を示す詳細図である。
【図１４】理想的な光学系の構成と本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジにおける光学系の構成との比較図である。
【図１５】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を構成するスキャナヘッドカートリッジを用いて画像読み取りを実行した場合のヘッド動作を示す図である。
【図１６】本発明の第１の実施の形態に係るプリンタ／スキャナ装置の蓄積時間とキャリッジ速度及びライン方向の読み取り解像度の関係を示す図である。
【図１７】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンのホスト部とプリンタ部の情報のやり取りに使用される専用ステータスポートを示す図である。
【図１８】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンのホスト部とプリンタ部の情報のやり取りに使用される専用ステータスポートを説明するための図である。
【図１９】本発明の第１の実施の形態に係るプリンタ／スキャナ装置における制御コマンドの一覧表である。
【図２０】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンのホスト部とプリンタ部の情報のやり取りに使用される第２の専用ステータスポートを説明するための図である。
【図２１】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンのホスト部とプリンタ部の情報のやり取りに使用される第３の専用ステータスポートを説明するための図である。
【図２２】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を具備したパソコンの基本的なスキャナの動作手順を示すフローチャートである。
【図２３】本発明の第１の実施の形態に係るプリンタ／スキャナ装置における紙間の変動をライン方向から見た状態で示す図である。
【図２４】本発明の第１の実施の形態に係るプリンタ／スキャナ装置における紙間の変動と白基準値の一例を示す表である。
【図２５】本発明の第１の実施の形態に係るプリンタ／スキャナ装置における紙間の変動と白基準値の一例を示すグラフである。
【図２６】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を説明するためのスキャン対象となるイメージの具体例を示す中間調の図である。
【図２７】本発明の第１の実施の形態に係るプリンタ／スキャナ装置を説明するための不良なスキャン画像の具体例を示す中間調の図である。
【図２８】本発明の第１の実施の形態に係るプリンタ／スキャナ装置の特徴である白基準値検出動作の制御手順を示すフローチャートである。
【図２９】本発明の第２の実施の形態に係るプリンタ／スキャナ装置を説明するための不良なスキャン画像の具体例を示す中間調の図である。
【図３０】本発明の第２の実施の形態に係るプリンタ／スキャナ装置の特徴である白基準値検出動作の制御手順を示すフローチャートである。
【図３１】本発明の第２の実施の形態に係るプリンタ／スキャナ装置の特徴である紙間変動情報を格納した係数データベースの具体例を示す図である。
【図３２】本発明の第２の実施の形態に係るプリンタ／スキャナ装置の特徴である画像データ読み取り処理動作の制御手順を示すフローチャートである。
【図３３】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するための白基準用紙の汚れをライン方向から見た状態で示す図である。
【図３４】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するための白基準用紙の汚れと白基準値の一例を示す表である。
【図３５】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するための白基準用紙の汚れと白基準値の一例を示すグラフである。
【図３６】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するための白基準用紙の具体例を示す中間調の図である。
【図３７】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するためのスキャン対象となるイメージの具体例を示す中間調の図である。
【図３８】本発明の第３の実施の形態に係るプリンタ／スキャナ装置を説明するための不良なスキャン画像の具体例を示す中間調の図である。
【図３９】本発明の第３の実施の形態に係るプリンタ／スキャナ装置の特徴である白基準値検出動作の制御手順を示すフローチャートである。
【図４０】本発明の第４の実施の形態に係るプリンタ／スキャナ装置の特徴である白基準値検出動作の制御手順を示すフローチャートである。
【図４１】本発明の第４の実施の形態に係るプリンタ／スキャナ装置の特徴である白基準値検出動作の制御手順を示すフローチャートである。
【符号の説明】
１００    パソコン本体
１０１    蓋体
１０２    キーボード
１０３    プリンタ
１０４    表示装置
２００    ホスト部
２０１    ＣＰＵ（中央演算処理装置）
２０２    ＢＩＯＳ  ＲＯＭ（基本入出力システム・リード・オンリー・メモリ）
２０３    ＦＤＤ（フロッピーディスク）
２０４    ＨＤＤ（ハードディスク）
２０５    ＦＤＣ（フロッピーディスク・コントローラ）
２０６    ＨＤＣ（ハードディスク・コントローラ）
２０７    ＭＡＩＮ  ＤＲＡＭ（メイン・ダイナミック・ランダム・アクセス・メモリ）
２０８    ＶＧＡＣ（ビデオグラフィクスアレイ・コントローラ）
２０９    ＬＣＤ（液晶表示装置）
２１０    ＶＲＡＭ（ビデオ・ランダム・アクセス・メモリ）
２１１    キーボード
２１２    ＫＢＣ（キーボード・コントローラ）
２１３    ＦＰＵ（浮動小数点演算ユニット）
２１４    ＲＴＣ（リアルタイムクロック）
２１５    ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）
２１６    ＩＲＱＣ（割り込み要求コントローラ）
２１７    ＳＩＯ（直列入出力インターフェース）
２１８    ＰＯＲＴ（ポート）
２１９    プリンタ／スキャナ装置
２２０    ＰＯＷＥＲ  ＳＵＰＰＬＹ（電力供給部）
２２１    ＡＣアダプタ
２２２    バッテリー
２２３    ＰＯＷＥＲ  ＭＡＮＡＧＥＭＥＮＴ  ＩＣ（電力管理集積回路）
３０１    ＣＰＵ（中央演算処理装置）
３０２    ＲＯＭ（リード・オンリー・メモリ）
３０３    ＲＡＭ（ランダム・アクセス・メモリ）
３０４    プリンタ／スキャナ・ヘッド
３０５    ＭＯＴＯＲ  ＤＲＩＶＥＲ（モータ・ドライバ）
３０６    ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＣＯＮＴＲＯＬＬＥＲ（プリンタ／スキャナ・コントローラ）
３０７    サーミスタ
４０１    Ｉ／Ｏ  ＤＡＴＡ  ＲＥＧＩＳＴＥＲ（Ｉ／Ｏデータ・レジスタ）
４０２    ＲＥＣＩＥＶＥ  ＢＵＦＦＥＲ  ＣＯＮＴＲＯＬＬＥＲ（レシーブ・バッファ・コントローラ）
４０３    ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＢＵＦＦＥＲ  ＣＯＮＴＲＯＬＬＥＲ（プリンタ／スキャナ・バッファ・コントローラ）
４０４    ＭＥＭＯＲＹ  ＣＯＮＴＲＯＬＬＥＲ（メモリ・コントローラ）
４０５    ＰＲＩＮＴＥＲ／ＳＣＡＮＮＥＲ  ＳＥＱＵＥＮＣＥ  ＣＯＮＴＲＯＬＬＥＲ（プリンタ／スキャナ・シーケンス・コントローラ）
４０６    ＨＯＳＴ  Ｉ／Ｆ（ホスト・インターフェース）
７００    スキャナ・ヘッド・カートリッジ
７０１    コネクタ
７０２    接点部
８０１    キャリッジ
８０２    印字ヘッド・カートリッジ
８０３    コネクタ
８０４    接点部
８０５    ヘッド・ガイド
８０６    フレキシブル・ケーブル
９０１    読み取り用原稿
９０２    原稿証明用光源
９０３    ミラー
９０４    ＣＣＤセンサ
９０５    アンプ（ＡＭＰ）
９０６    スキャナ・コントローラＩＣ（集積回路）
９０６ａ  Ａ／Ｄ変換器
９０７    ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）
１２０１  ケース
１２０２  ＬＥＤ（発光ダイオード：原稿証明用光源）
１２０３  ロッド・レンズ
１２０４  フィールド・レンズ
１２０５  ミラー
１２０６  アパーチャ
１２０７  ＣＣＤセンサ
１３０１  光の経路
１３０２  スキャン対象ライン
１４０１  ペンタ・プリズム
１４０２  紙面基準位置
１４０３  紙面が浮いてしまった場合の位置
１４０４  紙面が浮いてしまった場合の位置
１４０５  反射角
１５０１  スキャナ・ヘッドの軌跡
１７０１  第１のステータ・スポート
１７０２  第２のステータ・スポート
１７０３  第３のステータ・スポート
【図１】
0003774550.tif 000002
【図２】
0003774550.tif 000003
【図３】
0003774550.tif 000004
【図４】
0003774550.tif 000005
【図５】
0003774550.tif 000006
【図６】
0003774550.tif 000007
【図７】
0003774550.tif 000008
【図８】
0003774550.tif 000009
【図９】
0003774550.tif 000010
【図１０】
0003774550.tif 000011
【図１１】
0003774550.tif 000012
【図１２】
0003774550.tif 000013
【図１３】
0003774550.tif 000014
【図１４】
0003774550.tif 000015
【図１５】
0003774550.tif 000016
【図１６】
0003774550.tif 000017
【図１７】
0003774550.tif 000018
【図１８】
0003774550.tif 000019
【図１９】
0003774550.tif 000020
【図２０】
0003774550.tif 000021
【図２１】
0003774550.tif 000022
【図２２】
0003774550.tif 000023
【図２３】
0003774550.tif 000024
【図２４】
0003774550.tif 000025
【図２５】
0003774550.tif 000026
【図２６】
0003774550.tif 000027
【図２７】
0003774550.tif 000028
【図２８】
0003774550.tif 000029
【図２９】
0003774550.tif 000030
【図３０】
0003774550.tif 000031
【図３１】
0003774550.tif 000032
【図３２】
0003774550.tif 000033
【図３３】
0003774550.tif 000034
【図３４】
0003774550.tif 000035
【図３５】
0003774550.tif 000036
【図３６】
0003774550.tif 000037
【図３７】
0003774550.tif 000038
【図３８】
0003774550.tif 000039
【図３９】
0003774550.tif 000040
【図４０】
0003774550.tif 000041
【図４１】
0003774550.tif 000042