(57)【特許請求の範囲】
【請求項１】
原稿に記録された画像を読み取ってスキャンデータを生成するスキャナと、
シートに画像を記録するプリンタと、
制御部とを備える画像形成装置であって、
上記プリンタは、
シートを搬送向きに搬送する搬送部と、
上記搬送部によって搬送されたシートに対面する位置において、上記搬送向きと直交する主走査方向に移動するキャリッジと、
上記キャリッジに搭載されており、インクを吐出する記録ヘッドとを有しており、
上記制御部は、
上記スキャナに上記スキャンデータを生成させるスキャン処理と、
上記スキャンデータ内において各々が上記主走査方向に延び且つ上記搬送向きに隣接する複数の画素列それぞれについて、インクを吐出すべき画素のうちの上記主走査方向の一端の一端画素位置及び他端の他端画素位置を特定する第１特定処理と、
複数の画素列を含むバンド内において上記主走査方向に隣接する複数のブロックそれぞれについて、当該ブロック内の画素値の合計である積算画素値を算出する算出処理と、
上記積算画素値が閾値以上の上記ブロックのうち、上記一端の一端ブロック及び上記他端の他端ブロックを特定する第２特定処理と、
上記一端ブロックより上記一端側の上記一端画素位置を上記一端ブロックの上記一端に更新し、上記他端ブロックより上記他端側の上記他端画素位置を上記他端ブロックの上記他端に更新する更新処理と、
上記搬送向きに隣接する複数の上記バンドを含むパスで示される画像を記録すべき領域が上記記録ヘッドに対面し得る位置まで、上記搬送部にシートを上記搬送向きへ搬送させる搬送処理と、
上記一端画素位置及び上記他端画素位置で特定される範囲で上記キャリッジを上記主走査方向へ移動させ且つ上記記録ヘッドにインクを吐出させることによって、上記パスで示される画像をシートに記録するプリント処理とを実行する画像形成装置。
【請求項２】
上記制御部は、上記パス内における上記搬送向きの下流端の上記バンドにおいて、全ての上記ブロックの上記積算画素値が上記閾値未満であることに応じて、当該バンドに対する上記第２特定処理及び上記更新処理に代えて、当該バンドに含まれる全ての上記一端画素位置及び上記他端画素位置を、インクを吐出すべき画素が存在しないことを示す値に一括して更新する一括更新処理を実行する請求項１に記載の画像形成装置。
【請求項３】
上記制御部は、
第１バンドにおける上記一端ブロックの上記主走査方向の位置を示す過去ブロック位置をメモリに記憶させ、
上記第１バンドと同一の上記パス内で且つ上記第１バンドより上記搬送向きの上流側の第２バンドに対する上記第２特定処理において、
上記積算画素値が上記閾値以上の上記ブロックが上記過去ブロック位置より上記一端側にあることに応じて、当該ブロックを上記一端ブロックと特定し、且つ当該ブロックの位置で上記過去ブロック位置を更新し、
上記積算画素値が上記閾値以上の上記ブロックが上記過去ブロック位置より上記一端側にないことに応じて、上記過去ブロック位置の上記ブロックを上記一端ブロックと特定する請求項１又は２に記載の画像形成装置。
【請求項４】
上記制御部は、上記第２バンドに対する上記更新処理において、上記第１バンドと上記第２バンドとで上記一端ブロックの位置が同一であり、且つ上記第１バンドの上記一端画素位置を上記更新処理で更新したことに応じて、上記第２バンドの全ての上記一端画素位置を、上記一端ブロックの上記一端に一括して更新する請求項３に記載の画像形成装置。
【請求項５】
上記制御部は、上記第２バンドに対する上記更新処理において、上記過去ブロック位置を上記第２特定処理で更新したことに応じて、
上記第２バンドに含まれる各画素列の上記一端画素位置を、上記搬送向きの下流側から上流側へ向かって順番に、上記一端ブロックの位置と順番に比較し、
上記一端画素位置が上記一端ブロックより上記一端側にある上記画素列を発見したことに応じて、当該画素列以降の全ての上記画素列の上記一端画素位置を、上記一端ブロックの上記一端に一括して更新する請求項４に記載の画像形成装置。
【請求項６】
上記制御部は、上記第２バンドに対する上記更新処理において、上記他端ブロックより上記他端側の上記一端画素位置を、上記他端ブロックの上記他端に更新する請求項５に記載の画像形成装置。
【請求項７】
上記制御部は、
上記スキャン処理で上記バンドの１つが生成されたことに応じて、当該バンドに対する上記第１特定処理を開始し、
上記パス内の全ての上記バンドに対する上記更新処理を実行したことに応じて、当該パスに対する上記プリント処理を開始し、
上記スキャン処理と、上記第１特定処理、上記算出処理、上記第２特定処理、及び上記更新処理と、上記プリント処理とを並行して実行する請求項１から６のいずれかに記載の画像形成装置。
【請求項８】
上記制御部は、
上記第１特定処理及び上記算出処理を実現するハードウェア回路と、
上記第２特定処理及び上記更新処理を実現するプログラムを実行するＣＰＵとを備える請求項１から７のいずれかに記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿から読み取った画像をシートに記録する画像形成装置に関する。
【背景技術】
【０００２】
従来より、コピー動作の開始を指示するスタートボタンが押下されてから、画像が記録された１枚目のシートが排出されるまでの時間であるＦＣＯＴ（Ｆｉｒｓｔ  Ｃｏｐｙ  Ｏｕｔｐｕｔ  Ｔｉｍｅの略）を短縮する取り組みがなされている。例えば、特許文献１には、画像データから孤立点を除去することによって、記録処理速度を向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−９８１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１には、孤立点を除去するための具体的な画像処理の方法が開示されていない。すなわち、特許文献１の画像記録装置において、記録処理速度を向上させるための画像処理に長い時間がかかるとすると、結局、ＦＣＯＴを短縮することができない。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、画像データ内の孤立点を効率的に除去することによって、ＦＣＯＴの増大を抑制した画像形成装置を提供することにある。
【課題を解決するための手段】
【０００６】
(1)  本発明に係る画像形成装置は、原稿に記録された画像を読み取ってスキャンデータを生成するスキャナと、シートに画像を記録するプリンタと、制御部とを備える。上記プリンタは、シートを搬送向きに搬送する搬送部と、上記搬送部によって搬送されたシートに対面する位置において、上記搬送向きと直交する主走査方向に移動するキャリッジと、上記キャリッジに搭載されており、インクを吐出する記録ヘッドとを有する。上記制御部は、上記スキャナに上記スキャンデータを生成させるスキャン処理と、上記スキャンデータ内において各々が上記主走査方向に延び且つ上記搬送向きに隣接する複数の画素列それぞれについて、インクを吐出すべき画素のうちの上記主走査方向の一端の一端画素位置及び他端の他端画素位置を特定する第１特定処理と、複数の画素列を含むバンド内において上記主走査方向に隣接する複数のブロックそれぞれについて、当該ブロック内の画素値の合計である積算画素値を算出する算出処理と、上記積算画素値が閾値以上の上記ブロックのうち、上記一端の一端ブロック及び上記他端の他端ブロックを特定する第２特定処理と、上記一端ブロックより上記一端側の上記一端画素位置を上記一端ブロックの上記一端に更新し、上記他端ブロックより上記他端側の上記他端画素位置を上記他端ブロックの上記他端に更新する更新処理と、上記搬送向きに隣接する複数の上記バンドを含むパスで示される画像を記録すべき領域が上記記録ヘッドに対面し得る位置まで、上記搬送部にシートを上記搬送向きへ搬送させる搬送処理と、上記一端画素位置及び上記他端画素位置で特定される範囲で上記キャリッジを上記主走査方向へ移動させ且つ上記記録ヘッドにインクを吐出させることによって、上記パスで示される画像をシートに記録するプリント処理とを実行する。
【０００７】
上記構成の画像処理では、一端ブロック及び他端ブロックの外側でインクが吐出される画素を孤立点として検出する。また、検出した孤立点を除去した範囲をキャリッジの移動範囲に決定するので、キャリッジの移動範囲を狭くすることができる。その結果、効率的に孤立点を除去できると共に、キャリッジの移動時間が短縮されるので、ＦＣＯＴの増大を抑制することができる。
【０００８】
(2)  好ましくは、上記制御部は、上記パス内における上記搬送向きの下流端の上記バンドにおいて、全ての上記ブロックの上記積算画素値が上記閾値未満であることに応じて、当該バンドに対する上記第２特定処理及び上記更新処理に代えて、当該バンドに含まれる全ての上記一端画素位置及び上記他端画素位置を、インクを吐出すべき画素が存在しないことを示す値に一括して更新する一括更新処理を実行する。
【０００９】
上記構成によれば、前述の条件を満たすバンドに対する第２特定処理及び更新処理がスキップされるので、さらに効率的に孤立点を除去することができる。
【００１０】
(3)  好ましくは、該画像形成装置は、第１バンドにおける上記一端ブロックの上記主走査方向の位置を示す過去ブロック位置を記憶するメモリを備える。上記制御部は、上記第１バンドと同一の上記パス内で且つ上記第１バンドより上記搬送向きの上流側の第２バンドに対する上記第２特定処理において、上記積算画素値が上記閾値以上の上記ブロックが上記過去ブロック位置より上記一端側にあることに応じて、当該ブロックを上記一端ブロックと特定し、且つ当該ブロックの位置で上記過去ブロック位置を更新し、上記積算画素値が上記閾値以上の上記ブロックが上記過去ブロック位置より上記一端側にないことに応じて、上記過去ブロック位置の上記ブロックを上記一端ブロックと特定する。
【００１１】
上記構成によれば、第２バンド内のブロックのうち、過去ブロック位置の内側のブロックに対する第２特定処理をスキップすることができるので、さらに効率的に孤立点を除去することができる。
【００１２】
(4)  好ましくは、上記制御部は、上記第２バンドに対する上記更新処理において、上記第１バンドと上記第２バンドとで上記一端ブロックの位置が同一であり、且つ上記第１バンドの上記一端画素位置を上記更新処理で更新したことに応じて、上記第２バンドの全ての上記一端画素位置を、上記一端ブロックの上記一端に一括して更新する。
【００１３】
上記構成によれば、第２バンド内の全ての一端画素位置と一端ブロックの位置とを比較する処理をスキップできるので、さらに効率的に孤立点を除去することができる。
【００１４】
(5)  好ましくは、上記制御部は、上記第２バンドに対する上記更新処理において、上記過去ブロック位置を上記第２特定処理で更新したことに応じて、上記第２バンドに含まれる各画素列の上記一端画素位置を、上記搬送向きの下流側から上流側へ向かって順番に、上記一端ブロックの位置と順番に比較し、上記一端画素位置が上記一端ブロックより上記一端側にある上記画素列を発見したことに応じて、当該画素列以降の全ての上記画素列の上記一端画素位置を、上記一端ブロックの上記一端に一括して更新する。
【００１５】
上記構成によれば、一端画素位置と一端ブロックとを比較する処理の一部をスキップできるので、さらに効率的に孤立点を除去することができる。
【００１６】
(6)  例えば、上記制御部は、上記第２バンドに対する上記更新処理において、上記他端ブロックより上記他端側の上記一端画素位置を、上記他端ブロックの上記他端に更新する。
【００１７】
(7)  好ましくは、上記制御部は、上記スキャン処理で上記バンドの１つが生成されたことに応じて、当該バンドに対する上記第１特定処理を開始し、上記パス内の全ての上記バンドに対する上記更新処理を実行したことに応じて、当該パスに対する上記プリント処理を開始し、上記スキャン処理と、上記第１特定処理、上記算出処理、上記第２特定処理、及び上記更新処理と、上記プリント処理とを並行して実行する。
【００１８】
上記構成によれば、スキャナの処理と、プリンタの処理と、画像処理とが並行して実行されるので、ＦＣＯＴをさらに短縮することができる。
【００１９】
(8)  好ましくは、上記制御部は、上記第１特定処理及び上記算出処理を実現するハードウェア回路と、上記第２特定処理及び上記更新処理を実現するプログラムを実行するＣＰＵとを備える。
【００２０】
上記構成のように、処理量は多いが単純な処理をハードウェアで実現し、多くの判断を含む処理をソフトウェアで実現するのが望ましい。
【発明の効果】
【００２１】
本発明によれば、効率的に孤立点を除去できると共に、キャリッジの移動時間が短縮されるので、ＦＣＯＴの増大を抑制することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本実施形態に係る複合機１０の外観斜視図である。
【図２】図２は、プリンタ１１の内部構造を模式的に示す縦断面図である。
【図３】図３は、キャリッジ２３及びガイドレール４３、４４の平面図である。
【図４】図４は、プリンタ１１のブロック図である。
【図５】図５は、コピー処理のフローチャートである。
【図６】図６（Ａ）はＨＷ画像処理のフローチャートであり、図６（Ｂ）はＳＷ画像処理のフローチャートであり、図６（Ｃ）は孤立点除去処理のフローチャートである。
【図７】図７（Ａ）は左Ｂｋ特定処理のフローチャートであり、図７（Ｂ）は右Ｂｋ特定処理のフローチャートである。
【図８】図８は、左ドット更新処理のフローチャートである。
【図９】図９は、右ドット更新処理のフローチャートである。
【図１０】図１０は、スキャンデータに含まれるパス、バンド、ライン、ブロックの関係を示す図である。
【図１１】図１１は、積算画素値が閾値以上のブロックと、ステップＳ２３で特定した左ドット位置及び右ドット位置と、ステップＳ４４、Ｓ４５で更新した左ドット位置及び右ドット位置との関係を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、以下の説明では、矢印の起点から終点に向かう進みが「向き」と表現され、矢印の起点と終点とを結ぶ線上の往来が「方向」と表現される。さらに、複合機１０が使用可能に設置された状態（図１の状態）を基準として上下方向７が定義され、開口１３が設けられている側を手前側（正面）として前後方向８が定義され、複合機１０を手前側（正面）から見て左右方向９が定義される。
【００２４】
［複合機１０の全体構成］
複合機１０は、図１に示されるように、プリンタ１１と、スキャナ９０とを備えている。より詳細には、プリンタ１１及びスキャナ９０が上下方向７に積層されることによって、複合機１０が構成されている。複合機１０は、画像形成装置の一例である。
【００２５】
［プリンタ１１］
プリンタ１１は、インクを吐出することによって、画像データで示される画像をシート１２（図２参照）に記録するプリント動作を実行する。すなわち、本実施形態に係るプリンタ１１は、所謂インクジェット記録方式を採用している。プリンタ１１は、図２に示されるように、給送部１５と、給送トレイ２０と、排出トレイ２１と、搬送ローラ部５４と、記録部２４と、排出ローラ部５５と、プラテン４２とを備えている。搬送ローラ部５４及び排出ローラ部５５は、搬送部の一例である。
【００２６】
［給送トレイ２０、排出トレイ２１］
プリンタ１１の正面には、開口１３（図１参照）が形成されている。給送トレイ２０は、開口１３を通じて前後方向８に挿抜される。給送トレイ２０は、積層された複数のシート１２を支持する。排出トレイ２１は、開口１３を通じて排出ローラ部５５によって排出されたシート１２を支持する。
【００２７】
［給送部１５］
給送部１５は、図２に示されるように、給送ローラ２５と、給送アーム２６と、軸２７とを備えている。給送ローラ２５は、給送アーム２６の先端部に回転可能に支持されている。給送ローラ２５は、給送モータ１０１（図４参照）の正転によって、シート１２を搬送向き１６に搬送する向きに回転（以下、「正回転」と表記する。）する。給送アーム２６は、プリンタ１１のフレームに支持された軸２７に回動可能に支持されている。給送アーム２６は、自重或いはバネ等による弾性力によって、給送トレイ２０へ向けて回動付勢されている。
【００２８】
［搬送路６５］
搬送路６５は、ガイド部材１８、１９及びガイド部材３０、３１によって形成される空間を指す。ガイド部材１８、１９及びガイド部材３０、３１は、プリンタ１１の内部において所定間隔で対向する。搬送路６５は、給送トレイ２０の後端部からプリンタ１１の後方側に延びる経路である。また、搬送路６５は、プリンタ１１の後方側において下方から上方に延びつつＵターンし、記録部２４を経て排出トレイ２１に至る経路である。なお、搬送路６５内におけるシート１２の搬送向き１６は、図２において一点鎖線の矢印で示されている。
【００２９】
［搬送ローラ部５４］
搬送ローラ部５４は、記録部２４より搬送向き１６の上流側に配置されている。搬送ローラ部５４は、互いに対向する搬送ローラ６０及びピンチローラ６１を備える。搬送ローラ６０は、搬送モータ１０２（図４参照）によって駆動される。ピンチローラ６１は、搬送ローラ６０の回転に伴って連れ回る。シート１２は、搬送モータ１０２の正転によって正回転する搬送ローラ６０及びピンチローラ６１に挟持されて、搬送向き１６に沿って搬送される。また、搬送ローラ６０は、搬送モータ１０２の逆転によって、正回転と逆向きの逆回転する。
【００３０】
［排出ローラ部５５］
排出ローラ部５５は、記録部２４より搬送向き１６の下流側に配置されている。排出ローラ部５５は、互いに対向する排出ローラ６２及び拍車６３を備える。排出ローラ６２は、搬送モータ１０２によって駆動される。拍車６３は、排出ローラ６２の回転に伴って連れ回る。シート１２は、搬送モータ１０２の正転によって正回転する排出ローラ６２及び拍車６３に挟持されて、搬送向き１６に沿って搬送される。
【００３１】
［レジストセンサ１２０］
プリンタ１１は、図２に示されるように、レジストセンサ１２０を備える。レジストセンサ１２０は、搬送ローラ部５４より搬送向き１６の上流側に設置されている。レジストセンサ１２０は、設置位置にシート１２が存在するか否かに応じて、異なる検出信号を出力する。レジストセンサ１２０は、シート１２が設置位置に存在していることに応じて、ハイレベル信号を後述する制御部１３０（図４参照）に出力する。一方、レジストセンサ１２０は、シート１２が設置位置に存在していないことに応じて、ローレベル信号を制御部１３０に出力する。
【００３２】
より詳細には、レジストセンサ１２０は、搬送路６５に対して出没する検出子と、光を出力する発光部と、発光部から出力された光を受光する受光部とを備える。検出子は、レジストセンサ１２０の設置位置にシート１２が存在していない時に、搬送路６５に突出されると共に、発光部と受光部との間の光路を遮断する。そして、レジストセンサ１２０は、発光部から出力された光が受光部で受光されないことに応じて、ローレベル信号を出力する。一方、検出子は、レジストセンサ１２０の設置位置に搬送されたシート１２に当接されることによって、内側ガイド部材１９に没入すると共に、発光部と受光部との間の光路から外れる。そして、レジストセンサ１２０は、発光部から出力された光が受光部で受光されたことに応じて、ハイレベル信号を出力する。
【００３３】
［ロータリエンコーダ１２１］
プリンタ１１は、図４に示されるように、搬送ローラ６０の回転（換言すれば、搬送モータ１０２の回転駆動）に応じてパルス信号を発生させるロータリエンコーダ１２１を備える。ロータリエンコーダ１２１は、エンコーダディスクと、光学センサとを備える。エンコーダディスクは、搬送ローラ６０の回転と共に回転する。光学センサは、回転するエンコーダディスクを読み取ってパルス信号を生成し、生成したパルス信号を制御部１３０に出力する。
【００３４】
［記録部２４］
記録部２４は、図２に示されるように、搬送向き１６における搬送ローラ部５４及び排出ローラ部５５の間に配置されている。また、記録部２４は、上下方向７においてプラテン４２と対向して配置されている。記録部２４は、キャリッジ２３と、記録ヘッド３９と、エンコーダセンサ３８Ａとを備えている。また、キャリッジ２３には、図３に示されるように、インクチューブ３２及びフレキシブルフラットケーブル３３が接続されている。インクチューブ３２は、インクカートリッジのインクを記録ヘッド３９に供給する。フレキシブルフラットケーブル３３は、制御部１３０が実装された制御基板と記録ヘッド３９とを電気的に接続する。
【００３５】
キャリッジ２３は、図３に示されるように、前後方向８に離間する位置において各々が左右方向９に延設されたガイドレール４３、４４に支持されている。キャリッジ２３は、ガイドレール４４に配置された公知のベルト機構に連結されている。ベルト機構は、キャリッジモータ１０３（図４参照）によって駆動される。すなわち、キャリッジ２３は、キャリッジモータ１０３の駆動により周運動するベルト機構に接続されて、左右方向９に沿う主走査方向へ往復移動することができる。以下、主走査方向の右向きを「ＦＷＤ向き」と表記し、主走査方向の左向きを「ＲＶＳ向き」と表記する。
【００３６】
記録ヘッド３９は、図２に示されるように、キャリッジ２３に搭載されている。記録ヘッド３９の下面には、複数のノズル４０が形成されている。記録ヘッド３９は、ノズル４０からインクを吐出する。キャリッジ２３が主走査方向に移動する過程において、プラテン４２に支持されているシート１２に対して記録ヘッド３９がインク滴を吐出する。これにより、シート１２に画像が記録される。
【００３７】
また、ガイドレール４４には、左右方向９に延びる帯状のエンコーダストリップ３８Ｂが配置されている。エンコーダセンサ３８Ａは、エンコーダストリップ３８Ｂに対面する位置において、キャリッジ２３の下面に搭載されている。キャリッジ２３が移動する過程において、エンコーダセンサ３８Ａは、エンコーダストリップ３８Ｂを読み取ってパルス信号を生成し、生成したパルス信号を制御部１３０に出力する。エンコーダセンサ３８Ａ及びエンコーダストリップ３８Ｂは、キャリッジセンサ３８（図４参照）を構成する。
【００３８】
［プラテン４２］
プラテン４２は、図２に示されるように、搬送向き１６における搬送ローラ部５４及び排出ローラ部５５の間に配置されている。プラテン４２は、上下方向７において記録部２４に対向して配置されている。プラテン４２は、搬送ローラ部５４及び排出ローラ部５５の少なくとも一方によって搬送されるシート１２を下側から支持する。
【００３９】
［駆動力伝達機構８０］
プリンタ１１は、図４に示されるように、駆動力伝達機構８０をさらに備える。駆動力伝達機構８０は、給送モータ１０１及び搬送モータ１０２の駆動力を、給送ローラ２５、搬送ローラ６０、及び排出ローラ６２等に伝達する。駆動力伝達機構８０は、歯車、プーリ、無端環状のベルト、遊星歯車機構（振子ギヤ機構）、及びワンウェイクラッチ等の全部又は一部を組み合わせて構成される。
【００４０】
［スキャナ９０］
スキャナ９０は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行する。スキャナ９０は、図１及び図４に示されるように、原稿を支持するコンタクトガラス９１と、コンタクトガラス９１に支持された原稿に記録された画像を読み取る読取センサ９２と、開閉可能なＦＢカバー９３とを備える。すなわち、スキャナ９０は、所謂フラットベッド方式を採用している。但し、所謂ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒの略）がＦＢカバー９３の上面にさらに配置されていてもよい。
【００４１】
コンタクトガラス９１は、その上面で原稿を支持する。またコンタクトガラス９１は、透光性を有する材料で形成されている。コンタクトガラス９１は、図１に示されるように、ＦＢカバー９３が開けられることによって、スキャナ９０の外部に露出される。一方、コンタクトガラス９１は、ＦＢカバー９３が閉じられることによって、ＦＢカバー９３によって覆われる。
【００４２】
読取センサ９２は、コンタクトガラス９１の下方において、コンタクトガラス９１に対面する位置に配置されている。読取センサ９２は、スキャナモータ１０４（図４参照）によって、待機位置（図１の左端）及び折返位置（図１の右端）の間を、左右方向９に移動可能に構成されている。また、読取センサ９２は、前後方向８に延設されたＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒの略）を有する。
【００４３】
読取センサ９２は、待機位置から折返し位置へ移動される過程において、コンタクトガラス９１の上面に支持された原稿に記録された画像を、ＣＩＳに読み取らせる。また、ＣＩＳによる画像の読み取りが完了した読取センサ９２は、スキャナモータ１０４によって折返位置から待機位置へ再び移動される。但し、読取センサ９２は、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅの略）と、光源と、ミラーとを、ＣＩＳに代えて備えてもよい。
【００４４】
［制御部１３０］
制御部１３０は、図４に示されるように、ＣＰＵ１３１と、ＲＯＭ１３２と、ＲＡＭ１３３と、ＥＥＰＲＯＭ１３４と、ＡＳＩＣ１３５とを備える。制御部１３０を構成する各構成要素は、内部バス１３７によって接続されている。ＲＯＭ１３２には、ＣＰＵ１３１が各種動作を制御するためのプログラムなどが格納されている。ＲＡＭ１３３は、ＣＰＵ１３１が上記プログラムを実行する際に用いるデータや信号等を一時的に記録する記憶領域、或いはデータ処理の作業領域として使用される。ＥＥＰＲＯＭ１３４には、電源オフ後も保持すべき設定情報が格納される。
【００４５】
ＡＳＩＣ１３５には、給送モータ１０１、搬送モータ１０２、キャリッジモータ１０３及びスキャナモータ１０４が接続されている。ＡＳＩＣ１３５は、各モータを回転させるための駆動信号を生成し、この駆動信号を基に各モータを制御する。各モータは、ＡＳＩＣ１３５からの駆動信号によって正転又は逆転する。また、制御部１３０は、記録ヘッド３９を制御してノズル４０からインクを吐出させる。
【００４６】
また、ＡＳＩＣ１３５には、操作パネル１７が接続されている。操作パネル１７は、ユーザによる操作に応じた操作信号を制御部１３０に出力する。操作パネル１７は、例えば、押ボタンを有していてもよいし、ディスプレイに重畳されたタッチセンサを有していてもよい。制御部１３０は、操作パネル１７から出力される操作信号に基づいて、各モータ１０１〜１０４及び記録ヘッド３９を制御する。
【００４７】
さらに、ＡＳＩＣ１３５には、レジストセンサ１２０、ロータリエンコーダ１２１、及びキャリッジセンサ３８が接続されている。制御部１３０は、レジストセンサ１２０から出力される検出信号と、ロータリエンコーダ１２１から出力されるパルス信号とに基づいて、シート１２の位置を検知することができる。また、制御部１３０は、キャリッジセンサ３８から出力されるパルス信号に基づいて、キャリッジ２３の位置を検知することができる。
【００４８】
［コピー処理］
図５〜図１１を参照して、コピー処理を説明する。コピー処理は、スキャナ９０が原稿を読み取ってスキャンデータを生成し、当該スキャンデータで示される画像をプリンタ１１がシート１２に記録する処理である。以下の各処理は、ＲＯＭ１３２に記憶されているプログラムをＣＰＵ１３１が読み出して実行してもよいし、制御部１３０に搭載されたハードウェア回路によって実現されてもよい。また、各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００４９】
制御部１３０は、例えば、コピー処理の開始を指示するユーザ操作を操作パネル１７を通じて受け付けたことに応じて、コピー処理を開始する。まず、制御部１３０は、スキャナ９０にスキャン動作を指示する（Ｓ１１）。ステップＳ１１の処理は、スキャン処理の一例である。
【００５０】
スキャナ９０は、スキャナモータ１０４によって読取センサ９２を待機位置から折返し位置へ移動させる。また、スキャナ９０は、その過程でコンタクトガラス９１に支持された原稿に記録された画像を、読取センサ９２に読み取らせる。さらに、スキャナ９０は、読取センサ９２に読み取らせた画像を示すスキャンデータを、読取センサ９２を移動させながら徐々に生成する。
【００５１】
スキャナ９０は、例えば図１０に示されるように、ライン毎にスキャンデータを生成する。ラインは、ＣＩＳが同時に読み取った複数の画素が一列に配列された画素列である。そして、読取センサ９２が移動する過程で順番に生成される複数のラインによってスキャンデータが構成される。すなわち、ステップＳ１１において、ラインを構成する複数の画素の配列方向はＣＩＳの延設方向に対応し、複数のラインの配列方向は読取センサ９２の移動方向に対応する。
【００５２】
また、図１０に示されるスキャンデータにおいて、読取センサ９２の読取方向に隣接する複数（本実施形態では、２０）のラインを「バンド」と表記し、読取センサ９２の読取方向に隣接する複数（本実施形態では、５）のバンドを「パス」と表記する。さらに、バンド内においてＣＩＳの延設方向に隣接する複数（本実施形態では、１０）の領域を「ブロック」と表記する。なお、バンドに含まれるラインの数、パスに含まれるバンドの数、及びバンドに含まれるブロックの数は、前述の例に限定されない。
【００５３】
さらに、スキャンデータで示される画像をシート１２に記録する場合において（Ｓ１８）、ラインの延設方向は主走査方向に対応し、複数のラインの配列方向は搬送向き１６に対応する。すなわち、ステップＳ１８において、ラインは主走査方向に配列された複数の画素を含み、バンドは搬送向き１６に隣接する複数のラインを含み、バンドは主走査方向に隣接する複数のブロックを含み、パスは搬送向き１６に隣接する複数のバンドを含む。
【００５４】
また、以下の説明では、スキャンデータ内の位置を表す用語として、搬送向き１６の下流を「上」、搬送向き１６の上流を「下」、ＦＷＤ向きを「右」、ＲＶＳ向きを「左」と表記する。さらに、スキャンデータに含まれる複数のパスを上から順に「パス１」、「パス２」、・・・と表記し、パスに含まれる複数のバンドを上から順に「バンド１」、「バンド２」、・・・、「バンド５」と表記し、バンドに含まれる複数のラインを上から順に「ライン１」、「ライン２」、・・・、「ライン２０」と表記し、バンドに含まれる複数のブロックを左から順に「ブロック１」、「ブロック２」、・・・、「ブロック１０」と表記する。
【００５５】
次に、制御部１３０は、スキャナ９０がスキャン動作を実行するのと並行して、ステップＳ１２〜Ｓ１８の処理を実行する。ステップＳ１２〜Ｓ１８は、スキャンデータに含まれる各パスに対して実行される処理である。また、ステップＳ１３〜Ｓ１６は、パスに含まれる各バンドに対して実行される処理である。まず、制御部１３０は、コピー処理で用いる各種変数を初期化する（Ｓ１２）。より詳細には、制御部１３０は、上端フラグ＝“ＯＮ”、バンド数Ｎ＝０、左Ｂｋ位置＝１０、右Ｂｋ位置＝１、左ドット更新フラグ＝“ＯＦＦ”、右ドット更新フラグ＝“ＯＦＦ”を設定する。
【００５６】
上端フラグには、ステップＳ１３〜Ｓ１６において、パスに含まれる複数のバンドのうち、搬送向き１６の下流端（すなわち、「上端」）に位置するバンドが処理対象であることを示す“ＯＮ”、或いは上端のバンドと異なるバンドが処理対象であることを示す“ＯＦＦ”が設定される。バンド数Ｎは、ステップＳ１３〜Ｓ１６の処理が実行されたバンドの数を示す。
【００５７】
左Ｂｋ位置は、パスに含まれる有効なブロックのうちの左端のブロックの位置を示す。右Ｂｋ位置は、パスに含まれる有効なブロックのうちの右端のブロックの位置を示す。有効なブロックとは、有効な画像（換言すれば、インクを吐出すべき画素）を含むブロックを指す。有効な画像とは、シート１２に記録すべき画像であって、コンタクトガラス９１に載置された原稿に記録された画像を指す。一方、原稿或いはコンタクトガラス９１に付着したゴミを示す画像、及びスキャンデータ生成時のノイズを示す画像等は、有効な画像ではない。左Ｂｋ位置及び右Ｂｋ位置は、過去ブロック位置の一例である。また、主走査方向の左端は一端の一例であり、主走査方向の右端は他端の一例である。
【００５８】
左ドット更新フラグには、後述するステップＳ２３で特定した左ドット位置を、後述するステップＳ７９で更新したことを示す“ＯＮ”或いは更新していないことを示す“ＯＦＦ”が設定される。右ドット更新フラグは、ステップＳ２３で特定した右ドット位置を、後述するステップＳ９９で更新したことを示す“ＯＮ”或いは更新していないことを示す“ＯＦＦ”が設定される。左ドット位置は、ステップＳ１７でシート１２に記録すべき画像の左端の画素の位置を示す。右ドット位置は、ステップＳ１７でシート１２に記録すべき画像の右端の画素の位置を示す。
【００５９】
次に、制御部１３０は、１バンドに相当するスキャンデータがスキャナ９０によって生成されるまで、以降の処理の実行を待機する（Ｓ１３）。そして、制御部１３０は、１バンドに相当するスキャンデータが生成されたことに応じて（Ｓ１３：Ｙｅｓ）、図６（Ａ）に示されるＨＷ画像処理をＡＳＩＣ１３５に実行させる（Ｓ１４）。なお、ＨＷ画像処理は、ＡＳＩＣ１３５と異なる不図示のハードウェア回路によって実行されてもよい。また、ＨＷ画像処理は、周知のプリンタ１１に既に実行されている一般的な処理なので、詳細な説明は省略する。
【００６０】
［ＨＷ画像処理］
まず、制御部１３０は、処理対象のバンドに含まれる各画素の画素値を、ＲＧＢ形式からＣＭＹＫ形式に変換する（Ｓ２１）。ＲＧＢ形式は、赤色、緑色、及び青色の組み合わせで画素値を表現する形式である。一方、ＣＭＹＫ形式は、プリンタ１１がノズル４０から吐出するインクの色（本実施形態では、シアン、マゼンタ、イエロー、ブラック）の組み合わせで画素値を表現する形式である。
【００６１】
次に、制御部１３０は、ＣＭＹＫ形式に変換されたバンドに対して、ハーフトーン処理を実行する（Ｓ２２）。ハーフトーン処理は、ＣＭＹＫ形式に変換されたバンドを、画素値の大小によって画像の濃淡を表現する形式から、白画素及び黒画素の比率によって画像の濃淡を表現する形式に変換する処理である。ハーフトーン処理は、例えば、周知の誤差拡散法等によって実現される。
【００６２】
次に、制御部１３０は、ハーフトーン処理が実行されたバンドに含まれる複数のラインそれぞれについて、左ドット位置及び右ドット位置を特定する（Ｓ２３）。より詳細には、制御部１３０は、ラインを構成する画素を左から順にチェックし、最初に発見した非白色画素の位置を左ドット位置として特定する。同様に、制御部１３０は、ラインを構成する画素を右から順にチェックし、最初に発見した非白色画素の位置を右ドット位置として特定する。ステップＳ２３の処理は、第１特定処理の一例である。
【００６３】
図１１の例において、ステップＳ２３で特定した左ドット位置を“●”で示し、ステップＳ２３で特定した右ドット位置を“◆”で示す。一方、後述する左ドット更新処理で更新した左ドット位置を“○”で示し、後述する右ドット更新処理で更新した右ドット位置を“◇”で示す。また、以下の説明において、ラインＬの左ドット位置を「左ドット位置（Ｌ）」と表記し、ラインＬの右ドット位置を「右ドット位置（Ｌ）」と表記する。
【００６４】
次に、制御部１３０は、ハーフトーン処理が実行されたバンドに含まれる複数のブロックそれぞれについて、ブロック内の画素値の合計である積算画素値を算出する（Ｓ２４）。図１１の例において、積算画素値が後述する閾値未満のブロックを白色で表現し、積算画素値が閾値以上のブロックをグレーで表現している。ステップＳ２４の処理は、算出処理の一例である。なお、算出処理は、ハーフトーン処理が実行される前のバンドに対して実行されてもよい。以下の説明において、ブロックＭの積算画素値を「積算値（Ｍ）」と表記する。そして、制御部１３０は、ＨＷ画像処理を終了する。
【００６５】
次に、制御部１３０は、ＨＷ画像処理が終了したことに応じて、図６（Ｂ）に示されるＳＷ画像処理を実行する（Ｓ１５）。ＳＷ画像処理は、例えば、ＲＯＭ１３２に記憶されたプログラムをＣＰＵ１３１が実行することによって実現される。
【００６６】
［ＳＷ画像処理］
まず、制御部１３０は、上端フラグに設定されている値を判断する（Ｓ３１）。そして、制御部１３０は、上端フラグに“ＯＮ”が設定されていると判断したことに応じて（Ｓ３１：ＯＮ）、最大積算値と閾値とを比較する（Ｓ３２）。最大積算値は、ステップＳ２４で算出した各ブロックの積算画素値の最大値を指す。閾値は、例えば、ブロックに有効な画像が含まれているか否かを判断するために、複合機１０のメーカによって予め設定された値である。閾値は、ステップＳ３２、Ｓ５３、Ｓ６３で共通の値が用いられてもよいし、異なる値が用いられてもよい。
【００６７】
次に、制御部１３０は、最大積算値が閾値未満と判断したことに応じて（Ｓ３２：Ｎｏ）、処理対象のバンドに含まれる全て左ドット位置（１）〜（２０）及び全ての右ドット位置（１）〜（２０）を、一括して“０”に更新する（Ｓ３３）。ステップＳ３３でドット位置に設定される“０”は、インクを吐出すべき画素が存在しないことを示す値の一例である。ステップＳ３３の処理は、一括更新処理の一例である。そして、制御部１３０は、当該バンドに対するステップＳ３５、Ｓ３６の処理を実行することなく、ＳＷ画像処理を終了する。
【００６８】
また、制御部１３０は、最大積算値が閾値以上と判断したことに応じて（Ｓ３２：Ｙｅｓ）、上端フラグに“ＯＦＦ”を設定する（Ｓ３４）。次に、制御部１３０は、図６（Ｃ）に示される孤立点除去処理を実行する（Ｓ３５）。そして、制御部１３０は、バンド数Ｎを１インクリメントして（Ｓ３６）、ＳＷ画像処理を終了する。さらに、制御部１３０は、上端フラグに“ＯＦＦ”が設定されていると判断したことに応じて（Ｓ３１：ＯＦＦ）、ステップＳ３２、Ｓ３４をスキップして、ステップＳ３５以降の処理を実行する。
【００６９】
すなわち、制御部１３０は、図１１に示されるバンド１に対するＳＷ画像処理において、上端フラグ“ＯＮ”で且つ最大積算値が閾値未満と判断して（Ｓ３１：ＯＮ＆Ｓ３２：Ｎｏ）、ステップＳ３３の処理を実行する。すなわち、制御部１３０は、図１１のバンド１に有効な画像が含まれていないと判断する。そのため、プリンタ１１は、後述するステップＳ１７において、バンド１に対応するシート１２の領域に対して、インクを吐出する必要がない。そこで、制御部１３０は、バンド数Ｎをインクリメントしないことによって、バンド１をパスから除外する。すなわち、バンド２をパス１の上端のバンドとして、後続の処理が継続される。
【００７０】
また、制御部１３０は、図１１に示されるバンド２に対するＳＷ画像処理において、上端フラグ“ＯＮ”で且つ最大積算値が閾値以上と判断して（Ｓ３１：ＯＮ＆Ｓ３２：Ｙｅｓ）、ステップＳ３４以降の処理を実行する。さらに、制御部１３０は、図１１に示されるバンド３〜５に対するＳＷ画像処理において、上端フラグ“ＯＦＦ”と判断して（Ｓ３１：ＯＦＦ）、ステップＳ３５以降の処理を実行する。
【００７１】
［孤立点除去処理］
孤立点除去処理は、スキャンデータに含まれる画像から、原稿或いはコンタクトガラス９１に付着したゴミを示す画像、及びスキャンデータ生成時のノイズを示す画像等を除去する処理である。これらの画像は、スキャンデータの外縁部において有効な画像から孤立し、且つ１つ１つは極めて小さな画像であることが一般的なので、「孤立点」と表記することがある。
【００７２】
まず、制御部１３０は、孤立点除去処理で用いる各種変数を初期化する（Ｓ４１）。より詳細には、制御部１３０は、左Ｂｋ更新フラグ＝“ＯＦＦ”、右Ｂｋ更新フラグ＝“ＯＦＦ”を設定する。左Ｂｋ更新フラグには、後述する左Ｂｋ特定処理（Ｓ４２）において、左Ｂｋ位置を更新していないことを示す“ＯＦＦ”、或いは左Ｂｋ位置を更新したことを示す“ＯＮ”が設定される。右Ｂｋ更新フラグには、後述する右Ｂｋ特定処理（Ｓ４３）において、右Ｂｋ位置を更新していないことを示す“ＯＦＦ”、或いは右Ｂｋ位置を更新したことを示す“ＯＮ”が設定される。
【００７３】
次に、制御部１３０は、図７（Ａ）に示される左Ｂｋ特定処理（Ｓ４２）と、図７（Ｂ）に示される右Ｂｋ特定処理（Ｓ４３）とを実行する。左Ｂｋ特定処理は、処理対象のバンド内において、積算画素値が閾値以上のブロックのうちの左端に位置する左端ブロック（一端ブロックの一例）を特定する処理である。右Ｂｋ特定処理は、処理対象のバンド内において、積算画素値が閾値以上のブロックのうちの右端に位置する右端ブロック（他端ブロックの一例）を特定する処理である。左Ｂｋ特定処理及び右Ｂｋ特定処理は、第２特定処理の一例である。なお、左Ｂｋ特定処理及び右Ｂｋ特定処理は対称な処理なので、左Ｂｋ特定処理を中心に説明する。
【００７４】
［左Ｂｋ特定処理］
まず、制御部１３０は、処理対象のブロックを示す変数Ｍに初期値“１”を代入する（Ｓ５１）。次に、制御部１３０は、変数Ｍと左Ｂｋ位置とを比較する（Ｓ５２）。次に、制御部１３０は、変数Ｍが左Ｂｋ位置未満であることに応じて（Ｓ５２：Ｎｏ）、積算値（Ｍ）と閾値とを比較する（Ｓ５３）。
【００７５】
そして、制御部１３０は、積算値（Ｍ）が閾値未満であると判断したことに応じて（Ｓ５３：Ｙｅｓ）、変数Ｍを１インクリメントして（Ｓ５４）、ステップＳ５２以降の処理を再び実行する。また、制御部１３０は、積算値（Ｍ）が閾値以上であると判断したことに応じて（Ｓ５３：Ｎｏ）、左Ｂｋ位置を変数Ｍで更新する（Ｓ５５）。そして、制御部１３０は、左Ｂｋ更新フラグに“ＯＮ”を設定し且つ左ドット更新フラグに“ＯＦＦ”を設定して（Ｓ５６＆Ｓ５７）、左Ｂｋ特定処理を終了する。一方、制御部１３０は、変数Ｍが左Ｂｋ位置に達したと判断したことに応じて（Ｓ５２：Ｙｅｓ）、ステップＳ５３〜Ｓ５７の処理をスキップして、左Ｂｋ特定処理を終了する。
【００７６】
すなわち、制御部１３０は、処理対象のバンドに含まれるブロックの積算画素値を左から順にチェックする。そして、制御部１３０は、積算画素値が閾値以上のブロックが左Ｂｋ位置より左方にあることに応じて（Ｓ５２：Ｎｏ＆Ｓ５３：Ｎｏ）、当該ブロックを左端ブロックと特定して、左Ｂｋ位置を更新する（Ｓ５５〜Ｓ５７）。また、制御部１３０は、積算画素値が閾値以上のブロックが左Ｂｋ位置より左方にないことに応じて（Ｓ５２：Ｙｅｓ）、左Ｂｋ位置のブロックを左端ブロックと特定する。
【００７７】
より詳細には、制御部１３０は、図１１に示されるバンド２に対する左Ｂｋ特定処理において、ブロック５を左端ブロックと特定し、左Ｂｋ位置を“１０”から“５”に更新する。また、制御部１３０は、図１１に示されるバンド３に対する左Ｂｋ特定処理において、ブロック３を左端ブロックと特定し、左Ｂｋ位置を“５”から“３”に更新する。また、制御部１３０は、図１１に示されるバンド４に対する左Ｂｋ特定処理において、左Ｂｋ位置のブロック３を左端ブロックと特定する。さらに、制御部１３０は、図１１に示されるバンド５に対する左Ｂｋ特定処理において、ブロック２を左端ブロックと特定し、左Ｂｋ位置を“３”から“２”に更新する。
【００７８】
同様に、制御部１３０は、右Ｂｋ特定処理において、処理対象のバンドに含まれるブロックの積算画素値を右から順にチェックする。そして、制御部１３０は、積算画素値が閾値以上のブロックが右Ｂｋ位置より右方にあることに応じて（Ｓ６２：Ｎｏ＆Ｓ６３：Ｎｏ）、当該ブロックを右端ブロックと特定して、右Ｂｋ位置を更新する（Ｓ６５〜Ｓ６７）。また、制御部１３０は、積算画素値が閾値以上のブロックが右Ｂｋ位置より右方にないことに応じて（Ｓ６２：Ｙｅｓ）、右Ｂｋ位置のブロックを右端ブロックと特定する。
【００７９】
より詳細には、制御部１３０は、図１１に示されるバンド２に対する右Ｂｋ特定処理において、ブロック６を右端ブロックと特定し、右Ｂｋ位置を“１”から“６”に更新する。また、制御部１３０は、図１１に示されるバンド３に対する右Ｂｋ特定処理において、右Ｂｋ位置のブロック６を右端ブロックと特定する。また、制御部１３０は、図１１に示されるバンド４に対する右Ｂｋ特定処理において、ブロック７を右端ブロックと特定し、右Ｂｋ位置を“６”から“７”に更新する。さらに、制御部１３０は、図１１に示されるバンド５に対する右Ｂｋ特定処理において、右Ｂｋ位置のブロック７を右端ブロックと特定する。
【００８０】
次に、制御部１３０は、図８に示される左ドット更新処理（Ｓ４４）と、図９に示される右ドット更新処理（Ｓ４５）とを実行する。左ドット更新処理は、ステップＳ２３で特定した左ドット位置が孤立点を示す場合に、当該左ドット位置を有効な画像の左端に更新する処理である。右ドット更新処理は、ステップＳ２３で特定した右ドット位置が孤立点を示す場合に、当該右ドット位置を有効な画像の右端に更新する処理である。左ドット更新処理及び右ドット更新処理は、更新処理の一例である。なお、左ドット更新処理及び右ドット更新処理は対称な処理なので、左ドット更新処理を中心に説明する。
【００８１】
［左ドット更新処理］
まず、制御部１３０は、左Ｂｋ位置≠１或いは右Ｂｋ位置≠１０か否かを判断する（Ｓ７１）。そして、制御部１３０は、左Ｂｋ位置＝１且つ右Ｂｋ位置＝１０であると判断したことに応じて（Ｓ７１：Ｎｏ）、ステップＳ７２〜Ｓ８３の処理をスキップして、左ドット更新処理を終了する。左Ｂｋ位置＝１且つ右Ｂｋ位置＝１０の場合とは、処理対象のバンドにおいて、両端のブロック１、１０に有効な画像が含まれる場合である。すなわち、このような場合には、左ドット位置を更新する必要がない。一方、左Ｂｋ位置≠１の場合とは、左端ブロックより左方の孤立点を、後述するステップＳ７４、Ｓ７９で除去できる可能性がある場合である。また、右Ｂｋ位置≠１０の場合とは、右端ブロックより右方の孤立点を、後述するステップＳ８２で除去できる可能性がある場合である。
【００８２】
そして、制御部１３０は、左Ｂｋ位置≠１或いは右Ｂｋ位置≠１０であると判断したことに応じて（Ｓ７１：Ｙｅｓ）、左Ｂｋ更新フラグの設定値を判断する（Ｓ７２）。また、制御部１３０は、左Ｂｋ更新フラグに“ＯＦＦ”が設定されていると判断したことに応じて（Ｓ７２：Ｙｅｓ）、左ドット更新フラグの設定値を判断する（Ｓ７３）。そして、制御部１３０は、左ドット更新フラグに“ＯＮ”が設定されていると判断したことに応じて（Ｓ７３：Ｙｅｓ）、図１１のバンド４のように、処理対象のバンド内の全ての左ドット位置（１）〜（２０）を、左端ブロック３の左端位置に一括更新して（Ｓ７４）、左ドット更新処理を終了する。
【００８３】
一方、制御部１３０は、左Ｂｋ更新フラグに“ＯＮ”が設定されていると判断したことに応じて（Ｓ７２：Ｎｏ）、或いは左ドット更新フラグに“ＯＦＦ”が設定されていると判断したことに応じて（Ｓ７３：Ｎｏ）、処理対象のラインを示す変数Ｌに初期値“０”を代入し（Ｓ７５）、さらに変数Ｌを１インクリメントする（Ｓ７６）。また、制御部１３０は、左ドット位置（Ｌ）≠０か否かを判断する（Ｓ７７）。さらに、制御部１３０は、左ドット位置（Ｌ）≠０であると判断したことに応じて（Ｓ７７：Ｙｅｓ）、左ドット位置（Ｌ）と左端ブロックの左端位置とを比較する（Ｓ７８）。
【００８４】
そして、制御部１３０は、左ドット位置（Ｌ）が左端ブロックの左端位置より左方に位置すると判断したことに応じて（Ｓ７８：Ｙｅｓ）、図１１のバンド３のライン２〜２０のように、ラインＬ以降の全ての左ドット位置（Ｌ）〜（２０）を、左端ブロックの左端位置に更新する（Ｓ７９）。そして、制御部１３０は、左ドット更新フラグに“ＯＮ”を設定して（Ｓ８０）、左ドット更新処理を終了する。
【００８５】
一方、制御部１３０は、左ドット位置（Ｌ）が左端ブロックの左端位置より左方に位置しないと判断したことに応じて（Ｓ７８：Ｎｏ）、左ドット位置（Ｌ）と右端ブロックの右端位置とを比較する（Ｓ８１）。そして、制御部１３０は、左ドット位置（Ｌ）が右端ブロックの右端位置より右方に位置すると判断したことに応じて（Ｓ８１：Ｙｅｓ）、図１１のバンド２の左ドット位置（２）のように、左ドット位置（Ｌ）を右端ブロックの右端位置に更新する（Ｓ８２）。
【００８６】
さらに、制御部１３０は、変数Ｌが２０に達していないことに応じて（Ｓ８３：Ｎｏ）、ステップＳ７６以降の処理を再び実行する。一方、制御部１３０は、変数Ｌが２０に達したことに応じて（Ｓ８３：Ｙｅｓ）、左ドット更新処理を終了する。また、制御部１３０は、左ドット位置（Ｌ）が右端ブロックの右端位置より右方に位置しないと判断したことに応じて（Ｓ８１：Ｎｏ）、ステップＳ８２の処理をスキップして、ステップＳ８３以降の処理を実行する。さらに、制御部１３０は、左ドット位置（Ｌ）＝０であると判断したことに応じて（Ｓ７７：Ｎｏ）、ステップＳ７８〜Ｓ８２の処理をスキップして、ステップＳ８３以降の処理を実行する。
【００８７】
制御部１３０は、例えば図１１のバンド２、３、５のように、左Ｂｋ位置を更新した直後の左ドット更新処理において（Ｓ７２：Ｎｏ）、当該バンドに含まれる各ラインの左ドット位置を、上から下に向かって順番に左端ブロックの左端位置と比較する。すなわち、図１１のバンド２、３、５に対する左ドット更新処理では、ステップＳ７６〜Ｓ８３の処理が最大２０回繰り返される。
【００８８】
しかしながら、制御部１３０は、図１１のバンド３に対する左ドット更新処理において、左ドット位置が左端ブロックの左端位置より左方にあるライン２を発見したことに応じて（Ｓ７８：Ｙｅｓ）、当該ライン２以降の全てのラインの左ドット位置（２）〜（２０）を、左端ブロック３の左端位置に一括して更新する（Ｓ７９）。すなわち、バンド３に対する左ドット更新処理では、ステップＳ７６〜Ｓ８３の処理が２回だけ実行される。
【００８９】
また、制御部１３０は、バンド４に対する左ドット更新処理において、バンド３とバンド４とで左端ブロック３が同一で（Ｓ７２：Ｙｅｓ）、且つバンド３の左ドット位置（２）〜（２０）を更新したことに応じて（Ｓ７３：Ｙｅｓ）、バンド４の全ての左ドット位置（１）〜（２０）を、左端ブロック３の左端位置に一括更新する（Ｓ７４）。すなわち、バンド４に対する左ドット更新処理では、ステップＳ７１〜Ｓ７４の処理が１回だけ実行される。
【００９０】
同様に、制御部１３０は、例えば図１１のバンド２、４のように、右Ｂｋ位置を更新した直後の右ドット更新処理において（Ｓ９２：Ｎｏ）、当該バンドに含まれる各ラインの右ドット位置を、上から下に向かって順番に右端ブロックの右端位置と比較する。すなわち、図１１のバンド２、４に対する右ドット更新処理では、ステップＳ９６〜Ｓ１０３の処理が最大２０回繰り返される。
【００９１】
しかしながら、左ドット更新処理の場合と同様に、バンド２に対する右ドット更新処理では、ステップＳ９６〜Ｓ１０３の処理が２回だけ実行される。同様に、バンド４に対する右ドット更新処理では、ステップＳ９６〜Ｓ１０３の処理が１回だけ実行される。さらに、バンド３、５に対する右ドット更新処理では、ステップＳ９１〜Ｓ９４の処理が１回だけ実行される。
【００９２】
次に図５に戻って、制御部１３０は、バンド数Ｎが５に達するまで（Ｓ１６：Ｎｏ）、ステップＳ１３〜Ｓ１５の処理を繰り返し実行する。そして、制御部１３０は、バンド数Ｎが５に達したことに応じて（Ｓ１６：Ｙｅｓ）、当該５つのバンドで構成されるパスに対するプリント動作の実行をプリンタ１１に指示する（Ｓ１７）。
【００９３】
より詳細には、制御部１３０は、当該パスで示される画像が記録されるシート１２の領域を記録ヘッド３９に対面させるための搬送量を、当該パスに対応するスキャンデータに基づいて算出する。そして、プリンタ１１は、制御部１３０によって算出された搬送量だけ、給送トレイ２０に支持されたシートを、給送部１５、搬送ローラ部５４、及び排出ローラ部５５の少なくとも１つに搬送させる。この処理は、搬送処理の一例である。
【００９４】
また、制御部１３０は、当該パスに含まれる左ドット位置及び右ドット位置に基づいて、キャリッジ２３の移動範囲（移動開始位置及び移動終了位置）を決定する。また、制御部１３０は、記録ヘッド３９にインクを吐出させるタイミングを、当該パスに対応するスキャンデータに基づいて算出する。そして、プリンタ１１は、制御部１３０によって決定された移動開始位置から移動終了位置までキャリッジ２３を移動させ、制御部１３０によって算出されたタイミングで記録ヘッド３９にインクを吐出させる。この処理は、プリント処理の一例である。
【００９５】
一例として、制御部１３０は、パスに含まれる複数の左ドット位置のうち、最も左方に位置する左ドット位置から第１距離だけ左方に離間した位置を、キャリッジ２３の移動開始位置に決定する。第１距離は、例えば、キャリッジ２３が停止状態から所定の速度まで加速するための加速区間に相当する予め定められた距離である。また、制御部１３０は、パスに含まれる複数の右ドット位置のうち、最も右方に位置する右ドット位置から第２距離だけ右方に離間した位置を、キャリッジ２３の移動終了位置に決定する。第２距離は、例えば、キャリッジ２３が所定の速度から停止するための減速区間に相当する予め定められた距離である。
【００９６】
次に、制御部１３０は、次のパスが存在することに応じて（Ｓ１８：Ｙｅｓ）、プリンタ１１がプリント動作を実行するのと並行して、次のパスに対するステップＳ１２〜Ｓ１７の処理を実行する。そして、制御部１３０は、全てのパスに対するステップＳ１２〜Ｓ１７の処理を実行したことに応じて（Ｓ１８：Ｎｏ）、画像が記録されたシート１２を排出ローラ部５５に排出トレイ２１へ排出させる（Ｓ１９）。
【００９７】
［本実施形態の作用効果］
上記の実施形態によれば、左端ブロック及び右端ブロックの外側でインクが吐出される画素を孤立点として検出する。そして、検出した孤立点を除去した範囲をキャリッジ２３の移動範囲に決定するので、キャリッジ２３の移動範囲を狭くすることができる。その結果、効率的に孤立点を除去できると共に、キャリッジ２３の移動時間が短縮されるので、ＦＣＯＴの増大を抑制することができる。
【００９８】
より詳細には、図１１の例において、バンド２の左ドット位置（２）及び右ドット位置（２）、バンド３の左ドット位置（２）〜（３）、及びバンド４の右ドット位置（１）等が孤立点として検出される。そして、前述の孤立点が除去される前のキャリッジ２３の移動範囲は、バンド３の左ドット位置（２）と、バンド４の右ドット位置（１）とに基づいて決定される。一方、前述の孤立点が除去された後のキャリッジ２３の移動範囲は、ブロック２の左端位置と、ブロック７の右端位置とに基づいて決定される。すなわち、孤立点除去処理を実行することによって、キャリッジ２３の移動範囲が狭まる。
【００９９】
また、上記の実施形態によれば、図１１のバンド１のように、上端フラグに“ＯＮ”が設定され且つ最大積算値が閾値未満のバンドに対する孤立点除去処理がスキップされるので（Ｓ３１：ＯＮ＆Ｓ３２：Ｎｏ）、ＳＷ画像処理の処理速度が向上する。また、図１１のバンド５のように、バンド４の右Ｂｋ位置より左方のブロック６に対する右Ｂｋ特定処理がスキップされるので、（Ｓ６２：Ｙｅｓ）、第２特定処理の処理速度が向上する。
【０１００】
また、上記の実施形態の左ドット更新処理によれば、隣接する第１バンドと第２バンドとで左Ｂｋ位置が同一で（Ｓ７２：Ｙｅｓ）、且つ第１バンドの左ドット位置を更新したことに応じて（Ｓ７３：Ｙｅｓ）、第２バンドの全ての左Ｂｋ位置（１）〜（２０）が、左端ブロックの左端位置に一括更新される（Ｓ７４）。さらに、左ドット位置が左端ブロックの左端位置より左方にあるラインＬを発見したことに応じて（Ｓ７８：Ｙｅｓ）、当該ラインＬ以降の全ての左ドット位置（Ｌ）〜（２０）が、左端ブロックの左端位置に一括して更新される（Ｓ７９）。これらにより、左ドット更新処理の処理速度が向上する。右ドット更新処理についても同様である。
【０１０１】
また、上記の実施形態によれば、スキャナ９０の処理（Ｓ１１）と、画像処理（Ｓ１２〜Ｓ１６）と、プリンタ１１の処理（Ｓ１７）とが並行して実行されるので、ＦＣＯＴをさらに短縮することができる。なお、ＨＷ画像処理（Ｓ１４）は、１バンドに相当するスキャンデータが生成される前の所定のタイミングで開始されてもよい。また、ＳＷ画像処理（Ｓ１５）は、ＨＷ画像処理が終了する前の所定のタイミングで開始されてもよい。さらに、上記の実施形態によれば、処理量は多いが単純な処理をＡＳＩＣ１３５で実現し、多くの判断を含む処理をプログラムで実現するので、ＦＣＯＴをさらに短縮することができる。
【符号の説明】
【０１０２】
１０・・・複合機
１１・・・プリンタ
２３・・・キャリッジ
２４・・・記録部
５４・・・搬送ローラ部
５５・・・排出ローラ部
９０・・・スキャナ
１３０・・・制御部
１３１・・・ＣＰＵ
１３３・・・ＲＡＭ
１３５・・・ＡＳＩＣ
【図１】
0006677031.tif 000002
【図２】
0006677031.tif 000003
【図３】
0006677031.tif 000004
【図４】
0006677031.tif 000005
【図５】
0006677031.tif 000006
【図６】
0006677031.tif 000007
【図７】
0006677031.tif 000008
【図８】
0006677031.tif 000009
【図９】
0006677031.tif 000010
【図１０】
0006677031.tif 000011
【図１１】
0006677031.tif 000012