(57)【要約】【課題】データ処理をソフトウェア処理とハードウェア処理との並列処理で行う場合、ソフトウェア処理である処理部に発生した待ちに起因して他の処理部へ切り換わる頻度を低減し、切り換わりに起因するデータ処理効率の低下を防止できるデータ処理装置、記録装置及びデータ処理方法を提供する。【解決手段】記録ヘッドで印字を行うためにプリンタに与えられた記録データについて第一タスク部５３がコマンド解析・ラスタ管理処理を行い、これと並列処理でデータ解凍・パス分解回路４２が記録データの解凍・パス分解処理を行う。次に第二タスク部５４はノズル割付・列間ずらし処理とを一つのタスクとしてまとめて行い、これと並列処理で縦横変換回路４３が縦横変換処理を行う。また、縦横変換回路４３の縦横変換時間が規定時間以上かからないと判定された場合は、第二タスク部５４が処理を終了してもタスクの切り換えが行われない構成となっている。【選択図】図９
2009285996.tif 000002
【特許請求の範囲】
【請求項１】
画素を記録するための記録素子を複数列有する記録手段を備えた記録装置におけるデータ処理装置であって、
与えられた記録データを構成する画素データに記録素子を割り付ける割付処理と、前記記録素子の記録タイミングを列間で調整すべく列間で画素データをずらす列間ずらし処理とをソフトウェア処理で行う処理部と、
前記記録データを構成する画素データを前記記録手段が記録を行う際に前記記録素子への出力順に合うように並び替える並替処理を前記処理部の割付結果及び列間ずらし結果を反映させつつハードウェア処理で行う並替回路とを備え、
前記処理部と前記並替回路は、前記記録データを処理単位ずつ順番に処理し、前記処理部が前記割付処理と前記列間ずらし処理とをまとめて行うソフトウェア処理と、前記並替回路が並替処理を行うハードウェア処理とを並列処理で行うことを特徴とするデータ処理装置。
【請求項２】
前記処理部は前記割付処理及び列間ずらし処理の終了後に前記並替回路を起動させ、前記割付処理及び列間ずらし処理の終了後に、前記並替回路が処理中であれば当該並替回路を起動させるまでに待ち時間が発生する構成であり、
前記待ち時間が規定時間以上発生するか否かを判定する判定手段と、
前記待ち時間が規定時間以上発生すると判定されれば、前記処理部の処理終了後にソフトウェア処理を前記処理部から他の処理部へ切り換え、一方、前記待ち時間が規定時間以上は発生しないと判定されれば、前記他の処理部への切り換えを行わず前記処理部を前記並替回路の処理終了まで待機させる切換手段と
をさらに備えたことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記他の処理部及び前記処理部はそれぞれ第一タスク及び第二タスクであって、該第一及び第二タスクを含む複数のタスクを管理するとともに起動中のタスクからの終了通知に基づき実行タスクを切り換えるリアルタイムＯＳを備え、
前記切換手段は、前記第二タスクから前記リアルタイムＯＳへの終了通知の有無によりタスク切り換えと待機とを選択する構成であり、
前記第二タスクは、前記判定手段により前記待ち時間が規定時間以上発生すると判定されれば処理終了後に終了通知を行うが、前記待ち時間が前記規定時間以上発生しないと判定されれば終了通知を行わないことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記記録手段は、搬送される記録媒体に記録を施すとともに該記録媒体の搬送方向と交差する走査方向に移動するシリアル記録方式のものであり、
前記処理部は、前記記録手段が前記走査方向に一回移動する１パス分の記録データを複数に分割した分割データを処理単位として処理を行うことを特徴とする請求項１乃至３のいずれか一項に記載のデータ処理装置。
【請求項５】
記録媒体に記録を施す前記記録手段と、請求項１乃至４のいずれか一項に記載のデータ処理装置とを備えたことを特徴とする記録装置。
【請求項６】
画素を記録するための記録素子を複数列有する記録手段を備えた記録装置におけるデータ処理方法であって、
与えられた記録データを構成する画素データに記録素子を割り付ける割付処理と、前記記録素子の記録タイミングを列間で調整すべく列間で画素データをずらす列間ずらし処理とをＣＰＵが行う処理ステップと、
前記記録データを構成する画素データを前記記録手段が記録を行う際に前記記録素子への出力順に合うように並び替える並替処理を並替回路が前記処理ステップでの割付結果及び列間ずらし結果を反映させつつ行う並替ステップとを備え、
前記処理ステップと前記並替ステップは、前記記録データを処理単位ずつ順番に処理し、前記ＣＰＵが前記割付処理と前記列間ずらし処理とをまとめて行うソフトウェア処理と、前記並替回路が並替処理を行うハードウェア処理とを並列処理で行うことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に与えられた記録データを記録手段による記録に使用可能なデータに変換するデータ処理をソフトウェア処理とハードウェア処理との協働で行うデータ処理装置、記録装置及びデータ処理方法に関するものである。
【背景技術】
【０００２】
従来、プリンタでは、ホスト装置から受信した印刷データ（記録データ）にデータ処理を施し、そのデータ処理後のデータに基づき記録ヘッドを駆動制御して用紙に記録を行う。例えば、インクジェット式シリアルプリンタにおけるデータ処理としては、コマンド解析処理、データ解凍処理、パス分解処理、ノズル割付処理、列間ずらし処理、縦横変換処理等が行われる。コマンド解析処理とは印刷データ中のコマンドを解析する処理、データ解凍処理とは印刷データ中の記録データを解凍する処理、パス分解処理とは記録データを記録ヘッドの一回移動分のパス毎に分解する処理である。また、ノズル割付処理とは、記録データを構成するドットデータ（画素データ）に記録ヘッドのノズルを割り付ける処理、列間ずらし処理とは記録ヘッドの移動方向に並ぶノズル列間での記録タイミングを調整すべくノズル列間でドットデータをダミーデータの付加によりずらす処理である。さらに縦横変換処理とは、記録ヘッドの移動方向と平行となるドットデータの並び順（アドレス順）を、移動方向と直交するノズル列方向に合わせるべく縦横変換する処理である。
【０００３】
例えば特許文献１、２には、ずらし処処理を行う記録装置が開示され、用紙と記録ヘッドとの間隔やインク滴の飛翔速度のプリンタ個体差間のばらつきに起因する着弾位置のずれを調整するためにラスタデータの左右にダミーデータを付加するようになっていた。また、特許文献３には、パス分解処理を行う記録装置が開示されている。
【０００４】
ところで、これらのデータ処理は、電子回路等を用いて行うハードウェア処理と、ＣＰＵが行うソフトウェア処理との協働で行われる。例えばコマンド解析やノズル割付処理、列間ずらし処理等はソフトウェア処理で行われ、データ解凍処理やパス分解処理、縦横変換処理等はハードウェア処理で行われる。
【０００５】
データ処理は、記録データが処理単位ずつ上流側から下流側へ段階的に進められ、各段階でソフトウェア処理とハードウェア処理が並列処理で行われる。例えばノズル割付処理とパス分解処理とが並列処理で行われ、次の段階で列間ずらし処理と縦横変換処理とが並列処理で行われ、各段階の処理結果は段階毎のバッファに一時格納される。例えばハードウェアである縦横変換回路は、ノズル割付処理結果及び列間ずらし処理結果を反映しつつ縦横変換を行うので、ノズル割付処理及び列間ずらし処理は必ず縦横変換処理の前に行われる。このように並列処理の組み合わせの中には、ソフトウェア処理の処理結果を参照して電子回路（回路部）がハードウェア処理を行うものがある。
【特許文献１】特開２００６−２３９９６３公報（段落００８７〜００９１等、図２５、図２６Ａ、図２６Ｂ等）
【特許文献２】特開２０００−３１８１４５号公報
【特許文献３】特開２００５−２６２５８９号公報（段落００３９〜００４１等、図１０、図１１等）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＣＰＵが行うソフトウェア処理は、記録装置内のオペレーティング・システム（ＯＳ）がタスク管理を行い、例えば優先順位の高いタスクを起動させる構成が通常採用される。このような構成を採用した場合、バッファの容量制限から、起動されたタスクが処理を終了して回路部に次の処理を渡した後、回路部の処理が終了してバッファに空きができるまで処理ができなくなり、回路部を処理終了後に再び起動させる指示を出すまでにタスクに待ちができる。この場合、ＯＳのタスク管理上、次に優先順位の高い他のタスクに切り換わりることで、データ処理が効率よく進められる。しかし、タスクの切り換え処理が多いと、これがＯＳのオーバーヘッドになって返ってデータ処理時間が長くなる場合があった。このため、タスクの待ちがなるべく発生しないように処理が行われることが望まれていた。
【０００７】
本発明は前記の問題点に鑑みてなされたものであって、その目的は、データ処理をソフトウェア処理とハードウェア処理との並列処理で行う場合、ソフトウェア処理である処理部に発生した待ちに起因して他の処理部へ切り換わる頻度を低減し、切り換わりに起因するデータ処理効率の低下を防止できるデータ処理装置、記録装置及びデータ処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記問題点を解決するために、請求項１に記載の発明では、画素を記録するための記録素子を複数列有する記録手段を備えた記録装置におけるデータ処理装置であって、与えられた記録データを構成する画素データに記録素子を割り付ける割付処理と、前記記録素子の記録タイミングを列間で調整すべく列間で画素データをずらす列間ずらし処理とをソフトウェア処理で行う処理部と、前記記録データを構成する画素データを前記記録手段が記録を行う際に前記記録素子への出力順に合うように並び替える並替処理を前記処理部の割付結果及び列間ずらし結果を反映させつつハードウェア処理で行う並替回路とを備え、前記処理部と前記並替回路は、前記記録データを処理単位ずつ順番に処理し、前記処理部が前記割付処理と前記列間ずらし処理とをまとめて行うソフトウェア処理と、前記並替回路が並替処理を行うハードウェア処理とを並列処理で行うことを要旨とする。
【０００９】
この発明によれば、処理部は、与えられた記録データを構成する画素データに記録素子を割り付ける割付処理と、記録素子の記録タイミングを列間で調整すべく列間で画素データをずらす列間ずらし処理とをソフトウェア処理で行う。また、並替回路は、記録データを構成する画素データを記録手段が記録を行う際に記録素子への出力順に合うように並び替える並替処理を処理部の割付結果及び列間ずらし結果を反映させつつハードウェア処理で行う。処理部と並替回路の各処理は、記録データを処理単位ずつ順番に処理することで行われる。そして、処理部が割付処理と列間ずらし処理とをまとめて行うソフトウェア処理と、並替回路が並替処理を行うハードウェア処理とは並列処理で行われる。よって、処理部の処理結果が一時的に格納される格納部（バッファ）の容量の制限等を理由に、並替回路の処理が進むまで処理部の処理を一時的に行えない待ちが発生しても、並替回路と並列処理を行う処理部の処理内容を列間ずらし処理だけとした構成に比べ、その待ち時間を短くすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明をインクジェット式プリンタに適用した一実施形態を、図１〜図１２を用いて説明する。図１は、外装ケースを取り外した状態のインクジェット式記録装置の斜視図を示す。図１に示すように、記録装置としてのインクジェット式プリンタ（以下、プリンタ１１と称す）は、例えばシリアル記録方式の大判プリンタである。プリンタ１１は、上側が開口する略四角箱状の本体ケース１２を備え、この本体ケース１２内に架設されたガイド軸１３にはキャリッジ１４が主走査方向（図１におけるＸ方向）に案内されて往復動可能な状態で設けられている。キャリッジ１４が背面側で固定された無端状のタイミングベルト１５は、本体ケース１２の背板内面上に配設された一対のプーリ１６，１７に巻き掛けられ、一方のプーリ１６と駆動軸が連結されたキャリッジモータ（以下、「ＣＲモータ１８」という）が正逆転駆動されることにより、キャリッジ１４は主走査方向Ｘに往復動する構成となっている。
【００１１】
キャリッジ１４の下部には、インクを噴射する記録ヘッド１９が設けられ、さらに本体ケース１２内において記録ヘッド１９と対向する下方位置には、記録ヘッド１９と記録媒体としての用紙Ｐとの間隔を規定するプラテン２０がＸ方向に延びる状態で配置されている。また、キャリッジ１４の上部には、ブラック用およびカラー用の各インクカートリッジ２１，２２が着脱可能に装填されている。記録ヘッド１９は、各インクカートリッジ２１，２２から供給された各色のインクを、色ごとのノズル列を構成する各ノズルから噴射（吐出）する。なお、記録ヘッド１９により記録手段が構成される。
【００１２】
プリンタ１１の背面側には、給紙トレイ２３と、給紙トレイ２３上に積重された多数枚の用紙Ｐのうち最上位の１枚のみを分離して副走査方向Ｙ下流側に供給する自動給紙装置（Ａuto Ｓheet Ｆeeder）２４とが設けられている。
【００１３】
また、本体ケース１２の図１における右側下部に配設された紙送りモータ（以下、「ＰＦモータ２５」という）が駆動されることにより、搬送機構（例えば紙送りローラ及び排紙ローラ）（図示せず）が駆動されて、用紙Ｐが副走査方向Ｙへ搬送される。そして、キャリッジ１４を主走査方向Ｘに往復動させながら記録ヘッド１９のノズルから用紙Ｐに向けてインクを噴射する印刷動作と、用紙Ｐを副走査方向Ｙに所定の搬送量で搬送する紙送り動作とを略交互（但し、各動作タイミングは一部重複してもよい。）に繰り返すことで、用紙Ｐに文字や画像等の印刷が施される。なお、ＰＦモータ２５は自動給紙装置２４の動力源も兼ねている。
【００１４】
また、プリンタ１１には、キャリッジ１４の移動距離に比例する数のパルスを出力するリニアエンコーダ２６がガイド軸１３に沿って延びるように配置されており、リニアエンコーダ２６の出力パルスを用いて求められるキャリッジ１４の移動位置、移動速度及び移動方向に基づいて、キャリッジ１４の速度制御及び位置制御は行われる。また、リニアエンコーダ２６の出力パルスに基づいて記録ヘッド１９のノズルからのインク噴射タイミングを決める噴射タイミング信号が生成される。なお、プリンタ１１においてホームポジション（キャリッジ移動経路上の一端部（図１における右端位置））に位置した際のキャリッジ１４の直下には、記録ヘッド１９のノズル目詰まり等を予防・解消するためのクリーニング等を行うメンテナンス装置２７が配設されている。
【００１５】
図２は記録ヘッドの底面（ノズル開口面）を示す。図２に示すように、記録ヘッド１９の底面は複数個のノズルが開口するノズル開口面１９Ａとなっている。ノズル開口面１９Ａには、副走査方向（図２における上下方向）に一定のノズルピッチで一列に配列された計１８０個のノズル♯１〜♯１８０により構成されているＫ，Ｃ，Ｍ，Ｙの各色の計４列のノズル列が形成されている。本例では、合計４列のノズル列を用いて、黒（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）の４色の印刷を行う。なお、ノズル列毎のノズルは１列状配列に限らず、千鳥配列としてもよい。
【００１６】
また、記録ヘッド１９には、各ノズル♯１〜♯１８０と対応する図２に示す吐出駆動素子２８がノズル数と同数内蔵されている（但し、図２では記録ヘッド１９の外側に模式的に描いている）。吐出駆動素子２８は、例えば圧電振動素子又は静電駆動素子からなり、所定駆動波形の電圧パルスが印加されると、電歪作用又は静電駆動作用により、ノズルに連通するインク室の内壁部（振動板）を振動させて、インク室を膨張・圧縮させることによりノズルからインク滴を吐出させる。もちろん吐出駆動素子２８はノズル通路内のインクを加熱するヒータでもよく、ヒータで加熱したインク内に沸騰により発生した気泡の膨張を利用してノズルからインク滴を吐出させる方式も採用できる。なお、吐出駆動素子２８はノズルと対向する位置に配置され、その素子配列はノズル列と同様の配列パターンとなっている。本実施形態では、吐出駆動素子２８が記録素子に相当する。
【００１７】
図３は、プリンタ１１のデータ処理に係る部分の電気的構成を示す概略構成図である。
プリンタ１１はホスト装置８０からインターフェイス２９を介して印刷データＰＤを受信する。印刷データＰＤはホスト装置８０からプリンタ１１にパケット転送される。
【００１８】
この印刷データＰＤは、コマンドと記録データ（ラスタデータ）とから構成される。記録データは、ホスト装置８０内のプリンタドライバ（図示せず）が、表示用（例えばＲＧＢ表色系）の画像データに対し解像度変換処理、色変換処理、ハーフトーン処理等を施して生成したものである。印刷データＰＤには、カラー印刷の場合はシアンＣ、マゼンタ（Ｍ）、イエロー（Ｙ）の各色の記録データが含まれ、一方、モノクロ印刷の場合はブラック（Ｋ）の記録データが含まれる。
【００１９】
ここで、解像度変換処理は、表示用（例えばＲＧＢ表色系）の画像データの解像度を、プリンタ１１の印刷解像度に変換する処理であり、色変換処理は、解像度変換処理後の表示用表色系（例えばＲＧＢ表色系）の画像データをＣＭＹＫ表色系の画像データに変換する処理である。また、ハーフトーン処理は、色変換処理後のＣＭＹＫ表色系の画像データを、プリンタ１１が表現可能な２階調又は４階調のＣＭＹＫドットデータに変換する処理である。記録データはプリンタ１１へ転送される前に圧縮される。なお、プリンタ１１がメモリカード等の外部記録装置から読み取った画像データについて内部で解像度変換処理、色変換処理及びハーフトーン処理等を行って印刷データを生成する機能を備えるスタンドアロン方式である場合、ホスト装置８０から受信した印刷データと同様に、内部で生成した印刷データについて後述するデータ処理を行う。
【００２０】
プリンタ１１内には、ＣＲモータ１８、ＰＦモータ２５（いずれも図１参照）及び記録ヘッド１９の各種制御を司るコントローラ３０が設けられている。コントローラ３０は、ＣＰＵ３１（中央処理装置）、電子回路（集積回路）であるＡＳＩＣ３２（Application Specific IC）、ＲＯＭ３３、ＲＡＭ３４及びヘッド駆動回路３５を備える。ヘッド駆動回路３５は、記録ヘッド１９と電気的に接続されている。なお、ＣＰＵ３１、ＲＡＭ３４、ヘッド駆動回路３５のうち少なくとも一つがＡＳＩＣ３２内にデータ処理用回路と共に内蔵されていてもよい。
【００２１】
ＡＳＩＣ３２は、データ処理を行うハードウェア構成としてデータ受信回路４１、データ解凍・パス分解回路４２、縦横変換回路４３及びヘッド転送回路４４を備えている。
データ解凍・パス分解回路４２は、印刷データＰＤ中の記録データを解凍するデータ解凍処理と、記録ヘッド１９の主走査方向への１回の移動である１パス分ずつ記録データを分解するパス分解処理とを行う。また、縦横変換回路４３は、ＲＡＭ３４中に主走査方向と平行な方向（横方向）が読み出し順となるアドレス順序で格納されたドットデータを、記録ヘッド１９のノズル列方向（縦方向）にノズル列高さ分（列方向のノズル個数分）ずつ主走査方向Ｘに沿って順番に読み出し可能なアドレス順序にデータの格納順序を並び替える（変換する）縦横変換処理を行う。これらの各処理の詳細については後述する。
【００２２】
プリンタ１１の起動時には、ＲＯＭ３３から読み出されたプログラムや変数がＲＡＭ３４内に図３に示すように書き込まれる。このプログラムには、オペレーティング・システム（ＯＳ）用のプログラム（以下、「ＯＳ用プログラム」という）、記録ヘッド１９を駆動制御するためのヘッド制御用のファームウェアプログラム、ＣＲモータ１８及びＰＦモータ２５を駆動制御するためのモータ制御用のファームウェアプログラム等が含まれている。ＣＰＵ３１がＯＳ用プログラム及び記録制御用のファームウェアプログラムを必要な変数等を用いて実行することで、データ処理の一部を構成するソフトウェア処理が行われる。
【００２３】
ＲＡＭ３４には、記録データの格納領域として、入力バッファ４６、プレーンバッファ４７及びイメージバッファ４８が備えられている。入力バッファ４６は、データ受信回路４１が受信した印刷データが一時的に記憶される記憶領域である。プレーンバッファ４７は、データ解凍・パス分解回路４２が処理した後の記録データが一時的に記憶される記憶領域である。また、イメージバッファ４８は、縦横変換回路４３で縦横変換された後の記録データが記憶される記憶領域である。
【００２４】
ＣＰＵ３１はヘッド制御用のファームウェアプログラムを実行することで、ＡＳＩＣ３２内の各回路４１〜４４及びヘッド駆動回路３５に対するレジスタ設定や起動の指示を行う。なお、コントローラ３０は、印刷時には、図示しないモータ駆動回路を介してＣＲモータ１８及びＰＦモータ２５を駆動制御する。
【００２５】
図４は、コントローラ３０内に設けられたデータ処理装置５０のブロック図を示す。データ処理装置５０は、印刷データＰＤにデータ処理を施して、記録ヘッド１９の吐出制御に使用可能な記録データを生成する。データ処理装置５０は、ＡＳＩＣ３２及びＲＡＭ３４の他、ＣＰＵ３１がＯＳ用プログラムを実行して構築されるリアルタイムＯＳ５１と、ＣＰＵ３１がヘッド制御用のファームウェアプログラムを実行して構築されるファームウェア部５２とを備える。リアルタイムＯＳ５１及びファームウェア部５２は共にソフトウェアで構成される。
【００２６】
ファームウェア部５２は、コマンド解析・ラスタ管理部である第一タスク部５３と、ノズル割付・列間ずらし部である第二タスク部５４と、メカ制御・ヘッド制御部である第三タスク部５５とを備える。さらにファームウェア部５２は、縦横変換回路４３が処理単位分（本例では半パス分）の記録データの縦横変換に要する処理時間（縦横変換時間）が規定時間かかるか否かを判定する判定部５６及びその判定結果を保持するフラグ５７を備えている。なお、本実施形態では、１ラスタライン（１パス）分の記録データを複数分割（本例では２分割）した半パス分の記録データが分割データに相当する。
【００２７】
また、リアルタイムＯＳ５１は、処理機能部６１及びスケジューラ６２を備える。スケジューラ６２は、タスク管理部６３及びディスパッチ部６４を備えている。
処理機能部６１は、リアルタイムＯＳ５１のスケジューラ６２以外の各種機能を司る部分である。スケジューラ６２は、タスク部５３〜５５のスケジュール管理を行う。すなわち、タスク部５３〜５５の起動要求を受け付けると、空きがあればそのタスク部を起動するが、既に他のタスク部が実行中（Run状態）であれば、そのタスク部をReady状態とする。そして、実行中のタスク部から処理を終了した旨あるいは待ちが発生した旨の通知ＳＣ（サービスコール）を受け付けると、そのときReady状態のタスク部が存在すればそのうち優先順位の一番高いタスク部を起動させることで実行タスクを切り換えるようになっている。タスク管理部６３は、タスクの状態（Wait，Ready，Run等）を管理する。ディスパッチ部６４は、スケジューラ６２がタスク切り換えイベントとなる通知ＳＣ（サービスコール）を受け付けると、タスク管理部６３が管理するタスクの状態を参照してReady状態のタスク部のうち優先順位の一番高いタスク部に起動指示ＤＳを通知してこれを起動させる。
【００２８】
第一タスク部５３（コマンド解析・ラスタ管理部）は、データ受信回路４１がデータ受信を開始すると、入力バッファ４６から印刷データＰＤを読み出してコマンド解析処理及びタスク管理処理を行う。ここで、印刷データＰＤは、コマンドと記録データとから構成される。第一タスク部５３は、入力バッファ４６から取得したデータがコマンドであればコマンド解析処理を行い、コマンド解析結果に基づき１ラスタライン分の記録データの保存先アドレスを割り当てるなどのラスタ管理処理（コマンド処理）を行う。さらに第一タスク部５３は、取得したデータがコマンドでなければ（つまり記録データであれば）、データ解凍・パス分解回路４２のレジスタに、ラスタ管理処理で割り当てた保存先アドレスを含む設定データを設定（レジスタ設定）した後、データ解凍・パス分解回路４２を起動させる。
【００２９】
データ解凍・パス分解回路４２は、入力バッファ４６から記録データを読み出して解凍する解凍処理と、解凍した記録データを構成するドットデータ（画素データ）をパス毎に分解するパス分解処理とを行う。そして、パス分解後の記録データをプレーンバッファ４７に格納する。
【００３０】
また、判定部５６は、コマンド解析結果を利用して、今回の（これから行うべき）処理単位分（半パス分）の記録データを縦横変換する縦横変換回路４３の処理時間（以下、「縦横変換時間」という）が規定時間以上かかるか否かを判定する。判定部５６は、縦横変換時間が規定時間以上かかると判定した場合は、フラグ５７内に設けられた判定フラグ（図示せず）に「１」をセットし、一方、規定時間以上かからないと判定した場合は、判定フラグを「０」にクリアする。ここで、本実施形態では、コマンド解析により取得された用紙サイズ（媒体サイズ）を用いて判定部５６は判定を行う。すなわち、判定部５６は、用紙サイズが規定サイズ以上であれば判定フラグをセットし、用紙サイズが規定サイズ未満であれば判定フラグをクリアする。
【００３１】
第二タスク部５４（ノズル割付・列間ずらし部）は、ドットデータにノズルを割り付けるノズル割付け処理と、ＫＣＭＹの各色のノズル列間で吐出タイミングを調整すべくノズル列毎のドットデータの配置位置をダミーデータの付加によってずらす列間ずらし処理とを行う。第二タスク部５４は、ノズル割付結果及び列間ずらし処理結果のテーブルをＲＡＭ３４の所定記憶領域に記憶した後、縦横変換回路４３に起動させる。縦横変換回路４３は、プレーンバッファ４７からパス分解後の記録データを処理単位分（半パス分）ずつ読み出し、前記テーブルを参照してノズル割付結果及び列間ずらし処理結果を反映しつつドットデータの縦横変換処理を行う。そして、縦横変換処理後の記録データをイメージバッファ４８に格納する。
【００３２】
第二タスク部５４は、１ラスタライン分（半パス×２回分）のノズル割付・列間ずらし部を終了すると、縦横変換回路４３を起動させる前において、フラグ５７を参照し、判定フラグが「１」であるか否かを判断する。そして、判定フラグが「１」であれば、第二タスク部５４はリアルタイムＯＳ５１に対して縦横変換回路４３の処理終了待ちの旨の通知ＳＣを行う。一方、判定フラグが「０」であれば、第二タスク部５４はリアルタイムＯＳ５１に対して通知ＳＣを行わず、縦横変換回路４３の処理が終了するまで起動したまま待機する。
【００３３】
リアルタイムＯＳ５１のタスク管理部６３は、起動中であったタスク部から通知ＳＣ（サービスコール）を受け付けると、そのときReady状態にあるタスク部が存在すれば、その中で一番優先順位の高いタスク部を起動させるタスク制御を行う。このため、起動中のタスク部から処理を終了したにも関わらず通知ＳＣを受け付けなければ、リアルタイムＯＳ５１による他のタスク部への切り換えは行われない。よって、縦横変換時間Ｔが規定時間Ｔc以上かかると判定された場合、つまり、第二タスク部５４が処理終了後に縦横変換回路４３の処理終了まで待つ待ち時間Ｔwaitが規定時間Ｔo以上長いと判定される場合は、他のタスク部への切り換えが行われるが、縦横変換時間Ｔが規定時間Ｔc以上かからない判定された場合は、他のタスク部への切り換えが行われずタスク部は起動したまま待機する。なお、フラグ５７には、判定フラグの他に、ノズル割付・列間ずらし処理で用いるノズル割付指示フラグ及びノズル割付終了フラグが備えられている。
【００３４】
第二タスク部５４は、タスク部の切り換えあるいは待機により、縦横変換回路４３の処理が終了すると、次の処理単位の記録データを縦横変換させるために再び縦横変換回路４３を起動させる。
【００３５】
第三タスク部５５（メカ制御・ヘッド制御部）は、ＣＲモータ１８及びＰＦモータ２５などのメカニカル機構部を駆動制御するメカ制御処理と、記録ヘッド１９の吐出制御を行うヘッド制御処理とを行う。ヘッド制御処理を行う際、第三タスク部５５は、縦横変換処理終了後に起動されると、ヘッド転送回路４４及びヘッド駆動回路を起動させる。ヘッド転送回路４４はイメージバッファ４８から縦横変換処理後の記録データを記録ヘッド１９へ転送する。これと同時に起動されたヘッド駆動回路３５は記録ヘッド１９に対して電圧パルスを出力する。
【００３６】
次にパス分解処理、ノズル割付処理、縦横変換処理について図５及び図６を用いて説明する。図５は、記録ヘッドのノズルと、各ノズルから吐出されるドットデータとの関係を示す説明図である。また、図６は、記録データの処理手順を説明するデータ構造を示す説明図である。
【００３７】
図５では、記録ヘッド１９を用いてシリアル印刷が行われる様子を、１色分のノズル列だけを示して説明するもので、１色分のノズル列を構成する各ノズルと、各ノズルからインク滴が吐出されて形成されるドット（画素）との関係を示すものである。なお、図５では、記録ヘッドにおける１列のノズル列を構成するノズル数を説明の便宜上４個としている。また、図５では、説明を簡単にするため、主走査方向Ｘ（ＣＲ移動方向）と搬送方向Ｙに６ドット×６ドット分の画像を記録する場合を例にする。
【００３８】
図５において、記録ヘッド１９は、主走査方向Ｘに移動しつつノズルからインク滴を吐出することで用紙Ｐ上にドット（記録画素）を形成する。記録ヘッド１９が１パス分の印刷を終えると、次に用紙Ｐを紙送りして（図５では２ノズルピッチ分）、次に２パス目の移動を行って２パス目のドットを形成する。以後、同様に１パス終了毎に搬送方向Ｙ（副走査方向）に２ノズルピッチずつ紙送りされる毎に、記録ヘッド１９を主走査方向Ｘに移動させて次のパスの印刷が行われる。なお、図５では、搬送方向Ｙへ紙送りピッチ分ずつ移動する用紙Ｐに対する相対位置として記録ヘッド１９を描いているため、記録ヘッド１９が反搬送方向へ移動する図として示されている。
【００３９】
図５において記録ヘッド１９のノズルを示す円内に示す符号「ｎｍ」の「ｎ」はｎパス目を示し、「ｍ」はノズルに対し搬送方向下流側から順番に付したノズル番号を示す。例えば「１３」は１パス目の記録ヘッドの３番ノズルを示す。また、ドットの円内の符号「ｎｍ」も同様に、「ｎ」がドットを形成したｎパス目を示し、「ｍ」がドットを形成したノズル番号を示している。
【００４０】
また、図５に示すように、このプリンタ１１では、記録ヘッド１９が主走査方向Ｘに移動しながらインク滴を吐出して形成しうるドットの最小ピッチが３６０ｄｐｉとなっている。一方、画像の主走査方向のドット解像度は７２０ｄｐｉとなっている。そのため、奇数パス目で主走査を行ったときに３６０ｄｐｉでドット（同図における白丸）を形成し、次の偶数パス目で、前行（前パス）で記録した３６０ｄｐｉのドット列間の隙間を埋めるようにドット（同図における網掛け丸）を形成することで、７２０ｄｐｉの解像度を得るようにしている。また、主走査方向Ｘに７２０ｄｐｉを確保するため、１パス目の１番と２番ノズルは非吐出とされ、最終パスの３番と４番ノズルは非吐出とされる（図５における破線のドット）。
【００４１】
図６は、図５に示すシリアル印刷を行うべく記録データに施すべきパス分解処理、ノズル割付処理及び縦横変換処理を説明するものである。
図６に示すように、入力バッファ４６には、図６に示すようにアドレス方向（図６では左から右へ向かう方向）に並ぶ順序で解凍後のドットデータは配列されている。図６では、奇数列（列方向はアドレス方向と直交する縦方向）のドットデータを白丸、偶数列のドットデータを網掛けの丸で描いている。図５で説明したように、奇数列のドットは奇数パス目、偶数列のドットは偶数パス目で記録が行われるので、データ解凍・パス分解回路４２が行うパス分解処理では、解凍後のドットデータを、奇数パス用の奇数列のドットデータと、偶数パス用の偶数列のドットデータとに分解する。このパス分解処理によって、図６に示すように、プレーンバッファ４７には、奇数パス用のドットデータと偶数パス用のドットデータとに分かれて格納される。
【００４２】
次にパス分解後のドットデータに対し、パス番号ｎとノズル番号ｍとを割り付けるノズル割付処理を行う。この割付は、図６に示すように、１パス目の１番と２番ノズルと、最終パスの３番と４番ノズルに非吐出を設定するためのダミーデータ（ヌルデータ）（図６における破線丸印）を付加した後に行われる。このノズル割付処理結果は、縦横変換回路４３が縦横変換処理を行う際に参照されるノズル割付テーブル（ノズル割付情報）としてＲＡＭ３４の所定記憶領域に記憶される。なお、図５及び図６ではバンド印刷の例であるが、インタレース印刷を行う場合はインタレース印刷の吐出順に応じた内容でノズル割付処理が行われる。
【００４３】
このノズル割り付け後には縦横変換処理前に列間ずらし処理を合わせて行う。図７は、列間ずらし処理を説明するものである。図７（ａ）（ｂ）は、記録ヘッド１９が主走査方向Ｘ（ＣＲ移動方向）に移動している途中でＫＣＭＹの各色のノズル列からインク滴を吐出する様子を示し、同図（ａ）は吐出タイミングを説明するもの、同図（ｂ）はインク滴の着弾時の状態を示すものである。図２及び図７（ａ）に示すように、各色のノズル１９Ｋ，１９Ｃ，１９Ｍ，１９Ｙは、主走査方向に異なる位置に配置されている。そのため、各ノズル１９Ｋ，１９Ｃ，１９Ｍ，１９Ｙから同時にインク滴ＫＩ，ＣＩ，ＭＩ，ＹＩを吐出すると、各ノズル列の間隔の分だけドットの着弾位置が主走査方向Ｘにずれてしまうので、図７（ａ）に示すように、ＫＣＭＹの各色のインク滴ＫＩ，ＣＩ，ＭＩ，ＹＩの吐出タイミングを、記録ヘッド１９の進行方向（以下、「ヘッド進行方向」という）と反対側のノズル列ほど順番に遅らせる必要がある。そして、図７（ａ）に示すように記録ヘッド１９の進行方向と反対側ほどノズル１９Ｋ，１９Ｃ，１９Ｍ，１９Ｙからのインク滴ＫＩ，ＣＩ，ＭＩ，ＹＩの吐出タイミングを遅らせることで、図７（ｂ）に示すように、ＫＣＭＹの各色のインク滴ＫＩ，ＣＩ，ＭＩ，ＹＩを主走査方向Ｘの同一位置に着弾させるようにしている。このように各ノズル列間でインク滴の吐出タイミングをノズル列間隔距離の移動時間分（＝ノズル列間隔距離／ヘッド移動速度）ずつヘッド進行方向と反対側のノズル列ほどずらすために、その時間分の遅延を発生しうる量のダミーデータ（ヌルデータ）を付加する。列間ずらし処理では、この列毎の遅延時間分のダミーデータを付加してドットデータをずらす情報（アドレス情報等）を含む参照テーブルを生成する。列間ずらし処理結果である参照データはＲＡＭ３４の所定記憶領域に記憶される。
【００４４】
図６に戻って、ノズル割付処理及び列間ずらし処理を終えると、縦横変換処理が行われる。図５に示すようなベタ印刷を想定した場合、記録ヘッド１９の１パス目において位置ｘ１で全ノズル（１〜４番ノズル）で吐出し、次に位置ｘ２で全ノズル（１〜４番ノズル）で吐出し、以下同様に位置ｘ３、位置ｘ４でも全ノズル（１〜４番ノズル）で吐出を行う。
【００４５】
また、ドットデータがイメージバッファ４８からアドレス方向の順番で読み出されるので、上記の位置ｘ１〜ｘ４の順番で全ノズル分ずつドットデータが読み出されるように、ドットデータのノズル列方向の並び順がアドレス方向となるようにドットデータを並び替える縦横変換処理を行う。この縦横変換処理は、縦横変換回路４３が、ノズル割付結果及び列間ずらし処理結果の各テーブルを参照して、ノズル割付処理結果及び列間ずらし処理結果を反映しつつ行われる。なお、図６では、ヘッド進行方向先頭列の１色分のドットデータを示しているので、列間ずらし分のダミーデータが付加されていない。
【００４６】
図８は、列間ずらし処理結果が反映された縦横変換処理を説明するものである。図８に示すように、黒（Ｋ）の縦横変換処理後のドットデータには、ダミーデータ（ヌルデータ）の付加はない。シアン（Ｃ）の縦横変換処理後のドットデータには、１列分遅延可能な量（図８の例では１列分）のずらしダミーデータが付加されている。また、マゼンタ（Ｍ）の縦横変換処理後のドットデータには、２列分遅延可能なずらしダミーデータが付加されている。さらに、イエロー（Ｙ）の縦横変換処理後のドットデータには、３列分遅延可能なずらしダミーデータが付加されている。
【００４７】
次に、データ処理の流れを説明する。図９はデータ処理のトランザクション図を示す。また、図１１はコマンド解析・ラスタ管理処理のフローチャート、図１２はノズル割付・列間ずらし処理のフローチャートを示す。なお、第一タスク部５３が図１１に示すコマンド解析・ラスタ管理処理を実行し、第二タスク部５４が図１２に示すノズル割付・列間ずらし処理を実行する。
【００４８】
以下、図９及び図１０のトランザクション図を参照しつつ、図１１及び図１２に示すフローチャートに従ってデータ処理について説明する。
まず図１１に基づいてコマンド解析・ラスタ管理処理を説明する。
【００４９】
印刷時にはホスト装置８０からプリンタ１１へ印刷データが送信される。送信された印刷データはＩ／Ｆ２９を介してプリンタ１１内のデータ受信回路４１に受信される。データ受信回路４１は印刷データを受信する。受信した印刷データはＲＡＭ３４内の入力バッファ４６に格納される。データ受信回路４１は印刷データＰＤの受信を開始すると、第一タスク部５３にデータ受信開始の旨を通知する。
【００５０】
図１１におけるステップＳ１０では、第一タスク部５３は、データ受信回路４１からデータ受信開始の旨の通知があるまで待機する。つまり、データ受信開始の旨の通知を受け付けるまで、第一タスク部５３は待機状態（Wait）にある。そして、この待機中においてデータが取得（受信）されたか否かを判断する（ステップＳ２０）。
【００５１】
データが取得されると、リアルタイムＯＳ５１は第一タスク部５３を起動させる。すなわち、タスク管理部６３がタスク毎の状態を管理しており、データ取得を条件としてディスパッチ部６４が第一タスク部５３を実行タスクとして選択しこれを起動させる。
【００５２】
第一タスク部５３は入力バッファ４６から取得したデータがコマンドであるか否かを判断し、コマンドであれば（Ｓ３０で肯定判定）、コマンド解析（ステップＳ４０）及びコマンド処理（ステップＳ５０）を行う。一方、取得したデータがコマンドでなければ（Ｓ３０で否定判定）、つまりデータが記録データ（ラスタデータ）であれば、そのときデータ解凍・パス分解回路４２が終了状態にあれば（Ｓ６０で肯定判定）、第一タスク部５３がデータ解凍・パス分解回路４２を起動させる（ステップＳ７０）。この起動の結果、データ解凍・パス分解回路４２は１パス分の記録データの解凍及びパス分解処理（図６参照）を行う。このとき、図９に示すように第一タスク部５３によるコマンド解析・ラスタ管理処理（ソフトウェア処理）と、データ解凍・パス分解回路４２によるデータ解凍・パス分解処理（ハードウェア処理）とは並行に進められる。
【００５３】
そして、図１１のステップＳ８０において１パス分終了したと判断すると、ノズル割付指示通知を行う。このノズル割付指示通知をリアルタイムＯＳ５１が受け付けると、スケジューラ６２のディスパッチ部６４が実行タスクを第一タスク部５３から第二タスク部５４に切り換える（図９参照）。
【００５４】
実行タスクとして起動された第二タスク部５４は、図１２にフローチャートで示すノズル割付・列間ずらし処理を行う。以下、第二タスク部５４が行うノズル割付・列間ずらし処理について説明する。
【００５５】
まず図１２におけるステップＳ１１０では、ノズル割付指示フラグとノズル割付終了フラグを共にクリアする。そして、第二タスク部５４は通知（ノズル割付指示通知又は印刷指示完了通知）があるまで待機する。第二タスク部５４は待機状態（Ready）にあり、通知があると、リアルタイムＯＳ５１が第二タスク部５４にその通知内容に応じた処理を実行させる。
【００５６】
すなわち、Ｓ１２０でノズル割付指示通知があれば、ノズル割付指示フラグをセットし（ステップＳ１３０）、イメージバッファ４８に空があるか否かを判断し（ステップＳ１４０）、イメージバッファ４８に空があれば、先行２パス分作成済みであるか否かを判断する（ステップＳ１５０）。先行２パス分作成済みでなければ、リアルタイムＯＳ５１に縦横変換回路４３の終了待ちを通知する（以下、この通知を「縦横変換終了待ち通知」ともいう）（ステップＳ１７０）。リアルタイムＯＳ５１は、縦横変換終了待ち通知を受け付けると、そのときReady状態にあるタスク部のうち優先順位の一番高いタスク部が第二タスク部５４であるため、第二タスク部５４に１パス目の残り半パス分のノズル割付・列間ずらし処理を実行させるべく第二タスク部５４の起動状態を継続させる。
【００５７】
そして、１パス分終了しておらず（Ｓ１９０で否定判定）、ノズル割付・列間ずらし処理済みではない今回は（Ｓ２００で否定判定）、ノズル割付処理（ステップＳ２２０）及び列間ずらし処理（ステップＳ２３０）を行う。この結果、１パス目の半パス分についてノズル割付処理と列間ずらし処理とが行われる。
【００５８】
その後、Ｓ１５０〜Ｓ１７０，Ｓ１９０を前回と同様の手順で経た後、今度のＳ２００ではノズル割付・列間ずらし処理済みと判断されるため、ステップＳ２１０において第二タスク部５４が縦横変換回路４３を起動させる。その結果、縦横変換回路４３はノズル割付・列間ずらし処理結果のテーブルを参照して、１パス目の半パス分について縦横変換処理を行う。
【００５９】
第二タスク部５４は、縦横変換回路４３の起動後、１パス目の残り半パス分のノズル割付処理（Ｓ２２０）及び列間ずらし処理（Ｓ２３０）を行う。このように本実施形態では、図９に示すように、第二タスク部５４は、１パス分を２分割した半パス分ずつノズル割付・列間ずらし処理及び縦横変換処理を行い、縦横変換回路４３が１パス目の半パス分の縦横変換を行っている間に、第二タスク部５４は並列処理で１パス目の残り半パス分のノズル割付及び列間ずらし処理を行う。ここで、ノズル割付・列間ずらし処理時間に比べ、縦横変換時間は処理対象のデータ量に大きく依存するため、この並列処理で行われる第二タスク部５４の処理と縦横変換回路４３の処理のうち、どちらが早く終了するかはデータ量に依存する。データ量が多い場合は、第二タスク部５４の処理の方が早く終わり、残り半パス分の縦横変換処理のために縦横変換回路４３を起動させる指示を出すまでに待ち時間が発生する。一方、データ量が少ない場合は、第二タスク部５４に縦横変換回路４３を起動させる指示を出すまでの待ち時間が短く済むか発生しない。
【００６０】
そして、１パス目の残り半パス分のノズル割付処理（Ｓ２２０）・列間ずらし処理（Ｓ２３０）を終えた後のステップＳ１５０では、先行２パス分作成済みでないと判断されるので、ステップＳ１７０に進むことになる。
【００６１】
縦横変換終了待ち通知（Ｓ１７０）後にリアルタイムＯＳ５１により再び第二タスク部５４が起動されて復帰した場合、１パス目の残り半パス分のノズル割付・列間ずらし処理が終了しているものの、その残り半パス分の縦横変換処理が終了前なので（Ｓ１９０で否定判定）、ステップＳ２１０で縦横変換回路４３を起動させて、その残り半パス分の縦横変換処理を行わせる。この間、２パス目のコマンド解析・ラスタ管理処理がまだ行われておらず次のＳ２２０，Ｓ２３０で処理すべきデータがないので、ステップＳ１５０で先行２パス分作成済みではないと判定され、ステップＳ１７０で縦横変換終了待ち通知を行うことになる。この縦横変換終了待ち通知を受け付けたリアルタイムＯＳ５１は、第一タスク部５３を実行タスクとして選択しこれを起動させる。この結果、縦横変換処理が終了するまでの待ち時間を利用して第一タスク部５３が２パス目のコマンド解析・ラスタ管理処理を行う。そして、縦横変換処理が終了すると、第二タスク部５４が再び起動され、ステップＳ１９０において１パス分の縦横変換処理が終了したと判断される。
【００６２】
こうして１パス分の縦横変換が終了すると（Ｓ１９０で肯定判定）、ステップＳ２４０に進んでノズル割付指示フラグをクリアし、さらにステップＳ２５０で先行２パス分完了したか否かを判断する。ここまでの処理では１パス分完了しただけなので、次にステップＳ２６０に進んでノズル割付終了フラグをセットし、さらにステップＳ２７０で終了通知を行う。なお、図１２のフローチャートでは、ステップＳ２７０，Ｓ２８０で通知を行った後、ステップＳ１２０に戻る経路を示しているが、実際は、これらの通知により第二タスク部５４が一旦Wait状態に切り換えられ、次に起動されたときにステップＳ１２０の処理から始めることを意味している。また、図１１のフローチャートも同様で、ステップＳ９０の通知後、第一タスク部５３が一旦Wait状態に切り換えられ、次に起動されたときにステップＳ２０の処理から始めることを意味している。
【００６３】
第一タスク部５３による２パス目の記録データのコマンド解析・ラスタ管理処理が終了した後、次に起動された第二タスク部５４は、ステップＳ１２０でノズル割付指示通知を受け付けると、１パス目と同様にステップＳ１３０〜Ｓ２３０の処理を繰り返し、２パス目の記録データのノズル割付・列間ずらし処理と縦横変換処理とを半パス分ずつ並行処理で行う。
【００６４】
このとき、２パス目のノズル割付・列間ずらし処理（Ｓ２２０，Ｓ２３０）を終了した次のステップＳ１５０において先行２パス分作成済みと判断されるので、ステップＳ１６０に進む。つまり、ノズル割付・列間ずらし処理が施されたデータが先行２パス分作成し終わるまでは、リアルタイムＯＳ５１に縦横変換終了待ち通知を行って第一タスク部５３によるコマンド解析・ラスタ管理処理等を優先させるが、先行２パス分作成し終わった以後は、縦横変換回路の終了待ちが発生したとき、ステップＳ１６０に進む。
【００６５】
ステップＳ１６０では、縦横変換時間が大であるか否かを判断する。本実施形態では、コマンド解析で印刷設定条件情報の一つとして得られる用紙サイズに基づき判定部５６が、縦横変換時間が大であるか否かを間接的に判定しており、判定部５６は用紙サイズが規定サイズ以上である場合はフラグ５７の判定フラグをセットし、用紙サイズが規定サイズ未満である場合は判定フラグをクリアしている。そして、第二タスク部５４はフラグ５７の判定フラグを読み出し、判定フラグセットであれば縦横変換時間が大と判定し、一方、判定フラグクリアであれば縦横変換時間が大ではないと判定する。
【００６６】
縦横変換時間が大でない場合はステップＳ１８０に進んで、縦横変換回路４３の処理終了まで待機し、一方、縦横変換時間が大である場合はステップＳ１７０に進んで、リアルタイムＯＳ５１に縦横変換回路終了待ちを通知する。後者の場合、リアルタイムＯＳ５１は、縦横変換終了待ち通知を受け付けると、第二タスク部５４に替えて、そのときReady状態にある第一タスク部５３を起動させる。その結果、第一タスク部５３が図１１のフローチャートで示される処理を再び実行し、３パス目の記録データのコマンド解析・ラスタ管理処理を行う。つまり、第二タスク部５４が縦横変換回路４３の処理終了を待つ空き時間を利用して、第一タスク部５３が３パス目の記録データのコマンド解析・ラスタ管理処理を行う。そして、３パス目のコマンド解析等が終了すると、再びノズル割付指示通知が行われる。この通知の結果、リアルタイムＯＳ５１により再び第二タスク部５４が起動される。
【００６７】
こうしていずれの場合も、縦横変換処理終了後のステップＳ１９０において１パス分（２パス目）の縦横変換処理が終了したと判断される。そして、ステップＳ２４０で、ノズル割付指示フラグをクリアし、次のステップＳ２５０で今度は先行２パス分完了と判断されるので、ステップＳ２８０で印刷指示通知を行う。
【００６８】
印刷指示通知を受け付けたリアルタイムＯＳ５１は、第三タスク部５５を起動する。その結果、図９に示すように、先行２パス分の縦横変換処理が終わると、第三タスク部５５は、ヘッド転送回路４４及びヘッド駆動回路３５に指示して記録ヘッド１９による印字処理を行わせる。すなわち、ヘッド転送回路４４はイメージバッファ４８から縦横変換処理後の記録データを記録ヘッド１９へ転送するとともにヘッド駆動回路３５が駆動電圧パルスを記録ヘッド１９に出力する。記録データを構成するドットデータ（画素データ）は例えば二値データであり、ヘッド駆動回路３５から出力された駆動電圧パルスによる吐出駆動素子２８の駆動・非駆動を選択する選択データとして使用される。吐出駆動素子２８は、ドットデータが「０」のときは駆動されず、「１」のときに駆動されて記録ヘッド１９のノズルからインク滴が吐出される。なお、ドットデータを２ビットデータとし、その値「０１」「１０」「１１」に応じて、吐出するインク滴のサイズを大中小の３段階に調整する構成も採用できる。もちろん、ドットデータを２ビット以外の複数ビットデータとして、インク滴のサイズの種類を適宜調整してもよい。
【００６９】
図９に示すように、こうして１パス目の印字動作が行われると、この１パス目の印字動作中に並行して第一タスク部５３による３パス目の記録データのコマンド解析・ラスタ管理処理が行われる。そして、３パス目の記録データのコマンド解析・ラスタ管理処理が終了してノズル割付指示通知を受け付け（Ｓ１２０）、ノズル割付フラグをセットしても（Ｓ１３０）、イメージバッファ４８に空がないので（Ｓ１４０で否定判定）、再びステップＳ１２０に戻る。
【００７０】
そして、１パス目の印字動作を終了すると、第三タスク部５５は印刷指示完了通知を行い、この印刷指示完了通知を受け付けたリアルタイムＯＳ５１は、Ready状態にある第二タスク部５４を起動する。図１２に示すステップＳ１２０で、印刷指示完了通知を受け付けたと判断すると、ステップＳ２９０に進んでノズル割付終了フラグがセットされているか否かを判断する。初めての印刷指示完了通知を受け付けた際は、ノズル割付終了フラグはステップＳ２６０でセットされているため、次にステップＳ３００に進んでノズル割付終了フラグをクリアした後、ステップＳ３１０で印刷指示通知を行う。この結果、第三タスク部５５が起動されてヘッド転送回路４４及びヘッド駆動回路３５が起動されることで、２パス目の印字動作が行われる。この２パス目の印字動作が開始されると、再び第二タスク部５４が起動され、ノズル割付指示通知を受け付けると、Ｓ１３０〜Ｓ２３０を繰り返し、３パス目のノズル割付・列間ずらし処理を行う。
【００７１】
３パス目１パス分の縦横変換処理が終了すると（Ｓ１９０で肯定判定）、Ｓ２４０〜Ｓ２６０の処理を経てＳ２７０で終了通知を行う。その後、ノズル割付指示通知があっても、イメージバッファ４８に空がなければ（Ｓ１４０で否定判定）、ノズル割付指示フラグセットするのみで（Ｓ１３０）、Ｓ１２０に戻る。その後、２パス目の印字動作が終了し、印刷指示完了通知を受け付けると、ノズル割付終了フラグがセットされているので（Ｓ２９０で肯定判定）、ノズル割付終了フラグをクリアした後（Ｓ３００）、印刷指示通知を行う（Ｓ３１０）。
【００７２】
こうして３パス目のノズル割付・列間ずらし処理を終了すると、この２パス目の印字動作中に第一タスク部５３による４パス目の記録データのコマンド解析・ラスタ管理処理も行われる。なお、最初に先行２パス分の縦横変換処理を完了してはじめて印字動作を開始させるのは、印字動作開始時にはその印字動作に必要なデータが全て揃った状態にあり、印字動作間に必要なデータの処理終了を待つための比較的長い待ち時間が発生することを回避するためである。
【００７３】
その後、２パス目の印字動作が完了して、印刷指示完了通知を受け付けると、先と同様にＳ２９０〜Ｓ３１０の処理を行って印字指示通知を行うことで、３パス目の印字動作が開始される。以下同様に処理が進められる。なお、ステップＳ３２０でノズル割付指示フラグがセットされているか否かを判断した場合、ノズル割付指示フラグがステップＳ２４０でクリアされた後、ノズル割付指示通知を受け付けてＳ１３０でノズル割付指示フラグがセットされていれば、Ｓ３２０でセットと判断されるためステップＳ１４０に進むが、ノズル割付指示フラグがセットされていなければステップＳ１２０に戻る。
【００７４】
次に本実施形態の効果の一つを図９と図１０を比較しつつ説明する。図９が比較的小さな用紙サイズ（例えば２Ｌ判サイズ）で印刷する例であるのに対し、図１０は比較的大きな用紙サイズ（例えばＡ２サイズ等の大判）で印刷する例である。なお、図１０は、図９における二点鎖線で囲まれた部分に相当する処理のみを示している。
【００７５】
前述のように、小さな用紙サイズで印刷を行う図９の例では、第二タスク部５４が２パス分のノズル割付・列間ずらし処理を終えた以後においては図１２のＳ１５０で肯定判定となり、縦横変換時間が大であるか否かを判断する（Ｓ１６０）。本例では、これを用紙サイズから判断しており、用紙サイズが規定サイズ（例えばＡ２サイズ）以上の大サイズであれば縦横変換時間が大であると判断する。しかし、図９の例では、用紙サイズが小さく規定サイズ未満なので、縦横変換時間が大ではないと判断される。この結果、縦横変換回路４３の処理終了まで待機する（Ｓ１８０）。このように仮に待ち時間が発生したとしても比較的短く済む場合は、第二タスク部５４はリアルタイムＯＳ５１に縦横変換終了待ち通知を行うことなく待機する。その結果、仮に待ちができてもタスクの切り換えは行われない。例えば待ち時間が比較的短いにも関わらず、待ちが発生したためタスクが切り換えられたとすると、タスク切り換え処理がリアルタイムＯＳ５１のオーバーヘッドとなり、これが原因で返って処理時間の長時間化をもたらす。しかし、本実施形態の構成では、縦横変換時間が大ではない場合、タスクの切り換えが行われないので、リアルタイムＯＳ５１のタスク切り換えに起因するオーバーヘッドの発生を回避してデータ処理時間を短く済ませられる。
【００７６】
一方、大きな用紙サイズで印刷を行う図１０の例では、第二タスク部５４が１パス分のノズル割付・列間ずらし処理を終えた後、用紙サイズが規定サイズ（例えばＡ２サイズ）以上なので、縦横変換時間が大であると判断される（Ｓ１６０）。このため、リアルタイムＯＳ５１に縦横変換終了待ち通知を行う（Ｓ１７０）。この結果、その縦横変換終了待ち通知を受け付けたリアルタイムＯＳ５１は、そのときReady状態にある第一タスク部５３を起動させて実行タスクの切り換えを行う。つまり、縦横変換時間が大であるため比較的長い待ち時間が発生すると判断された場合、図１０に示すように第二タスク部５４によるノズル割付・列間ずらし処理を終えた後、縦横変換回路４３の処理終了までの待ち時間を利用して、第一タスク部５３による次パスの記録データのコマンド解析・ラスタ管理処理が行われる。このため、タスク切り換え処理が発生するものの、比較的長い待ち時間を他のタスク処理に有効に活用でき、全体的にデータ処理時間を効果的に短縮できる。なお、本実施形態では、第二タスク部５４がリアルタイムＯＳ５１に対して行う通知ＳＣの有無と、リアルタイムＯＳ５１が通知ＳＣを受け付けると他のタスク部に切り換える切り換え機能とにより、切換手段が構成される。
【００７７】
以上説明したように、この第一実施形態によれば以下の効果を得ることができる。
（１）縦横変換時間が大であると判断した場合は、縦横変換終了待ち通知を行ってタスク切り換えを行い、一方、縦横変換時間が大ではない判断した場合は、縦横変換終了待ち通知を行うことなく縦横変換回路４３の処理終了を待つ構成とした。よって、待ち時間が比較的長い場合は、タスク切り換えによりその待ち時間を他のタスクの実行に有効に活用でき、その一方で、待ち時間が比較的短い場合は、リアルタイムＯＳ５１のオーバーヘッドの原因となるタスク切り換えが行われないので、タスク切り換えに起因するオーバーヘッドによって返ってデータ処理時間を短縮できなくなる事態を回避できる。
【００７８】
（２）縦横変換時間が大であるか否かの判断を用紙サイズに基づき行う構成としたので、比較的簡単にかつ適切にその判断を行うことができる。
（３）本実施形態では、ノズル割付処理を、縦横変換回路４３へ起動指示を出す第二タスク部５４により列間ずらし処理と共に一緒に行うようにした。このため、縦横変換回路４３への指示を行うタスクに列間ずらし処理だけを行わせる構成に比べ、第二タスク部５４の処理時間が長くなるので、第二タスク部５４の処理終了時点で、図１０に示すように、縦横変換回路４３が既に処理を終了している頻度が高くなる。よって、この種のハードウェア処理の終了を待つ待機時間ができたことが原因でタスクの切り換わりが発生し、この種のタスク切り換わりが原因でリアルタイムＯＳ５１にオーバーヘッドが発生したことに起因してデータ処理時間が長くなる事態を効果的に回避することができる。
【００７９】
（４）本実施形態では、１パスを複数分割（本例では２分割）し、分割パス毎に、ノズル割付・パス分解処理を行い、この処理を分割数と同じ回数だけ繰り返すことで、１パス分のノズル割付・パス分解処理を完成させる構成としている。このため、第二タスク部５４の処理終了後に縦横変換回路４３の処理終了を待つ待機時間が相対的に短くなる。よって、この種の待機時間ができても、待機時間が短いため、タスクの切り換わりを回避できる。従って、タスクの切り換わりに起因するリアルタイムＯＳ５１のオーバーヘッドの発生を回避して、処理時間を比較的短時間で済ませられる。
【００８０】
前記実施形態は上記に限定されず、以下の態様に変更することもできる。
（変形例１）縦横変換時間が大であるか否かの判断を廃止してもよい。この場合、１パス分のノズル割付・列間ずらし処理を終了した後、縦横変換回路終了待ちが発生した際は、常に第二タスク部５４から第一タスク部５３へのタスク切り換えが発生するが、ノズル割付処理と列間ずらし処理とを同一タスクで行う構成としたことから、第二タスク部５４の処理終了の際に縦横変換回路４３が既に処理終了状態になる頻度が、ノズル割付処理が第一タスク部５３で行われる構成に比べ相対的に高くなる。このため、タスク切り換わり頻度を減らすことができ、タスク切り換え処理がリアルタイムＯＳ５１のオーバーヘッドとなり、返ってデータ処理時間の短縮できなくなる事態を回避し易くなる。
【００８１】
（変形例２）縦横変換時間（並替処理時間）が大であるか否かの判断に用いる用紙サイズを取得する方法は、コマンド解析で印刷設定条件情報の一つである用紙サイズを取得する方法に限定されない。例えばプリンタ１１に設けられた紙幅センサが検出した紙幅サイズが規定値以上でるか否かを判断し、紙幅サイズが規定値以上であれば縦横変換時間が大であり、規定値未満であれば縦横変換時間が大ではないと判定する構成も採用できる。
【００８２】
（変形例３）縦横変換時間（並替処理時間）が大であるか否かの判断方法は、用紙サイズから判断する方法に限定されない。例えばコマンド解析時にパス毎の記録データのデータ長（データサイズ）を取得し、１回の縦横変換が行われる単位当たりの記録データのデータ長が規定値以上であれば、縦横変換時間が大であると判定する構成も採用できる。
【００８３】
（変形例４）切換手段は、第二タスク部５４（第二タスク）がリアルタイムＯＳ５１への終了通知の有無により、他のタスクへのタスク切り換えと待機とを選択する構成に限定されない。例えばファームウェアプログラムを実行するＣＰＵにより切換手段が構成され、ノズル割付・列間ずらし処理部に待ちが発生した場合、待ち時間が規定以上発生するか否かを判定し、規定時間以上の待ちが発生すると判定した場合は他の処理部の処理に切り換える構成でも構わない。
【００８４】
（変形例５）前記実施形態では、１パスを複数分割し、分割パスごとにノズル割付処理・列間ずらし処理を施す構成としたが、分割することなく１パス単位でノズル割付処理・列間ずらし処理を施す構成としてもよい。
【００８５】
（変形例６）判定手段の判定タイミングは、第二タスク部５４の切り換えのタイミングに間に合う限りにおいて適宜な時期に設定できる。例えば処理終了前に事前に判断しておき、待ち時間が規定時間以上発生すると判定されていた場合は、処理終了後直ちに終了通知を行う構成としてもよい。
【００８６】
（変形例７）前記実施形態では、記録装置をインクジェット式記録装置に具体化したが、この限りではなく、インク以外の他の流体（液体や、機能材料の粒子が液体に分散又は混合されてなる液状体、ゲルのような流状体、流体として流して吐出できる固体を含む）を吐出したりするシリアル式の液体吐出装置に具体化することもできる。例えば、液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ及び面発光ディスプレイの製造などに用いられる電極材や色材（画素材料）などの材料を分散または溶解のかたちで含む液状体を吐出する液状体吐出装置、バイオチップ製造に用いられる生体有機物を吐出する液体吐出装置、精密ピペットとして用いられ試料となる液体を吐出する液体吐出装置であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を吐出する液体吐出装置、光通信素子等に用いられる微小半球レンズ（光学レンズ）などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に吐出する液体吐出装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を吐出する液体吐出装置、ゲル（例えば物理ゲル）などの流状体を吐出する液状体吐出装置であってもよい。そして、これらのうちいずれか一種のシリアル式の液体吐出装置に本発明を適用できる。
【００８７】
（変形例８）インクジェット式記録装置に限定されない。ドットインパクトプリンタや熱転写プリンタに適用してもよい。例えばドットインパクトプリンタの場合、記録用のピン（ワイヤ）を個々に駆動させる駆動素子が記録素子に相当する。また、シリアルプリンタに限定されず、記録素子を色別など複数列備えた記録部を有するラインプリンタやページプリンタに適用してもよい。例えば、レーザープリンタの場合、ドラム（感光体）にレーザーを照射するレーザー発光部（露光装置）を構成するＬＥＤ（発光ダイオード）やＬＣＳ（液晶シャッター）が記録素子に相当し、ＬＥＤ列やＬＣＳ列が記録素子の列に相当する。
【００８８】
前記実施形態及び各変形例から把握される技術的思想を以下に記載する。
（１）前記記録手段はシリアル記録方式のものであり、前記処理部を第二処理部とした場合、前記記録データ中のコマンドを解析するコマンド解析処理をソフトウェア処理で行う第一処理部と、前記記録データを構成する画素データを前記記録手段の記録時における一回の移動であるパス毎に分解するパス分解回路とをさらに備え、前記第二処理部と前記並替回路との並列処理に対する上流側の処理として、前記第一処理部と前記パス分解回路とを並列処理で行うことを特徴とする請求項１乃至５のいずれか一項に記載のデータ処理装置。
【００８９】
（２）前記判定手段は、前記記録手段が記録を施す記録媒体の媒体サイズを取得し、該媒体サイズに基づき前記待ち時間が前記規定時間以上発生するか否かを判定することを特徴とする請求項２又は３に記載のデータ処理装置。
【００９０】
（３）前記判定手段は前記記録データの処理単位当たりのデータ長を取得し、該データ長に基づいて前記待ち時間が前記規定時間以上発生するか否かを判定することを特徴とする請求項２又は３に記載のデータ処理装置。
【図面の簡単な説明】
【００９１】
【図１】一実施形態におけるプリンタの構成を示す斜視図。
【図２】吐出駆動素子と共に示す記録ヘッドの模式底面図。
【図３】プリンタにおいて記録系のデータ処理に係る電気的構成を示すブロック図。
【図４】データ処理装置を示すブロック図。
【図５】シリアル印刷方式の記録ヘッドとインクドットとの対応関係を示す模式図。
【図６】データ処理の手順を説明する模式図。
【図７】（ａ），（ｂ）列間ずらしを説明するための模式側面図。
【図８】列間ずらしを反映させた縦横変換処理を説明する模式図。
【図９】小さな用紙サイズで印刷する際のデータ処理に係るトランザクション図。
【図１０】大きな用紙サイズで印刷する際のデータ処理に係るトランザクション図。
【図１１】コマンド解析・ラスタ管理処理を示すフローチャート。
【図１２】ノズル割付・列間ずらし処理を示すフローチャート。
【符号の説明】
【００９２】
１１…記録装置としてのプリンタ、１４…キャリッジ、１８…ＣＲモータ、１９…記録手段としての記録ヘッド、１９Ｋ，１９Ｃ，１９Ｍ，１９Ｙ…ノズル、２５…ＰＦモータ、２８…記録素子としての吐出駆動素子、３０…コントローラ、３１…ＣＰＵ、３２…ＡＳＩＣ、３３…ＲＯＭ、３４…ＲＡＭ、３５…ヘッド駆動回路、４１…データ受信回路、４２…データ解凍・パス分解回路、４３…並替回路としての縦横変換回路、４４…ヘッド転送回路、４６…入力バッファ、４７…プレーンバッファ、４８…イメージバッファ、５０…データ処理装置、５１…リアルタイムＯＳ、５２…ファームウェア部、５３…第一タスク部（コマンド解析・ラスタ管理部）、５４…第二タスク部、５５…第三タスク部、５６…判定部、５７…フラグ、６１…機能処理部、６２…スケジューラ、６３…タスク管理部、６４…ディスパッチ部、８０…ホスト装置、Ｔwait…待ち時間、Ｔo…規定時間、Ｔ…縦横変換時間、Ｔc…規定時間、Ｐ…記録媒体としての用紙、Ｙ…搬送方向。
【図１】
2009285996.tif 000003
【図２】
2009285996.tif 000004
【図３】
2009285996.tif 000005
【図４】
2009285996.tif 000006
【図５】
2009285996.tif 000007
【図６】
2009285996.tif 000008
【図７】
2009285996.tif 000009
【図８】
2009285996.tif 000010
【図９】
2009285996.tif 000011
【図１０】
2009285996.tif 000012
【図１１】
2009285996.tif 000013
【図１２】
2009285996.tif 000014