(57)【要約】【課題】複数のＣＰＵを備えたプリンタにおいて、ＣＰＵ間の負荷の偏りを緩和し、処理効率を向上する。【解決手段】プリンタ１００は、メインデータ処理装置１１０、サブデータ処理装置１３０を備える。メインデータ処理装置１１０は、ＸＨＴＭＬ−ｐｒｉｎｔで記述された文書データを解釈しラスタデータを共有メモリ１２０に書き込む。サブデータ処理装置１３０は、共有メモリ１２０からラスタデータを読み出し、色変換処理、ハーフトーン処理を行って、印刷を実行する。各データ処理装置の処理内容を、文書データの解釈という高度な処理と、ラスタデータという大量なデータの処理とに分けることにより、処理効率を向上させることができる。【選択図】　図１
2004098636.tif 000002
【特許請求の範囲】
【請求項１】
文書データプリンタであって、
文書データを入力し、該文書データから印刷データを生成する一連のデータ処理のうち相対的に高度な処理を行う第１のデータ処理装置と、
前記一連のデータ処理のうち残余の処理を行う第２のデータ処理装置と、
前記第１のデータ処理装置、第２のデータ処理装置間で、データを受け渡すデータ伝達部と、
該生成された印刷データに基づいて印刷を実行する印刷部とを備えるプリンタ。
【請求項２】
請求項１記載のプリンタであって、
前記文書データは、印刷言語で生成されており、
前記第１のデータ処理装置は、前記文書データを解釈してラスタデータを生成し、
前記第２のデータ処理装置は、前記ラスタデータを前記印刷データに変換するプリンタ。
【請求項３】
請求項２記載のプリンタであって、
前記第１のデータ処理装置は、前記文書データ中の文字データに基づく文字ラスタデータの生成と、前記文書データ中の画像データに基づく該文字ラスタデータとは別に画像ラスタデータの生成を行い、
前記第２のデータ処理装置は、前記文字ラスタデータと前記画像ラスタデータとを合成して前記印刷イメージデータを生成するプリンタ。
【請求項４】
請求項１記載のプリンタであって、
前記データ伝達部は、前記第１のデータ処理装置と前記第２のデータ処理装置とが共有するメモリであるプリンタ。
【請求項５】
請求項４記載のプリンタであって、
前記メモリには、複数の共有領域が設けられ、
前記第１のデータ処理装置および第２のデータ処理装置は、両者が同時に同じ共有領域を使用しない条件下で、前記複数の共有領域を順次切り替えて使用するプリンタ。
【請求項６】
請求項５記載のプリンタであって、
前記第１のデータ処理装置は、前記文書データ中の文字データに基づく文字ラスタデータの生成と、前記文書データ中の画像データに基づく該文字ラスタデータとは別に画像ラスタデータの生成を行い、
前記各共有領域には、前記文字ラスタデータを格納する文字プレーン及び前記画像ラスタデータを格納する画像プレーンがそれぞれ設けられているプリンタ。
【請求項７】
請求項２記載のプリンタであって、
前記第２のデータ処理装置は、前記ラスタデータの各画素の色変換、ハーフトーン処理、前記印刷部の制御の少なくとも一部のデータ処理を実行し、該データ処理の少なくとも一部はハードウェア回路として実装されているプリンタ。
【請求項８】
プリンタであって、
第１および第２のデータ処理装置と、
前記第１および第２のデータ処理装置間で、データの授受を行うデータ伝達部と、
所定形式の印刷データに基づいて印刷を実行する印刷機構とを備え、
前記第１のデータ処理装置は、
印刷言語で記述された文書データを入力する文書データ入力部と、
該印刷言語を解釈する解釈部とを備え、
前記第２のデータ処理装置は、
前記解釈結果に基づいて、前記印刷データを生成するデータ生成部と、
該印刷データに基づいて、前記印刷機構を制御する印刷制御部とを備えるプリンタ。
【請求項９】
請求項８記載のプリンタであって、
前記解釈部は、前記解釈に基づき、画素ごとに階調値が規定されたラスタデータを生成するプリンタ。
【請求項１０】
請求項８または請求項９記載のプリンタであって、
前記文書データは、前記印刷言語において印刷内容を指定する方法が異なる複数種類の文書構成要素を含み、
前記解釈部は、該文書構成要素ごとに前記解釈結果を出力し、
前記データ生成部は、各文書構成要素の解釈結果を合成して、前記印刷データを生成するプリンタ。
【請求項１１】
請求項１０記載のプリンタであって、
前記複数種類の文書構成要素は、少なくとも画像と文字とを含むプリンタ。
【請求項１２】
請求項８記載のプリンタであって、
前記データ伝達部は、前記第１および第２のデータ処理装置が共有する共有メモリを有するプリンタ。
【請求項１３】
請求項１２記載のプリンタであって、
前記共有メモリには、複数の共有領域が設けられ、
前記第１のデータ処理装置および第２のデータ処理装置は、両者が同時に同じ共有領域を使用しない条件下で、前記複数の共有領域を順次切り替えて使用するプリンタ。
【請求項１４】
請求項１３記載のプリンタであって、
前記解釈部は、前記文書データを、該文書データよりも小さい複数の文書領域に分割し、該文書領域ごとに前記いずれかの共有領域に解釈結果を出力し、
前記第２のデータ処理装置は、該文書領域単位で前記印刷データを生成するプリンタ。
【請求項１５】
請求項１３記載のプリンタであって、
前記共有領域のサイズは、前記文書データに応じて動的に設定可能であるプリンタ。
【請求項１６】
請求項１５記載のプリンタであって、
前記第１のデータ処理装置は、前記文書データに基づき、前記印刷データのサイズに関連する所定の情報を前記第２のデータ処理装置に送信し、
前記第２のデータ処理装置は、該情報に基づいて、前記共有領域のサイズを設定するとともに、該設定結果を前記第１のデータ処理装置に送信するプリンタ。
【請求項１７】
請求項１２記載のプリンタであって、
前記第１または第２のデータ処理装置は、該データ処理装置の管理下にあるハードウェアの動作状態を表すステータス情報を前記共有メモリに書き込むステータス情報出力部を備えるプリンタ。
【請求項１８】
請求項１７記載のプリンタであって、
前記ステータス情報出力部は、前記ステータス情報が他方のデータ処理装置によって未参照状態にあることを示すフラグデータを、前記ステータス情報に添付し、
該他方のデータ処理装置は、該ステータス情報を参照するとともに、前記フラグデータを、既参照状態に変更するステータス参照部を備えるプリンタ。
【請求項１９】
請求項１７記載のプリンタであって、
前記第１または第２のデータ処理装置は、該データ処理装置の管理下にあるハードウェアの動作状態に応じて、他方のデータ処理装置に所定の動作を要求する動作要求情報を、該他方のデータ処理装置に強制的に読み込ませる動作要求情報送信部を備えるプリンタ。
【請求項２０】
請求項８記載のプリンタであって、
前記第１および第２のデータ処理装置は、
それぞれのデータ処理装置に対応づけられるとともに、他方のデータ処理装置から書込可能なレジスタと、
該レジスタに書き込まれた所定のコマンドを解釈するコマンド解釈部と、
該他方のデータ処理装置に対応づけられたレジスタへのコマンドの書込によって、他方のデータ処理装置の動作を制御する動作制御部とを備えるプリンタ。
【請求項２１】
請求項２０記載のプリンタであって、
前記データ伝達部は、前記第１および第２のデータ処理装置が共有する共有メモリを有し、
前記第１および第２のデータ処理装置の一方は、他方のデータ処理装置に受け渡すべきデータを前記共有メモリに書き込んだ後、前記動作制御部により、該書き込んだデータの読み出しを指示するコマンドを、前記他方のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
【請求項２２】
請求項２１記載のプリンタであって、
前記コマンドは、前記データの種類に応じて設定されているプリンタ。
【請求項２３】
請求項２１記載のプリンタであって、
前記共有メモリには、複数の共有領域が設定されており、
前記第１のデータ処理装置において、
前記解釈部は、前記文書データを該文書データよりも小さい複数の文書領域に分割し、該文書領域ごとに前記いずれかの共有領域に解釈結果を出力し、
前記動作制御部は、前記解釈結果を出力した共有領域に固有のコマンドを前記第２のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
【請求項２４】
請求項２１記載のプリンタであって、
前記第１のデータ処理装置において、
前記解釈部は、前記文書データを該文書データよりも小さい複数の文書領域に分割し、該文書領域ごとに前記いずれかの共有領域に解釈結果を出力し、
前記動作制御部は、該文書領域に余白が含まれる場合には、前記印刷機構が印刷を実行すべき位置を、該余白に応じて移動させるためのコマンドを前記第２のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
【請求項２５】
請求項８記載のプリンタであって、
前記印刷機構は、多色のドットを形成して多色印刷を行う機構であり、
前記データ生成部は、前記解釈結果で用いられる表色系から前記印刷機構が取り扱う表色系への色変換処理、ハーフトーン処理の少なくとも一方を行うプリンタ。
【請求項２６】
請求項２５記載のプリンタであって、
前記データ生成部は、前記色変換処理、ハーフトーン処理の少なくとも一方を実行する回路を備えるプリンタ。
【請求項２７】
請求項２６記載のプリンタであって、
前記データ伝達部は、
前記第１および第２のデータ処理装置が共有する共有メモリと、
前記第１のデータ処理装置と該共有メモリとを接続する第１のデータ転送路と、
前記第２のデータ処理装置と該共有メモリとを接続し、前記第１のデータ転送路よりも転送速度が速い第２のデータ転送路とを有するプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータ処理装置を備えたプリンタに関する。
【０００２】
【従来の技術】
従来、インクジェットプリンタ等のプリンタは、パーソナルコンピュータ等で生成された文書データに基づいて印刷を行う。
これらのプリンタには、高級な印刷言語で記述された文書データを解釈して印刷を行うことができるインテリジェンスプリンタと呼ばれるものがある。
インテリジェンスプリンタは、印刷言語で記述された文書データを解釈して印刷データを生成するため、高いデータ処理能力が求められることが多い。データ処理能力を向上するため、ＣＰＵを複数搭載し、複数のＣＰＵによってデータ処理作業を分担させる場合がある（例えば、特許文献１）。
【０００３】
【特許文献１】
特開平１１−２４９８４３号公報
【０００４】
【発明が解決しようとする課題】
複数のＣＰＵを搭載したプリンタでは、従来、一方のＣＰＵが印刷データを生成し、他方のＣＰＵはプリントエンジンの駆動制御を受け持つことが多かった。かかる構成では、印刷データを生成する側のＣＰＵの方が処理負担が大きかった。ＣＰＵの処理負担の偏りは、ＣＰＵコストの増加を招くとともに、効率的な印刷処理を阻害することがあった。本発明は、上記課題に鑑みてなされたもので、複数のデータ処理装置を搭載したプリンタにおいて、各データ処理装置のデータ処理負担を調整し、処理の効率化を図ることを目的とする。
【０００５】
【課題を解決するための手段およびその作用・効果】
本発明のプリンタは、第１のデータ処理装置、第２のデータ処理装置、両者間でデータを受け渡すデータ伝達部を備える。第１のデータ処理装置は、文書データから印刷データを生成する一連の処理のうち相対的に高度なデータ処理を行う。第２のデータ処理装置は、残余の処理を行う。第１，第２のデータ処理装置は、ＣＰＵ単体で構成してもよいし、ＣＰＵ、ＲＯＭ，ＲＡＭ、入出力ポート等を含んだマイクロコンピュータとして構成してもよい。ＡＳＩＣのように専用的な回路としてもよい。
【０００６】
一般に、文書データから印刷データを生成するまでの一連の処理は、高度な処理と、それほど高度な処理ではないが処理対象となるデータ量が膨大にある処理に大別されることが多い。本発明では、各データ処理装置の処理内容を、相対的に高度な処理とその他の処理に分散させる。これにより、第１，第２のデータ処理装置のいずれか一方に過度の負担が生じるのを防止することができる。
【０００７】
例えば、文書データが印刷言語で生成されている場合、第１のデータ処理装置は、文書データを解釈してラスタデータを生成し、第２のデータ処理装置は、このラスタデータを印刷データに変換するように、各データ処理機能を分散させることができる。ここで、ラスタデータとは、ビットマップデータなど画素単位で階調値を規定することで印刷すべき画像を表したデータを意味する。
【０００８】
上述の印刷言語には、例えば、ポストスクリプトやＸＨＴＭＬ−ｐｒｉｎｔ（拡張可能なハイパーテキストマークアップ言語で記述された印刷コマンド）等の高級な印刷言語が含まれる。第１のデータ処理装置は、印刷言語の各印刷コマンドを解釈してラスタデータを生成するという高度なデータ処理を実施する。第２のデータ処理装置は、ラスタデータを印刷データに変換するという比較的機械的だが、データ量が膨大な処理を実施する。
【０００９】
本発明において、第１のデータ処理装置におけるラスタデータの生成は、文書データ中の文字データと文書データ画像データとを別に扱い、文字ラスタデータ、画像ラスタデータとを個別に生成するようにしてもよい。第２のデータ処理装置は、文字ラスタデータと画像ラスタデータとを合成して印刷イメージデータを生成する。このように文字ラスタデータと画像ラスタデータとを別個に生成することにより、文字、画像の特徴を活かしたデータ生成を行うことができる。例えば、一般に文字は画像に比較して使用される色数が少ないことが多いため、この特徴を活かして文字ラスタデータの色数を低減し、データサイズを低減させることができる。
【００１０】
第１のデータ処理装置と第２のデータ処理装置のデータ伝達には、互いに共有するメモリを用いることができる。パラレルインターフェース、シリアルインターフェース、その他のバスによってデータ通信を行っても構わない。通信による場合には、第１のデータ処理装置と第２のデータ処理装置は、各データ処理装置に固有のバッファからデータを読み出し、通信し、他方のバッファへ書き込む処理を繰り返し実行する必要がある。これに対し、共有されるメモリを用いれば、一方のデータ処理装置が書き込んだデータを、他方のデータ処理装置が読み出すことにより、短時間でデータを受け渡すことができる利点がある。一般に、ラスタデータはデータ量が膨大であるため、この時間短縮による効果は大きい。
【００１１】
共有メモリには、複数の共有領域を設け、第１のデータ処理装置および第２のデータ処理装置は、両者が同時に同じ共有領域を使用しない条件下で、これらの共有領域を順次切り替えて使用してもよい。
【００１２】
こうすることで、例えば、一方のデータ処理装置がある共有領域にデータを書き込んでいる間に、他方のデータ処理装置は、別の共有領域からデータを読み出して処理することができる。このように複数の共有領域を切り替えながら使用することにより、効率的なデータの受け渡しを行うことができる。
【００１３】
さらに、文字ラスタデータと画像ラスタデータとを個別に生成する場合には、各共有領域には、文字ラスタデータを格納する文字プレーンと画像ラスタデータを格納する画像プレーンとをそれぞれ設けることが好ましい。
【００１４】
例えば、ＸＨＴＭＬ−ｐｒｉｎｔのように、文字と画像を別々に記述する印刷言語によって文書データが生成されている場合、文字のラスタデータと画像のラスタデータとをそれぞれ別々に生成し、各プレーンに格納させる。これにより、文字ラスタデータと画像ラスタデータとの合成を容易に行うことができる。
【００１５】
本発明において、第２のデータ処理装置は、例えば、ラスタデータの各画素の色変換、ハーフトーン処理、印刷部の制御の少なくとも一部のデータ処理を実行させることができる。かれらの処理は、それほど高度ではないがデータ量が膨大となる処理であるため、データ処理機能の少なくとも一部をハードウェア回路として実装することが好ましい。
【００１６】
例えば、色変換機能やハーフトーニング機能等をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）のようなハードウェア回路して構成し、第２のデータ処理装置に実装することができる。
【００１７】
本発明のプリンタは、第２の態様として、次の構成を採っても良い。第１のデータ処理装置は、印刷言語で記述された文書データを入力し、その印刷言語を解釈する。第２のデータ処理装置は、解釈結果に基づいて印刷データを生成し、その印刷データに基づいて印刷機構を制御する。このような処理分担でも、それぞれのデータ処理装置の負荷の偏りを緩和することができ、処理の効率化を図ることができる。解釈結果は、例えば、ラスタデータとして出力することができる。
【００１８】
第２の態様において、文書データが、複数種類の文書構成要素を含んでいる場合、第１のデータ処理装置は、文書構成要素ごとに解釈結果を出力してもよい。文書構成要素とは、印刷言語において印刷内容を指定する方法が異なる要素を意味し、例えば、文字、画像、表などが挙げられる。第２のデータ処理装置で、各文書構成要素の解釈結果を合成すればよい。こうすることにより、第１のデータ処理装置、第２のデータ処理装置間のデータの受け渡し時に、各文書構成要素の特徴を活かすことができる。例えば、一般に文字は画像に比較して使用される色数が少ないことが多いため、この特徴を活かして文字ラスタデータの色数を低減し、データサイズを低減させることができる。
【００１９】
第２の態様においても、データ伝達部は、パラレルインターフェース、シリアルインターフェース、その他のバスを用いる他、第１および第２のデータ処理装置が共有する共有メモリとしてもよい。特に、ラスタデータのように膨大なデータの場合、データ授受の効率という観点で共有メモリが適している。
【００２０】
共有メモリを用いる場合、複数の共有領域を定義し、第１のデータ処理装置および第２のデータ処理装置でこれらの複数の共有領域を順次切り替えて使用してもよい。この場合、両者が同時に同じ共有領域を使用しない条件下で切り換えることが好ましい。
【００２１】
共有領域を切り換えて使用する場合、文書データを、文書データよりも小さい複数の文書領域に分割して処理を進めることが好ましい。例えば、第１のデータ処理装置が、文書領域ごとにいずれかの共有領域に解釈結果を出力し、第２のデータ処理装置が、文書領域単位で印刷データを生成することができる。こうすることにより、複数の共有領域を効率的に使用して、処理の効率化を図ることができる。文書領域は、種々の設定が可能である。例えば、主走査、副走査を繰り返して印刷を行う印刷機構を用いる場合には、文書領域は、文書データを副走査方向にのみ分割して定義されるデータとすることにより、印刷を効率的に行うことができる点で好ましい。
【００２２】
共有領域のサイズは、文書データに応じて動的に設定可能とすることが好ましい。共有領域の数を動的に設定可能としてもよい。こうすることにより、共有メモリの資源を有効に活用することができる。
【００２３】
共有領域のサイズの設定は、第１および第２のデータ処理装置のいずれで行っても良い。第２のデータ処理装置で行う場合には、第１のデータ処理装置から、文書データに基づき、印刷データのサイズに関連する所定の情報を第２のデータ処理装置に送信し、第２のデータ処理装置は、この情報に基づいて、共有領域のサイズを設定するという手順を採ることになる。第２のデータ処理装置が、設定結果を第１のデータ処理装置に送信することにより、共有領域を双方のデータ処理装置で利用可能となる。
【００２４】
共有メモリを用いる場合、第１または第２のデータ処理装置は、データ処理装置の管理下にあるハードウェアの動作状態を表すステータス情報を共有メモリに書き込むようにしてもよい。つまり、印刷に関連するデータの授受だけでなく、ステータス情報の授受に共有メモリを使用してもよい。いずれか一方のデータ処理装置から他方のデータ処理装置へのステータス通知にのみ利用してもよいし、双方向の通知に利用してもよい。
【００２５】
このように共有メモリを介してステータス情報を受け渡す場合、受け取り側のデータ処理装置は、ステータス情報が書き込まれたタイミングとは無関係に、任意のタイミングで情報を参照することができる。従って、受け取り側の処理が妨げられないという利点がある。書き込み側は、ステータス情報が読み取られたか否かに関わらず、頻繁にステータス情報を更新することにより、情報のリアルタイム性を比較的容易に確保することもできる。このように共有メモリを介して受け渡すのに適したステータス情報としては、例えば、データ処理装置のスリープ状態、印刷機構のレディ状態、ビジー状態、種々のエラー、インクや用紙などの消耗品不足などが挙げられる。
【００２６】
共有メモリを介してステータス情報の授受を行う場合、ステータス情報が他方のデータ処理装置によって未参照状態にあることを示すフラグデータを添付してステータス情報を書き込むようにしてもよい。受け取り側のデータ処理装置は、このフラグデータに基づいて、ステータス情報が更新されたか否かを判断することができる。また、受け取り側のデータ処理装置が、ステータス情報を参照するとともに、フラグデータを既参照状態に変更するようにしてもよい。こうすることで、書き込み側のデータ処理装置は、ステータス情報が相手に参照されたか否かを判断することができる。
【００２７】
データ処理装置間で授受する情報には、その管理下にあるハードウェアの動作状態に応じて、他方のデータ処理装置に所定の動作を要求する動作要求情報が含まれる場合がある。例えば、リモコンのスイッチを管理しているデータ処理装置は、スイッチの操作状態に応じてインク交換、用紙の切換、排紙、電源のオン・オフなどの動作を実現するため、他方のデータ処理装置に動作要求情報を送信する必要が生じることがある。かかる動作要求情報については、共有メモリに単に書き込むだけでなく、他方のデータ処理装置に強制的に読み込ませる動作要求情報送信部を別途設けることが好ましい。例えば、共有メモリを介さずに、他方のデータ処理装置に直接、動作要求情報を送信する方法を採ってもよい。共有メモリに動作要求情報を書き込んだ後、他方のデータ処理装置に対して、その動作要求情報を強制的に読み取らせる信号を送信する方法を採ってもよい。
【００２８】
第２の態様において、第１および第２のデータ処理装置が連携を保って動作するためには、各データ処理装置が、それぞれ他方の動作を制御可能とすることが好ましい。例えば、第１および第２のデータ処理装置は、それぞれ、データ処理装置に対応づけられたレジスタの少なくとも一部を、他方のデータ処理装置から書込可能としてもよい。各データ処理装置は、自己に対応づけられたレジスタに書き込まれた所定のコマンドを解釈して動作可能である。また、他方のデータ処理装置に対応づけられたレジスタにコマンドを書き込むことによって、他方のデータ処理装置の動作を制御することも可能となる。第１および第２のデータ処理装置が共にアクセス可能なメモリ領域をレジスタとして用いても良い。
【００２９】
コマンドによる動作の制御は、例えば、共有メモリを用いたデータの受け渡しに適用することができる。まず、第１および第２のデータ処理装置の一方は、他方のデータ処理装置に受け渡すべきデータを共有メモリに書き込む。その後、書き込んだデータの読み出しを指示するコマンドを、他方のデータ処理装置に対応づけられたレジスタに書き込むことにより、データの読み込みを行わせることができる。この方法を採ることにより、共有メモリへの書き込みを定期的に監視するなどの煩雑な方法を採るまでなく、速やかにデータの受け渡しを実現することができる。
【００３０】
上述の方法で共有メモリを用いてデータの受け渡しを行う場合、コマンドは、データの種類に応じて設定しておくことが好ましい。こうすることにより、共有メモリからのデータの読み出しを開始する前に、データの内容を知ることができるため、データの種類に応じた処理を速やかに実現することができる。また、共有メモリには、データの種類を特定する情報等を書き込む必要がなくなるから、資源を節約することもできる。
【００３１】
共有メモリに、複数の共有領域が設定されている場合には、データの種類だけでなく、書き込みを行った共有領域に固有のコマンドを用いることも好ましい。例えば、第１のデータ処理装置は、文書領域ごとにいずれかの共有領域に解釈結果を出力し、出力先の共有領域に固有のコマンドを第２のデータ処理装置に対応づけられたレジスタに書き込む。こうすることにより、第２のデータ処理装置は、いずれの共有領域にデータが格納されているかを速やかに知ることができるため、データ読み出しの時間を短縮することができる。
【００３２】
データ処理装置間でやりとりされるコマンドは、多種多様なものを定義することができる。例えば、第１のデータ処理装置が、第２のデータ処理装置を介して印刷機構を制御するためのコマンドを定義してもよい。つまり、第１のデータ処理装置は、文書領域に余白が含まれる場合には、印刷機構が印刷を実行すべき位置を、余白に応じて移動させるためのコマンドを送信するようにしてもよい。こうすることにより、余白に対応する印刷データの生成処理を行うまでなく、効率的に印刷を行うことができる。主走査および副走査を行って印刷する印刷機構を用いている場合、移動量は、主走査方向に移動させるべき画素数、副走査方向に移動させるべきラスタ数などによって指定することができる。
【００３３】
先に説明したステータス情報や動作要求情報を共有メモリに書き込んだ上で、これらの情報を読み取らせるための読取コマンドを設定してもよい。この場合、ステータス情報や動作要求情報は、印刷に関連する処理とは無関係に種々のタイミングで書き込まれるとともに、即時応答が要求される場合がある。これらの情報を円滑に読みとらせるため、データ処理装置間でコマンドを送信するチャンネルを複数設け、読取コマンドと印刷に関連するコマンドは別チャンネルで送信するものとしてもよい。
【００３４】
第２の態様において、第２のデータ処理装置は、印刷データを生成するために種々の処理を行う。印刷機構は、多色のドットを形成して多色印刷を行う機構である場合には、これらの処理には、色変換処理、ハーフトーン処理の少なくとも一方を含めることができる。色変換処理とは、第１のデータ処理装置から出力される解釈結果で用いられている表色系から、印刷機構が取り扱う表色系への変換処理を言う。ハーフトーン処理とは、多階調を表現するように、印刷機構が各画素ごとに形成可能なドットの分布を決定する処理を言う。
【００３５】
色変換処理やハーフトーン処理は、画素ごとの処理となるため、比較的、単純な処理である一方、処理すべきデータ量が非常に多い。従って、色変換処理、ハーフトーン処理の少なくとも一方は、いわゆるＡＳＩＣなど、ハードウェア的に用意された回路で実行することが好ましい。
【００３６】
第２の態様において、第２のデータ処理装置と共有メモリとを接続するデータバスその他のデータ転送路の転送速度は、第１のデータ処理装置と共有メモリとの間の転送速度よりも速いことが好ましい。第２のデータ処理装置は、画素ごとの処理などで、頻繁に共有メモリにアクセスすることが多いため、転送速度を高めることにより、第２のデータ処理装置における処理時間の短縮化を図ることができる。
【００３７】
本発明は、第１の態様、第２の態様で説明した種々の特徴を、適宜、組み合わせたり、一部を省略したりすることにより、種々の構成を採ることができる。また、本発明は、プリンタの他、上述した第１のデータ処理装置、第２のデータ処理装置を用いて、プリンタを制御する制御装置、プリンタの制御方法などの態様で構成してもよい。
【００３８】
【発明の実施の形態】
本発明の実施形態について次の順序で説明する。
Ａ．システム構成：
Ｂ．ラスタデータの構造：
Ｃ．共有メモリの構成：
Ｄ．印刷処理：
Ｅ．変形例：
【００３９】
Ａ．システム構成：
図１は実施例としてのプリンタを用いた印刷システムの構成を示す説明図である。コンピュータ１０は、例えば、ＸＨＴＭＬ−ｐｒｉｎｔ等の印刷言語で記述された文書データをプリンタ１００に送信する。文書データは、コンピュータ１０で生成してもよいし、インターネット等のネットワークを介して取得してもよい。コンピュータ１０としては、パーソナルコンピュータの他、ディジタルカメラ、携帯情報端末、携帯電話、衛星放送等を受信してディスプレイ装置に表示等させるためのセットトップボックス（ＳＴＢ）等を挙げることができる。
【００４０】
プリンタ１００は、パーソナルコンピュータにインストールされたプリンタドライバで処理するまでなく、文書データを解釈して印刷を行うことができる、いわゆるダイレクト印刷可能なプリンタである。本実施例では、多色のドットによってカラー印刷を行うインクジェットプリンタを用いた。プリンタ１００は、ヘッドを印刷用紙に対して往復動させる主走査を行いながら、主走査方向と直交する方向に印刷用紙を副走査しつつ、ヘッドを駆動して、インク滴を吐出し、各画素にドットを形成する。主走査の往動時または復動時のいずれか一方向でドットを形成する単方向印刷と、往動時および復動時の双方でドットを形成する双方向印刷とが可能である。プリンタ１００は、メインデータ処理装置１１０，サブデータ処理装置１３０、共有メモリ１２０を備えている。
【００４１】
共有メモリ１２０は、メインデータ処理装置１１０及びサブデータ処理装置１３０に共有されるメモリである。いずれのデータ処理装置からも書き込み、読み出しが可能であり、両者間でのデータの授受に供される。本実施例では、共有メモリ１２０は、いわゆるＳＤＲＡＭを用いていた。その他のＲＡＭ、外部記憶装置を共有メモリ１２０に適用してもよい。共有メモリ１２０は、ハードウェア構成上、サブデータ処理装置１３０側の管理下に有り、サブデータ処理装置側のクロックに基づいて動作する。サブデータ処理装置１３０、メインデータ処理装置１１０に備えられるＣＰＵその他の回路とはバスで接続されるが、共有メモリ１２０へのアクセス速度は、上述のハードウェア構成上、サブデータ処理装置１３０の方がメインデータ処理装置１１０よりも速い。本実施例では、後述する通り、サブデータ処理装置１３０において、比較的頻繁に共有メモリ１２０へのアクセスを要する処理を行うため、かかるハードウェア構成とすることにより、全体の処理速度を向上させることができる。ハードウェア構成は、これに限定されるものではなく、共有メモリ１２０をメインデータ処理装置１１０の管理下においたり、双方から独立した構成としたりしても構わない。
【００４２】
メインデータ処理装置１１０は、メインＣＰＵ１１１、ＲＡＭ、ＲＯＭおよびコマンドメモリ１１８を備える。図中には、メインＣＰＵ１１１が、ＲＯＭに記憶されたソフトウェアに基づいて実現する機能ブロックを併せて示した。図中には、印刷処理上、関連のある部分のみを示した。メインデータ処理装置１１０は、ユーザが操作する各種スイッチ、リモートコントローラの動作を管理する機能も奏する。
【００４３】
解釈部１１２は、コンピュータ１０から受信した文書データの印刷コマンドを解析する。ＸＨＴＭＬやＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）で記述された文書データを取り扱うためには、解釈部１１２は、ＸＨＴＭＬやＸＭＬを解釈する機能を備えることになる。一般に、文書データには、文書構成要素として、画像と文字とが含まれる。本実施例では、画像と文字とを分けて処理するものとした。解釈部１１２は、文書データから画像に関する部分を画像プレーン生成部１１３に受け渡し、文字に関する部分を文字プレーン生成部１１４に受け渡す。
【００４４】
なお、文書構成要素とは、文書データにおいて、内容の指定方法が異なる要素を意味する。例えば、ＸＨＴＭＬなどの言語では、文字データは、フォント、サイズ、文字色などを規定する情報に続けて、印刷されるべき内容が特定されている。これに対し、画像データでは、印刷時のサイズ、位置座標を規定する情報に続けて、イメージファイルのＵＲＬが特定される。文書構成要素は、文字、画像に限られず、「表」を別個の文書構成要素として扱っても良い。
【００４５】
画像プレーン生成部１１３は、文書データ中に含まれる画像に関する印刷コマンドに基づいて、画像のラスタデータを生成する。文字プレーン生成部１１４は、文書データ中に含まれる文字に関する印刷コマンドに基づいて、文字のラスタデータを生成する。文字プレーン生成部１１４は、この処理において、文字コードをラスタイメージに変換するために、適宜、フォントメモリを参照する。バンド制御部１１５は、画像ラスタデータ及び文字ラスタデータを共有メモリ１２０に書き込む。ラスタデータは、それぞれ所定の解像度で、画素ごとに階調値が記録されたデータとなる。本実施例では、文書データを一括して処理するのではなく、バンドと呼ばれる単位に分割して処理し、バンド単位で共有メモリ１２０に書き込むものとした。バンドの設定方法については、後述する。
【００４６】
コマンドメモリ１１８は、メインＣＰＵ１１１のレジスタの一つとして位置づけられるメモリである。コマンドメモリ１１８は、サブデータ処理装置１３０による書き込み、メインＣＰＵ１１１による読み出しが可能であり、サブデータ処理装置１３０が、メインＣＰＵ１１１の動作を制御するために用いられる。サブデータ処理装置１３０は、メインＣＰＵ１１１用のコマンドを、コマンドメモリ１１８に書き込む。その後、メインＣＰＵ１１１に対して割り込み信号を出力すると、メインＣＰＵ１１１は、コマンドメモリ１１８からコマンドを読み出し、これを実行する。本実施例では、コマンドメモリ１１８内に、チャンネルＣＨ０，チャンネルＣＨ１の二つの領域を設け、チャンネルに対応した２本の割り込み信号を設けた。チャンネルＣＨ０の割り込み信号が入力されると、メインＣＰＵ１１１は、コマンドメモリ１１８のチャンネルＣＨ０に対応した領域からコマンドを読み出す。チャンネルＣＨ１も同様である。
【００４７】
サブデータ処理装置１３０は、サブＣＰＵ１３１、ＲＡＭ、ＲＯＭ、コマンドメモリ１３、および種々の機能を実現するＡＳＩＣを備えている。図中に、サブデータ処理装置１３０の機能ブロックを併せて例示した。これらの機能ブロックにより、サブデータ処理装置１３０は、メインデータ処理装置１１０で生成されたラスタデータを処理し、印刷を実行する。ラスタデータの処理は、画素ごとに行われる処理が多いため、サブデータ処理装置１３０は、共有メモリ１２０に頻繁にアクセスすることになる。本実施例では、先に説明した通り、サブデータ処理装置１３０から共有メモリ１２０へのアクセス速度を重視して、ハードウェアを構成することにより、サブデータ処理装置１３０での処理速度を向上させている。この他、サブデータ処理装置１３０は、プリンタ１００のうち、印刷を行う印刷機構のステータス、プリンタ１００に設けられたＬＥＤなどの表示部の動作を管理する機能も奏する。
【００４８】
コマンド解析部１３１ａ合成部１３２ハーフトーン部１３４インタレースデータ生成部１３５コマンド解析部１３１ａは、サブＣＰＵ１３１によってソフトウェア的に実現される機能であり、メインデータ処理装置１１０から入力された印刷コマンドを解釈する。ここで解釈されるコマンドには、例えば、印刷の実行開始、印刷部数、拡大や縮小の指定等を含めることができる。
【００４９】
その他の機能ブロックは、ＡＳＩＣによりハードウェア的に実現される。もちろん、サブＣＰＵ１３１によってソフトウェア的に実現することも可能である。合成部１３２は、バンド毎に、文字ラスタデータと画像ラスタデータとを合成する。色変換部３３は、ラスタデータで用いられる表色系、例えば、ＲＧＢ表色系を、プリンタ１００が取扱可能な表色系、例えば、ＣＭＹ表色系に変換する。色変換部１３３は、２つの表色系の対応関係を示すルックアップテーブルを備えており、このテーブルを参照して、色変換を行う。
【００５０】
ハーフトーン部１３４は、ラスタデータにおいて各画素に記録されている多階調をドットの分布で表現するように、各画素に形成するドットを決定する処理である。ハーフトーン処理には、例えば、誤差拡散法、ディザ法などを適用することができる。
【００５１】
インタレースデータ生成部１３５は、インタレース方式で印刷するよう、プリンタ１００におけるヘッドの副走査量を決定する。インタレース方式とは、各主走査でラスタラインを間欠的に形成することによって、印刷時に生じるバンディングを緩和する印刷方法を言う。
【００５２】
以上の処理を経て、生成されたデータを、本実施例では、印刷データと称するものとする。この印刷データは、プリントエンジン１３６に受け渡される。プリントエンジン１３６は、印刷データに従って、主走査および副走査の実行指示を駆動制御部１３７に出力する。駆動制御部１３７は、プリントエンジン１３６からの指示に応じて、主走査および副走査を実行し、印刷を行う。
【００５３】
コマンドメモリ１３８は、サブＣＰＵ１３１のレジスタの一つとして位置づけられるメモリである。コマンドメモリ１３８は、メインデータ処理装置１１０による書き込み、サブＣＰＵ１３１による読み出しが可能であり、メインデータ処理装置１１０が、サブＣＰＵ１３１の動作を制御するために用いられる。メインデータ処理装置１１０は、サブＣＰＵ１３１用のコマンドを、コマンドメモリ１３８に書き込む。その後、サブＣＰＵ１３１に対して割り込み信号を出力すると、サブＣＰＵ１３１は、コマンドメモリ１３８からコマンドを読み出し、これを実行する。本実施例では、コマンドメモリ１３８内に、チャンネルＣＨ０，チャンネルＣＨ１の二つの領域を設け、チャンネルに対応した２本の割り込み信号を設けた。チャンネルＣＨ０の割り込み信号が入力されると、メインＣＰＵ１３１は、コマンドメモリ１３８のチャンネルＣＨ０に対応した領域からコマンドを読み出す。チャンネルＣＨ１も同様である。
【００５４】
コマンド１１８、１３８に設けられたチャンネルＣＨ０、ＣＨ１は任意の使い分けが可能である。本実施例では、チャンネルＣＨ０を印刷処理を進めるために必要となるコマンドに利用し、チャンネルＣＨ１を印刷機構のステータス情報などハードウェアの動作に関する情報を２つのデータ処理装置１１０、１３０で共有するためのコマンドに利用する。このように目的の異なるコマンドを、個別のチャンネルで授受することにより、それぞれ任意のタイミングでコマンドの受け渡しを行うことができる利点がある。
【００５５】
Ｂ．ラスタデータの構造：
図２はラスタデータの構造を示す説明図である。図の上部には、文書データで表される画像（以下、「ドキュメントイメージ」と呼ぶ）を示した。ドキュメントイメージには、文字、画像などの文書構成要素で構成される。先に説明した通り、本実施例では、文字と画像に分けて文書データを解釈し、文字プレーン、画像プレーンという２種類のラスタデータを生成する。
【００５６】
図の中断には、文字プレーンを例示した。図中のマスは、文字プレーンを構成する画素を示している。文字プレーンでは、画素ごとに８ビットのカラーインデックスが与えられる。カラーインデックスとは、Ｒ，Ｇ，Ｂの階調値の組み合わせで定義される色に固有の識別子である。カラーインデックスと実際の色との対応関係は、カラーパレットによって与えられる。図中には、カラーインデックスＣＩが０の時は「透明」、ＣＩが１の時は「黒」、ＣＩが２の時は「白」」を与えるカラーパレットを例示した。カラーパレットは、文書データごとに固有に設定可能である。文字プレーンでは、カラーインデックスと併せて、濃淡の階調値を示すデータを画素ごとに与えるようにしてもよい。文字が単色である場合には、カラーインデックスを「０」および「１」の２色に制限することにより、画素あたり１ビットのデータとしてもよい。カラーインデックスを利用することにより、文字プレーンのデータ量を低減することができる。
【００５７】
図の下段には、画像プレーンを例示した。画像プレーンでは、画素ごとに、Ｒ、Ｇ、Ｂの階調値が与えられる。本実施例では、文字プレーンのカラーパレットと共に、Ｒ，Ｇ，Ｂ各８ビット、総計２４ビットで色を表すものとした。画像プレーンの解像度は、文字プレーンと一致させてもよいし、異なっていても良い。
【００５８】
本実施例では、文字プレーンは画像プレーンよりも上位に位置づけられている。つまり、画像プレーンは常に文字プレーンの背景となるよう設定されている。従って、文字プレーンと画像プレーンを合成すると、文字プレーンにおいて透明色が設定されている画素のデータは画像プレーンによって与えられ、その他の画素のデータは文字プレーンによって与えられる。これは、文字が存在する画素は背景となる画像データは一切透視することができない不透明な画素と扱うことに相当する。このように不透明な画素と扱うことにより、文字プレーンが透明色であるか否かによって、文字プレーンの階調値、画像プレーンの階調値を選択するだけで、容易に両者の合成を行うことができる。本実施例では、合成後の処理は、色変換、ハーフトーン処理のように画素ごとに施される処理である。従って、これらの処理を行うためには、文字プレーン、画像プレーンのいずれを対象として処理を行うかを、画素ごとに決定すれば足りるため、本実施例では、改めて合成画像を生成する必要はない。
【００５９】
実施例においては、透明度を考慮した合成を行っても構わない。例えば、文字が存在する画素について、文字プレーンで与えられる階調値と、画像プレーンで与えられる階調値とを補間するデータを用いることにより、半透明な状態での重ね合わせを実現してもよい。この補間を規定する透過係数を画素ごとに設定可能としてもよい。また、文字プレーンを画像プレーンに必ずしも優先させる必要はなく、プレーンの優先順位を逆転させてもよい。
【００６０】
また、文字プレーンを画像プレーンに優先させて重ね合わせ、画像ピクセルの値を文字ピクセルの値で置き換える場合を例示したが、例えば、２５６色の画像プレーンとそれ以上の色数を表現可能な画像プレーンを重ね合わせる等のように、階調数の低い画像プレーンを階調数の高い画像プレーンに重ね合わせて合成する場合にも適用できる。
【００６１】
本実施例では、文書データは、バンド単位で処理される。ドキュメントイメージ中に、バンドを例示した。図示する通り、プリンタ１００の主走査方向に幅Ｗｐのドキュメントイメージであるものとする。ドキュメントイメージを、副走査方向に一定のバンド幅Ｂｈで分割した帯状の処理単位＃１〜＃３がバンドとなる。バンド単位で処理することにより、文書データ全体を一括して処理する場合に比較して、処理過程で必要となるメモリ容量を抑制することができる。本実施例では、２つのデータ処理装置１１０，１３０の間で受け渡されるべきデータ量を低減することもできる。バンド幅Ｂｈは、予め設定された固定値としてもよいが、本実施例では、文書データに基づき、動的に設定するものとした。例えば、文書データで指定される印刷用紙のサイズ、印刷領域のサイズ、画像のサイズ、文字プレーンおよび画像プレーンの解像度、色数の指定などを考慮して、共有メモリ１２０に処理過程でのデータが格納できるよう設定することが好ましい。
【００６２】
Ｃ．共有メモリの構成：
図３は共有メモリ１２０の構成を示す説明図である。共有メモリ１２０には、バッファバッファＢ０及びバッファＢ１の２つのバッファが設けられている。その他、印刷機構のステータス情報などのデータを受け渡すための領域も確保されているが、ここでは図示を省略した。各バッファＢ０，Ｂ１のサイズは、上述したバンド幅Ｂｈの設定と併せて、印刷ジョブ毎に決定される。各バッファＢ０，Ｂ１には、文字プレーンを格納するための文字プレーン格納領域と、画像プレーンを格納するための画像プレーン格納領域とが、それぞれ設けられている。色数や解像度の違いに起因して、文字プレーンと画像プレーンのデータ量は必ずしも一致してはいないため、文字プレーン格納領域、画像プレーン格納領域のサイズも異なっていても構わない。
【００６３】
文書データの処理中における、メインデータ処理装置１１０からサブデータ処理装置１３０への文字プレーン、画像プレーンのデータ受け渡しは、バッファＢ０、Ｂ１を次の態様で併用して行われる。図中では、矢印の種類によって、メインデータ処理装置１１０とサブデータ処理装置１３０が並行して行う処理を表した。
【００６４】
まず、メインデータ処理装置１１０は、図中の白抜き矢印で示すように、バンド単位でバッファＢ０に文字プレーン、画像プレーンのデータを書き込む。次のバンドについては、塗りつぶし矢印で示すように、バッファＢ１にデータを書き込む。この書き込みと並行して、サブデータ処理装置１３０は、塗りつぶし矢印で示すように、バッファＢ０からデータを読み出し、印刷処理をする。
【００６５】
メインデータ処理装置１１０が、バッファＢ１への書き込みが完了した頃には、サブデータ処理装置１３０によるバッファＢ０の読み出しが完了しているから、メインデータ処理装置１１０は、白抜き矢印で示すように、次のバンドのデータを再びバッファＢ０に書き込む。この書き込みと並行して、サブデータ処理装置１３０は、図中の白抜き矢印で示すように、バッファＢ１からデータを読み出し、印刷処理をする。
【００６６】
以下、同様にして、メインデータ処理装置１１０が一方のバッファにラスタデータを書き込んでいる間に、サブデータ処理装置１３０が他方のバッファからラスタデータを読み出して処理を行う。本実施例では、以下、共有メモリ１２０のかかる利用方法をダブルバッファ方式と称する。実施例では、２つのバッファを併用する場合を例示しているが、３つ以上のバッファを併用してもよい。
【００６７】
Ｄ．印刷処理：
図４は印刷処理のフローチャートである。左側にメインデータ処理装置１１０の処理、右側にサブデータ処理装置１３０の処理を示した。中央には、共有メモリ１２０へのアクセス状況を示した。この処理は、コンピュータ１０から印刷要求とともに文書データを受信することで開始される。
【００６８】
処理が開始されると、メインデータ処理装置１１０は、印刷タスク情報を共有メモリ１２０に書き込む（ステップＳ１００）。印刷タスク情報とは、印刷条件を規定するための情報であり、印刷用紙のサイズ、印刷領域のサイズ、ドキュメントイメージのサイズ、画像プレーンの解像度、文字プレーンの解像度、印刷解像度、印刷用紙の種類、単方向印刷／双方向印刷の指定、画像プレーンおよび文字プレーンの色数、カラーパレットなどが含まれる。印刷タスク情報を書き込む領域は、先に説明したバッファＢ０，Ｂ１とば別領域で、各項目ごとに予め設定されている。
【００６９】
メインデータ処理装置１１０は、印刷タスク情報の書き込みが完了すると、印刷タスク実行コマンドを、サブデータ処理装置１３０のコマンドメモリ１３８のチャンネルＣＨ０に書き込み、サブＣＰＵ１３１に割り込み信号を出力する（ステップＳ１０１）。印刷タスク実行コマンドとは、サブＣＰＵ１３１が印刷処理を開始するためのトリガとなる信号であり、例えば、「０」という既定のコマンド番号で足りる。サブＣＰＵ１３１は、割り込み信号に応じて、コマンドメモリ１３８からコマンドを読み出し、内容を解析する。読み出したコマンドが印刷タスク実行コマンドであると判断されると、共有メモリ１２０の所定領域にアクセスして印刷タスク情報を読出す（ステップＳ２００）。そして、印刷タスク情報に基づいて、バッファＢ０，Ｂ１のサイズを決定するとともに、バッファＢ０，Ｂ１の領域を共有メモリ１２０内に確保する。バッファのサイズは、バンド単位のラスタデータに余裕を見込んで設定することが好ましい。また、バッファＢ０、Ｂ１に関する情報、例えば、各バッファの先頭アドレス、サイズ、および格納可能なラスタ数を、入力バッファ情報として、共有メモリ１２０の所定領域に書き込む（ステップＳ２１０）。次に、サブデータ処理装置１３０は、メインデータ処理装置１１０のコマンドメモリ１１８のチャンネルＣＨ０に印刷タスク応答コマンドを書き込み、メインＣＰＵ１１１に割り込み信号を出力する（ステップＳ２１１）。印刷タスク応答コマンドは、バッファの確保完了を通知するとともに、メインデータ処理装置１１０が文書データの解析を開始するトリガとなる信号である。
【００７０】
本実施例では、サブデータ処理装置１３０がバッファの確保を行う場合を例示したが、バッファＢ０，Ｂ１の確保はメインデータ処理装置１１０が行ってもよい。この場合には、入力バッファ情報は、印刷タスク情報と同様の方法で、サブデータ処理装置１３０に伝達すればよい。
【００７１】
メインデータ処理装置１１０は、印刷タスク応答コマンドを認識すると、共有メモリ１２０から入力バッファ情報を読み込んで、文字プレーン及び画像プレーンを格納するバッファのアドレスを把握する（ステップＳ１１０）。そして、文書データを解釈し、バンド単位で文字プレーン及び画像プレーンのデータを生成して（ステップＳ１２０）、バッファＢ０の文字プレーン格納領域、画像プレーン格納領域にそれぞれ書き込む（ステップＳ１２１）。
【００７２】
データの書き込みが完了すると、メインデータ処理装置１１０は、バッファＢ０の印刷動作要求情報を、サブデータ処理装置１３０のコマンドメモリ１３８のチャンネルＣＨ０に書き込み、サブＣＰＵ１３１に割り込み信号を出力する（ステップＳ１２２）。バッファＢ０の印刷動作要求情報は、バッファＢ０に格納されたラスタデータの印刷を要求するコマンドであり、バッファＢ０に書き込んだラスタ数をパラメータに含んでいる。サブデータ処理装置１３０は、このコマンドを認識すると、バッファＢ０から文字プレーン及び画像プレーンのデータを読出し（ステップＳ２２０）、両者の合成、色変換処理、ハーフトーニング処理等を行って印刷する（ステップＳ２２１）。バッファＢ０の印刷が完了すると、サブデータ処理装置１３０は、バッファＢ０の印刷応答コマンドをメインデータ処理装置１１０のコマンドメモリ１１８のチャンネルＣＨ０に書き込む。この際、データの処理が完了したバッファＢ０を、サブデータ処理装置１３０が初期化しておくようにしてもよい。こうすることにより、次に処理されたラスタデータに余白部分が多い場合には、メインデータ処理装置１１０は余白部分を除く画素にデータを書き込むだけ良くなり、データの書き込み時間を短縮することができる。
【００７３】
一方、メインデータ処理装置１１０は、サブデータ処理装置１３０がバッファＢ０の印刷処理を行っている間、並行して次のバンドのラスタデータを生成する（ステップＳ１３０）。次バンドのラスタデータは、バッファＢ１に格納される（ステップＳ１３１）。図中では、区別を容易にするため、バッファＢ０を利用する処理を実線で示し、バッファＢ１を利用する処理を破線で示した。メインデータ処理装置１１０は、バッファＢ１へのデータの格納が完了すると、サブデータ処理装置１３０に対して、バッファＢ１の印刷動作要求情報および書き込んだラスタ数を送信する（ステップＳ１３２）。サブデータ処理装置１３０は、印刷動作要求情報に応じて、バッファＢ１の読み出しを行い（ステップＳ２３０）、印刷を実行する（ステップＳ２３１）。印刷が完了すると、バッファＢ１の印刷応答コマンドをメインデータ処理装置１１０に送信する（ステップＳ２３２）。
【００７４】
印刷動作要求情報、印刷応答コマンドは、バッファＢ０用、バッファＢ１用を共通としても構わないが、本実施例では、異なるコマンドとした。こうすることにより、コマンド自体によってアクセスすべきバッファが特定されるため、各データ処理装置が誤ったバッファにアクセスすることを回避でき、処理の安定化を図ることができる。
【００７５】
サブデータ処理装置１３０がバッファＢ１の処理をしている間、並行してメインデータ処理装置１１０は、第３番目のバンドのラスタデータを生成してバッファＢ０に格納する（ステップＳ１４０）。ただし、サブデータ処理装置１３０がバッファＢ０の処理を実行している最中に、新たなデータが誤ってバッファＢ０に書き込まれるのを回避するため、バッファＢ０へのデータ格納は、バッファＢ０の印刷応答コマンドを受信した後に行われる。
【００７６】
以下、同様に、メインデータ処理装置１１０およびサブデータ処理装置は、使用するバッファを切り替えながら印刷処理を進める。メインデータ処理装置１１０は、ページの最終バンドのラスタデータをサブデータ処理装置１３０に印刷指示した後、印刷タスク終了動作要求情報をサブデータ処理装置１３０に送信する（ステップＳ１５０）。印刷タスク終了動作要求情報は、印刷ジョブの完了を通知するコマンドである。このコマンドと併せて、印刷完了後に排紙を行うか否かを指定してもよい。サブデータ処理装置１３０は、最終バンドの印刷を終えると、印刷タスク終了応答コマンドをメインデータ処理装置１１０に通知する（ステップＳ２４０）。
【００７７】
このように構成される本実施の形態によれば、文書データの解釈と、ラスタデータの処理とを２つのデータ処理装置で分担することにより、両者間での負荷の偏りを緩和し、効率的に印刷を実行することができる。
【００７８】
本実施例のプリンタ１００は、ラスタデータをバンド単位で生成するとともに、複数のバッファＢ０，Ｂ１を併用してラスタデータを受け渡すことにより、メインデータ処理装置１１０とサブデータ処理装置１３０の並列処理が可能であり、処理時間の短縮を図ることができる。
【００７９】
Ｅ．変形例：
メインデータ処理装置１１０とサブデータ処理装置１３０との間で、授受されるコマンドは、実施例で例示したものに限られない。例えば、メインデータ処理装置１１０からサブデータ処理装置１３０に送信されるコマンド（以下、「動作要求情報」と称する）として、入力スキップ動作要求情報を含めても良い。入力スキップ動作要求情報とは、プリンタ１００が印刷すべきラスタ位置を無条件に進めるためのコマンドである。例えば、一部のラスタが、文字プレーン、画像プレーンともに余白であることが判明した場合には、そのラスタ数を指定して、このコマンドを送信する。サブデータ処理装置１３０は、プリンタ１００を制御して、ドットを形成せずに、このコマンドで指定されたラスタ数分の副走査を行わせればよい。このコマンドを利用することにより、余白部分については、印刷データ生成のための種々の処理を省略することができる。サブデータ処理装置１３０からメインデータ処理装置１１０に送信されるコマンド（以下、「応答コマンド」と呼ぶ）として、入力スキップ動作要求情報の完了を通知するための入力スキップ応答コマンドを併せて設定しておくことが好ましい。
【００８０】
メインデータ処理装置１１０およびサブデータ処理装置１３０の一方が管理する機構のステータス情報を、他方に伝達するためのコマンドを設けても良い。例えば、サブデータ処理装置１３０が管理する印刷機構のステータスとして、用紙切れ、用紙詰まり、インク切れ、排紙トレイへの印刷済み用紙の有無などが挙げられる。サブデータ処理装置１３０は、これらのステータスを表すステータス情報を共有メモリ１２０に書き込んだ後、その読み出しを指示するコマンド「ステータス情報変更コマンド」を、メインデータ処理装置１１０側のコマンドメモリ１１８に送信する。このコマンドは、印刷時に使用するチャンネルＣＨ０ではなく、チャンネルＣＨ１を使用することが好ましい。こうすることで、印刷に関連する処理とは独立した任意のタイミングでステータス情報を通知することが可能となる。メインデータ処理装置１１０からサブデータ処理装置１３０に伝えるステータス情報としては、例えば、メインデータ処理装置１１０のスリープが挙げられる。
【００８１】
一方のデータ処理装置が管理するハードウェアの動作状態を、他方のデータ処理装置が制御するための動作要求情報を、ステータス情報の一種として、共有メモリ１２０経由で受け渡しても良い。例えば、メインデータ処理装置１１０からサブデータ処理装置１３０に伝える動作要求情報としては、ＬＥＤの点灯状態が挙げられる。メインデータ処理装置１１０は、共有メモリ１２０に、ＬＥＤの点灯状態を指示する動作要求情報を書き込んだ後、その読み出しを指示するコマンドを、コマンドメモリ１３８に送信する。このコマンドもチャンネルＣＨ１を用いることが好ましい。サブデータ処理装置１３０は、このコマンドに応じて、動作要求情報を読み込み、ＬＥＤの点灯状態を指示通りに制御することができる。
【００８２】
ステータス情報や動作要求情報については、読み出しを指示するコマンドの送信を省略してもよい。つまり、これらの情報の受信側となるデータ処理装置は、共有メモリ１２０に書き込まれた情報を、適宜、ポーリングするものとしてもよい。こうすることで、受信側データ処理装置の処理が妨げられることが抑制され、処理効率を向上することができる。ポーリングを採用する場合、情報が受信側データ処理装置によって未参照状態にあることを示すフラグデータを添付して情報を書き込んでもよい。受信側データ処理装置は、このフラグデータに基づいて、情報が更新されたか否かを判断することができる。また、受信側データ処理装置が、情報を読み込んだ時点で、このフラグデータを既参照状態に変更すれば、書き込み側のデータ処理装置は、このフラグデータによって、情報が相手に参照されたか否かを判断することができる。
【００８３】
ポーリングでは、受信側データ処理装置の動作を妨げないため、情報の書き込み側のデータ処理装置も独自のタイミングで情報を書き込むことができる。情報の書き込み頻度をあげることも可能であるし、ステータス情報や動作要求情報に変更が生じた時点で直ちに書き換えることも可能であり、共有メモリ１２０に書き込まれた情報のリアルタイム性を向上することができる。
【００８４】
動作要求情報には、例えば、ユーザがスイッチを操作した場合の動作など、動作の確実性、即応性が要求されるものがある。例えば、サブデータ処理装置１３０が管理するプリンタ１００について、インク交換指示、エラー解除指示、紙種切換指示などが挙げられる。これらの動作要求情報は、共有メモリを介することなく、コマンドメモリ１１８，１３８にコマンドとして書き込んでもよい。データ処理装置は、割り込み信号を受けると、コマンドメモリ１１８，１３８の内容を必ず参照するため、コマンドメモリ１１８、１３８を利用することにより、動作要求情報を確実かつ遅滞なく受け渡すことができる。
【００８５】
動作要求情報の内容に応じて、共有メモリ１２０を介した受け渡しと、コマンドメモリ１１８，１３８を介した受け渡しを使い分けても良い。例えば、動作の確実性、即応性が要求される動作要求情報にコマンドメモリ１１８，１３８を使用し、ＬＥＤの点灯状態のように動作の確実性、即応性は比較的低いが、リアルタイム性を向上した継続的な制御が要求される動作要求情報に共有メモリ１２０を使用するという使い分けが可能である。
【００８６】
なお、上述した本発明の各実施の形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなく、他の様々な態様で本発明を実施できる。例えば、本実施例で例示した機能ブロックは、ソフトウェア的に実現してもよいし、ハードウェア的に実現しても構わない。
【図面の簡単な説明】
【図１】実施例としての本実施の形態に係るプリンタを用いた印刷システムの全体概要構成を示す説明図ブロック図である。
【図２】ラスタデータの構造を示す説明図である。
【図３】共有メモリ１２０の構成を示す説明図である。
【図４】印刷処理のフローチャートである。
【符号の説明】
１０…コンピュータ
１００…プリンタ
１１０…メインデータ処理装置
１１１…メインＣＰＵ
１１２…解釈部
１１３…画像プレーン生成部
１１４…文字プレーン生成部
１１５…バンド制御部
１１８…コマンドメモリ
１２０…共有メモリ
１３０…サブデータ処理装置
１３１…サブＣＰＵ
１３１ａ…コマンド解析部
１３２…合成部
１３３…色変換部
１３４…ハーフトーン部
１３５…インタレースデータ生成部
１３６…プリントエンジン
１３７…駆動制御部
１３８…コマンドメモリ
【図１】
2004098636.tif 000003
【図２】
2004098636.tif 000004
【図３】
2004098636.tif 000005
【図４】
2004098636.tif 000006