JP4370765B2 - Printer with multiple data processing devices - Google Patents

Printer with multiple data processing devices Download PDF

Info

Publication number
JP4370765B2
JP4370765B2 JP2002292147A JP2002292147A JP4370765B2 JP 4370765 B2 JP4370765 B2 JP 4370765B2 JP 2002292147 A JP2002292147 A JP 2002292147A JP 2002292147 A JP2002292147 A JP 2002292147A JP 4370765 B2 JP4370765 B2 JP 4370765B2
Authority
JP
Japan
Prior art keywords
data
data processing
processing device
printer
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002292147A
Other languages
Japanese (ja)
Other versions
JP2004098636A (en
Inventor
正年 松平
俊作 宮澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002292147A priority Critical patent/JP4370765B2/en
Publication of JP2004098636A publication Critical patent/JP2004098636A/en
Application granted granted Critical
Publication of JP4370765B2 publication Critical patent/JP4370765B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のデータ処理装置を備えたプリンタに関する。
【0002】
【従来の技術】
従来、インクジェットプリンタ等のプリンタは、パーソナルコンピュータ等で生成された文書データに基づいて印刷を行う。
これらのプリンタには、高級な印刷言語で記述された文書データを解釈して印刷を行うことができるインテリジェンスプリンタと呼ばれるものがある。
インテリジェンスプリンタは、印刷言語で記述された文書データを解釈して印刷データを生成するため、高いデータ処理能力が求められることが多い。データ処理能力を向上するため、CPUを複数搭載し、複数のCPUによってデータ処理作業を分担させる場合がある(例えば、特許文献1)。
【0003】
【特許文献1】
特開平11−249843号公報
【0004】
【発明が解決しようとする課題】
複数のCPUを搭載したプリンタでは、従来、一方のCPUが印刷データを生成し、他方のCPUはプリントエンジンの駆動制御を受け持つことが多かった。かかる構成では、印刷データを生成する側のCPUの方が処理負担が大きかった。CPUの処理負担の偏りは、CPUコストの増加を招くとともに、効率的な印刷処理を阻害することがあった。本発明は、上記課題に鑑みてなされたもので、複数のデータ処理装置を搭載したプリンタにおいて、各データ処理装置のデータ処理負担を調整し、処理の効率化を図ることを目的とする。
【0005】
【課題を解決するための手段およびその作用・効果】
本発明のプリンタは、第1のデータ処理装置、第2のデータ処理装置、両者間でデータを受け渡すデータ伝達部を備える。第1のデータ処理装置は、文書データから印刷データを生成する一連の処理のうち相対的に高度なデータ処理を行う。第2のデータ処理装置は、残余の処理を行う。第1,第2のデータ処理装置は、CPU単体で構成してもよいし、CPU、ROM,RAM、入出力ポート等を含んだマイクロコンピュータとして構成してもよい。ASICのように専用的な回路としてもよい。
【0006】
一般に、文書データから印刷データを生成するまでの一連の処理は、高度な処理と、それほど高度な処理ではないが処理対象となるデータ量が膨大にある処理に大別されることが多い。本発明では、各データ処理装置の処理内容を、相対的に高度な処理とその他の処理に分散させる。これにより、第1,第2のデータ処理装置のいずれか一方に過度の負担が生じるのを防止することができる。
【0007】
例えば、文書データが印刷言語で生成されている場合、第1のデータ処理装置は、文書データを解釈してラスタデータを生成し、第2のデータ処理装置は、このラスタデータを印刷データに変換するように、各データ処理機能を分散させることができる。ここで、ラスタデータとは、ビットマップデータなど画素単位で階調値を規定することで印刷すべき画像を表したデータを意味する。
【0008】
上述の印刷言語には、例えば、ポストスクリプトやXHTML-print(拡張可能なハイパーテキストマークアップ言語で記述された印刷コマンド)等の高級な印刷言語が含まれる。第1のデータ処理装置は、印刷言語の各印刷コマンドを解釈してラスタデータを生成するという高度なデータ処理を実施する。第2のデータ処理装置は、ラスタデータを印刷データに変換するという比較的機械的だが、データ量が膨大な処理を実施する。
【0009】
本発明において、第1のデータ処理装置におけるラスタデータの生成は、文書データ中の文字データと文書データ画像データとを別に扱い、文字ラスタデータ、画像ラスタデータとを個別に生成するようにしてもよい。第2のデータ処理装置は、文字ラスタデータと画像ラスタデータとを合成して印刷イメージデータを生成する。このように文字ラスタデータと画像ラスタデータとを別個に生成することにより、文字、画像の特徴を活かしたデータ生成を行うことができる。例えば、一般に文字は画像に比較して使用される色数が少ないことが多いため、この特徴を活かして文字ラスタデータの色数を低減し、データサイズを低減させることができる。
【0010】
第1のデータ処理装置と第2のデータ処理装置のデータ伝達には、互いに共有するメモリを用いることができる。パラレルインターフェース、シリアルインターフェース、その他のバスによってデータ通信を行っても構わない。通信による場合には、第1のデータ処理装置と第2のデータ処理装置は、各データ処理装置に固有のバッファからデータを読み出し、通信し、他方のバッファへ書き込む処理を繰り返し実行する必要がある。これに対し、共有されるメモリを用いれば、一方のデータ処理装置が書き込んだデータを、他方のデータ処理装置が読み出すことにより、短時間でデータを受け渡すことができる利点がある。一般に、ラスタデータはデータ量が膨大であるため、この時間短縮による効果は大きい。
【0011】
共有メモリには、複数の共有領域を設け、第1のデータ処理装置および第2のデータ処理装置は、両者が同時に同じ共有領域を使用しない条件下で、これらの共有領域を順次切り替えて使用してもよい。
【0012】
こうすることで、例えば、一方のデータ処理装置がある共有領域にデータを書き込んでいる間に、他方のデータ処理装置は、別の共有領域からデータを読み出して処理することができる。このように複数の共有領域を切り替えながら使用することにより、効率的なデータの受け渡しを行うことができる。
【0013】
さらに、文字ラスタデータと画像ラスタデータとを個別に生成する場合には、各共有領域には、文字ラスタデータを格納する文字プレーンと画像ラスタデータを格納する画像プレーンとをそれぞれ設けることが好ましい。
【0014】
例えば、XHTML-printのように、文字と画像を別々に記述する印刷言語によって文書データが生成されている場合、文字のラスタデータと画像のラスタデータとをそれぞれ別々に生成し、各プレーンに格納させる。これにより、文字ラスタデータと画像ラスタデータとの合成を容易に行うことができる。
【0015】
本発明において、第2のデータ処理装置は、例えば、ラスタデータの各画素の色変換、ハーフトーン処理、印刷部の制御の少なくとも一部のデータ処理を実行させることができる。かれらの処理は、それほど高度ではないがデータ量が膨大となる処理であるため、データ処理機能の少なくとも一部をハードウェア回路として実装することが好ましい。
【0016】
例えば、色変換機能やハーフトーニング機能等をASIC(Application-Specific Integrated Circuit)のようなハードウェア回路して構成し、第2のデータ処理装置に実装することができる。
【0017】
本発明のプリンタは、第2の態様として、次の構成を採っても良い。第1のデータ処理装置は、印刷言語で記述された文書データを入力し、その印刷言語を解釈する。第2のデータ処理装置は、解釈結果に基づいて印刷データを生成し、その印刷データに基づいて印刷機構を制御する。このような処理分担でも、それぞれのデータ処理装置の負荷の偏りを緩和することができ、処理の効率化を図ることができる。解釈結果は、例えば、ラスタデータとして出力することができる。
【0018】
第2の態様において、文書データが、複数種類の文書構成要素を含んでいる場合、第1のデータ処理装置は、文書構成要素ごとに解釈結果を出力してもよい。文書構成要素とは、印刷言語において印刷内容を指定する方法が異なる要素を意味し、例えば、文字、画像、表などが挙げられる。第2のデータ処理装置で、各文書構成要素の解釈結果を合成すればよい。こうすることにより、第1のデータ処理装置、第2のデータ処理装置間のデータの受け渡し時に、各文書構成要素の特徴を活かすことができる。例えば、一般に文字は画像に比較して使用される色数が少ないことが多いため、この特徴を活かして文字ラスタデータの色数を低減し、データサイズを低減させることができる。
【0019】
第2の態様においても、データ伝達部は、パラレルインターフェース、シリアルインターフェース、その他のバスを用いる他、第1および第2のデータ処理装置が共有する共有メモリとしてもよい。特に、ラスタデータのように膨大なデータの場合、データ授受の効率という観点で共有メモリが適している。
【0020】
共有メモリを用いる場合、複数の共有領域を定義し、第1のデータ処理装置および第2のデータ処理装置でこれらの複数の共有領域を順次切り替えて使用してもよい。この場合、両者が同時に同じ共有領域を使用しない条件下で切り換えることが好ましい。
【0021】
共有領域を切り換えて使用する場合、文書データを、文書データよりも小さい複数の文書領域に分割して処理を進めることが好ましい。例えば、第1のデータ処理装置が、文書領域ごとにいずれかの共有領域に解釈結果を出力し、第2のデータ処理装置が、文書領域単位で印刷データを生成することができる。こうすることにより、複数の共有領域を効率的に使用して、処理の効率化を図ることができる。文書領域は、種々の設定が可能である。例えば、主走査、副走査を繰り返して印刷を行う印刷機構を用いる場合には、文書領域は、文書データを副走査方向にのみ分割して定義されるデータとすることにより、印刷を効率的に行うことができる点で好ましい。
【0022】
共有領域のサイズは、文書データに応じて動的に設定可能とすることが好ましい。共有領域の数を動的に設定可能としてもよい。こうすることにより、共有メモリの資源を有効に活用することができる。
【0023】
共有領域のサイズの設定は、第1および第2のデータ処理装置のいずれで行っても良い。第2のデータ処理装置で行う場合には、第1のデータ処理装置から、文書データに基づき、印刷データのサイズに関連する所定の情報を第2のデータ処理装置に送信し、第2のデータ処理装置は、この情報に基づいて、共有領域のサイズを設定するという手順を採ることになる。第2のデータ処理装置が、設定結果を第1のデータ処理装置に送信することにより、共有領域を双方のデータ処理装置で利用可能となる。
【0024】
共有メモリを用いる場合、第1または第2のデータ処理装置は、データ処理装置の管理下にあるハードウェアの動作状態を表すステータス情報を共有メモリに書き込むようにしてもよい。つまり、印刷に関連するデータの授受だけでなく、ステータス情報の授受に共有メモリを使用してもよい。いずれか一方のデータ処理装置から他方のデータ処理装置へのステータス通知にのみ利用してもよいし、双方向の通知に利用してもよい。
【0025】
このように共有メモリを介してステータス情報を受け渡す場合、受け取り側のデータ処理装置は、ステータス情報が書き込まれたタイミングとは無関係に、任意のタイミングで情報を参照することができる。従って、受け取り側の処理が妨げられないという利点がある。書き込み側は、ステータス情報が読み取られたか否かに関わらず、頻繁にステータス情報を更新することにより、情報のリアルタイム性を比較的容易に確保することもできる。このように共有メモリを介して受け渡すのに適したステータス情報としては、例えば、データ処理装置のスリープ状態、印刷機構のレディ状態、ビジー状態、種々のエラー、インクや用紙などの消耗品不足などが挙げられる。
【0026】
共有メモリを介してステータス情報の授受を行う場合、ステータス情報が他方のデータ処理装置によって未参照状態にあることを示すフラグデータを添付してステータス情報を書き込むようにしてもよい。受け取り側のデータ処理装置は、このフラグデータに基づいて、ステータス情報が更新されたか否かを判断することができる。また、受け取り側のデータ処理装置が、ステータス情報を参照するとともに、フラグデータを既参照状態に変更するようにしてもよい。こうすることで、書き込み側のデータ処理装置は、ステータス情報が相手に参照されたか否かを判断することができる。
【0027】
データ処理装置間で授受する情報には、その管理下にあるハードウェアの動作状態に応じて、他方のデータ処理装置に所定の動作を要求する動作要求情報が含まれる場合がある。例えば、リモコンのスイッチを管理しているデータ処理装置は、スイッチの操作状態に応じてインク交換、用紙の切換、排紙、電源のオン・オフなどの動作を実現するため、他方のデータ処理装置に動作要求情報を送信する必要が生じることがある。かかる動作要求情報については、共有メモリに単に書き込むだけでなく、他方のデータ処理装置に強制的に読み込ませる動作要求情報送信部を別途設けることが好ましい。例えば、共有メモリを介さずに、他方のデータ処理装置に直接、動作要求情報を送信する方法を採ってもよい。共有メモリに動作要求情報を書き込んだ後、他方のデータ処理装置に対して、その動作要求情報を強制的に読み取らせる信号を送信する方法を採ってもよい。
【0028】
第2の態様において、第1および第2のデータ処理装置が連携を保って動作するためには、各データ処理装置が、それぞれ他方の動作を制御可能とすることが好ましい。例えば、第1および第2のデータ処理装置は、それぞれ、データ処理装置に対応づけられたレジスタの少なくとも一部を、他方のデータ処理装置から書込可能としてもよい。各データ処理装置は、自己に対応づけられたレジスタに書き込まれた所定のコマンドを解釈して動作可能である。また、他方のデータ処理装置に対応づけられたレジスタにコマンドを書き込むことによって、他方のデータ処理装置の動作を制御することも可能となる。第1および第2のデータ処理装置が共にアクセス可能なメモリ領域をレジスタとして用いても良い。
【0029】
コマンドによる動作の制御は、例えば、共有メモリを用いたデータの受け渡しに適用することができる。まず、第1および第2のデータ処理装置の一方は、他方のデータ処理装置に受け渡すべきデータを共有メモリに書き込む。その後、書き込んだデータの読み出しを指示するコマンドを、他方のデータ処理装置に対応づけられたレジスタに書き込むことにより、データの読み込みを行わせることができる。この方法を採ることにより、共有メモリへの書き込みを定期的に監視するなどの煩雑な方法を採るまでなく、速やかにデータの受け渡しを実現することができる。
【0030】
上述の方法で共有メモリを用いてデータの受け渡しを行う場合、コマンドは、データの種類に応じて設定しておくことが好ましい。こうすることにより、共有メモリからのデータの読み出しを開始する前に、データの内容を知ることができるため、データの種類に応じた処理を速やかに実現することができる。また、共有メモリには、データの種類を特定する情報等を書き込む必要がなくなるから、資源を節約することもできる。
【0031】
共有メモリに、複数の共有領域が設定されている場合には、データの種類だけでなく、書き込みを行った共有領域に固有のコマンドを用いることも好ましい。例えば、第1のデータ処理装置は、文書領域ごとにいずれかの共有領域に解釈結果を出力し、出力先の共有領域に固有のコマンドを第2のデータ処理装置に対応づけられたレジスタに書き込む。こうすることにより、第2のデータ処理装置は、いずれの共有領域にデータが格納されているかを速やかに知ることができるため、データ読み出しの時間を短縮することができる。
【0032】
データ処理装置間でやりとりされるコマンドは、多種多様なものを定義することができる。例えば、第1のデータ処理装置が、第2のデータ処理装置を介して印刷機構を制御するためのコマンドを定義してもよい。つまり、第1のデータ処理装置は、文書領域に余白が含まれる場合には、印刷機構が印刷を実行すべき位置を、余白に応じて移動させるためのコマンドを送信するようにしてもよい。こうすることにより、余白に対応する印刷データの生成処理を行うまでなく、効率的に印刷を行うことができる。主走査および副走査を行って印刷する印刷機構を用いている場合、移動量は、主走査方向に移動させるべき画素数、副走査方向に移動させるべきラスタ数などによって指定することができる。
【0033】
先に説明したステータス情報や動作要求情報を共有メモリに書き込んだ上で、これらの情報を読み取らせるための読取コマンドを設定してもよい。この場合、ステータス情報や動作要求情報は、印刷に関連する処理とは無関係に種々のタイミングで書き込まれるとともに、即時応答が要求される場合がある。これらの情報を円滑に読みとらせるため、データ処理装置間でコマンドを送信するチャンネルを複数設け、読取コマンドと印刷に関連するコマンドは別チャンネルで送信するものとしてもよい。
【0034】
第2の態様において、第2のデータ処理装置は、印刷データを生成するために種々の処理を行う。印刷機構は、多色のドットを形成して多色印刷を行う機構である場合には、これらの処理には、色変換処理、ハーフトーン処理の少なくとも一方を含めることができる。色変換処理とは、第1のデータ処理装置から出力される解釈結果で用いられている表色系から、印刷機構が取り扱う表色系への変換処理を言う。ハーフトーン処理とは、多階調を表現するように、印刷機構が各画素ごとに形成可能なドットの分布を決定する処理を言う。
【0035】
色変換処理やハーフトーン処理は、画素ごとの処理となるため、比較的、単純な処理である一方、処理すべきデータ量が非常に多い。従って、色変換処理、ハーフトーン処理の少なくとも一方は、いわゆるASICなど、ハードウェア的に用意された回路で実行することが好ましい。
【0036】
第2の態様において、第2のデータ処理装置と共有メモリとを接続するデータバスその他のデータ転送路の転送速度は、第1のデータ処理装置と共有メモリとの間の転送速度よりも速いことが好ましい。第2のデータ処理装置は、画素ごとの処理などで、頻繁に共有メモリにアクセスすることが多いため、転送速度を高めることにより、第2のデータ処理装置における処理時間の短縮化を図ることができる。
【0037】
本発明は、第1の態様、第2の態様で説明した種々の特徴を、適宜、組み合わせたり、一部を省略したりすることにより、種々の構成を採ることができる。また、本発明は、プリンタの他、上述した第1のデータ処理装置、第2のデータ処理装置を用いて、プリンタを制御する制御装置、プリンタの制御方法などの態様で構成してもよい。
【0038】
【発明の実施の形態】
本発明の実施形態について次の順序で説明する。
A.システム構成:
B.ラスタデータの構造:
C.共有メモリの構成:
D.印刷処理:
E.変形例:
【0039】
A.システム構成:
図1は実施例としてのプリンタを用いた印刷システムの構成を示す説明図である。コンピュータ10は、例えば、XHTML-print等の印刷言語で記述された文書データをプリンタ100に送信する。文書データは、コンピュータ10で生成してもよいし、インターネット等のネットワークを介して取得してもよい。コンピュータ10としては、パーソナルコンピュータの他、ディジタルカメラ、携帯情報端末、携帯電話、衛星放送等を受信してディスプレイ装置に表示等させるためのセットトップボックス(STB)等を挙げることができる。
【0040】
プリンタ100は、パーソナルコンピュータにインストールされたプリンタドライバで処理するまでなく、文書データを解釈して印刷を行うことができる、いわゆるダイレクト印刷可能なプリンタである。本実施例では、多色のドットによってカラー印刷を行うインクジェットプリンタを用いた。プリンタ100は、ヘッドを印刷用紙に対して往復動させる主走査を行いながら、主走査方向と直交する方向に印刷用紙を副走査しつつ、ヘッドを駆動して、インク滴を吐出し、各画素にドットを形成する。主走査の往動時または復動時のいずれか一方向でドットを形成する単方向印刷と、往動時および復動時の双方でドットを形成する双方向印刷とが可能である。プリンタ100は、メインデータ処理装置110,サブデータ処理装置130、共有メモリ120を備えている。
【0041】
共有メモリ120は、メインデータ処理装置110及びサブデータ処理装置130に共有されるメモリである。いずれのデータ処理装置からも書き込み、読み出しが可能であり、両者間でのデータの授受に供される。本実施例では、共有メモリ120は、いわゆるSDRAMを用いていた。その他のRAM、外部記憶装置を共有メモリ120に適用してもよい。共有メモリ120は、ハードウェア構成上、サブデータ処理装置130側の管理下に有り、サブデータ処理装置側のクロックに基づいて動作する。サブデータ処理装置130、メインデータ処理装置110に備えられるCPUその他の回路とはバスで接続されるが、共有メモリ120へのアクセス速度は、上述のハードウェア構成上、サブデータ処理装置130の方がメインデータ処理装置110よりも速い。本実施例では、後述する通り、サブデータ処理装置130において、比較的頻繁に共有メモリ120へのアクセスを要する処理を行うため、かかるハードウェア構成とすることにより、全体の処理速度を向上させることができる。ハードウェア構成は、これに限定されるものではなく、共有メモリ120をメインデータ処理装置110の管理下においたり、双方から独立した構成としたりしても構わない。
【0042】
メインデータ処理装置110は、メインCPU111、RAM、ROMおよびコマンドメモリ118を備える。図中には、メインCPU111が、ROMに記憶されたソフトウェアに基づいて実現する機能ブロックを併せて示した。図中には、印刷処理上、関連のある部分のみを示した。メインデータ処理装置110は、ユーザが操作する各種スイッチ、リモートコントローラの動作を管理する機能も奏する。
【0043】
解釈部112は、コンピュータ10から受信した文書データの印刷コマンドを解析する。XHTMLやXML(Extensible Markup Language)で記述された文書データを取り扱うためには、解釈部112は、XHTMLやXMLを解釈する機能を備えることになる。一般に、文書データには、文書構成要素として、画像と文字とが含まれる。本実施例では、画像と文字とを分けて処理するものとした。解釈部112は、文書データから画像に関する部分を画像プレーン生成部113に受け渡し、文字に関する部分を文字プレーン生成部114に受け渡す。
【0044】
なお、文書構成要素とは、文書データにおいて、内容の指定方法が異なる要素を意味する。例えば、XHTMLなどの言語では、文字データは、フォント、サイズ、文字色などを規定する情報に続けて、印刷されるべき内容が特定されている。これに対し、画像データでは、印刷時のサイズ、位置座標を規定する情報に続けて、イメージファイルのURLが特定される。文書構成要素は、文字、画像に限られず、「表」を別個の文書構成要素として扱っても良い。
【0045】
画像プレーン生成部113は、文書データ中に含まれる画像に関する印刷コマンドに基づいて、画像のラスタデータを生成する。文字プレーン生成部114は、文書データ中に含まれる文字に関する印刷コマンドに基づいて、文字のラスタデータを生成する。文字プレーン生成部114は、この処理において、文字コードをラスタイメージに変換するために、適宜、フォントメモリを参照する。バンド制御部115は、画像ラスタデータ及び文字ラスタデータを共有メモリ120に書き込む。ラスタデータは、それぞれ所定の解像度で、画素ごとに階調値が記録されたデータとなる。本実施例では、文書データを一括して処理するのではなく、バンドと呼ばれる単位に分割して処理し、バンド単位で共有メモリ120に書き込むものとした。バンドの設定方法については、後述する。
【0046】
コマンドメモリ118は、メインCPU111のレジスタの一つとして位置づけられるメモリである。コマンドメモリ118は、サブデータ処理装置130による書き込み、メインCPU111による読み出しが可能であり、サブデータ処理装置130が、メインCPU111の動作を制御するために用いられる。サブデータ処理装置130は、メインCPU111用のコマンドを、コマンドメモリ118に書き込む。その後、メインCPU111に対して割り込み信号を出力すると、メインCPU111は、コマンドメモリ118からコマンドを読み出し、これを実行する。本実施例では、コマンドメモリ118内に、チャンネルCH0,チャンネルCH1の二つの領域を設け、チャンネルに対応した2本の割り込み信号を設けた。チャンネルCH0の割り込み信号が入力されると、メインCPU111は、コマンドメモリ118のチャンネルCH0に対応した領域からコマンドを読み出す。チャンネルCH1も同様である。
【0047】
サブデータ処理装置130は、サブCPU131、RAM、ROM、コマンドメモリ13、および種々の機能を実現するASICを備えている。図中に、サブデータ処理装置130の機能ブロックを併せて例示した。これらの機能ブロックにより、サブデータ処理装置130は、メインデータ処理装置110で生成されたラスタデータを処理し、印刷を実行する。ラスタデータの処理は、画素ごとに行われる処理が多いため、サブデータ処理装置130は、共有メモリ120に頻繁にアクセスすることになる。本実施例では、先に説明した通り、サブデータ処理装置130から共有メモリ120へのアクセス速度を重視して、ハードウェアを構成することにより、サブデータ処理装置130での処理速度を向上させている。この他、サブデータ処理装置130は、プリンタ100のうち、印刷を行う印刷機構のステータス、プリンタ100に設けられたLEDなどの表示部の動作を管理する機能も奏する。
【0048】
コマンド解析部131a合成部132ハーフトーン部134インタレースデータ生成部135コマンド解析部131aは、サブCPU131によってソフトウェア的に実現される機能であり、メインデータ処理装置110から入力された印刷コマンドを解釈する。ここで解釈されるコマンドには、例えば、印刷の実行開始、印刷部数、拡大や縮小の指定等を含めることができる。
【0049】
その他の機能ブロックは、ASICによりハードウェア的に実現される。もちろん、サブCPU131によってソフトウェア的に実現することも可能である。合成部132は、バンド毎に、文字ラスタデータと画像ラスタデータとを合成する。色変換部33は、ラスタデータで用いられる表色系、例えば、RGB表色系を、プリンタ100が取扱可能な表色系、例えば、CMY表色系に変換する。色変換部133は、2つの表色系の対応関係を示すルックアップテーブルを備えており、このテーブルを参照して、色変換を行う。
【0050】
ハーフトーン部134は、ラスタデータにおいて各画素に記録されている多階調をドットの分布で表現するように、各画素に形成するドットを決定する処理である。ハーフトーン処理には、例えば、誤差拡散法、ディザ法などを適用することができる。
【0051】
インタレースデータ生成部135は、インタレース方式で印刷するよう、プリンタ100におけるヘッドの副走査量を決定する。インタレース方式とは、各主走査でラスタラインを間欠的に形成することによって、印刷時に生じるバンディングを緩和する印刷方法を言う。
【0052】
以上の処理を経て、生成されたデータを、本実施例では、印刷データと称するものとする。この印刷データは、プリントエンジン136に受け渡される。プリントエンジン136は、印刷データに従って、主走査および副走査の実行指示を駆動制御部137に出力する。駆動制御部137は、プリントエンジン136からの指示に応じて、主走査および副走査を実行し、印刷を行う。
【0053】
コマンドメモリ138は、サブCPU131のレジスタの一つとして位置づけられるメモリである。コマンドメモリ138は、メインデータ処理装置110による書き込み、サブCPU131による読み出しが可能であり、メインデータ処理装置110が、サブCPU131の動作を制御するために用いられる。メインデータ処理装置110は、サブCPU131用のコマンドを、コマンドメモリ138に書き込む。その後、サブCPU131に対して割り込み信号を出力すると、サブCPU131は、コマンドメモリ138からコマンドを読み出し、これを実行する。本実施例では、コマンドメモリ138内に、チャンネルCH0,チャンネルCH1の二つの領域を設け、チャンネルに対応した2本の割り込み信号を設けた。チャンネルCH0の割り込み信号が入力されると、メインCPU131は、コマンドメモリ138のチャンネルCH0に対応した領域からコマンドを読み出す。チャンネルCH1も同様である。
【0054】
コマンド118、138に設けられたチャンネルCH0、CH1は任意の使い分けが可能である。本実施例では、チャンネルCH0を印刷処理を進めるために必要となるコマンドに利用し、チャンネルCH1を印刷機構のステータス情報などハードウェアの動作に関する情報を2つのデータ処理装置110、130で共有するためのコマンドに利用する。このように目的の異なるコマンドを、個別のチャンネルで授受することにより、それぞれ任意のタイミングでコマンドの受け渡しを行うことができる利点がある。
【0055】
B.ラスタデータの構造:
図2はラスタデータの構造を示す説明図である。図の上部には、文書データで表される画像(以下、「ドキュメントイメージ」と呼ぶ)を示した。ドキュメントイメージには、文字、画像などの文書構成要素で構成される。先に説明した通り、本実施例では、文字と画像に分けて文書データを解釈し、文字プレーン、画像プレーンという2種類のラスタデータを生成する。
【0056】
図の中断には、文字プレーンを例示した。図中のマスは、文字プレーンを構成する画素を示している。文字プレーンでは、画素ごとに8ビットのカラーインデックスが与えられる。カラーインデックスとは、R,G,Bの階調値の組み合わせで定義される色に固有の識別子である。カラーインデックスと実際の色との対応関係は、カラーパレットによって与えられる。図中には、カラーインデックスCIが0の時は「透明」、CIが1の時は「黒」、CIが2の時は「白」」を与えるカラーパレットを例示した。カラーパレットは、文書データごとに固有に設定可能である。文字プレーンでは、カラーインデックスと併せて、濃淡の階調値を示すデータを画素ごとに与えるようにしてもよい。文字が単色である場合には、カラーインデックスを「0」および「1」の2色に制限することにより、画素あたり1ビットのデータとしてもよい。カラーインデックスを利用することにより、文字プレーンのデータ量を低減することができる。
【0057】
図の下段には、画像プレーンを例示した。画像プレーンでは、画素ごとに、R、G、Bの階調値が与えられる。本実施例では、文字プレーンのカラーパレットと共に、R,G,B各8ビット、総計24ビットで色を表すものとした。画像プレーンの解像度は、文字プレーンと一致させてもよいし、異なっていても良い。
【0058】
本実施例では、文字プレーンは画像プレーンよりも上位に位置づけられている。つまり、画像プレーンは常に文字プレーンの背景となるよう設定されている。従って、文字プレーンと画像プレーンを合成すると、文字プレーンにおいて透明色が設定されている画素のデータは画像プレーンによって与えられ、その他の画素のデータは文字プレーンによって与えられる。これは、文字が存在する画素は背景となる画像データは一切透視することができない不透明な画素と扱うことに相当する。このように不透明な画素と扱うことにより、文字プレーンが透明色であるか否かによって、文字プレーンの階調値、画像プレーンの階調値を選択するだけで、容易に両者の合成を行うことができる。本実施例では、合成後の処理は、色変換、ハーフトーン処理のように画素ごとに施される処理である。従って、これらの処理を行うためには、文字プレーン、画像プレーンのいずれを対象として処理を行うかを、画素ごとに決定すれば足りるため、本実施例では、改めて合成画像を生成する必要はない。
【0059】
実施例においては、透明度を考慮した合成を行っても構わない。例えば、文字が存在する画素について、文字プレーンで与えられる階調値と、画像プレーンで与えられる階調値とを補間するデータを用いることにより、半透明な状態での重ね合わせを実現してもよい。この補間を規定する透過係数を画素ごとに設定可能としてもよい。また、文字プレーンを画像プレーンに必ずしも優先させる必要はなく、プレーンの優先順位を逆転させてもよい。
【0060】
また、文字プレーンを画像プレーンに優先させて重ね合わせ、画像ピクセルの値を文字ピクセルの値で置き換える場合を例示したが、例えば、256色の画像プレーンとそれ以上の色数を表現可能な画像プレーンを重ね合わせる等のように、階調数の低い画像プレーンを階調数の高い画像プレーンに重ね合わせて合成する場合にも適用できる。
【0061】
本実施例では、文書データは、バンド単位で処理される。ドキュメントイメージ中に、バンドを例示した。図示する通り、プリンタ100の主走査方向に幅Wpのドキュメントイメージであるものとする。ドキュメントイメージを、副走査方向に一定のバンド幅Bhで分割した帯状の処理単位#1〜#3がバンドとなる。バンド単位で処理することにより、文書データ全体を一括して処理する場合に比較して、処理過程で必要となるメモリ容量を抑制することができる。本実施例では、2つのデータ処理装置110,130の間で受け渡されるべきデータ量を低減することもできる。バンド幅Bhは、予め設定された固定値としてもよいが、本実施例では、文書データに基づき、動的に設定するものとした。例えば、文書データで指定される印刷用紙のサイズ、印刷領域のサイズ、画像のサイズ、文字プレーンおよび画像プレーンの解像度、色数の指定などを考慮して、共有メモリ120に処理過程でのデータが格納できるよう設定することが好ましい。
【0062】
C.共有メモリの構成:
図3は共有メモリ120の構成を示す説明図である。共有メモリ120には、バッファバッファB0及びバッファB1の2つのバッファが設けられている。その他、印刷機構のステータス情報などのデータを受け渡すための領域も確保されているが、ここでは図示を省略した。各バッファB0,B1のサイズは、上述したバンド幅Bhの設定と併せて、印刷ジョブ毎に決定される。各バッファB0,B1には、文字プレーンを格納するための文字プレーン格納領域と、画像プレーンを格納するための画像プレーン格納領域とが、それぞれ設けられている。色数や解像度の違いに起因して、文字プレーンと画像プレーンのデータ量は必ずしも一致してはいないため、文字プレーン格納領域、画像プレーン格納領域のサイズも異なっていても構わない。
【0063】
文書データの処理中における、メインデータ処理装置110からサブデータ処理装置130への文字プレーン、画像プレーンのデータ受け渡しは、バッファB0、B1を次の態様で併用して行われる。図中では、矢印の種類によって、メインデータ処理装置110とサブデータ処理装置130が並行して行う処理を表した。
【0064】
まず、メインデータ処理装置110は、図中の白抜き矢印で示すように、バンド単位でバッファB0に文字プレーン、画像プレーンのデータを書き込む。次のバンドについては、塗りつぶし矢印で示すように、バッファB1にデータを書き込む。この書き込みと並行して、サブデータ処理装置130は、塗りつぶし矢印で示すように、バッファB0からデータを読み出し、印刷処理をする。
【0065】
メインデータ処理装置110が、バッファB1への書き込みが完了した頃には、サブデータ処理装置130によるバッファB0の読み出しが完了しているから、メインデータ処理装置110は、白抜き矢印で示すように、次のバンドのデータを再びバッファB0に書き込む。この書き込みと並行して、サブデータ処理装置130は、図中の白抜き矢印で示すように、バッファB1からデータを読み出し、印刷処理をする。
【0066】
以下、同様にして、メインデータ処理装置110が一方のバッファにラスタデータを書き込んでいる間に、サブデータ処理装置130が他方のバッファからラスタデータを読み出して処理を行う。本実施例では、以下、共有メモリ120のかかる利用方法をダブルバッファ方式と称する。実施例では、2つのバッファを併用する場合を例示しているが、3つ以上のバッファを併用してもよい。
【0067】
D.印刷処理:
図4は印刷処理のフローチャートである。左側にメインデータ処理装置110の処理、右側にサブデータ処理装置130の処理を示した。中央には、共有メモリ120へのアクセス状況を示した。この処理は、コンピュータ10から印刷要求とともに文書データを受信することで開始される。
【0068】
処理が開始されると、メインデータ処理装置110は、印刷タスク情報を共有メモリ120に書き込む(ステップS100)。印刷タスク情報とは、印刷条件を規定するための情報であり、印刷用紙のサイズ、印刷領域のサイズ、ドキュメントイメージのサイズ、画像プレーンの解像度、文字プレーンの解像度、印刷解像度、印刷用紙の種類、単方向印刷/双方向印刷の指定、画像プレーンおよび文字プレーンの色数、カラーパレットなどが含まれる。印刷タスク情報を書き込む領域は、先に説明したバッファB0,B1とば別領域で、各項目ごとに予め設定されている。
【0069】
メインデータ処理装置110は、印刷タスク情報の書き込みが完了すると、印刷タスク実行コマンドを、サブデータ処理装置130のコマンドメモリ138のチャンネルCH0に書き込み、サブCPU131に割り込み信号を出力する(ステップS101)。印刷タスク実行コマンドとは、サブCPU131が印刷処理を開始するためのトリガとなる信号であり、例えば、「0」という既定のコマンド番号で足りる。サブCPU131は、割り込み信号に応じて、コマンドメモリ138からコマンドを読み出し、内容を解析する。読み出したコマンドが印刷タスク実行コマンドであると判断されると、共有メモリ120の所定領域にアクセスして印刷タスク情報を読出す(ステップS200)。そして、印刷タスク情報に基づいて、バッファB0,B1のサイズを決定するとともに、バッファB0,B1の領域を共有メモリ120内に確保する。バッファのサイズは、バンド単位のラスタデータに余裕を見込んで設定することが好ましい。また、バッファB0、B1に関する情報、例えば、各バッファの先頭アドレス、サイズ、および格納可能なラスタ数を、入力バッファ情報として、共有メモリ120の所定領域に書き込む(ステップS210)。次に、サブデータ処理装置130は、メインデータ処理装置110のコマンドメモリ118のチャンネルCH0に印刷タスク応答コマンドを書き込み、メインCPU111に割り込み信号を出力する(ステップS211)。印刷タスク応答コマンドは、バッファの確保完了を通知するとともに、メインデータ処理装置110が文書データの解析を開始するトリガとなる信号である。
【0070】
本実施例では、サブデータ処理装置130がバッファの確保を行う場合を例示したが、バッファB0,B1の確保はメインデータ処理装置110が行ってもよい。この場合には、入力バッファ情報は、印刷タスク情報と同様の方法で、サブデータ処理装置130に伝達すればよい。
【0071】
メインデータ処理装置110は、印刷タスク応答コマンドを認識すると、共有メモリ120から入力バッファ情報を読み込んで、文字プレーン及び画像プレーンを格納するバッファのアドレスを把握する(ステップS110)。そして、文書データを解釈し、バンド単位で文字プレーン及び画像プレーンのデータを生成して(ステップS120)、バッファB0の文字プレーン格納領域、画像プレーン格納領域にそれぞれ書き込む(ステップS121)。
【0072】
データの書き込みが完了すると、メインデータ処理装置110は、バッファB0の印刷動作要求情報を、サブデータ処理装置130のコマンドメモリ138のチャンネルCH0に書き込み、サブCPU131に割り込み信号を出力する(ステップS122)。バッファB0の印刷動作要求情報は、バッファB0に格納されたラスタデータの印刷を要求するコマンドであり、バッファB0に書き込んだラスタ数をパラメータに含んでいる。サブデータ処理装置130は、このコマンドを認識すると、バッファB0から文字プレーン及び画像プレーンのデータを読出し(ステップS220)、両者の合成、色変換処理、ハーフトーニング処理等を行って印刷する(ステップS221)。バッファB0の印刷が完了すると、サブデータ処理装置130は、バッファB0の印刷応答コマンドをメインデータ処理装置110のコマンドメモリ118のチャンネルCH0に書き込む。この際、データの処理が完了したバッファB0を、サブデータ処理装置130が初期化しておくようにしてもよい。こうすることにより、次に処理されたラスタデータに余白部分が多い場合には、メインデータ処理装置110は余白部分を除く画素にデータを書き込むだけ良くなり、データの書き込み時間を短縮することができる。
【0073】
一方、メインデータ処理装置110は、サブデータ処理装置130がバッファB0の印刷処理を行っている間、並行して次のバンドのラスタデータを生成する(ステップS130)。次バンドのラスタデータは、バッファB1に格納される(ステップS131)。図中では、区別を容易にするため、バッファB0を利用する処理を実線で示し、バッファB1を利用する処理を破線で示した。メインデータ処理装置110は、バッファB1へのデータの格納が完了すると、サブデータ処理装置130に対して、バッファB1の印刷動作要求情報および書き込んだラスタ数を送信する(ステップS132)。サブデータ処理装置130は、印刷動作要求情報に応じて、バッファB1の読み出しを行い(ステップS230)、印刷を実行する(ステップS231)。印刷が完了すると、バッファB1の印刷応答コマンドをメインデータ処理装置110に送信する(ステップS232)。
【0074】
印刷動作要求情報、印刷応答コマンドは、バッファB0用、バッファB1用を共通としても構わないが、本実施例では、異なるコマンドとした。こうすることにより、コマンド自体によってアクセスすべきバッファが特定されるため、各データ処理装置が誤ったバッファにアクセスすることを回避でき、処理の安定化を図ることができる。
【0075】
サブデータ処理装置130がバッファB1の処理をしている間、並行してメインデータ処理装置110は、第3番目のバンドのラスタデータを生成してバッファB0に格納する(ステップS140)。ただし、サブデータ処理装置130がバッファB0の処理を実行している最中に、新たなデータが誤ってバッファB0に書き込まれるのを回避するため、バッファB0へのデータ格納は、バッファB0の印刷応答コマンドを受信した後に行われる。
【0076】
以下、同様に、メインデータ処理装置110およびサブデータ処理装置は、使用するバッファを切り替えながら印刷処理を進める。メインデータ処理装置110は、ページの最終バンドのラスタデータをサブデータ処理装置130に印刷指示した後、印刷タスク終了動作要求情報をサブデータ処理装置130に送信する(ステップS150)。印刷タスク終了動作要求情報は、印刷ジョブの完了を通知するコマンドである。このコマンドと併せて、印刷完了後に排紙を行うか否かを指定してもよい。サブデータ処理装置130は、最終バンドの印刷を終えると、印刷タスク終了応答コマンドをメインデータ処理装置110に通知する(ステップS240)。
【0077】
このように構成される本実施の形態によれば、文書データの解釈と、ラスタデータの処理とを2つのデータ処理装置で分担することにより、両者間での負荷の偏りを緩和し、効率的に印刷を実行することができる。
【0078】
本実施例のプリンタ100は、ラスタデータをバンド単位で生成するとともに、複数のバッファB0,B1を併用してラスタデータを受け渡すことにより、メインデータ処理装置110とサブデータ処理装置130の並列処理が可能であり、処理時間の短縮を図ることができる。
【0079】
E.変形例:
メインデータ処理装置110とサブデータ処理装置130との間で、授受されるコマンドは、実施例で例示したものに限られない。例えば、メインデータ処理装置110からサブデータ処理装置130に送信されるコマンド(以下、「動作要求情報」と称する)として、入力スキップ動作要求情報を含めても良い。入力スキップ動作要求情報とは、プリンタ100が印刷すべきラスタ位置を無条件に進めるためのコマンドである。例えば、一部のラスタが、文字プレーン、画像プレーンともに余白であることが判明した場合には、そのラスタ数を指定して、このコマンドを送信する。サブデータ処理装置130は、プリンタ100を制御して、ドットを形成せずに、このコマンドで指定されたラスタ数分の副走査を行わせればよい。このコマンドを利用することにより、余白部分については、印刷データ生成のための種々の処理を省略することができる。サブデータ処理装置130からメインデータ処理装置110に送信されるコマンド(以下、「応答コマンド」と呼ぶ)として、入力スキップ動作要求情報の完了を通知するための入力スキップ応答コマンドを併せて設定しておくことが好ましい。
【0080】
メインデータ処理装置110およびサブデータ処理装置130の一方が管理する機構のステータス情報を、他方に伝達するためのコマンドを設けても良い。例えば、サブデータ処理装置130が管理する印刷機構のステータスとして、用紙切れ、用紙詰まり、インク切れ、排紙トレイへの印刷済み用紙の有無などが挙げられる。サブデータ処理装置130は、これらのステータスを表すステータス情報を共有メモリ120に書き込んだ後、その読み出しを指示するコマンド「ステータス情報変更コマンド」を、メインデータ処理装置110側のコマンドメモリ118に送信する。このコマンドは、印刷時に使用するチャンネルCH0ではなく、チャンネルCH1を使用することが好ましい。こうすることで、印刷に関連する処理とは独立した任意のタイミングでステータス情報を通知することが可能となる。メインデータ処理装置110からサブデータ処理装置130に伝えるステータス情報としては、例えば、メインデータ処理装置110のスリープが挙げられる。
【0081】
一方のデータ処理装置が管理するハードウェアの動作状態を、他方のデータ処理装置が制御するための動作要求情報を、ステータス情報の一種として、共有メモリ120経由で受け渡しても良い。例えば、メインデータ処理装置110からサブデータ処理装置130に伝える動作要求情報としては、LEDの点灯状態が挙げられる。メインデータ処理装置110は、共有メモリ120に、LEDの点灯状態を指示する動作要求情報を書き込んだ後、その読み出しを指示するコマンドを、コマンドメモリ138に送信する。このコマンドもチャンネルCH1を用いることが好ましい。サブデータ処理装置130は、このコマンドに応じて、動作要求情報を読み込み、LEDの点灯状態を指示通りに制御することができる。
【0082】
ステータス情報や動作要求情報については、読み出しを指示するコマンドの送信を省略してもよい。つまり、これらの情報の受信側となるデータ処理装置は、共有メモリ120に書き込まれた情報を、適宜、ポーリングするものとしてもよい。こうすることで、受信側データ処理装置の処理が妨げられることが抑制され、処理効率を向上することができる。ポーリングを採用する場合、情報が受信側データ処理装置によって未参照状態にあることを示すフラグデータを添付して情報を書き込んでもよい。受信側データ処理装置は、このフラグデータに基づいて、情報が更新されたか否かを判断することができる。また、受信側データ処理装置が、情報を読み込んだ時点で、このフラグデータを既参照状態に変更すれば、書き込み側のデータ処理装置は、このフラグデータによって、情報が相手に参照されたか否かを判断することができる。
【0083】
ポーリングでは、受信側データ処理装置の動作を妨げないため、情報の書き込み側のデータ処理装置も独自のタイミングで情報を書き込むことができる。情報の書き込み頻度をあげることも可能であるし、ステータス情報や動作要求情報に変更が生じた時点で直ちに書き換えることも可能であり、共有メモリ120に書き込まれた情報のリアルタイム性を向上することができる。
【0084】
動作要求情報には、例えば、ユーザがスイッチを操作した場合の動作など、動作の確実性、即応性が要求されるものがある。例えば、サブデータ処理装置130が管理するプリンタ100について、インク交換指示、エラー解除指示、紙種切換指示などが挙げられる。これらの動作要求情報は、共有メモリを介することなく、コマンドメモリ118,138にコマンドとして書き込んでもよい。データ処理装置は、割り込み信号を受けると、コマンドメモリ118,138の内容を必ず参照するため、コマンドメモリ118、138を利用することにより、動作要求情報を確実かつ遅滞なく受け渡すことができる。
【0085】
動作要求情報の内容に応じて、共有メモリ120を介した受け渡しと、コマンドメモリ118,138を介した受け渡しを使い分けても良い。例えば、動作の確実性、即応性が要求される動作要求情報にコマンドメモリ118,138を使用し、LEDの点灯状態のように動作の確実性、即応性は比較的低いが、リアルタイム性を向上した継続的な制御が要求される動作要求情報に共有メモリ120を使用するという使い分けが可能である。
【0086】
なお、上述した本発明の各実施の形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなく、他の様々な態様で本発明を実施できる。例えば、本実施例で例示した機能ブロックは、ソフトウェア的に実現してもよいし、ハードウェア的に実現しても構わない。
【図面の簡単な説明】
【図1】 実施例としての本実施の形態に係るプリンタを用いた印刷システムの全体概要構成を示す説明図ブロック図である。
【図2】 ラスタデータの構造を示す説明図である。
【図3】 共有メモリ120の構成を示す説明図である。
【図4】 印刷処理のフローチャートである。
【符号の説明】
10…コンピュータ
100…プリンタ
110…メインデータ処理装置
111…メインCPU
112…解釈部
113…画像プレーン生成部
114…文字プレーン生成部
115…バンド制御部
118…コマンドメモリ
120…共有メモリ
130…サブデータ処理装置
131…サブCPU
131a…コマンド解析部
132…合成部
133…色変換部
134…ハーフトーン部
135…インタレースデータ生成部
136…プリントエンジン
137…駆動制御部
138…コマンドメモリ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a printer including a plurality of data processing devices.
[0002]
[Prior art]
Conventionally, a printer such as an ink jet printer performs printing based on document data generated by a personal computer or the like.
Some of these printers are called intelligence printers that can print by interpreting document data described in a high-level printing language.
Intelligence printers are often required to have high data processing capabilities because they generate print data by interpreting document data described in a print language. In order to improve data processing capability, there are cases where a plurality of CPUs are mounted and data processing operations are shared by the plurality of CPUs (for example, Patent Document 1).
[0003]
[Patent Document 1]
Japanese Patent Application Laid-Open No. 11-249843
[0004]
[Problems to be solved by the invention]
Conventionally, in a printer equipped with a plurality of CPUs, one CPU often generates print data, and the other CPU is often responsible for print engine drive control. In such a configuration, the processing load on the CPU that generates the print data is greater. The uneven processing load on the CPU may cause an increase in CPU cost and may hinder efficient printing processing. The present invention has been made in view of the above problems, and an object of the present invention is to adjust the data processing burden of each data processing device and improve the processing efficiency in a printer equipped with a plurality of data processing devices.
[0005]
[Means for solving the problems and their functions and effects]
The printer of the present invention includes a first data processing device, a second data processing device, and a data transmission unit that transfers data between the two. The first data processing apparatus performs relatively advanced data processing in a series of processing for generating print data from document data. The second data processing device performs the remaining processing. The first and second data processing devices may be configured as a single CPU, or may be configured as a microcomputer including a CPU, a ROM, a RAM, an input / output port, and the like. A dedicated circuit such as an ASIC may be used.
[0006]
In general, a series of processes from generation of document data to print data is broadly classified into high-level processes and processes that are not so high-level processes but have a huge amount of data to be processed. In the present invention, the processing content of each data processing device is distributed to relatively advanced processing and other processing. Thereby, it is possible to prevent an excessive burden from occurring in either one of the first and second data processing devices.
[0007]
For example, when document data is generated in a print language, the first data processing device interprets the document data to generate raster data, and the second data processing device converts the raster data into print data. Thus, each data processing function can be distributed. Here, the raster data means data representing an image to be printed by defining gradation values in pixel units, such as bitmap data.
[0008]
The above-mentioned print languages include high-grade print languages such as PostScript and XHTML-print (print commands written in an extensible hypertext markup language). The first data processing apparatus performs advanced data processing that interprets each print command of the print language and generates raster data. The second data processing apparatus is a relatively mechanical system that converts raster data into print data, but performs a huge amount of data.
[0009]
In the present invention, the raster data is generated in the first data processing apparatus by treating character data in document data and document data image data separately, and generating character raster data and image raster data separately. Good. The second data processing device combines the character raster data and the image raster data to generate print image data. Thus, by separately generating the character raster data and the image raster data, it is possible to generate data utilizing the characteristics of the characters and images. For example, since characters generally have fewer colors used than images, this feature can be used to reduce the number of colors in character raster data and reduce the data size.
[0010]
A shared memory can be used for data transmission between the first data processing device and the second data processing device. Data communication may be performed by a parallel interface, a serial interface, or other buses. In the case of communication, the first data processing device and the second data processing device need to repeatedly execute a process of reading data from a buffer unique to each data processing device, communicating, and writing to the other buffer. . On the other hand, when a shared memory is used, there is an advantage that data written by one data processing device can be transferred in a short time by the other data processing device reading the data. In general, since raster data has an enormous amount of data, the effect of shortening this time is great.
[0011]
The shared memory is provided with a plurality of shared areas, and the first data processing apparatus and the second data processing apparatus sequentially switch and use these shared areas under the condition that both do not use the same shared area at the same time. May be.
[0012]
In this way, for example, while one data processing apparatus is writing data to a certain shared area, the other data processing apparatus can read and process data from another shared area. By using a plurality of shared areas while switching in this way, efficient data transfer can be performed.
[0013]
Furthermore, when character raster data and image raster data are generated separately, it is preferable to provide a character plane for storing character raster data and an image plane for storing image raster data in each shared area.
[0014]
For example, when document data is generated by a print language that describes characters and images separately, such as XHTML-print, character raster data and image raster data are generated separately and stored in each plane. Let Thereby, it is possible to easily combine the character raster data and the image raster data.
[0015]
In the present invention, the second data processing apparatus can execute, for example, at least a part of data processing of color conversion of each pixel of raster data, halftone processing, and control of the printing unit. Since these processes are not so sophisticated, but the data amount is enormous, it is preferable to implement at least a part of the data processing function as a hardware circuit.
[0016]
For example, a color conversion function, a halftoning function, and the like can be configured as a hardware circuit such as an ASIC (Application-Specific Integrated Circuit) and can be mounted on the second data processing apparatus.
[0017]
The printer of the present invention may adopt the following configuration as the second aspect. The first data processing apparatus inputs document data described in a print language and interprets the print language. The second data processing device generates print data based on the interpretation result, and controls the printing mechanism based on the print data. Even with such processing sharing, it is possible to alleviate the uneven load of each data processing apparatus, and to improve the processing efficiency. The interpretation result can be output as raster data, for example.
[0018]
In the second aspect, when the document data includes a plurality of types of document components, the first data processing apparatus may output an interpretation result for each document component. A document component means an element having a different method for specifying print contents in a print language, and examples thereof include characters, images, and tables. What is necessary is just to synthesize | combine the interpretation result of each document component by a 2nd data processing apparatus. By doing so, the characteristics of each document component can be utilized when data is transferred between the first data processing apparatus and the second data processing apparatus. For example, since characters generally have fewer colors used than images, this feature can be used to reduce the number of colors in character raster data and reduce the data size.
[0019]
Also in the second mode, the data transmission unit may use a parallel memory, a serial interface, and other buses, or a shared memory shared by the first and second data processing devices. In particular, in the case of enormous amounts of data such as raster data, a shared memory is suitable from the viewpoint of data exchange efficiency.
[0020]
When using a shared memory, a plurality of shared areas may be defined, and the plurality of shared areas may be sequentially switched and used by the first data processing apparatus and the second data processing apparatus. In this case, it is preferable to switch under the condition that both do not use the same shared area at the same time.
[0021]
When the shared area is switched and used, it is preferable to divide the document data into a plurality of document areas smaller than the document data and proceed with the process. For example, the first data processing apparatus can output the interpretation result to one of the shared areas for each document area, and the second data processing apparatus can generate print data in units of document areas. By doing so, it is possible to efficiently use a plurality of shared areas and improve processing efficiency. Various settings can be made for the document area. For example, when a printing mechanism that performs printing by repeating main scanning and sub-scanning is used, the document area can be printed efficiently by dividing the document data only in the sub-scanning direction and defining the data. It is preferable in that it can be performed.
[0022]
The size of the shared area is preferably set dynamically according to the document data. The number of shared areas may be set dynamically. By doing so, the resources of the shared memory can be used effectively.
[0023]
The size of the shared area may be set by either the first data processing apparatus or the second data processing apparatus. When the second data processing device is used, predetermined information related to the size of the print data is transmitted from the first data processing device to the second data processing device based on the document data. The processing device takes a procedure of setting the size of the shared area based on this information. The second data processing apparatus transmits the setting result to the first data processing apparatus, so that the shared area can be used by both data processing apparatuses.
[0024]
When the shared memory is used, the first or second data processing device may write status information indicating the operating state of the hardware under the management of the data processing device to the shared memory. That is, the shared memory may be used not only for transferring data related to printing but also for transferring status information. It may be used only for status notification from one of the data processing devices to the other data processing device, or may be used for bidirectional notification.
[0025]
When the status information is transferred via the shared memory in this way, the receiving data processing apparatus can refer to the information at an arbitrary timing regardless of the timing at which the status information is written. Therefore, there is an advantage that processing on the receiving side is not hindered. Regardless of whether or not the status information has been read, the writing side can relatively easily ensure the real-time property of the information by frequently updating the status information. Status information suitable for passing through the shared memory in this way includes, for example, the sleep state of the data processing device, the ready state of the printing mechanism, the busy state, various errors, the lack of consumables such as ink and paper, etc. Is mentioned.
[0026]
When status information is exchanged via the shared memory, the status information may be written by attaching flag data indicating that the status information is in an unreferenced state by the other data processing apparatus. The data processing apparatus on the receiving side can determine whether the status information has been updated based on the flag data. Further, the data processing device on the receiving side may refer to the status information and change the flag data to the already-referenced state. By doing so, the data processing device on the writing side can determine whether or not the status information is referred to by the other party.
[0027]
The information exchanged between the data processing apparatuses may include operation request information for requesting the other data processing apparatus to perform a predetermined operation according to the operation state of the hardware under its management. For example, a data processing device that manages a switch of a remote controller can perform operations such as ink replacement, paper switching, paper discharge, and power on / off according to the operation state of the switch. It may be necessary to send operation request information to Such operation request information is preferably not only simply written in the shared memory, but also provided separately with an operation request information transmitting section for forcibly reading the other data processing apparatus. For example, a method may be employed in which operation request information is transmitted directly to the other data processing apparatus without using a shared memory. After writing the operation request information in the shared memory, a method may be employed in which a signal for forcibly reading the operation request information is transmitted to the other data processing apparatus.
[0028]
In the second aspect, in order for the first and second data processing devices to operate in cooperation, it is preferable that each data processing device can control the other operation. For example, each of the first and second data processing devices may be writable by at least a part of a register associated with the data processing device from the other data processing device. Each data processing apparatus can operate by interpreting a predetermined command written in a register associated with itself. It is also possible to control the operation of the other data processing device by writing a command to a register associated with the other data processing device. A memory area accessible by both the first and second data processing devices may be used as a register.
[0029]
The control of the operation by the command can be applied to, for example, data transfer using a shared memory. First, one of the first and second data processing devices writes data to be transferred to the other data processing device in the shared memory. Thereafter, data can be read by writing a command instructing reading of the written data to a register associated with the other data processing apparatus. By adopting this method, it is possible to promptly deliver data without taking a complicated method such as periodically monitoring writing to the shared memory.
[0030]
When data is transferred using a shared memory by the above-described method, it is preferable to set a command according to the type of data. By doing so, the contents of the data can be known before starting the reading of the data from the shared memory, so that the processing according to the type of data can be realized quickly. Further, since it is not necessary to write information for specifying the type of data in the shared memory, resources can be saved.
[0031]
When a plurality of shared areas are set in the shared memory, it is preferable to use not only the type of data but also a command specific to the shared area where the data has been written. For example, the first data processing apparatus outputs the interpretation result to one of the shared areas for each document area, and writes a command specific to the output destination shared area in a register associated with the second data processing apparatus. . By doing so, the second data processing apparatus can quickly know in which shared area the data is stored, so that the data reading time can be shortened.
[0032]
A variety of commands can be defined as commands exchanged between data processing apparatuses. For example, the first data processing apparatus may define a command for controlling the printing mechanism via the second data processing apparatus. That is, the first data processing apparatus may transmit a command for moving the position where the printing mechanism should execute printing according to the margin when the document area includes a margin. By doing so, it is possible to perform printing efficiently without having to generate print data corresponding to the margin. When a printing mechanism that performs printing by performing main scanning and sub-scanning is used, the movement amount can be specified by the number of pixels to be moved in the main scanning direction, the number of rasters to be moved in the sub-scanning direction, and the like.
[0033]
The above-described status information and operation request information may be written in the shared memory, and a read command for causing the information to be read may be set. In this case, status information and operation request information may be written at various timings regardless of processing related to printing, and an immediate response may be required. In order to read these information smoothly, a plurality of channels for transmitting commands between data processing apparatuses may be provided, and commands related to reading commands and printing may be transmitted in different channels.
[0034]
In the second aspect, the second data processing device performs various processes to generate print data. When the printing mechanism is a mechanism that forms multicolor dots and performs multicolor printing, these processes can include at least one of a color conversion process and a halftone process. Color conversion processing refers to conversion processing from the color system used in the interpretation result output from the first data processing apparatus to the color system handled by the printing mechanism. Halftone processing refers to processing for determining the distribution of dots that can be formed for each pixel by the printing mechanism so as to express multiple gradations.
[0035]
Since the color conversion process and the halftone process are processes for each pixel, the process is relatively simple, but the amount of data to be processed is very large. Accordingly, it is preferable that at least one of the color conversion process and the halftone process is executed by a circuit prepared in hardware such as a so-called ASIC.
[0036]
In the second aspect, the transfer speed of the data bus or other data transfer path connecting the second data processing apparatus and the shared memory is faster than the transfer speed between the first data processing apparatus and the shared memory. Is preferred. Since the second data processing apparatus frequently accesses the shared memory frequently for pixel-by-pixel processing or the like, it is possible to shorten the processing time in the second data processing apparatus by increasing the transfer speed. it can.
[0037]
The present invention can adopt various configurations by appropriately combining the various features described in the first aspect and the second aspect or omitting some of them. In addition to the printer, the present invention may be configured by a control device that controls the printer using the first data processing device and the second data processing device described above, a printer control method, and the like.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described in the following order.
A. System configuration:
B. Raster data structure:
C. Shared memory configuration:
D. Printing process:
E. Variations:
[0039]
A. System configuration:
FIG. 1 is an explanatory diagram showing a configuration of a printing system using a printer as an embodiment. For example, the computer 10 transmits document data described in a printing language such as XHTML-print to the printer 100. The document data may be generated by the computer 10 or acquired via a network such as the Internet. Examples of the computer 10 include a personal computer, a digital camera, a portable information terminal, a mobile phone, a set top box (STB) for receiving a satellite broadcast and displaying it on a display device.
[0040]
The printer 100 is a printer capable of so-called direct printing, which can interpret document data and perform printing without processing with a printer driver installed in a personal computer. In this embodiment, an inkjet printer that performs color printing with multicolor dots is used. The printer 100 drives the head and ejects ink droplets while sub-scanning the printing paper in a direction orthogonal to the main scanning direction while performing main scanning to reciprocate the head with respect to the printing paper. To form dots. Unidirectional printing in which dots are formed in one direction during either forward movement or backward movement of main scanning and bidirectional printing in which dots are formed during both forward movement and backward movement are possible. The printer 100 includes a main data processing device 110, a sub data processing device 130, and a shared memory 120.
[0041]
The shared memory 120 is a memory shared by the main data processing device 110 and the sub data processing device 130. Writing and reading can be performed from any data processing apparatus, and the data is exchanged between them. In this embodiment, the shared memory 120 uses a so-called SDRAM. Other RAMs and external storage devices may be applied to the shared memory 120. The shared memory 120 is under the management of the sub data processing device 130 due to the hardware configuration, and operates based on the clock of the sub data processing device. The sub-data processing device 130 and the CPU and other circuits provided in the main data processing device 110 are connected by a bus. Is faster than the main data processor 110. In this embodiment, as will be described later, the sub-data processing device 130 performs processing that requires access to the shared memory 120 relatively frequently, so that the overall processing speed is improved by adopting such a hardware configuration. Can do. The hardware configuration is not limited to this, and the shared memory 120 may be under the management of the main data processing device 110 or may be configured independently of both.
[0042]
The main data processing device 110 includes a main CPU 111, a RAM, a ROM, and a command memory 118. In the figure, functional blocks that the main CPU 111 implements based on software stored in the ROM are also shown. In the drawing, only relevant portions in the printing process are shown. The main data processing device 110 also has a function of managing various switches operated by the user and operations of the remote controller.
[0043]
The interpretation unit 112 analyzes a print command of document data received from the computer 10. In order to handle document data described in XHTML or XML (Extensible Markup Language), the interpretation unit 112 has a function of interpreting XHTML or XML. In general, document data includes images and characters as document components. In this embodiment, images and characters are processed separately. Interpretation unit 112 passes the part related to the image from the document data to image plane generation unit 113 and transfers the part related to the character to character plane generation unit 114.
[0044]
The document constituent element means an element having a different content designation method in the document data. For example, in a language such as XHTML, the content to be printed is specified for character data following information defining font, size, character color, and the like. On the other hand, in the image data, the URL of the image file is specified following the information defining the size and position coordinates at the time of printing. The document components are not limited to characters and images, and “tables” may be handled as separate document components.
[0045]
The image plane generating unit 113 generates image raster data based on a print command related to an image included in the document data. The character plane generation unit 114 generates character raster data based on a print command related to characters included in the document data. In this process, the character plane generator 114 refers to the font memory as appropriate in order to convert the character code into a raster image. The band control unit 115 writes the image raster data and character raster data in the shared memory 120. The raster data is data in which gradation values are recorded for each pixel at a predetermined resolution. In this embodiment, the document data is not processed in a lump, but is divided into units called bands and written in the shared memory 120 in units of bands. A band setting method will be described later.
[0046]
The command memory 118 is a memory that is positioned as one of the registers of the main CPU 111. The command memory 118 can be written by the sub data processing device 130 and read by the main CPU 111, and the sub data processing device 130 is used for controlling the operation of the main CPU 111. The sub data processing device 130 writes a command for the main CPU 111 in the command memory 118. Thereafter, when an interrupt signal is output to the main CPU 111, the main CPU 111 reads a command from the command memory 118 and executes it. In this embodiment, two areas of channel CH0 and channel CH1 are provided in the command memory 118, and two interrupt signals corresponding to the channels are provided. When the channel CH0 interrupt signal is input, the main CPU 111 reads a command from the area corresponding to the channel CH0 of the command memory 118. The same applies to channel CH1.
[0047]
The sub data processing device 130 includes a sub CPU 131, a RAM, a ROM, a command memory 13, and an ASIC that realizes various functions. In the figure, functional blocks of the sub data processing device 130 are also illustrated. With these functional blocks, the sub data processing device 130 processes the raster data generated by the main data processing device 110 and executes printing. Since the raster data processing is often performed for each pixel, the sub data processing device 130 frequently accesses the shared memory 120. In the present embodiment, as described above, the processing speed in the sub data processing device 130 is improved by configuring the hardware with an emphasis on the access speed from the sub data processing device 130 to the shared memory 120. Yes. In addition, the sub data processing device 130 also has a function of managing the status of a printing mechanism that performs printing and the operation of a display unit such as an LED provided in the printer 100 of the printer 100.
[0048]
Command analysis unit 131a Compositing unit 132 Halftone unit 134 Interlace data generation unit 135 The command analysis unit 131a is a function realized by software by the sub CPU 131, and interprets a print command input from the main data processing device 110. . The command interpreted here may include, for example, the start of printing, the number of copies, designation of enlargement or reduction, and the like.
[0049]
Other functional blocks are realized by hardware by ASIC. Of course, the sub CPU 131 can be realized by software. The combining unit 132 combines the character raster data and the image raster data for each band. The color conversion unit 33 converts a color system used in raster data, for example, an RGB color system into a color system that can be handled by the printer 100, for example, a CMY color system. The color conversion unit 133 includes a look-up table indicating the correspondence between two color systems, and performs color conversion with reference to this table.
[0050]
The halftone unit 134 is a process of determining dots to be formed in each pixel so that the multi-gradation recorded in each pixel in the raster data is expressed by the dot distribution. For example, an error diffusion method or a dither method can be applied to the halftone process.
[0051]
The interlace data generation unit 135 determines the sub-scanning amount of the head in the printer 100 so that printing is performed by the interlace method. The interlace method is a printing method that alleviates banding that occurs during printing by intermittently forming raster lines in each main scan.
[0052]
In the present embodiment, the data generated through the above processing is referred to as print data. This print data is transferred to the print engine 136. The print engine 136 outputs main scan and sub-scan execution instructions to the drive control unit 137 in accordance with the print data. In response to an instruction from the print engine 136, the drive control unit 137 performs main scanning and sub scanning to perform printing.
[0053]
The command memory 138 is a memory that is positioned as one of the registers of the sub CPU 131. The command memory 138 can be written by the main data processing device 110 and read by the sub CPU 131, and the main data processing device 110 is used for controlling the operation of the sub CPU 131. The main data processing device 110 writes a command for the sub CPU 131 in the command memory 138. Thereafter, when an interrupt signal is output to the sub CPU 131, the sub CPU 131 reads a command from the command memory 138 and executes it. In this embodiment, two areas of channel CH0 and channel CH1 are provided in the command memory 138, and two interrupt signals corresponding to the channels are provided. When the interrupt signal of channel CH0 is input, the main CPU 131 reads a command from the area corresponding to channel CH0 of the command memory 138. The same applies to channel CH1.
[0054]
The channels CH0 and CH1 provided in the commands 118 and 138 can be used arbitrarily. In this embodiment, the channel CH0 is used for a command necessary for proceeding with the printing process, and the channel CH1 is used to share information regarding hardware operation such as status information of the printing mechanism between the two data processing devices 110 and 130. It is used for the command. Thus, there is an advantage that the command can be exchanged at an arbitrary timing by sending and receiving commands having different purposes through individual channels.
[0055]
B. Raster data structure:
FIG. 2 is an explanatory diagram showing the structure of raster data. In the upper part of the figure, an image represented by document data (hereinafter referred to as “document image”) is shown. The document image is composed of document components such as characters and images. As described above, in this embodiment, the document data is interpreted separately for characters and images, and two types of raster data, ie, a character plane and an image plane, are generated.
[0056]
For the interruption of the figure, a character plane is illustrated. The squares in the figure indicate the pixels constituting the character plane. In the character plane, an 8-bit color index is given for each pixel. The color index is an identifier unique to a color defined by a combination of R, G, and B gradation values. The correspondence between the color index and the actual color is given by the color palette. In the figure, a color palette that gives “transparent” when the color index CI is 0, “black” when the CI is 1, and “white” when the CI is 2 is illustrated. The color palette can be set uniquely for each document data. In the character plane, data indicating grayscale values may be provided for each pixel together with the color index. If the character is a single color, the color index may be limited to two colors of “0” and “1”, thereby obtaining 1-bit data per pixel. By using the color index, the data amount of the character plane can be reduced.
[0057]
An image plane is illustrated in the lower part of the figure. In the image plane, R, G, and B gradation values are given for each pixel. In this embodiment, the color is represented by 8 bits for each of R, G, and B, and a total of 24 bits together with the color palette of the character plane. The resolution of the image plane may match the character plane or may be different.
[0058]
In the present embodiment, the character plane is positioned higher than the image plane. That is, the image plane is always set to be the background of the character plane. Therefore, when the character plane and the image plane are combined, the pixel data for which the transparent color is set in the character plane is given by the image plane, and the other pixel data is given by the character plane. This is equivalent to treating a pixel in which a character exists as an opaque pixel in which image data as a background cannot be seen through at all. By treating it as an opaque pixel in this way, it is possible to easily synthesize both by simply selecting the gradation value of the character plane and the gradation value of the image plane depending on whether the character plane is a transparent color or not. Can do. In this embodiment, the post-combination processing is processing performed for each pixel such as color conversion and halftone processing. Therefore, in order to perform these processes, it is only necessary to determine for each pixel whether the process is to be performed on a character plane or an image plane. In this embodiment, it is not necessary to generate a composite image again. .
[0059]
In the embodiment, synthesis may be performed in consideration of transparency. For example, by using data that interpolates between the gradation value given by the character plane and the gradation value given by the image plane for pixels in which characters exist, superimposition in a translucent state can be realized. Good. The transmission coefficient that defines this interpolation may be set for each pixel. Further, it is not always necessary to give priority to the character plane over the image plane, and the priority order of the planes may be reversed.
[0060]
Further, the case where the character plane is overlaid with priority over the image plane and the value of the image pixel is replaced with the value of the character pixel has been illustrated, but for example, an image plane capable of expressing 256 image planes and more colors It can also be applied to a case where an image plane with a low number of gradations is superimposed on an image plane with a high number of gradations and combined.
[0061]
In this embodiment, document data is processed in band units. The band was illustrated in the document image. As illustrated, it is assumed that the document image has a width Wp in the main scanning direction of the printer 100. Band-shaped processing units # 1 to # 3 obtained by dividing the document image by a constant bandwidth Bh in the sub-scanning direction are bands. By processing in band units, the memory capacity required in the processing process can be suppressed as compared with the case where the entire document data is processed collectively. In the present embodiment, the amount of data to be transferred between the two data processing devices 110 and 130 can be reduced. The bandwidth Bh may be a fixed value set in advance, but in this embodiment, it is set dynamically based on the document data. For example, in consideration of the size of the printing paper specified by the document data, the size of the printing area, the size of the image, the resolution of the character plane and the image plane, the number of colors, etc., the data in the process is stored in the shared memory 120. It is preferable to set so that it can be stored.
[0062]
C. Shared memory configuration:
FIG. 3 is an explanatory diagram showing the configuration of the shared memory 120. The shared memory 120 is provided with two buffers, a buffer buffer B0 and a buffer B1. In addition, an area for transferring data such as status information of the printing mechanism is also secured, but the illustration is omitted here. The sizes of the buffers B0 and B1 are determined for each print job together with the setting of the bandwidth Bh described above. Each of the buffers B0 and B1 is provided with a character plane storage area for storing a character plane and an image plane storage area for storing an image plane. Due to the difference in the number of colors and the resolution, the data amounts of the character plane and the image plane do not necessarily match, so the sizes of the character plane storage area and the image plane storage area may be different.
[0063]
During the processing of the document data, the data transfer of the character plane and the image plane from the main data processing device 110 to the sub data processing device 130 is performed using the buffers B0 and B1 in the following manner. In the figure, processing performed by the main data processing device 110 and the sub data processing device 130 in parallel is represented by the type of arrow.
[0064]
First, the main data processing apparatus 110 writes the data of the character plane and the image plane in the buffer B0 in units of bands as indicated by the white arrows in the figure. For the next band, data is written into the buffer B1 as indicated by the filled arrow. In parallel with this writing, the sub data processing device 130 reads the data from the buffer B0 and performs the printing process as indicated by the filled arrows.
[0065]
When the main data processing device 110 has completed writing to the buffer B1, the sub data processing device 130 has completed reading the buffer B0, so that the main data processing device 110 is indicated by a white arrow. The next band data is again written into the buffer B0. In parallel with this writing, the sub data processing device 130 reads the data from the buffer B1 and performs the printing process as indicated by the white arrow in the figure.
[0066]
Similarly, while the main data processing device 110 is writing raster data in one buffer, the sub data processing device 130 reads raster data from the other buffer and performs processing. In this embodiment, such a method of using the shared memory 120 is hereinafter referred to as a double buffer method. In the embodiment, a case where two buffers are used together is illustrated, but three or more buffers may be used together.
[0067]
D. Printing process:
FIG. 4 is a flowchart of the printing process. The processing of the main data processing device 110 is shown on the left side, and the processing of the sub data processing device 130 is shown on the right side. In the center, the access status to the shared memory 120 is shown. This process is started by receiving document data from the computer 10 together with a print request.
[0068]
When the process is started, the main data processing apparatus 110 writes the print task information in the shared memory 120 (step S100). The print task information is information for defining printing conditions. The print paper size, print area size, document image size, image plane resolution, character plane resolution, print resolution, print paper type, It includes designation of unidirectional printing / bidirectional printing, the number of colors of the image plane and character plane, a color palette, and the like. The area for writing the print task information is an area different from the buffers B0 and B1 described above, and is set in advance for each item.
[0069]
When the writing of the print task information is completed, the main data processing device 110 writes the print task execution command to the channel CH0 of the command memory 138 of the sub data processing device 130, and outputs an interrupt signal to the sub CPU 131 (step S101). The print task execution command is a signal that serves as a trigger for the sub CPU 131 to start print processing. For example, a default command number of “0” is sufficient. In response to the interrupt signal, the sub CPU 131 reads a command from the command memory 138 and analyzes the contents. If it is determined that the read command is a print task execution command, the print task information is read by accessing a predetermined area of the shared memory 120 (step S200). Based on the print task information, the sizes of the buffers B0 and B1 are determined and the areas of the buffers B0 and B1 are secured in the shared memory 120. The buffer size is preferably set with allowance for raster data in band units. Further, information regarding the buffers B0 and B1, for example, the start address, size, and the number of storable rasters of each buffer are written in a predetermined area of the shared memory 120 as input buffer information (step S210). Next, the sub data processing device 130 writes a print task response command to the channel CH0 of the command memory 118 of the main data processing device 110, and outputs an interrupt signal to the main CPU 111 (step S211). The print task response command is a signal for notifying completion of buffer reservation and serving as a trigger for the main data processing apparatus 110 to start analyzing document data.
[0070]
In the present embodiment, the case where the sub data processing device 130 secures the buffer has been illustrated, but the main data processing device 110 may secure the buffers B0 and B1. In this case, the input buffer information may be transmitted to the sub data processing device 130 by the same method as the print task information.
[0071]
When the main data processing device 110 recognizes the print task response command, the main data processing device 110 reads the input buffer information from the shared memory 120 and grasps the address of the buffer for storing the character plane and the image plane (step S110). Then, the document data is interpreted, character plane data and image plane data are generated in band units (step S120), and written to the character plane storage area and the image plane storage area of the buffer B0 (step S121).
[0072]
When the data writing is completed, the main data processing device 110 writes the print operation request information of the buffer B0 to the channel CH0 of the command memory 138 of the sub data processing device 130, and outputs an interrupt signal to the sub CPU 131 (step S122). . The print operation request information in the buffer B0 is a command for requesting printing of raster data stored in the buffer B0, and includes the number of rasters written in the buffer B0 as a parameter. When the sub data processing device 130 recognizes this command, it reads out the data of the character plane and the image plane from the buffer B0 (step S220), performs the combination, color conversion processing, halftoning processing, etc., and prints them (step S221). ). When the printing of the buffer B0 is completed, the sub data processing device 130 writes the print response command of the buffer B0 into the channel CH0 of the command memory 118 of the main data processing device 110. At this time, the sub data processing device 130 may initialize the buffer B0 for which data processing has been completed. In this way, when the raster data processed next has a large margin portion, the main data processing device 110 only needs to write data to the pixels other than the margin portion, and the data writing time can be shortened. .
[0073]
On the other hand, the main data processing device 110 generates raster data of the next band in parallel while the sub data processing device 130 performs the printing process of the buffer B0 (step S130). The raster data of the next band is stored in the buffer B1 (step S131). In the drawing, in order to facilitate the distinction, the process using the buffer B0 is indicated by a solid line, and the process using the buffer B1 is indicated by a broken line. When the storage of the data in the buffer B1 is completed, the main data processing device 110 transmits the print operation request information in the buffer B1 and the number of written rasters to the sub data processing device 130 (step S132). The sub data processing device 130 reads the buffer B1 in accordance with the printing operation request information (step S230), and executes printing (step S231). When printing is completed, a print response command in the buffer B1 is transmitted to the main data processing device 110 (step S232).
[0074]
The print operation request information and the print response command may be shared for the buffer B0 and the buffer B1, but are different commands in this embodiment. In this way, since the buffer to be accessed is specified by the command itself, each data processing device can be prevented from accessing the wrong buffer, and the processing can be stabilized.
[0075]
While the sub data processing device 130 is processing the buffer B1, in parallel, the main data processing device 110 generates raster data of the third band and stores it in the buffer B0 (step S140). However, in order to avoid that new data is erroneously written to the buffer B0 while the sub data processing device 130 is executing the processing of the buffer B0, data storage in the buffer B0 is performed by printing the buffer B0. Performed after receiving a response command.
[0076]
Hereinafter, similarly, the main data processing device 110 and the sub data processing device advance the printing process while switching the buffer to be used. The main data processing device 110 instructs the sub data processing device 130 to print the raster data of the last band of the page, and then transmits print task end operation request information to the sub data processing device 130 (step S150). The print task end operation request information is a command for notifying the completion of the print job. In combination with this command, it may be specified whether or not to discharge paper after completion of printing. When the sub data processing device 130 finishes printing the last band, it notifies the main data processing device 110 of a print task end response command (step S240).
[0077]
According to the present embodiment configured as described above, the interpretation of the document data and the processing of the raster data are shared by the two data processing devices, thereby reducing the load imbalance between the two and improving the efficiency. Printing can be executed.
[0078]
The printer 100 according to the present embodiment generates raster data in units of bands and delivers raster data using a plurality of buffers B0 and B1 in parallel, thereby performing parallel processing of the main data processing device 110 and the sub data processing device 130. Therefore, the processing time can be shortened.
[0079]
E. Variations:
Commands exchanged between the main data processing device 110 and the sub data processing device 130 are not limited to those exemplified in the embodiments. For example, input skip operation request information may be included as a command (hereinafter referred to as “operation request information”) transmitted from the main data processing apparatus 110 to the sub data processing apparatus 130. The input skip operation request information is a command for unconditionally advancing the raster position to be printed by the printer 100. For example, when it is found that a part of rasters is blank for both the character plane and the image plane, the number of rasters is specified and this command is transmitted. The sub data processing device 130 may control the printer 100 to perform sub-scanning for the number of rasters specified by this command without forming dots. By using this command, various processes for generating print data can be omitted for the margin part. As a command (hereinafter referred to as “response command”) transmitted from the sub data processing device 130 to the main data processing device 110, an input skip response command for notifying completion of the input skip operation request information is also set. It is preferable to keep.
[0080]
A command for transmitting the status information of the mechanism managed by one of the main data processing device 110 and the sub data processing device 130 to the other may be provided. For example, the status of the printing mechanism managed by the sub data processing device 130 includes out of paper, paper jam, out of ink, presence of printed paper in the paper discharge tray, and the like. The sub-data processing device 130 writes status information representing these statuses in the shared memory 120 and then transmits a command “status information change command” instructing the reading to the command memory 118 on the main data processing device 110 side. . This command preferably uses channel CH1 instead of channel CH0 used during printing. By doing so, it becomes possible to notify the status information at an arbitrary timing independent of processing related to printing. Examples of status information transmitted from the main data processing device 110 to the sub data processing device 130 include sleep of the main data processing device 110.
[0081]
The hardware operation state managed by one data processing apparatus and the operation request information for controlling the other data processing apparatus may be transferred via the shared memory 120 as a kind of status information. For example, the operation request information transmitted from the main data processing device 110 to the sub data processing device 130 includes a lighting state of an LED. The main data processing device 110 writes operation request information instructing the lighting state of the LED in the shared memory 120 and then transmits a command instructing the reading to the command memory 138. This command also preferably uses channel CH1. In response to this command, the sub data processing device 130 reads the operation request information and can control the lighting state of the LED as instructed.
[0082]
For status information and operation request information, transmission of a command instructing reading may be omitted. In other words, the data processing device that receives these pieces of information may appropriately poll the information written in the shared memory 120. By doing so, it is possible to suppress the processing of the reception side data processing device from being hindered, and to improve the processing efficiency. When polling is employed, information may be written with flag data indicating that the information is in an unreferenced state by the receiving side data processing device. The receiving side data processing apparatus can determine whether or not the information has been updated based on the flag data. In addition, when the data processing device on the receiving side changes the flag data to the already-referenced state at the time of reading the information, the data processing device on the writing side determines whether the information is referred to by the other party by the flag data. Can be judged.
[0083]
In polling, since the operation of the receiving data processing apparatus is not hindered, the data processing apparatus on the information writing side can also write information at a unique timing. It is possible to increase the frequency of writing information, and it is possible to rewrite immediately when status information or operation request information changes, and to improve the real-time property of information written in the shared memory 120. it can.
[0084]
The operation request information includes information that requires operational certainty and responsiveness, such as an operation when a user operates a switch. For example, for the printer 100 managed by the sub data processing device 130, there are an ink replacement instruction, an error release instruction, a paper type switching instruction, and the like. These operation request information may be written as commands in the command memories 118 and 138 without going through the shared memory. When the data processing apparatus receives the interrupt signal, the data processing apparatus always refers to the contents of the command memories 118 and 138. Therefore, by using the command memories 118 and 138, the operation request information can be transferred reliably and without delay.
[0085]
Depending on the contents of the operation request information, the delivery via the shared memory 120 and the delivery via the command memories 118 and 138 may be properly used. For example, command memories 118 and 138 are used for operation request information that requires operational certainty and responsiveness, and the operational certainty and responsiveness are relatively low as in the LED lighting state, but real-time performance is improved. It is possible to selectively use the shared memory 120 for the operation request information for which continuous control is required.
[0086]
Each embodiment of the present invention mentioned above is an illustration for explaining the present invention, and does not mean that the scope of the present invention is limited only to the embodiment. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention. For example, the functional blocks exemplified in the present embodiment may be realized by software or hardware.
[Brief description of the drawings]
FIG. 1 is an explanatory block diagram showing an overall schematic configuration of a printing system using a printer according to the present embodiment as an example;
FIG. 2 is an explanatory diagram showing the structure of raster data.
3 is an explanatory diagram showing a configuration of a shared memory 120. FIG.
FIG. 4 is a flowchart of print processing.
[Explanation of symbols]
10 ... Computer
100: Printer
110: Main data processing device
111 ... Main CPU
112 ... Interpretation section
113 ... Image plane generation unit
114 ... character plane generation unit
115: Band control unit
118: Command memory
120 ... Shared memory
130: Sub-data processing device
131: Sub CPU
131a: Command analysis unit
132. Composition unit
133 ... color conversion unit
134 ... Halftone part
135: Interlace data generator
136 ... Print engine
137 ... Drive control unit
138 ... Command memory

Claims (17)

プリンタであって、
第1および第2のデータ処理装置と、
前記第1および第2のデータ処理装置間で、データの授受を行うデータ伝達部と、
所定形式の印刷データに基づいて印刷を実行する印刷機構とを備え、
前記第1のデータ処理装置は、
印刷言語で記述された文書データを入力する文書データ入力部と、
該印刷言語を解釈する解釈部とを備え、
前記第2のデータ処理装置は、
前記解釈結果に基づいて、前記印刷データを生成するデータ生成部と、
該印刷データに基づいて、前記印刷機構を制御する印刷制御部とを備え
前記データ伝達部は、前記第1および第2のデータ処理装置が共有する共有メモリを有し、
前記共有メモリには、複数の共有領域が設けられ、
前記第1のデータ処理装置および第2のデータ処理装置は、両者が同時に同じ共有領域を使用しない条件下で、前記複数の共有領域を順次切り替えて使用し、
前記解釈部は、前記文書データを、該文書データよりも小さい複数の文書領域に分割し、該文書領域ごとに前記いずれかの共有領域に解釈結果を出力し、
前記第2のデータ処理装置は、該文書領域単位で前記印刷データを生成するプリンタ。
A printer,
First and second data processing devices;
A data transmission unit for exchanging data between the first and second data processing devices;
A printing mechanism that executes printing based on print data in a predetermined format,
The first data processing device includes:
A document data input unit for inputting document data described in a print language;
An interpretation unit for interpreting the printing language,
The second data processing device includes:
A data generation unit that generates the print data based on the interpretation result;
A printing control unit for controlling the printing mechanism based on the printing data ,
The data transmission unit has a shared memory shared by the first and second data processing devices,
The shared memory is provided with a plurality of shared areas,
The first data processing device and the second data processing device are used by sequentially switching the plurality of shared areas under the condition that both do not use the same shared area at the same time,
The interpretation unit divides the document data into a plurality of document areas smaller than the document data, and outputs an interpretation result to any one of the shared areas for each document area,
The second data processing apparatus is a printer that generates the print data in units of the document area .
請求項記載のプリンタであって、
前記解釈部は、前記解釈に基づき、画素ごとに階調値が規定されたラスタデータを生成するプリンタ。
The printer according to claim 1 ,
The interpreter is a printer that generates raster data in which a gradation value is defined for each pixel based on the interpretation.
請求項または請求項記載のプリンタであって、
前記文書データは、前記印刷言語において印刷内容を指定する方法が異なる複数種類の文書構成要素を含み、
前記解釈部は、該文書構成要素ごとに前記解釈結果を出力し、
前記データ生成部は、各文書構成要素の解釈結果を合成して、前記印刷データを生成するプリンタ。
A printer according to claim 1 or claim 2 , wherein
The document data includes a plurality of types of document components having different methods for specifying print contents in the print language,
The interpretation unit outputs the interpretation result for each document component,
The data generation unit is a printer that combines the interpretation results of each document component to generate the print data.
請求項記載のプリンタであって、
前記複数種類の文書構成要素は、少なくとも画像と文字とを含むプリンタ。
The printer according to claim 3 , wherein
The plurality of types of document components include a printer including at least an image and characters.
請求項記載のプリンタであって、
前記共有領域のサイズは、前記文書データに応じて動的に設定可能であるプリンタ。
The printer according to claim 1 ,
The size of the shared area can be dynamically set according to the document data.
請求項記載のプリンタであって、
前記第1のデータ処理装置は、前記文書データに基づき、前記印刷データのサイズに関連する所定の情報を前記第2のデータ処理装置に送信し、
前記第2のデータ処理装置は、該情報に基づいて、前記共有領域のサイズを設定するとともに、該設定結果を前記第1のデータ処理装置に送信するプリンタ。
The printer according to claim 5 , wherein
The first data processing device transmits predetermined information related to the size of the print data to the second data processing device based on the document data,
The second data processing apparatus sets a size of the shared area based on the information and transmits the setting result to the first data processing apparatus.
請求項記載のプリンタであって、
前記第1または第2のデータ処理装置は、該データ処理装置の管理下にあるハードウェアの動作状態を表すステータス情報を前記共有メモリに書き込むステータス情報出力部を備えるプリンタ。
The printer according to claim 1 ,
The first or second data processing apparatus is a printer including a status information output unit that writes status information indicating an operation state of hardware under the management of the data processing apparatus to the shared memory.
請求項記載のプリンタであって、
前記ステータス情報出力部は、前記ステータス情報が他方のデータ処理装置によって未参照状態にあることを示すフラグデータを、前記ステータス情報に添付し、
該他方のデータ処理装置は、該ステータス情報を参照するとともに、前記フラグデータを、既参照状態に変更するステータス参照部を備えるプリンタ。
The printer according to claim 7 , wherein
The status information output unit attaches flag data indicating that the status information is in an unreferenced state by the other data processing apparatus to the status information,
The other data processing apparatus includes a status reference unit that refers to the status information and changes the flag data to an already-referenced state.
請求項記載のプリンタであって、
前記第1または第2のデータ処理装置は、該データ処理装置の管理下にあるハードウェアの動作状態に応じて、他方のデータ処理装置に所定の動作を要求する動作要求情報を、該他方のデータ処理装置に強制的に読み込ませる動作要求情報送信部を備えるプリンタ。
The printer according to claim 7 , wherein
The first or second data processing device sends operation request information for requesting a predetermined operation to the other data processing device according to the operating state of the hardware under the control of the data processing device. A printer including an operation request information transmission unit that is forcibly read by a data processing apparatus.
請求項記載のプリンタであって、
前記第1および第2のデータ処理装置は、
それぞれのデータ処理装置に対応づけられるとともに、他方のデータ処理装置から書込可能なレジスタと、
該レジスタに書き込まれた所定のコマンドを解釈するコマンド解釈部と、
該他方のデータ処理装置に対応づけられたレジスタへのコマンドの書込によって、他方のデータ処理装置の動作を制御する動作制御部とを備えるプリンタ。
The printer according to claim 1 ,
The first and second data processing devices are:
A register associated with each data processing device and writable from the other data processing device;
A command interpreter for interpreting a predetermined command written in the register;
A printer comprising: an operation control unit that controls an operation of the other data processing device by writing a command to a register associated with the other data processing device.
請求項10記載のプリンタであって
記第1および第2のデータ処理装置の一方は、他方のデータ処理装置に受け渡すべきデータを前記共有メモリに書き込んだ後、前記動作制御部により、該書き込んだデータの読み出しを指示するコマンドを、前記他方のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
The printer according to claim 10 , wherein
One prior Symbol first and second data processing device, after writing the data to be passed to the other data processing apparatus in the shared memory, by the operation control unit, the command for instructing reading of data written the Is written in a register associated with the other data processing apparatus.
請求項11記載のプリンタであって、
前記コマンドは、前記データの種類に応じて設定されているプリンタ。
The printer according to claim 11 , wherein
The command is a printer set according to the type of data.
請求項11記載のプリンタであって
記動作制御部は、前記解釈結果を出力した共有領域に固有のコマンドを前記第2のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
The printer according to claim 11 , wherein
Before SL operation control unit, a printer for writing the specific command in the shared area which outputs the interpretation result to a register associated with the second data processing apparatus.
請求項11記載のプリンタであって
記動作制御部は、該文書領域に余白が含まれる場合には、前記印刷機構が印刷を実行すべき位置を、該余白に応じて移動させるためのコマンドを前記第2のデータ処理装置に対応づけられたレジスタに書き込むプリンタ。
The printer according to claim 11 , wherein
Before SL operation control unit, if included a margin in the document area, the position the print mechanism to execute printing, the second data processing apparatus a command for moving in response to該余white A printer that writes to the associated register.
請求項記載のプリンタであって、
前記印刷機構は、多色のドットを形成して多色印刷を行う機構であり、
前記データ生成部は、前記解釈結果で用いられる表色系から前記印刷機構が取り扱う表色系への色変換処理、ハーフトーン処理の少なくとも一方を行うプリンタ。
The printer according to claim 1 ,
The printing mechanism is a mechanism that performs multicolor printing by forming multicolor dots,
The data generation unit is a printer that performs at least one of color conversion processing from a color system used in the interpretation result to a color system handled by the printing mechanism, and halftone processing.
請求項15記載のプリンタであって、
前記データ生成部は、前記色変換処理、ハーフトーン処理の少なくとも一方を実行する回路を備えるプリンタ。
The printer according to claim 15 , wherein
The data generation unit is a printer including a circuit that executes at least one of the color conversion process and the halftone process.
請求項16記載のプリンタであって、
前記データ伝達部は
記第1のデータ処理装置と該共有メモリとを接続する第1のデータ転送路と、
前記第2のデータ処理装置と該共有メモリとを接続し、前記第1のデータ転送路よりも転送速度が速い第2のデータ転送路とを有するプリンタ。
The printer according to claim 16 , wherein
Wherein the data transmission unit,
A first data transfer path for connecting the front Symbol first data processing device and said shared memory,
A printer having a second data transfer path connecting the second data processing apparatus and the shared memory and having a transfer speed higher than that of the first data transfer path.
JP2002292147A 2002-07-16 2002-10-04 Printer with multiple data processing devices Expired - Fee Related JP4370765B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002292147A JP4370765B2 (en) 2002-07-16 2002-10-04 Printer with multiple data processing devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002206429 2002-07-16
JP2002292147A JP4370765B2 (en) 2002-07-16 2002-10-04 Printer with multiple data processing devices

Publications (2)

Publication Number Publication Date
JP2004098636A JP2004098636A (en) 2004-04-02
JP4370765B2 true JP4370765B2 (en) 2009-11-25

Family

ID=32300231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002292147A Expired - Fee Related JP4370765B2 (en) 2002-07-16 2002-10-04 Printer with multiple data processing devices

Country Status (1)

Country Link
JP (1) JP4370765B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006082527A (en) * 2004-09-17 2006-03-30 Sony Corp Color printer, print controller, image processor, print control method and program
KR100772408B1 (en) * 2006-05-18 2007-11-01 삼성전자주식회사 Method and system for printing a contents by printing capability using a device
JP2011020408A (en) 2009-07-17 2011-02-03 Seiko Epson Corp Image processing apparatus
JP2019130772A (en) * 2018-01-31 2019-08-08 ブラザー工業株式会社 Image formation apparatus and program

Also Published As

Publication number Publication date
JP2004098636A (en) 2004-04-02

Similar Documents

Publication Publication Date Title
US8243331B2 (en) Print control apparatus, print control method and printer
US6384930B1 (en) Printer control circuit, printer and print system
JP2004164645A (en) Device, method and program for print control
JPH11314408A (en) Printer controller and print system
JP4370765B2 (en) Printer with multiple data processing devices
JP2001325087A (en) Command analysis utilizing rewritable command storing part
JP5582302B2 (en) Image processing apparatus, image output apparatus, and program
JP2007130887A (en) Printer, and its controlling method
JP4717717B2 (en) RECORDING CONTROL DEVICE AND RECORDING CONTROL DEVICE CONTROL METHOD
JP2011056751A (en) Printing system, printer, and pdl processing apparatus
JP4348945B2 (en) Printing device
KR100571960B1 (en) Apparatus and method for controlling image forming apparatus
JP5786394B2 (en) Printing apparatus, printing system, printing method, and program
JP3867344B2 (en) Image output device
KR100246457B1 (en) Printing method of image data
JP4265196B2 (en) Print data generation by distributed processing
US20090317004A1 (en) Image processing apparatus, printing apparatus, and image processing method
JP3985568B2 (en) Printer host, printer driver and printing system
JP2000047976A (en) Printer control unit
JP2005111941A (en) Printer, printing method and print execution program
JP2009226752A (en) Printer for printing image data after performing image correction of the image data
JP2007136953A (en) Printer
JP2005280063A (en) Television printer, method and program for transmitting data
JPH04312863A (en) Printer device
JP2005111667A (en) Printer and printing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090811

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090824

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees