JP3651214B2 - 印刷処理装置及び印刷処理方法 - Google Patents
印刷処理装置及び印刷処理方法 Download PDFInfo
- Publication number
- JP3651214B2 JP3651214B2 JP33394297A JP33394297A JP3651214B2 JP 3651214 B2 JP3651214 B2 JP 3651214B2 JP 33394297 A JP33394297 A JP 33394297A JP 33394297 A JP33394297 A JP 33394297A JP 3651214 B2 JP3651214 B2 JP 3651214B2
- Authority
- JP
- Japan
- Prior art keywords
- edge
- coordinate point
- data
- point generation
- 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
Links
Images
Landscapes
- Dot-Matrix Printers And Others (AREA)
- Record Information Processing For Printing (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は印刷処理装置及び印刷処理方法に関し、特に描画命令をビットマップ展開して印刷処理する印刷処理装置及び描画命令をビットマップ展開して印刷処理する印刷処理方法に関する。
【0002】
【従来の技術】
近年の小型、高速化したディジタル印刷に適した電子写真方式のページプリンタの開発に伴い、従来の文字情報中心の印刷から脱皮した、ラスタ、図形、文字などを同様に取り扱い、かつ図形、文字等の拡大、回転、変形などが自由に制御できる記述言語を用いた印刷処理装置が普及してきている。
【0003】
この種の記述言語の代表例として、PostScript (Adobe Systems 社商標) 、Interpress (Xerox 社商標) 、Acrobat(Adobe Systems 社商標) 、GDI (Graphics Device Interface: Microsoft 社商標) 等が知られている。
【0004】
記述言語で作成されている印刷データは、ページ内の任意の位置のラスタ、図形、文字を表現する描画命令が任意の順で構成されており、ページプリンタで印字するためには、印字前に印刷データをビットマップ展開しなければならない。
【0005】
ビットマップ展開というのは、印刷データをページまたはページの一部を横切る一連の個々のドットまたは画素へ展開してラスタ走査線を形成し、そのページの下へ引き続く走査線を次々に発生する過程である。
【0006】
記述言語で作成されている印刷データのうち、図形あるいは文字に関する描画命令を、それが表現する描画オブジェクトの輪郭を構成するエッジ情報を含んだリストを複数個連結させたディスプレイリストに変換した後、そのディスプレイリストをビットマップ展開することにより印刷処理を行う方法が一般的に知られている。
【0007】
図22、図23はディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
図において多角形の輪郭は、4つのエッジから構成されている。これらのエッジは、絶対値の小さい方の頂点( 以下、エッジの始点と呼ぶ) のy座標値によりソートされ、yバケットリストに連結されて記憶されている。
【0008】
yバケットリストの各セルは、走査ラインと各エッジの交点を発生させるための情報、即ち、エッジの始点のx座標値、走査ライン当たりのxの変化量Δx 、エッジと走査ラインとの交差数Δyを含んでいる。yバケットリストおよび各セルを含む全体をディスプレイリストと呼ぶ。
【0009】
一般的にディスプレイリストからエッジの座標点を生成する処理は、走査ライン変換と呼ばれる。走査ライン変換によって生成されたエッジの座標点を座標値によりソートし、ソートされた座標点間を所定の色データで順次塗りつぶし処理を施したものがビットマップデータである。
【0010】
走査ライン変換は、1走査ラインずつ、上部から下部までのエッジの座標点を発生する。即ち、現在の走査ラインと交わる全エッジをリスト化して、図23に示すアクティブエッジリストを作成しながらエッジの座標点を出力する。
【0011】
現在の走査ラインの処理後、アクティブエッジリストの各レコードは次走査のために更新(x=x+Δx, Δy=Δy−1)される。Δy=0になったバケットは、リストから削除される。
【0012】
上記のような処理を行う従来技術としては、例えば特願平09−138609号公報がある。これは、ディスプレイリストから描画オブジェクトのエッジを表す座標点を生成する座標点生成処理と、座標点に順序を付けるソート処理と、を独立させ、座標点生成処理に関しては、複数の座標点生成装置で繰り返し座標点生成のみを行うよう構成されている。
【0013】
【発明が解決しようとする課題】
しかし、上記のような従来の複数の座標点生成装置は、1つの走査ラインに同期して座標点を生成するため、複数の座標点生成装置が処理している各セルのΔyがすべて0になるまで走査ラインは更新され、継続して座標点生成処理を行うことになる。
【0014】
したがって、その間にΔyが0になった座標点生成装置は他の座標点生成装置の処理が終了するまで待機状態となって無駄が生じてしまう。
また、すべての座標点生成装置の処理が終了して、新たなセルをエントリする場合も、その時のy座標値に連結されるセルの数が複数の座標点生成装置の数よりも少なければ、待機状態となる座標点生成装置が発生してしまう。
【0015】
さらに、Δyが0になった座標点生成装置に対して、走査ラインを更新する毎に追加エントリできるセルがあればセルの追加を行って、なるべく待機状態の座標点生成装置を少なくしたとしても、追加判定の結果、その走査ライン上に追加エントリできるセルがなければ座標点生成装置は結局待機状態のままとなってしまう。
【0016】
本発明はこのような点に鑑みてなされたものであり、座標点を順次非同期に生成することで待機状態をなくし、高速に印刷処理を行う印刷処理装置を提供することを目的とする。
【0017】
また、本発明の他の目的は、座標点を順次非同期に生成することで待機状態をなくし、高速に印刷処理を行う印刷処理方法を提供することである。
【0018】
【課題を解決するための手段】
本発明では上記課題を解決するために、描画命令をビットマップ展開して印刷処理する印刷処理装置において、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換する印刷データ解釈手段と、前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成するディスプレイリスト生成手段と、前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す複数の座標点を順次非同期に生成する座標点生成手段と、前記座標点に順番を付けるソート手段と、前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換する印刷画像データ変換手段と、前記印刷画像データの出力処理を行う印刷出力手段と、を有することを特徴とする印刷処理装置が提供される。
【0019】
ここで、印刷データ解釈手段は、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データを解釈して、内部命令に変換する。ディスプレイリスト生成手段は、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。座標点生成手段は、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す複数の座標点を順次非同期に生成する。ソート手段は、座標点に順番を付ける。印刷画像データ変換手段は、順番にしたがって整列させた座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換する。印刷出力手段は、印刷画像データの出力処理を行う。
【0020】
また、描画命令をビットマップ展開して印刷処理する印刷処理方法において、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換し、前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成し、前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す座標点を順次非同期に生成し、前記座標点に順番を付けるソートを行い、前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換し、前記印刷画像データの出力処理を行うことを特徴とする印刷処理方法が提供される。
【0021】
ここで、印刷データは、まず内部命令に変換される。そして、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。その後、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す座標点を順次非同期に生成する。そして、この座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換して出力する。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図1は本発明の印刷処理装置の原理図である。
【0023】
印刷データ解釈手段2は、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データ1を解釈して、内部命令に変換する。
【0024】
ディスプレイリスト生成手段3は、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。
【0025】
座標点生成手段4は、ハードウェアで構成され、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す複数の座標点を順次非同期に生成する。また、座標点生成手段4は複数で構成され、座標点生成手段4の数と同数の座標点を一度に生成する。
【0026】
ソート手段5は、所定のプログラムを中央演算処理装置で実行することにより座標点に順番を付ける。
印刷画像データ変換手段6は、この順番にしたがって整列させた座標点にもとづいて、印刷データ1を印刷出力可能な印刷画像データに変換する。印刷出力手段8は、印刷画像データの出力処理を行う。
【0027】
本発明の印刷処理装置10は、複数の座標点生成手段4を非同期に動作させることによって、あるエッジを表す座標点生成が終了すると直ちに次に処理すべきエッジのエッジ情報を転送し、座標点生成を開始させる構成とした。
【0028】
すなわち、複数の座標点生成手段4は走査ラインに同期して座標点生成を行う必要がなく、各座標点生成手段毎に独立して座標点生成処理が行えるため、ある座標点生成手段の処理が終了すると、すぐに次のエッジ情報を転送して次の座標点生成処理を開始することができ、資源の有効活用が可能になる。
【0029】
したがって、本発明を適用することにより、大規模なハードウェアを用意することなく、さらに複雑な描画オブジェクトを3角形や台形からなるディスプレイリストに分割するための多大な計算を必要とすることなく、高速にビットマップ展開することが可能になる。
【0030】
次に印刷処理装置10の詳細構成について説明する。図2は本発明の印刷処理装置10の詳細構成を示す図である。
印刷データ1は印刷処理装置で処理可能な記述言語で記述されたものであり、図示されないパーソナルコンピュータやワークステーションにおいて、文書作成や編集等を処理するアプリケーションプログラムで作成された文書データから生成されたものである。
【0031】
本実施の形態で対象とする記述言語は、例えばGDIであるが、Acrobatで代表されるPDF(Portable Document Format)、またはPostScriptで代表されるページ記述言語であってもよい。
【0032】
印刷データスプール手段1aは、印刷データ1を入力するための通信機能や、印刷データ解釈手段2へ出力されるまで印刷データを一時的に記憶する機能等を備えたものである。
【0033】
印刷データ解釈手段2は、印刷データスプール手段1aより入力された印刷データを、定められた記述言語のシンタックスに従ってトークンとして切り出した後、トークンを解釈し、内部命令やその引数に変換する。
【0034】
内部命令には、文字/図形/ラスタの描画を実行する描画命令や、色や線属性など描画に必要な情報を設定する描画状態命令がある。描画命令が文字あるいは図形の場合は、描画命令をディスプレイリスト生成処理手段3aへ転送する。一方、描画命令がラスタの場合は、描画命令をラスタデータ処理手段3bへ転送するとともに、対象とするラスタデータの縦と横の大きさをディスプレイリスト生成手段3aへ転送する。
【0035】
ディスプレイリスト生成手段3aは、文字/図形の描画命令に応じて、描画されるオブジェクトの輪郭を構成するエッジデータを生成した後、オブジェクト毎にヘッダ情報と、描画オブジェクトの輪郭を構成するエッジの始点、傾きおよびエッジと走査ラインとの交差数を含むエッジ情報とから構成されるディスプレイリストを生成する。
【0036】
また、印刷データ解釈手段2より転送されたラスタデータの縦と横の大きさに基づき、ラスタデータの輪郭を示すディスプレイリストを生成する。
ラスタデータ処理手段3bは、ラスタの描画命令に応じて、対象とするラスタデータに対し座標変換、色補正等のラスタ処理を実行し、処理されたラスタデータをラスタデータバッファ3b−1に格納する。
【0037】
バンド分割手段3a−2は、ディスプレイリスト生成手段3aで生成された描画オブジェクト毎のディスプレイリスト1ページ分を所定のバンド数で分割されるバンド単位で分割する。
【0038】
バンドの分割数は、後段の出力バッファ8aの大きさで決定される。バンド単位で分割されたディスプレイリストは、ディスプレイリストバッファ3a−1に格納される。
【0039】
印刷データ解釈手段2からバンド分割手段3a−2までの処理を、ページを構成する全ての描画オブジェクトに対して実行することにより、ページ毎にバンド単位で分割されたディスプレイリストが、ディスプレイリストバッファ3a−1に格納される。
【0040】
ディスプレイリストバンドバッファ3a−2は、2つのバッファで構成され、バンド単位でディスプレイリストバッファ3a−1からディスプレイリストデータが交互に入力される。
【0041】
ディスプレイリスト管理手段4aは、ディスプレイリストバンドバッファ3a−2からのディスプレイリストの読み出しと、後段の座標点生成処理手段4bが待機状態にあることの検出と、検出結果に基づき座標点生成処理手段4bへディスプレイリストのエッジ情報の転送を制御するものである。
【0042】
また、ディスプレイリスト管理手段4aでは、ヘッダ情報に基づき処理するオブジェクトのタイプが文字/図形かまたはラスタかを検出し、ラスタの場合は、印刷画像データ変換手段6にラスタデータバッファ3b−1からラスタデータバンドバッファ7に当該オブジェクトのラスタデータを転送するよう指示する。
【0043】
座標点生成処理手段4bは、エッジの始点、傾きおよびエッジと走査ラインとの交差数を含むエッジ情報から、エッジの座標点をエッジリストバッファ9に出力するものであり、座標点生成回路の数と同数のエッジの座標点を一度に出力する複数の座標点生成回路で構成される。
【0044】
複数の座標点生成回路は、走査ラインに対して非同期に各々複数のエッジに対する座標点生成を実行する。処理中の全てのエッジに対する処理が終了すると、ディスプレイリスト管理手段4aより次に処理すべき複数のエッジ情報が転送される。
【0045】
1つのオブジェクトに対する全てのエッジの座標点生成が終了するまで、複数の座標点生成回路による座標点生成が繰り返される。また、処理するオブジェクトが文字/図形の場合は、ヘッダ情報に基づき処理するオブジェクトの色データがエッジリストバッファ9に格納される。
【0046】
ソート手段5は、座標点生成処理手段4bによる1つのオブジェクトに対する全てのエッジの座標点生成が終了した後、エッジリストバッファ9に格納されている走査ライン毎のエッジ座標点データを、座標値の小さいものから順次整列するよう並べかえる処理を行うものであり、所定のプログラムを中央演算処理装置で実行する構成となっている。ソート処理のためのプログラムとしては、例えばクイックソートプログラムが用いられる。
【0047】
印刷画像データ変換手段6は、エッジリストバッファ9の座標値の小さいものから順次整列するよう並べかえられたエッジの座標点のペアの間の塗りつぶし処理を行い、出力バッファ8aに出力するものである。
【0048】
処理するオブジェクトが文字/図形の場合は、エッジリストバッファ9に格納されている色データにより塗りつぶし処理を実行する。処理するオブジェクトがラスタデータの場合は、ラスタデータバンドバッファ7よりエッジの座標点のペアの間を埋めるラスタデータを読み出し、出力バッファ8aに出力する。
【0049】
なお、エッジリストバッファ9も2つのバッファで構成され、座標点生成処理およびソート処理と、印刷画像データ変換処理はパイプラインで実行可能に構成されている。
【0050】
出力バッファ8aは、2つのバッファで構成され、一方のバッファが印刷画像データ変換手段6により塗りつぶし処理が行われている間、他方のバッファは、後段のプリンタ装置制御手段8bを介して、プリンタ装置20へ印刷画像データが転送されるよう構成されている。
【0051】
プリンタ装置制御手段8bは、プリンタ装置20の出力タイミングに応じて出力バッファ8aの印刷画像データをプリンタ装置20へ転送するとともに、プリンタ装置20の状態制御および管理を実行するものである。
【0052】
プリンタ装置20は、プリンタ装置制御手段8bの制御に基づき、出力バッファ8aから出力される印刷画像データを受け取って、記録用紙に印字し出力するものである。
【0053】
さらに、詳しくは、CMYBK(シアン、マゼンタ、イエロー、ブラック)カラーの色毎に露光、現像、転写を繰り返すことによりフルカラー画像を出力できるレーザ走査方式の電子写真方式を用いたカラーページプリンタである。
【0054】
なお、本実施の形態はディスプレイリストが所定のバンド単位に分割され、バンド単位で処理されることを前提に記載されているが、これに限定されるものではなく、ページ単位で処理される構成であってもよい。
【0055】
次に印刷処理装置10における印刷処理の流れの概要について説明する。図3、図4は印刷処理の流れの概要を示すフローチャートである。
〔S1〕印刷データスプール手段1aに文字または図形を含む印刷データ1が入力されると、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2を介してディスプレイリストが生成され、少なくとも1ページ分のバンド分割されたディスプレイリストがディスプレイリストバッファ3a−1に格納される.
〔S2〕ディスプレイリストバッファ3a−1より、バンド単位で順次ディスプレイリストがディスプレイリストバンドバッファ3a−2に入力される。
〔S3〕ディスプレイリスト管理手段4aにおいて、最初のオブジェクトのディスプレイリストのエッジ情報が、最大で座標点生成処理手段4bの有する座標点生成回路の数だけ座標点生成処理手段4bに転送される。
〔S4〕座標点生成処理手段4bでは、座標点の生成を行う。
〔S5〕座標点生成処理手段4bは走査ラインの更新を行う。
〔S6〕全ての座標点生成回路の待機状態のチェックが行われる。もし、全ての座標点生成回路が待機状態でなければ、ステップS4へ戻る。もし、全ての座標点生成回路が待機状態であれば、当該オブジェクトの全てのエッジの処理が終了していることになり、ステップS7へ行く。
〔S7〕ソート手段5でソート処理を実行する。
〔S8〕印刷画像データ変換手段6で印刷画像データへの変換処理および出力バッファ8aへの出力が実行される。
〔S9〕バンド内の全てのオブジェクト処理終了のチェックが行われる。もし、当該バンドの全てのオブジェクトの処理が終了していなければ、ステップS3へ戻り、次のオブジェクトの最初のエッジ情報が、最大で座標点生成処理手段4bの有する座標点生成回路の数だけ座標点生成処理手段4bに転送され、ステップS4以下の処理が繰り返される。もし、当該バンドの全てのオブジェクトの処理が終了していれば、ステップS10へ行く。
〔S10〕プリンタ装置制御手段8bを介してプリンタ装置20に印刷画像データの出力が行われる。
〔S11〕次にページ内の全てのバンド処理終了のチェックが行われる。もし、当該ページの全てのバンドの処理が終了していなければ、ステップS2へ戻る。もし、当該ページの全てのバンドの処理が終了していれば、1ページ分の印刷処理は終了する。処理する印刷データが複数ページあれば、上記のような処理を複数ページ分繰り返す。
【0056】
なお、図3及び図4の印刷データの流れの説明では、簡単にするため、ラスタデータ処理に関する記載は省略したが、ラスタデータ処理に関しては図2で説明したように処理される。
【0057】
次にハードウェア構成について説明する。図5は印刷処理装置10のハードウェアの構成例を示す図である。
印刷処理装置10は、ホストコンピュータ100と、ホストコンピュータ100が接続されるネットワーク30、描画処理カード110、プリンタ装置20、描画処理カード110とプリンタ装置20を接続する専用バス40で構成されている。
【0058】
ネットワーク30は、例えばEthernetであり、ネットワーク30を介して図示しないパーソナルコンピュータやワークステーションから印刷データ1が入力される。
【0059】
ホストコンピュータ100は、CPU(中央演算処理装置)101と、メモリコントローラ102と、DRAM103と、システムバスコントローラ104と、ネットワークインタフェース105と、磁気ディスク106と、カードコントローラ107と、CPUバス108と、システムバス109とから構成される一般的なものである。
【0060】
システムバス109は、例えばPCIバスであり、カードコントローラ107はCardBus対応のコントローラであり、高速のデータ転送が可能である。
ホストコンピュータ100には、印刷データスプール手段1a、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3b、ラスタデータバッファ3b−1、ディスプレイリストバッファ3a−1に相当する機能が実装される。
【0061】
例えば、磁気ディスク106は、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理のための所定のプログラム等の格納領域、印刷データスプール手段1aの印刷データ格納領域として使用される。
【0062】
また、DRAM103は、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理のためのワークエリア、ラスタデータバッファ3b−1、ディスプレイリストバッファ3a−1として使用される。
【0063】
さらに、CPU101は印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理を実行する。
【0064】
図6は描画処理カード110のハードウェアの構成例を示す図である。フラッシュROM113は、ソート手段5のソート処理のための所定のプログラム等が格納されるとともに、オペレーティングシステムのプログラムが格納される。
【0065】
メモリ115は、例えばDRAMで構成され、ソート処理のためのプログラム実行のためのワークエリア、ディスプレイリストバンドバッファ3a−2、エッジリストバッファ9として使用される。
【0066】
また、座標点生成LSI116にはディスプレイリスト管理手段4aと座標点生成処理手段4bの機能、印刷画像データ変換LSI117には印刷画像データ変換手段6の機能、プリンタ制御LSI120とビデオインタフェース121はプリンタ装置制御手段8bの機能がそれぞれ実装されている。
【0067】
さらに、CPU111はソート手段5のソート処理のための所定のプログラムの実行、ディスプレイリストバンドバッファ3a−2へのディスプレイリスト入力の制御、出力バッファメモリ118やラスタデータバンドバッファメモリ119のメモリクリアの制御等を実行する。また、出力バッファメモリ118とラスタデータバンドバッファメモリ119は、例えばDRAMで構成される。
【0068】
このように、一体の回路基板上に構成することにより、カード内部バス122はホストコンピュータ100のシステムバス109とは独立に設けることが可能になり、バスの競合によるデータ転送速度低下を低減することができる。
【0069】
さらに、ホストコンピュータ100のシステムバス109より高速のバスを設けることにより、データ転送の高速化が可能となる。また、出力バッファメモリ118とラスタデータバンドバッファメモリ119は、カード内部バス122を介さず直接印刷画像データ変換LSI117に接続された構成をとっている。
【0070】
このような構成をとることにより、データ転送のボトルネックを解消し、より高速のデータ転送が可能となる。また、CPU111の主要な処理はソート処理に限定されるため、ホストコンピュータ100のCPU101に比較して、性能の低いCPUを使用することが可能であり、カード化が可能である。
【0071】
次にディスプレイリストの構造およびディスプレイリスト管理手段4a及び座標点生成処理手段4bを実装する座標点生成LSI116について詳細に説明する。
【0072】
まず、文字/図形およびラスタデータの2つの場合のディスプレイリストの構造について説明する。図7はディスプレイリストの構成を示す図である。TypeIDが文字/図形の場合である。
【0073】
ヘッダ部は、描画オブジェクトの種類を示すTypeID(この場合、文字あるいは図形描画を示す)と、描画オブジェクトを何色で塗りつぶすかを示す色情報(例えば、CMYBKの値等)と、yバケットの総数であるyリスト数と、各yリストに連結されているセルの総数である連結セル数と、次の描画オブジェクトのディスプレイリストへのポインタとから構成される。
【0074】
リスト手段は、yバケットと、連結セルとから構成される。yバケットは、入力された各描画オブジェクト毎のベクタデータの始点のy座標値に相当する走査ラインyと、最初の連結セルへのポインタであるセルポインタからなる。ここで、連結セルの存在しないyバケットは、リスト手段に登録しない。連結セルは、入力された各描画オブジェクト毎のベクタデータの始点のx座標値と、そのベクタデータの走査ライン当たりのxの増分であるΔxと、そのベクタデータと交差する走査ラインの数であるΔyと、その走査ラインyを始点とする異なるベクタデータが存在するか否かを示す連結フラグから構成される。
【0075】
連結フラグは、次に連結セルが存在する場合は、フラグ‘1’を付加し、最後の連結セルである場合は、EOC(End Of Cell)を表すフラグ‘0’を付加する。
【0076】
図8はディスプレイリストの構成を示す図である。TypeIDがラスタの場合である。ヘッダ手段は、TypeID(この場合、ラスタ描画を示す)と、ラスタデータのデータサイズ(1画素当たりのビット数*w*h)と、ラスタデータの格納されているラスタデータバッファ3b−1のアドレスに相当するデータアドレスと、各yリストに連結されているセルの総数である連結セル数と、次の描画オブジェクトのディスプレイリストへのポインタとから構成される。リスト部は、上述した文字/図形の場合と同様であるので説明を省略する。
【0077】
次に座標点生成LSI116について説明する。図9は座標点生成LSI116の構成を示すブロック図である。
座標点生成LSI116は、管理回路116aと、4つの座標点生成回路A〜D116bとから構成される。また、座標点生成LSI116は、内部バス122に接続されているメモリコントローラ114を介してメモリ115にアクセスする構成になっている。
【0078】
図10は管理回路116aが管理する内部レジスタの一覧を示す図である。管理回路116aは、表116a−1に示す複数の内部レジスタを有し、現在処理中の走査ライン情報の管理、ディスプレイリストバンドバッファ3a−2およびエッジリストバッファ9へのアクセスの制御、ディスプレイリストデータのデコード処理、座標点生成回路116bの状態管理などの機能を備えるものである。
【0079】
座標点生成回路A〜Dは、管理回路116aから1組ずつセルデータを入力し、各座標点生成回路A〜D毎に非同期に最大4点のエッジデータを並列に生成する機能を備えるものである。4つの座標点生成回路A〜Dは、全て同一の構造を持つ。
【0080】
図11は座標点生成回路116bのブロック構成示す図である。座標点生成回路116bは、x座標値を保持するXレジスタ116b−0と、エッジの傾きを保持するΔXレジスタ116b−1、交差数を保持するΔYレジスタ116b−2と、Xレジスタ116b−0およびΔXレジスタ116b−1の値を加算する加算器116b−3と、ΔYレジスタ116b−2の値をデクリメントする演算器116b−4と、2つのマルチプレクサ116b−5および116b−6と、実数値を整数値へ変換する整数変換器116b−7と、ΔYレジスタ116b−2の値を0と比較する比較器116b−8とから構成される。
【0081】
入力X、ΔX、ΔYは、対応する各レジスタの初期値であり、管理回路116aから入力される。入力XSEL、ΔYSELは、それぞれマルチプレクサ116b−5および116b−6の出力値の切り替え制御信号、入力XLD、ΔXLD、ΔYLDは、レジスタ116b−0〜116b−2の書き込み制御信号であり、管理回路116aから入力される。
【0082】
出力CURXは、管理回路116aのカレントxレジスタCURXiへ出力される。出力ENDは、エッジの終了を管理回路116aに通知するための制御信号である。
【0083】
図12はエッジリストバッファ9の構成とエッジリストのデータ形式を示す図である。エッジリストデータは、オブジェクトの色情報と最初に現れるエッジのy座標値ystartとから成るヘッダ部と、エッジと各走査ラインとの交点の座標値を含むエッジリスト部とから構成される。
【0084】
エッジリストバッファ9は、エッジリストデータのヘッダ部を格納する領域と、エッジリスト部を格納する領域とから構成される。
エッジリストバッファ9のヘッダ部格納領域の先頭アドレスelhdadrと、エッジリスト部格納領域の先頭アドレスyadr0は、座標点生成LSI116の起動時に管理回路116aのELヘッダアドレスレジスタELHDADRおよびELトップアドレスレジスタELTOPADRにそれぞれ書き込まれる。
【0085】
エッジリストバッファ9のエッジリスト部格納領域は、1バンドの全ての走査ラインに対してそれぞれM個のx座標値を格納することができる。
各走査ラインのエッジリストの先頭には、そのラインにいくつのx座標値が格納されているかを表すエッジデータ数Piが格納される。1走査ラインに格納可能なx座標値の最大数Mの値は、256以上の2のべき乗数が望ましい。
【0086】
次に図13〜16を用いて、座標点生成LSI116の1オブジェクトの座標点生成処理の流れを説明する。図13は1オブジェクトの座標点生成処理の流れを示すフローチャートである。
〔S20〕座標点生成LSI116は、CPU111から座標点生成処理開始の通知を受け取ると、ディスプレイリストデータのヘッダ部を処理するためにステップS21に移る。
〔S21〕管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。アクセスが許可されると、管理回路116aはDL(ディスプレイリスト)ヘッダアドレスレジスタDLHDADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからヘッダ部のデータを読み出して、一旦フェッチレジスタFETCHに格納する。
【0087】
また、ステップS22のyリスト処理に備えて、DLヘッダアドレスレジスタDLHDADRに保持しているアドレスとヘッダサイズからディスプレイリストバンドバッファ3a−2のyリスト部の先頭アドレスを算出し、その値をyリストアドレスレジスタYLISTADRにセットする。
【0088】
オブジェクトが文字または図形の場合には、フェッチレジスタFETCH内のヘッダ情報が、色情報とセル数と次ヘッダ部アドレスにデコードされて、それぞれカラーレジスタCOLOR、セルカウンタレジスタNUMCELL、DLヘッダアドレスレジスタDLHDADRに格納される。
【0089】
オブジェクトがラスタの場合には、フェッチレジスタFETCH内のヘッダ情報が、ラスタデータバッファアドレスとラスタデータサイズとセル数と次ヘッダ部アドレスにデコードされる。
【0090】
管理回路116aは、デコードしたラスタデータバッファアドレスとラスタデータサイズを印刷画像データ変換LSI117に出力し、該当ラスタデータをホストコンピュータ100のラスタデータバッファ3b−1からラスタデータバンドバッファ7へ転送するよう指示する。
【0091】
デコードしたセル数と次ヘッダ部アドレスは、それぞれセルカウンタレジスタNUMCELL、DLヘッダアドレスレジスタDLHDADRに格納する。
一方、ステップS21でバンドの終了が検出された場合(NUMCELL=0の場合)は、以降の処理を中断してバンドの終了をCPU111に通知し、次のバンドの処理に備えてDLヘッダアドレスレジスタDLHDADRをリセットして、座標点生成LSI116はアイドル状態になる。
〔S22〕yリストの読み込みとデコードを行う。まず管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。
【0092】
アクセスが許可されると、管理回路116aはyリストアドレスレジスタYLISTADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからyバケットデータを読み出して、一旦フェッチレジスタFETCHに格納する。
【0093】
続いて、フェッチレジスタFETCH内のyバケットデータは、yバケットレジスタYBUCKETにコピーされ、yリストアドレスレジスタYLISTADRがインクリメントされる。最初のyバケットを読み込んだ時のみ、そのy座標値がスタートyレジスタSTARTYに格納される。
〔S23〕セルの読み込みとデコードを行い、座標点生成回路116bの内部レジスタを初期設定する。なお、ステップS23は図14を用いて後述する。
〔S24〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL=0ならばステップS26へ進み、NUMCELL>0ならばステップS25へ進む。
〔S25〕再びアイドルカウンタレジスタNUMIDLEの値をチェックして、待機状態の座標点生成回路116bの有無を調べる。これは、後述する図14のステップS32でセルポインタ部の値がnullで、ステップS23を終了した場合には、ステップS33のチェックを通らないために、ここで再びNUMIDLEの値をチェックしてさらにセルデータをセットできる座標点生成回路116bがないか調べるためのものである。
【0094】
NUMIDLE=0の場合は、全ての座標点生成回路116bが処理状態にあるので、ステップS26に進んで座標点生成を行う。
NUMIDLE>0の場合は、待機状態の座標点生成回路116bが存在し、かつ現在処理しているyバケットにはセルが連結されていないので、待機状態の座標点生成回路116bに次のyリストに連結されているセルデータを入力するために、ステップS22に戻って次のyリストの読み込みを行う。
〔S26〕ステップS23からステップS25で全ての座標点生成回路116bにセルデータが設定されるか、あるいは全てのセルデータが座標点生成回路116bに設定されると、ステップS26で実際に座標点の生成と出力が行われる。ステップS26の処理の流れは図15で後述する。
〔S27〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL>0ならばステップS28へ進み、NUMCELL=0ならばステップS29へ進む。
〔S28〕yバケットレジスタYBUCKETに格納されているセルポインタの値がチェックされる。もしセルポインタの値がnullならばステップS22へ戻り、null以外ならばステップS23へ戻る。
〔S29〕オブジェクトのヘッダ情報をエッジリストバッファ9へ書き込み、一連の座標点生成処理を終了する。まず管理回路116aがメモリコントローラ114へエッジリストバッファ9へのライトアクセス要求を出す。
【0095】
アクセスが許可されると、管理回路116aはエッジリストヘッダアドレスレジスタELHDADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスにカラーレジスタCOLORとスタートyレジスタSTARTYの値を書き込む。
【0096】
そして、1オブジェクト分の座標点生成処理が終了したことをCPU111に通知して、座標点生成LSI116はアイドル状態になる。
次にステップS23について説明する。図14はセルの入力とレジスタ設定処理の流れを示すフローチャートである。
〔S30〕管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。アクセスが許可されると、管理回路116aはyバケットレジスタYBUCKETのセルポインタ部に保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからセルデータを読み出して、一旦フェッチレジスタFETCHに格納する。
〔S31〕フェッチレジスタFETCH内のセルデータをデコードして、待機状態の座標点生成回路116bの内部レジスタにセットする。まずステータスレジスタSTATUSの値をチェックし、待機状態の座標点生成回路116bを検出する。
【0097】
次に検出された座標点生成回路116bにセルデータからデコードしたx座標値とエッジの傾きΔxと交差数Δyを入力し、それぞれXレジスタ116b−0、ΔXレジスタ116b−1、ΔYレジスタ116b−2へ格納する。
【0098】
ステータスレジスタSTATUSの検出された座標点生成回路116bの待機状態を表すビットは、処理中を表す‘0’に変更され、アイドルカウンタレジスタNUMIDLEはデクリメントされる。
【0099】
セルデータからデコードされたx座標値は、始点を出力するためにカレントxレジスタCURXiにもコピーされる。次に、セルデータの連結フラグ部をデコードし、その値が継続を表す‘1’ならばyバケットレジスタYBUCKETのセルポインタ部をインクリメントし、連結フラグの値が‘0’(EOC)ならばyバケットレジスタYBUCKETのセルポインタ部にnull値をセットする。
【0100】
さらに、セルカウンタレジスタNUMCELLをデクリメントし、セルデータをセットした座標点生成回路116bに対応するカレントyレジスタCURYiにyバケットレジスタYBUCKETに格納しているy座標値をコピーする。
〔S32〕現在処理しているyバケットにセルリストが連結されているか否かを調べる。もしyバケットレジスタYBUCKETのセルポインタ部の値がnullならば、現在処理しているyバケットにはセルが連結されていないので、図13のステップS23を終了してステップS24に進む。
【0101】
nullでない場合は、セルリストが連結されているのでステップS33に進んで、再びセルを入力するかどうかを決定する。
〔S33〕アイドルカウンタレジスタNUMIDLEの値をチェックして、待機状態の座標点生成回路116bの有無を調べる。NUMIDLE=0の場合は、全ての座標点生成回路116bが処理状態にあるので、ステップS23を終了してステップS25に進む。
【0102】
NUMIDLE>0の場合は、待機状態の座標点生成回路116bが存在するので、ステップS30に戻って次のセルデータを読み込み、図13のステップS23の処理を繰り返す。
【0103】
次にステップS26について説明する。図15は座標点生成と出力の流れを示すフローチャートである。
〔S40〕エッジの始点の座標値をエッジリストバッファ9へ出力する。ステップS40の処理の詳細は図16で説明する。
〔S41〕次の走査ラインとエッジの交点の座標値を計算する。まず、各カレントyレジスタCURYiの値がそれぞれインクリメントされる。次に、処理状態にある座標点生成回路116bのXレジスタ116b−0とΔYレジスタ116b−2の値が、以下に示す式(1a)、(1b)にしたがって、並列に更新される。
【0104】
【数1】
X=X+ΔX …(1a)
ΔY=ΔY−1 …(1b)
最後に、更新されたXレジスタ116b−0の値が、整数変換器116b−7によって整数化されてカレントxレジスタCURXiへ格納される。
〔S42〕ステップS41で計算された座標値をエッジリストバッファ9へ出力する。ステップS42の処理の詳細は図16で説明する。
〔S43〕エッジの終点を出力した座標点生成回路116bを検出して、待機状態にする処理を行う。エッジの終点を出力し、ΔYレジスタ116b−2の値が‘0’になった座標点生成回路116bは、END=‘1’を出力する。
【0105】
管理回路116aでは、アクティブになったEND信号を検出し、ステータスレジスタSTATUSの該当する座標点生成回路116bの状態を表すビットを、待機中を表す‘1’に変更する。またアイドルカウンタレジスタNUMIDLEに、検出された座標点生成回路116bの個数を加算する。
〔S44〕全ての座標点生成回路116bが処理中か否かを調べる。アイドルカウンタレジスタNUMIDLEの値が0に等しければ、座標点生成回路A〜Dは全て処理状態にあるので、ステップS41に戻り、各々次の走査ラインの座標点生成と出力を繰り返す。
【0106】
NUMIDLE>0ならば、待機中の座標点生成回路116bが存在するので、ステップS45に進む。
〔S45〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL=0ならば新たにセットするセルデータは存在しないので、現在の処理を継続するためにステップS41に戻り、各々次の走査ラインの座標点生成と出力を繰り返す。
【0107】
NUMCELL>0ならば待機中の座標点生成回路116bが存在し、さらに未処理のセルデータが存在するので、図13のステップS26を終了してステップS27へ進む。
【0108】
次にステップS40、42について説明する。図16は座標点出力処理の流れを示すフローチャートである。
〔S50〕管理回路116aは、メモリコントローラ114へエッジリストバッファ9へのアクセス要求を出し、並行してアクセス先のアドレスを計算する。
【0109】
現在処理中の走査ラインに対応するエッジデータ数が格納されているエッジリストバッファアドレスは、カレントyレジスタCURYiの値を用いて、
【0110】
【数2】
ELTOPADR+B*M*CURYi …(2)
により計算され、エッジリストバッファアドレスレジスタELBADRに格納される。式(2)において、ELTOPADRはエッジリストバッファ9のエッジリスト部の先頭アドレスが格納されているELトップアドレスレジスタELTOPADRの値を表し、Bは1つのx座標値を表現するために必要なバイト数を表す。BとMが共に2のべき乗数である場合は、式(2)はハードウェアにより1クロックサイクルで計算される。さらに、メモリライトカウンタレジスタCNTMEMWに(4−NUMIDLE)の値をセットする。
〔S51〕メモリコントローラ114によりエッジリストバッファ9へのアクセスが許可されると、管理回路116aはステップS50で計算したアドレスをメモリコントローラ114へ出力し、該当アドレスからエッジデータ数を読み込んで、一旦フェッチレジスタFETCHに格納する。
〔S52〕フェッチレジスタFETCH内のエッジデータ数をインクリメントし、結果をエッジリストバッファ9の読み込んだ時と同一のアドレスへ書き込む。
〔S53〕エッジリストバッファアドレスレジスタELBADRに、フェッチレジスタFETCH内のエッジデータ数にBを乗じた値を加える。
【0111】
続いて、このアドレスへカレントxレジスタCURXiの値を書き込む。そして、メモリライトカウンタレジスタCNTMEMWの値をデクリメントする。
〔S54〕メモリライトカウンタレジスタCNTMEMWの値をチェックし、CNTMEMW>0ならばステップS50に戻り、他の座標点生成回路116bより生成された座標点の出力処理を行う。
【0112】
CNTMEMW=0ならば、現在処理中の座標点生成回路116bから生成された座標点は全てエッジリストバッファに書き込まれたので、図15のステップS40あるいはステップS42の座標点出力の処理は終了する。
【0113】
次にソート手段5について詳細に説明する。図17はソート処理の詳細を示すフローチャートである。
〔S60〕エッジリストバッファ9のアドレスelhdadrに格納されているヘッダ情報を読み込む。
〔S61〕ヘッダ情報中のystartの値により、最初に読み込むエッジリストバッファアドレスyadrを設定する。
〔S62〕エッジリストバッファアドレスyadrから、エッジデータ数Piを読み込む。
〔S63〕読み込んだエッジデータ数Piが、0か否かを判定する。0の場合は、現在のエッジリストバッファアドレスyadrが示すバッファも含めて、それ以降のエッジリストバッファ中には、エッジデータは存在しないので、ソート処理を終了する。0でない場合は、エッジデータが存在するのでステップS64に処理を移す。
〔S64〕読み込んだエッジデータ数Piと設定値との大小判定を行う。本実施の形態では、設定値=1である。エッジデータ数Piが設定値以下であった場合、現在のエッジリストバッファアドレスyadrが示すバッファ中のエッジデータのソートは必要ないので、ステップS66に処理を移す。
【0114】
エッジデータ数が設定値より大きい場合は、現在のエッジリストバッファアドレスyadrが示すバッファ中のエッジデータのソートが必要なので、処理をステップS65に移す。
〔S65〕現在のエッジリストバッファアドレスyadrが示すバッファ中に存在するエッジデータを、値の小さい順にソートする。詳細は図18で後述する。
〔S66〕エッジリストバッファアドレスyadrを次の走査ラインに対応するアドレスに設定する。
〔S67〕アドレスがエッジリストバッファ領域を超えたかどうかを判定し、超えていない場合は、ステップS62に処理を移して繰り返しソート処理を行う。超えた場合は、ソート処理を終了する。
【0115】
次にステップS65について説明する。図18はソート手段5のソート方法を示す概念図である。
まず、入力されたn個のエッジデータのうち、n/2番目のエッジデータ値xに着目する。次に全エッジデータに対して、エッジデータ値xよりも小さいか否かにより、それぞれのエッジデータをエッジデータ値x以下(1〜i)のものと、エッジデータ値x以上(j〜n)であるものとに振り分ける。
【0116】
1〜iまでのエッジデータおよびj〜nまでのエッジデータそれぞれに対して、上記で述べた方法を、全てのエッジデータが値の小さい順にソートされるまで再帰的に繰り返す。上記の方法により、順不同で入力されたエッジデータをソートすることが可能となる。
【0117】
図19はソート手段5のブロック構成を示す図である。ソート手段5は、エッジリストバッファ9からエッジデータを入力するエッジデータ入力手段5aと、入力したエッジデータを一時的に蓄えるソートバッファ5bと、最終的にソートされたエッジデータをソートバッファ5bからエッジリストバッファ9へ出力するエッジデータ出力手段5cと、ソートすべきエッジデータ数の設定などのソート処理全体を管理するソート処理管理手段5dと、(エッジデータ数/2)番目の値を選択する中点値選択部5eと、(エッジデータ数/2)番目の値とエッジデータ値の大小比較を行うエッジデータ判定手段5fと、エッジデータ判定手段5fの比較結果に従い、エッジデータを振り分けるエッジデータ分別手段5gと、から構成される。
【0118】
次にソート手段5の処理手順をフローチャートで説明する。図20はソート手段5の処理手順を示すフローチャートである。まず、エッジデータ入力手段5aで入力されたエッジデータは、まずソートバッファ5bに蓄えられる。
〔S70〕ソート処理管理手段5dにより、エッジデータの個数nが算出される。ただし、1回目のソート処理の場合は、エッジリストバッファ9中のエッジデータ数の値をnと設定する。またfirst値i、last値jも設定する。
〔S71〕中点値選択手段5eにより、(n/2)番目の値xを選択する。
〔S72、73〕エッジデータ判定手段5fにより、値xとソートバッファ5b中のエッジデータの大小比較を行う。
〔S74〕エッジデータ判定手段5fで、振り分けが必要と判定されたエッジデータに対して、エッジデータ分別手段5gにより、エッジデータの振り分けを行い、振り分けた結果をソートバッファ5bに出力する。
〔S75〕ソート処理管理手段5dにより、ソートバッファ5b中の全エッジデータに対して、値xとの大小比較が完了したか判定し、完了していない場合は、ステップS72からステップS74の処理を繰り返す。値xとの大小比較がすべて完了している場合は次のステップに処理を移す。
〔S76、77〕ソート処理管理手段5dにより、値xにより振り分けられた1〜iまでのエッジデータおよびj〜nまでのエッジデータそれぞれに対して、ステップS70からステップS75の処理を繰り返し行うよう管理する。
【0119】
すべてのエッジデータがxの値の小さい順にソートされるまで、ステップS70からステップS77までの処理を繰り返す。
上記の処理がすべて終了し、ソートバッファ5b中の全エッジデータがソートされると、エッジデータ出力手段5cは、エッジリストバッファ9にソートバッファ5b中のエッジデータを出力する。
【0120】
以上説明したように本発明に印刷処理装置10では、所定の描画命令で記述されている印刷データを、ディスプレイリストに変換し、ディスプレイリストからビットマップ展開する印刷処理装置のエッジリストデータ生成処理において、描画オブジェクトのエッジを表す座標点を生成する座標点生成処理と、前記座標点に順序を付けるソート処理を分離し、複数の座標点生成装置を待機状態の座標点生成装置が発生しないよう管理しながら非同期で繰り返し座標点生成した後、ソート処理を行うよう構成した。このため、それぞれの処理に適した処理資源、即ち座標点生成処理はハードウェア、ソート処理はソフトウェアで処理することが可能となり、かつ有限の資源を有効に活用しながら記述言語で記述される複雑な描画オブジェクトに対しても軽い資源で高速の処理を行うことが可能になる。 次に本発明の印刷処理方法について説明する。図21は本発明の印刷処理方法の処理手順を示すフローチャートである。
〔S80〕少なくとも文字または図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データを解釈して、内部命令に変換する。
〔S81〕内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。
〔S82〕ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成する。
〔S83〕座標点に順番を付けるソートを行う。
〔S84〕順番にしたがって整列させた座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換する。
〔S85〕印刷画像データの出力処理を行う。
【0121】
以上説明したように、本発明の印刷処理方法は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成するものとした。これにより、高速に印刷処理を行うことが可能になる。
【0122】
【発明の効果】
以上説明したように、本発明の印刷処理装置は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成する構成とした。これにより、高速に印刷処理を行うことが可能になる。
【0123】
また、本発明の印刷処理方法は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成するものとした。これにより、高速に印刷処理を行うことが可能になる。
【図面の簡単な説明】
【図1】本発明の印刷処理装置の原理図である。
【図2】本発明の印刷処理装置の詳細構成を示す図である。
【図3】印刷処理の流れの概要を示すフローチャートである。
【図4】印刷処理の流れの概要を示すフローチャートである。
【図5】印刷処理装置のハードウェアの構成を示す図である。
【図6】描画処理カードのハードウェアの構成例を示す図である。
【図7】ディスプレイリストの構成を示す図である。
【図8】ディスプレイリストの構成を示す図である。
【図9】座標点生成LSIの構成を示すブロック図である。
【図10】管理回路が管理する内部レジスタの一覧を示す図である。
【図11】座標点生成回路のブロック構成を示す図である。
【図12】エッジリストバッファの構成とエッジリストのデータ形式を示す図である。
【図13】1オブジェクトの座標点生成処理の流れを示すフローチャートである。
【図14】セルの入力とレジスタ設定処理の流れを示すフローチャートである。
【図15】座標点生成と出力の流れを示すフローチャートである。
【図16】座標点出力の処理の流れを示すフローチャートである。
【図17】ソート処理の詳細を示すフローチャートである。
【図18】ソート手段のソート方法を示す概念図である。
【図19】ソート手段のブロック構成を示す図である。
【図20】ソート手段の処理手順を示すフローチャートである。
【図21】本発明の印刷処理方法の処理手順を示すフローチャートである。
【図22】ディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
【図23】ディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
【符号の説明】
1 印刷データ
2 印刷データ解釈手段
3 ディスプレイリスト生成手段
4 座標点生成手段
5 ソート手段
6 印刷画像データ変換手段
8 印刷出力手段
10 印刷処理装置
20 プリンタ装置
【発明の属する技術分野】
本発明は印刷処理装置及び印刷処理方法に関し、特に描画命令をビットマップ展開して印刷処理する印刷処理装置及び描画命令をビットマップ展開して印刷処理する印刷処理方法に関する。
【0002】
【従来の技術】
近年の小型、高速化したディジタル印刷に適した電子写真方式のページプリンタの開発に伴い、従来の文字情報中心の印刷から脱皮した、ラスタ、図形、文字などを同様に取り扱い、かつ図形、文字等の拡大、回転、変形などが自由に制御できる記述言語を用いた印刷処理装置が普及してきている。
【0003】
この種の記述言語の代表例として、PostScript (Adobe Systems 社商標) 、Interpress (Xerox 社商標) 、Acrobat(Adobe Systems 社商標) 、GDI (Graphics Device Interface: Microsoft 社商標) 等が知られている。
【0004】
記述言語で作成されている印刷データは、ページ内の任意の位置のラスタ、図形、文字を表現する描画命令が任意の順で構成されており、ページプリンタで印字するためには、印字前に印刷データをビットマップ展開しなければならない。
【0005】
ビットマップ展開というのは、印刷データをページまたはページの一部を横切る一連の個々のドットまたは画素へ展開してラスタ走査線を形成し、そのページの下へ引き続く走査線を次々に発生する過程である。
【0006】
記述言語で作成されている印刷データのうち、図形あるいは文字に関する描画命令を、それが表現する描画オブジェクトの輪郭を構成するエッジ情報を含んだリストを複数個連結させたディスプレイリストに変換した後、そのディスプレイリストをビットマップ展開することにより印刷処理を行う方法が一般的に知られている。
【0007】
図22、図23はディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
図において多角形の輪郭は、4つのエッジから構成されている。これらのエッジは、絶対値の小さい方の頂点( 以下、エッジの始点と呼ぶ) のy座標値によりソートされ、yバケットリストに連結されて記憶されている。
【0008】
yバケットリストの各セルは、走査ラインと各エッジの交点を発生させるための情報、即ち、エッジの始点のx座標値、走査ライン当たりのxの変化量Δx 、エッジと走査ラインとの交差数Δyを含んでいる。yバケットリストおよび各セルを含む全体をディスプレイリストと呼ぶ。
【0009】
一般的にディスプレイリストからエッジの座標点を生成する処理は、走査ライン変換と呼ばれる。走査ライン変換によって生成されたエッジの座標点を座標値によりソートし、ソートされた座標点間を所定の色データで順次塗りつぶし処理を施したものがビットマップデータである。
【0010】
走査ライン変換は、1走査ラインずつ、上部から下部までのエッジの座標点を発生する。即ち、現在の走査ラインと交わる全エッジをリスト化して、図23に示すアクティブエッジリストを作成しながらエッジの座標点を出力する。
【0011】
現在の走査ラインの処理後、アクティブエッジリストの各レコードは次走査のために更新(x=x+Δx, Δy=Δy−1)される。Δy=0になったバケットは、リストから削除される。
【0012】
上記のような処理を行う従来技術としては、例えば特願平09−138609号公報がある。これは、ディスプレイリストから描画オブジェクトのエッジを表す座標点を生成する座標点生成処理と、座標点に順序を付けるソート処理と、を独立させ、座標点生成処理に関しては、複数の座標点生成装置で繰り返し座標点生成のみを行うよう構成されている。
【0013】
【発明が解決しようとする課題】
しかし、上記のような従来の複数の座標点生成装置は、1つの走査ラインに同期して座標点を生成するため、複数の座標点生成装置が処理している各セルのΔyがすべて0になるまで走査ラインは更新され、継続して座標点生成処理を行うことになる。
【0014】
したがって、その間にΔyが0になった座標点生成装置は他の座標点生成装置の処理が終了するまで待機状態となって無駄が生じてしまう。
また、すべての座標点生成装置の処理が終了して、新たなセルをエントリする場合も、その時のy座標値に連結されるセルの数が複数の座標点生成装置の数よりも少なければ、待機状態となる座標点生成装置が発生してしまう。
【0015】
さらに、Δyが0になった座標点生成装置に対して、走査ラインを更新する毎に追加エントリできるセルがあればセルの追加を行って、なるべく待機状態の座標点生成装置を少なくしたとしても、追加判定の結果、その走査ライン上に追加エントリできるセルがなければ座標点生成装置は結局待機状態のままとなってしまう。
【0016】
本発明はこのような点に鑑みてなされたものであり、座標点を順次非同期に生成することで待機状態をなくし、高速に印刷処理を行う印刷処理装置を提供することを目的とする。
【0017】
また、本発明の他の目的は、座標点を順次非同期に生成することで待機状態をなくし、高速に印刷処理を行う印刷処理方法を提供することである。
【0018】
【課題を解決するための手段】
本発明では上記課題を解決するために、描画命令をビットマップ展開して印刷処理する印刷処理装置において、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換する印刷データ解釈手段と、前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成するディスプレイリスト生成手段と、前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す複数の座標点を順次非同期に生成する座標点生成手段と、前記座標点に順番を付けるソート手段と、前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換する印刷画像データ変換手段と、前記印刷画像データの出力処理を行う印刷出力手段と、を有することを特徴とする印刷処理装置が提供される。
【0019】
ここで、印刷データ解釈手段は、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データを解釈して、内部命令に変換する。ディスプレイリスト生成手段は、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。座標点生成手段は、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す複数の座標点を順次非同期に生成する。ソート手段は、座標点に順番を付ける。印刷画像データ変換手段は、順番にしたがって整列させた座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換する。印刷出力手段は、印刷画像データの出力処理を行う。
【0020】
また、描画命令をビットマップ展開して印刷処理する印刷処理方法において、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換し、前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成し、前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す座標点を順次非同期に生成し、前記座標点に順番を付けるソートを行い、前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換し、前記印刷画像データの出力処理を行うことを特徴とする印刷処理方法が提供される。
【0021】
ここで、印刷データは、まず内部命令に変換される。そして、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。その後、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す座標点を順次非同期に生成する。そして、この座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換して出力する。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図1は本発明の印刷処理装置の原理図である。
【0023】
印刷データ解釈手段2は、少なくとも文字又は図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データ1を解釈して、内部命令に変換する。
【0024】
ディスプレイリスト生成手段3は、内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。
【0025】
座標点生成手段4は、ハードウェアで構成され、ディスプレイリストのエッジ情報を用いて、描画オブジェクトのエッジを表す複数の座標点を順次非同期に生成する。また、座標点生成手段4は複数で構成され、座標点生成手段4の数と同数の座標点を一度に生成する。
【0026】
ソート手段5は、所定のプログラムを中央演算処理装置で実行することにより座標点に順番を付ける。
印刷画像データ変換手段6は、この順番にしたがって整列させた座標点にもとづいて、印刷データ1を印刷出力可能な印刷画像データに変換する。印刷出力手段8は、印刷画像データの出力処理を行う。
【0027】
本発明の印刷処理装置10は、複数の座標点生成手段4を非同期に動作させることによって、あるエッジを表す座標点生成が終了すると直ちに次に処理すべきエッジのエッジ情報を転送し、座標点生成を開始させる構成とした。
【0028】
すなわち、複数の座標点生成手段4は走査ラインに同期して座標点生成を行う必要がなく、各座標点生成手段毎に独立して座標点生成処理が行えるため、ある座標点生成手段の処理が終了すると、すぐに次のエッジ情報を転送して次の座標点生成処理を開始することができ、資源の有効活用が可能になる。
【0029】
したがって、本発明を適用することにより、大規模なハードウェアを用意することなく、さらに複雑な描画オブジェクトを3角形や台形からなるディスプレイリストに分割するための多大な計算を必要とすることなく、高速にビットマップ展開することが可能になる。
【0030】
次に印刷処理装置10の詳細構成について説明する。図2は本発明の印刷処理装置10の詳細構成を示す図である。
印刷データ1は印刷処理装置で処理可能な記述言語で記述されたものであり、図示されないパーソナルコンピュータやワークステーションにおいて、文書作成や編集等を処理するアプリケーションプログラムで作成された文書データから生成されたものである。
【0031】
本実施の形態で対象とする記述言語は、例えばGDIであるが、Acrobatで代表されるPDF(Portable Document Format)、またはPostScriptで代表されるページ記述言語であってもよい。
【0032】
印刷データスプール手段1aは、印刷データ1を入力するための通信機能や、印刷データ解釈手段2へ出力されるまで印刷データを一時的に記憶する機能等を備えたものである。
【0033】
印刷データ解釈手段2は、印刷データスプール手段1aより入力された印刷データを、定められた記述言語のシンタックスに従ってトークンとして切り出した後、トークンを解釈し、内部命令やその引数に変換する。
【0034】
内部命令には、文字/図形/ラスタの描画を実行する描画命令や、色や線属性など描画に必要な情報を設定する描画状態命令がある。描画命令が文字あるいは図形の場合は、描画命令をディスプレイリスト生成処理手段3aへ転送する。一方、描画命令がラスタの場合は、描画命令をラスタデータ処理手段3bへ転送するとともに、対象とするラスタデータの縦と横の大きさをディスプレイリスト生成手段3aへ転送する。
【0035】
ディスプレイリスト生成手段3aは、文字/図形の描画命令に応じて、描画されるオブジェクトの輪郭を構成するエッジデータを生成した後、オブジェクト毎にヘッダ情報と、描画オブジェクトの輪郭を構成するエッジの始点、傾きおよびエッジと走査ラインとの交差数を含むエッジ情報とから構成されるディスプレイリストを生成する。
【0036】
また、印刷データ解釈手段2より転送されたラスタデータの縦と横の大きさに基づき、ラスタデータの輪郭を示すディスプレイリストを生成する。
ラスタデータ処理手段3bは、ラスタの描画命令に応じて、対象とするラスタデータに対し座標変換、色補正等のラスタ処理を実行し、処理されたラスタデータをラスタデータバッファ3b−1に格納する。
【0037】
バンド分割手段3a−2は、ディスプレイリスト生成手段3aで生成された描画オブジェクト毎のディスプレイリスト1ページ分を所定のバンド数で分割されるバンド単位で分割する。
【0038】
バンドの分割数は、後段の出力バッファ8aの大きさで決定される。バンド単位で分割されたディスプレイリストは、ディスプレイリストバッファ3a−1に格納される。
【0039】
印刷データ解釈手段2からバンド分割手段3a−2までの処理を、ページを構成する全ての描画オブジェクトに対して実行することにより、ページ毎にバンド単位で分割されたディスプレイリストが、ディスプレイリストバッファ3a−1に格納される。
【0040】
ディスプレイリストバンドバッファ3a−2は、2つのバッファで構成され、バンド単位でディスプレイリストバッファ3a−1からディスプレイリストデータが交互に入力される。
【0041】
ディスプレイリスト管理手段4aは、ディスプレイリストバンドバッファ3a−2からのディスプレイリストの読み出しと、後段の座標点生成処理手段4bが待機状態にあることの検出と、検出結果に基づき座標点生成処理手段4bへディスプレイリストのエッジ情報の転送を制御するものである。
【0042】
また、ディスプレイリスト管理手段4aでは、ヘッダ情報に基づき処理するオブジェクトのタイプが文字/図形かまたはラスタかを検出し、ラスタの場合は、印刷画像データ変換手段6にラスタデータバッファ3b−1からラスタデータバンドバッファ7に当該オブジェクトのラスタデータを転送するよう指示する。
【0043】
座標点生成処理手段4bは、エッジの始点、傾きおよびエッジと走査ラインとの交差数を含むエッジ情報から、エッジの座標点をエッジリストバッファ9に出力するものであり、座標点生成回路の数と同数のエッジの座標点を一度に出力する複数の座標点生成回路で構成される。
【0044】
複数の座標点生成回路は、走査ラインに対して非同期に各々複数のエッジに対する座標点生成を実行する。処理中の全てのエッジに対する処理が終了すると、ディスプレイリスト管理手段4aより次に処理すべき複数のエッジ情報が転送される。
【0045】
1つのオブジェクトに対する全てのエッジの座標点生成が終了するまで、複数の座標点生成回路による座標点生成が繰り返される。また、処理するオブジェクトが文字/図形の場合は、ヘッダ情報に基づき処理するオブジェクトの色データがエッジリストバッファ9に格納される。
【0046】
ソート手段5は、座標点生成処理手段4bによる1つのオブジェクトに対する全てのエッジの座標点生成が終了した後、エッジリストバッファ9に格納されている走査ライン毎のエッジ座標点データを、座標値の小さいものから順次整列するよう並べかえる処理を行うものであり、所定のプログラムを中央演算処理装置で実行する構成となっている。ソート処理のためのプログラムとしては、例えばクイックソートプログラムが用いられる。
【0047】
印刷画像データ変換手段6は、エッジリストバッファ9の座標値の小さいものから順次整列するよう並べかえられたエッジの座標点のペアの間の塗りつぶし処理を行い、出力バッファ8aに出力するものである。
【0048】
処理するオブジェクトが文字/図形の場合は、エッジリストバッファ9に格納されている色データにより塗りつぶし処理を実行する。処理するオブジェクトがラスタデータの場合は、ラスタデータバンドバッファ7よりエッジの座標点のペアの間を埋めるラスタデータを読み出し、出力バッファ8aに出力する。
【0049】
なお、エッジリストバッファ9も2つのバッファで構成され、座標点生成処理およびソート処理と、印刷画像データ変換処理はパイプラインで実行可能に構成されている。
【0050】
出力バッファ8aは、2つのバッファで構成され、一方のバッファが印刷画像データ変換手段6により塗りつぶし処理が行われている間、他方のバッファは、後段のプリンタ装置制御手段8bを介して、プリンタ装置20へ印刷画像データが転送されるよう構成されている。
【0051】
プリンタ装置制御手段8bは、プリンタ装置20の出力タイミングに応じて出力バッファ8aの印刷画像データをプリンタ装置20へ転送するとともに、プリンタ装置20の状態制御および管理を実行するものである。
【0052】
プリンタ装置20は、プリンタ装置制御手段8bの制御に基づき、出力バッファ8aから出力される印刷画像データを受け取って、記録用紙に印字し出力するものである。
【0053】
さらに、詳しくは、CMYBK(シアン、マゼンタ、イエロー、ブラック)カラーの色毎に露光、現像、転写を繰り返すことによりフルカラー画像を出力できるレーザ走査方式の電子写真方式を用いたカラーページプリンタである。
【0054】
なお、本実施の形態はディスプレイリストが所定のバンド単位に分割され、バンド単位で処理されることを前提に記載されているが、これに限定されるものではなく、ページ単位で処理される構成であってもよい。
【0055】
次に印刷処理装置10における印刷処理の流れの概要について説明する。図3、図4は印刷処理の流れの概要を示すフローチャートである。
〔S1〕印刷データスプール手段1aに文字または図形を含む印刷データ1が入力されると、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2を介してディスプレイリストが生成され、少なくとも1ページ分のバンド分割されたディスプレイリストがディスプレイリストバッファ3a−1に格納される.
〔S2〕ディスプレイリストバッファ3a−1より、バンド単位で順次ディスプレイリストがディスプレイリストバンドバッファ3a−2に入力される。
〔S3〕ディスプレイリスト管理手段4aにおいて、最初のオブジェクトのディスプレイリストのエッジ情報が、最大で座標点生成処理手段4bの有する座標点生成回路の数だけ座標点生成処理手段4bに転送される。
〔S4〕座標点生成処理手段4bでは、座標点の生成を行う。
〔S5〕座標点生成処理手段4bは走査ラインの更新を行う。
〔S6〕全ての座標点生成回路の待機状態のチェックが行われる。もし、全ての座標点生成回路が待機状態でなければ、ステップS4へ戻る。もし、全ての座標点生成回路が待機状態であれば、当該オブジェクトの全てのエッジの処理が終了していることになり、ステップS7へ行く。
〔S7〕ソート手段5でソート処理を実行する。
〔S8〕印刷画像データ変換手段6で印刷画像データへの変換処理および出力バッファ8aへの出力が実行される。
〔S9〕バンド内の全てのオブジェクト処理終了のチェックが行われる。もし、当該バンドの全てのオブジェクトの処理が終了していなければ、ステップS3へ戻り、次のオブジェクトの最初のエッジ情報が、最大で座標点生成処理手段4bの有する座標点生成回路の数だけ座標点生成処理手段4bに転送され、ステップS4以下の処理が繰り返される。もし、当該バンドの全てのオブジェクトの処理が終了していれば、ステップS10へ行く。
〔S10〕プリンタ装置制御手段8bを介してプリンタ装置20に印刷画像データの出力が行われる。
〔S11〕次にページ内の全てのバンド処理終了のチェックが行われる。もし、当該ページの全てのバンドの処理が終了していなければ、ステップS2へ戻る。もし、当該ページの全てのバンドの処理が終了していれば、1ページ分の印刷処理は終了する。処理する印刷データが複数ページあれば、上記のような処理を複数ページ分繰り返す。
【0056】
なお、図3及び図4の印刷データの流れの説明では、簡単にするため、ラスタデータ処理に関する記載は省略したが、ラスタデータ処理に関しては図2で説明したように処理される。
【0057】
次にハードウェア構成について説明する。図5は印刷処理装置10のハードウェアの構成例を示す図である。
印刷処理装置10は、ホストコンピュータ100と、ホストコンピュータ100が接続されるネットワーク30、描画処理カード110、プリンタ装置20、描画処理カード110とプリンタ装置20を接続する専用バス40で構成されている。
【0058】
ネットワーク30は、例えばEthernetであり、ネットワーク30を介して図示しないパーソナルコンピュータやワークステーションから印刷データ1が入力される。
【0059】
ホストコンピュータ100は、CPU(中央演算処理装置)101と、メモリコントローラ102と、DRAM103と、システムバスコントローラ104と、ネットワークインタフェース105と、磁気ディスク106と、カードコントローラ107と、CPUバス108と、システムバス109とから構成される一般的なものである。
【0060】
システムバス109は、例えばPCIバスであり、カードコントローラ107はCardBus対応のコントローラであり、高速のデータ転送が可能である。
ホストコンピュータ100には、印刷データスプール手段1a、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3b、ラスタデータバッファ3b−1、ディスプレイリストバッファ3a−1に相当する機能が実装される。
【0061】
例えば、磁気ディスク106は、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理のための所定のプログラム等の格納領域、印刷データスプール手段1aの印刷データ格納領域として使用される。
【0062】
また、DRAM103は、印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理のためのワークエリア、ラスタデータバッファ3b−1、ディスプレイリストバッファ3a−1として使用される。
【0063】
さらに、CPU101は印刷データ解釈手段2、ディスプレイリスト生成処理手段3a、バンド分割手段3a−2、ラスタデータ処理手段3bの各処理を実行する。
【0064】
図6は描画処理カード110のハードウェアの構成例を示す図である。フラッシュROM113は、ソート手段5のソート処理のための所定のプログラム等が格納されるとともに、オペレーティングシステムのプログラムが格納される。
【0065】
メモリ115は、例えばDRAMで構成され、ソート処理のためのプログラム実行のためのワークエリア、ディスプレイリストバンドバッファ3a−2、エッジリストバッファ9として使用される。
【0066】
また、座標点生成LSI116にはディスプレイリスト管理手段4aと座標点生成処理手段4bの機能、印刷画像データ変換LSI117には印刷画像データ変換手段6の機能、プリンタ制御LSI120とビデオインタフェース121はプリンタ装置制御手段8bの機能がそれぞれ実装されている。
【0067】
さらに、CPU111はソート手段5のソート処理のための所定のプログラムの実行、ディスプレイリストバンドバッファ3a−2へのディスプレイリスト入力の制御、出力バッファメモリ118やラスタデータバンドバッファメモリ119のメモリクリアの制御等を実行する。また、出力バッファメモリ118とラスタデータバンドバッファメモリ119は、例えばDRAMで構成される。
【0068】
このように、一体の回路基板上に構成することにより、カード内部バス122はホストコンピュータ100のシステムバス109とは独立に設けることが可能になり、バスの競合によるデータ転送速度低下を低減することができる。
【0069】
さらに、ホストコンピュータ100のシステムバス109より高速のバスを設けることにより、データ転送の高速化が可能となる。また、出力バッファメモリ118とラスタデータバンドバッファメモリ119は、カード内部バス122を介さず直接印刷画像データ変換LSI117に接続された構成をとっている。
【0070】
このような構成をとることにより、データ転送のボトルネックを解消し、より高速のデータ転送が可能となる。また、CPU111の主要な処理はソート処理に限定されるため、ホストコンピュータ100のCPU101に比較して、性能の低いCPUを使用することが可能であり、カード化が可能である。
【0071】
次にディスプレイリストの構造およびディスプレイリスト管理手段4a及び座標点生成処理手段4bを実装する座標点生成LSI116について詳細に説明する。
【0072】
まず、文字/図形およびラスタデータの2つの場合のディスプレイリストの構造について説明する。図7はディスプレイリストの構成を示す図である。TypeIDが文字/図形の場合である。
【0073】
ヘッダ部は、描画オブジェクトの種類を示すTypeID(この場合、文字あるいは図形描画を示す)と、描画オブジェクトを何色で塗りつぶすかを示す色情報(例えば、CMYBKの値等)と、yバケットの総数であるyリスト数と、各yリストに連結されているセルの総数である連結セル数と、次の描画オブジェクトのディスプレイリストへのポインタとから構成される。
【0074】
リスト手段は、yバケットと、連結セルとから構成される。yバケットは、入力された各描画オブジェクト毎のベクタデータの始点のy座標値に相当する走査ラインyと、最初の連結セルへのポインタであるセルポインタからなる。ここで、連結セルの存在しないyバケットは、リスト手段に登録しない。連結セルは、入力された各描画オブジェクト毎のベクタデータの始点のx座標値と、そのベクタデータの走査ライン当たりのxの増分であるΔxと、そのベクタデータと交差する走査ラインの数であるΔyと、その走査ラインyを始点とする異なるベクタデータが存在するか否かを示す連結フラグから構成される。
【0075】
連結フラグは、次に連結セルが存在する場合は、フラグ‘1’を付加し、最後の連結セルである場合は、EOC(End Of Cell)を表すフラグ‘0’を付加する。
【0076】
図8はディスプレイリストの構成を示す図である。TypeIDがラスタの場合である。ヘッダ手段は、TypeID(この場合、ラスタ描画を示す)と、ラスタデータのデータサイズ(1画素当たりのビット数*w*h)と、ラスタデータの格納されているラスタデータバッファ3b−1のアドレスに相当するデータアドレスと、各yリストに連結されているセルの総数である連結セル数と、次の描画オブジェクトのディスプレイリストへのポインタとから構成される。リスト部は、上述した文字/図形の場合と同様であるので説明を省略する。
【0077】
次に座標点生成LSI116について説明する。図9は座標点生成LSI116の構成を示すブロック図である。
座標点生成LSI116は、管理回路116aと、4つの座標点生成回路A〜D116bとから構成される。また、座標点生成LSI116は、内部バス122に接続されているメモリコントローラ114を介してメモリ115にアクセスする構成になっている。
【0078】
図10は管理回路116aが管理する内部レジスタの一覧を示す図である。管理回路116aは、表116a−1に示す複数の内部レジスタを有し、現在処理中の走査ライン情報の管理、ディスプレイリストバンドバッファ3a−2およびエッジリストバッファ9へのアクセスの制御、ディスプレイリストデータのデコード処理、座標点生成回路116bの状態管理などの機能を備えるものである。
【0079】
座標点生成回路A〜Dは、管理回路116aから1組ずつセルデータを入力し、各座標点生成回路A〜D毎に非同期に最大4点のエッジデータを並列に生成する機能を備えるものである。4つの座標点生成回路A〜Dは、全て同一の構造を持つ。
【0080】
図11は座標点生成回路116bのブロック構成示す図である。座標点生成回路116bは、x座標値を保持するXレジスタ116b−0と、エッジの傾きを保持するΔXレジスタ116b−1、交差数を保持するΔYレジスタ116b−2と、Xレジスタ116b−0およびΔXレジスタ116b−1の値を加算する加算器116b−3と、ΔYレジスタ116b−2の値をデクリメントする演算器116b−4と、2つのマルチプレクサ116b−5および116b−6と、実数値を整数値へ変換する整数変換器116b−7と、ΔYレジスタ116b−2の値を0と比較する比較器116b−8とから構成される。
【0081】
入力X、ΔX、ΔYは、対応する各レジスタの初期値であり、管理回路116aから入力される。入力XSEL、ΔYSELは、それぞれマルチプレクサ116b−5および116b−6の出力値の切り替え制御信号、入力XLD、ΔXLD、ΔYLDは、レジスタ116b−0〜116b−2の書き込み制御信号であり、管理回路116aから入力される。
【0082】
出力CURXは、管理回路116aのカレントxレジスタCURXiへ出力される。出力ENDは、エッジの終了を管理回路116aに通知するための制御信号である。
【0083】
図12はエッジリストバッファ9の構成とエッジリストのデータ形式を示す図である。エッジリストデータは、オブジェクトの色情報と最初に現れるエッジのy座標値ystartとから成るヘッダ部と、エッジと各走査ラインとの交点の座標値を含むエッジリスト部とから構成される。
【0084】
エッジリストバッファ9は、エッジリストデータのヘッダ部を格納する領域と、エッジリスト部を格納する領域とから構成される。
エッジリストバッファ9のヘッダ部格納領域の先頭アドレスelhdadrと、エッジリスト部格納領域の先頭アドレスyadr0は、座標点生成LSI116の起動時に管理回路116aのELヘッダアドレスレジスタELHDADRおよびELトップアドレスレジスタELTOPADRにそれぞれ書き込まれる。
【0085】
エッジリストバッファ9のエッジリスト部格納領域は、1バンドの全ての走査ラインに対してそれぞれM個のx座標値を格納することができる。
各走査ラインのエッジリストの先頭には、そのラインにいくつのx座標値が格納されているかを表すエッジデータ数Piが格納される。1走査ラインに格納可能なx座標値の最大数Mの値は、256以上の2のべき乗数が望ましい。
【0086】
次に図13〜16を用いて、座標点生成LSI116の1オブジェクトの座標点生成処理の流れを説明する。図13は1オブジェクトの座標点生成処理の流れを示すフローチャートである。
〔S20〕座標点生成LSI116は、CPU111から座標点生成処理開始の通知を受け取ると、ディスプレイリストデータのヘッダ部を処理するためにステップS21に移る。
〔S21〕管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。アクセスが許可されると、管理回路116aはDL(ディスプレイリスト)ヘッダアドレスレジスタDLHDADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからヘッダ部のデータを読み出して、一旦フェッチレジスタFETCHに格納する。
【0087】
また、ステップS22のyリスト処理に備えて、DLヘッダアドレスレジスタDLHDADRに保持しているアドレスとヘッダサイズからディスプレイリストバンドバッファ3a−2のyリスト部の先頭アドレスを算出し、その値をyリストアドレスレジスタYLISTADRにセットする。
【0088】
オブジェクトが文字または図形の場合には、フェッチレジスタFETCH内のヘッダ情報が、色情報とセル数と次ヘッダ部アドレスにデコードされて、それぞれカラーレジスタCOLOR、セルカウンタレジスタNUMCELL、DLヘッダアドレスレジスタDLHDADRに格納される。
【0089】
オブジェクトがラスタの場合には、フェッチレジスタFETCH内のヘッダ情報が、ラスタデータバッファアドレスとラスタデータサイズとセル数と次ヘッダ部アドレスにデコードされる。
【0090】
管理回路116aは、デコードしたラスタデータバッファアドレスとラスタデータサイズを印刷画像データ変換LSI117に出力し、該当ラスタデータをホストコンピュータ100のラスタデータバッファ3b−1からラスタデータバンドバッファ7へ転送するよう指示する。
【0091】
デコードしたセル数と次ヘッダ部アドレスは、それぞれセルカウンタレジスタNUMCELL、DLヘッダアドレスレジスタDLHDADRに格納する。
一方、ステップS21でバンドの終了が検出された場合(NUMCELL=0の場合)は、以降の処理を中断してバンドの終了をCPU111に通知し、次のバンドの処理に備えてDLヘッダアドレスレジスタDLHDADRをリセットして、座標点生成LSI116はアイドル状態になる。
〔S22〕yリストの読み込みとデコードを行う。まず管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。
【0092】
アクセスが許可されると、管理回路116aはyリストアドレスレジスタYLISTADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからyバケットデータを読み出して、一旦フェッチレジスタFETCHに格納する。
【0093】
続いて、フェッチレジスタFETCH内のyバケットデータは、yバケットレジスタYBUCKETにコピーされ、yリストアドレスレジスタYLISTADRがインクリメントされる。最初のyバケットを読み込んだ時のみ、そのy座標値がスタートyレジスタSTARTYに格納される。
〔S23〕セルの読み込みとデコードを行い、座標点生成回路116bの内部レジスタを初期設定する。なお、ステップS23は図14を用いて後述する。
〔S24〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL=0ならばステップS26へ進み、NUMCELL>0ならばステップS25へ進む。
〔S25〕再びアイドルカウンタレジスタNUMIDLEの値をチェックして、待機状態の座標点生成回路116bの有無を調べる。これは、後述する図14のステップS32でセルポインタ部の値がnullで、ステップS23を終了した場合には、ステップS33のチェックを通らないために、ここで再びNUMIDLEの値をチェックしてさらにセルデータをセットできる座標点生成回路116bがないか調べるためのものである。
【0094】
NUMIDLE=0の場合は、全ての座標点生成回路116bが処理状態にあるので、ステップS26に進んで座標点生成を行う。
NUMIDLE>0の場合は、待機状態の座標点生成回路116bが存在し、かつ現在処理しているyバケットにはセルが連結されていないので、待機状態の座標点生成回路116bに次のyリストに連結されているセルデータを入力するために、ステップS22に戻って次のyリストの読み込みを行う。
〔S26〕ステップS23からステップS25で全ての座標点生成回路116bにセルデータが設定されるか、あるいは全てのセルデータが座標点生成回路116bに設定されると、ステップS26で実際に座標点の生成と出力が行われる。ステップS26の処理の流れは図15で後述する。
〔S27〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL>0ならばステップS28へ進み、NUMCELL=0ならばステップS29へ進む。
〔S28〕yバケットレジスタYBUCKETに格納されているセルポインタの値がチェックされる。もしセルポインタの値がnullならばステップS22へ戻り、null以外ならばステップS23へ戻る。
〔S29〕オブジェクトのヘッダ情報をエッジリストバッファ9へ書き込み、一連の座標点生成処理を終了する。まず管理回路116aがメモリコントローラ114へエッジリストバッファ9へのライトアクセス要求を出す。
【0095】
アクセスが許可されると、管理回路116aはエッジリストヘッダアドレスレジスタELHDADRに保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスにカラーレジスタCOLORとスタートyレジスタSTARTYの値を書き込む。
【0096】
そして、1オブジェクト分の座標点生成処理が終了したことをCPU111に通知して、座標点生成LSI116はアイドル状態になる。
次にステップS23について説明する。図14はセルの入力とレジスタ設定処理の流れを示すフローチャートである。
〔S30〕管理回路116aがメモリコントローラ114へディスプレイリストバンドバッファ3a−2へのリードアクセス要求を出す。アクセスが許可されると、管理回路116aはyバケットレジスタYBUCKETのセルポインタ部に保持しているアドレスをメモリコントローラ114へ出力し、該当アドレスからセルデータを読み出して、一旦フェッチレジスタFETCHに格納する。
〔S31〕フェッチレジスタFETCH内のセルデータをデコードして、待機状態の座標点生成回路116bの内部レジスタにセットする。まずステータスレジスタSTATUSの値をチェックし、待機状態の座標点生成回路116bを検出する。
【0097】
次に検出された座標点生成回路116bにセルデータからデコードしたx座標値とエッジの傾きΔxと交差数Δyを入力し、それぞれXレジスタ116b−0、ΔXレジスタ116b−1、ΔYレジスタ116b−2へ格納する。
【0098】
ステータスレジスタSTATUSの検出された座標点生成回路116bの待機状態を表すビットは、処理中を表す‘0’に変更され、アイドルカウンタレジスタNUMIDLEはデクリメントされる。
【0099】
セルデータからデコードされたx座標値は、始点を出力するためにカレントxレジスタCURXiにもコピーされる。次に、セルデータの連結フラグ部をデコードし、その値が継続を表す‘1’ならばyバケットレジスタYBUCKETのセルポインタ部をインクリメントし、連結フラグの値が‘0’(EOC)ならばyバケットレジスタYBUCKETのセルポインタ部にnull値をセットする。
【0100】
さらに、セルカウンタレジスタNUMCELLをデクリメントし、セルデータをセットした座標点生成回路116bに対応するカレントyレジスタCURYiにyバケットレジスタYBUCKETに格納しているy座標値をコピーする。
〔S32〕現在処理しているyバケットにセルリストが連結されているか否かを調べる。もしyバケットレジスタYBUCKETのセルポインタ部の値がnullならば、現在処理しているyバケットにはセルが連結されていないので、図13のステップS23を終了してステップS24に進む。
【0101】
nullでない場合は、セルリストが連結されているのでステップS33に進んで、再びセルを入力するかどうかを決定する。
〔S33〕アイドルカウンタレジスタNUMIDLEの値をチェックして、待機状態の座標点生成回路116bの有無を調べる。NUMIDLE=0の場合は、全ての座標点生成回路116bが処理状態にあるので、ステップS23を終了してステップS25に進む。
【0102】
NUMIDLE>0の場合は、待機状態の座標点生成回路116bが存在するので、ステップS30に戻って次のセルデータを読み込み、図13のステップS23の処理を繰り返す。
【0103】
次にステップS26について説明する。図15は座標点生成と出力の流れを示すフローチャートである。
〔S40〕エッジの始点の座標値をエッジリストバッファ9へ出力する。ステップS40の処理の詳細は図16で説明する。
〔S41〕次の走査ラインとエッジの交点の座標値を計算する。まず、各カレントyレジスタCURYiの値がそれぞれインクリメントされる。次に、処理状態にある座標点生成回路116bのXレジスタ116b−0とΔYレジスタ116b−2の値が、以下に示す式(1a)、(1b)にしたがって、並列に更新される。
【0104】
【数1】
X=X+ΔX …(1a)
ΔY=ΔY−1 …(1b)
最後に、更新されたXレジスタ116b−0の値が、整数変換器116b−7によって整数化されてカレントxレジスタCURXiへ格納される。
〔S42〕ステップS41で計算された座標値をエッジリストバッファ9へ出力する。ステップS42の処理の詳細は図16で説明する。
〔S43〕エッジの終点を出力した座標点生成回路116bを検出して、待機状態にする処理を行う。エッジの終点を出力し、ΔYレジスタ116b−2の値が‘0’になった座標点生成回路116bは、END=‘1’を出力する。
【0105】
管理回路116aでは、アクティブになったEND信号を検出し、ステータスレジスタSTATUSの該当する座標点生成回路116bの状態を表すビットを、待機中を表す‘1’に変更する。またアイドルカウンタレジスタNUMIDLEに、検出された座標点生成回路116bの個数を加算する。
〔S44〕全ての座標点生成回路116bが処理中か否かを調べる。アイドルカウンタレジスタNUMIDLEの値が0に等しければ、座標点生成回路A〜Dは全て処理状態にあるので、ステップS41に戻り、各々次の走査ラインの座標点生成と出力を繰り返す。
【0106】
NUMIDLE>0ならば、待機中の座標点生成回路116bが存在するので、ステップS45に進む。
〔S45〕セルカウンタレジスタNUMCELLの値がチェックされ、NUMCELL=0ならば新たにセットするセルデータは存在しないので、現在の処理を継続するためにステップS41に戻り、各々次の走査ラインの座標点生成と出力を繰り返す。
【0107】
NUMCELL>0ならば待機中の座標点生成回路116bが存在し、さらに未処理のセルデータが存在するので、図13のステップS26を終了してステップS27へ進む。
【0108】
次にステップS40、42について説明する。図16は座標点出力処理の流れを示すフローチャートである。
〔S50〕管理回路116aは、メモリコントローラ114へエッジリストバッファ9へのアクセス要求を出し、並行してアクセス先のアドレスを計算する。
【0109】
現在処理中の走査ラインに対応するエッジデータ数が格納されているエッジリストバッファアドレスは、カレントyレジスタCURYiの値を用いて、
【0110】
【数2】
ELTOPADR+B*M*CURYi …(2)
により計算され、エッジリストバッファアドレスレジスタELBADRに格納される。式(2)において、ELTOPADRはエッジリストバッファ9のエッジリスト部の先頭アドレスが格納されているELトップアドレスレジスタELTOPADRの値を表し、Bは1つのx座標値を表現するために必要なバイト数を表す。BとMが共に2のべき乗数である場合は、式(2)はハードウェアにより1クロックサイクルで計算される。さらに、メモリライトカウンタレジスタCNTMEMWに(4−NUMIDLE)の値をセットする。
〔S51〕メモリコントローラ114によりエッジリストバッファ9へのアクセスが許可されると、管理回路116aはステップS50で計算したアドレスをメモリコントローラ114へ出力し、該当アドレスからエッジデータ数を読み込んで、一旦フェッチレジスタFETCHに格納する。
〔S52〕フェッチレジスタFETCH内のエッジデータ数をインクリメントし、結果をエッジリストバッファ9の読み込んだ時と同一のアドレスへ書き込む。
〔S53〕エッジリストバッファアドレスレジスタELBADRに、フェッチレジスタFETCH内のエッジデータ数にBを乗じた値を加える。
【0111】
続いて、このアドレスへカレントxレジスタCURXiの値を書き込む。そして、メモリライトカウンタレジスタCNTMEMWの値をデクリメントする。
〔S54〕メモリライトカウンタレジスタCNTMEMWの値をチェックし、CNTMEMW>0ならばステップS50に戻り、他の座標点生成回路116bより生成された座標点の出力処理を行う。
【0112】
CNTMEMW=0ならば、現在処理中の座標点生成回路116bから生成された座標点は全てエッジリストバッファに書き込まれたので、図15のステップS40あるいはステップS42の座標点出力の処理は終了する。
【0113】
次にソート手段5について詳細に説明する。図17はソート処理の詳細を示すフローチャートである。
〔S60〕エッジリストバッファ9のアドレスelhdadrに格納されているヘッダ情報を読み込む。
〔S61〕ヘッダ情報中のystartの値により、最初に読み込むエッジリストバッファアドレスyadrを設定する。
〔S62〕エッジリストバッファアドレスyadrから、エッジデータ数Piを読み込む。
〔S63〕読み込んだエッジデータ数Piが、0か否かを判定する。0の場合は、現在のエッジリストバッファアドレスyadrが示すバッファも含めて、それ以降のエッジリストバッファ中には、エッジデータは存在しないので、ソート処理を終了する。0でない場合は、エッジデータが存在するのでステップS64に処理を移す。
〔S64〕読み込んだエッジデータ数Piと設定値との大小判定を行う。本実施の形態では、設定値=1である。エッジデータ数Piが設定値以下であった場合、現在のエッジリストバッファアドレスyadrが示すバッファ中のエッジデータのソートは必要ないので、ステップS66に処理を移す。
【0114】
エッジデータ数が設定値より大きい場合は、現在のエッジリストバッファアドレスyadrが示すバッファ中のエッジデータのソートが必要なので、処理をステップS65に移す。
〔S65〕現在のエッジリストバッファアドレスyadrが示すバッファ中に存在するエッジデータを、値の小さい順にソートする。詳細は図18で後述する。
〔S66〕エッジリストバッファアドレスyadrを次の走査ラインに対応するアドレスに設定する。
〔S67〕アドレスがエッジリストバッファ領域を超えたかどうかを判定し、超えていない場合は、ステップS62に処理を移して繰り返しソート処理を行う。超えた場合は、ソート処理を終了する。
【0115】
次にステップS65について説明する。図18はソート手段5のソート方法を示す概念図である。
まず、入力されたn個のエッジデータのうち、n/2番目のエッジデータ値xに着目する。次に全エッジデータに対して、エッジデータ値xよりも小さいか否かにより、それぞれのエッジデータをエッジデータ値x以下(1〜i)のものと、エッジデータ値x以上(j〜n)であるものとに振り分ける。
【0116】
1〜iまでのエッジデータおよびj〜nまでのエッジデータそれぞれに対して、上記で述べた方法を、全てのエッジデータが値の小さい順にソートされるまで再帰的に繰り返す。上記の方法により、順不同で入力されたエッジデータをソートすることが可能となる。
【0117】
図19はソート手段5のブロック構成を示す図である。ソート手段5は、エッジリストバッファ9からエッジデータを入力するエッジデータ入力手段5aと、入力したエッジデータを一時的に蓄えるソートバッファ5bと、最終的にソートされたエッジデータをソートバッファ5bからエッジリストバッファ9へ出力するエッジデータ出力手段5cと、ソートすべきエッジデータ数の設定などのソート処理全体を管理するソート処理管理手段5dと、(エッジデータ数/2)番目の値を選択する中点値選択部5eと、(エッジデータ数/2)番目の値とエッジデータ値の大小比較を行うエッジデータ判定手段5fと、エッジデータ判定手段5fの比較結果に従い、エッジデータを振り分けるエッジデータ分別手段5gと、から構成される。
【0118】
次にソート手段5の処理手順をフローチャートで説明する。図20はソート手段5の処理手順を示すフローチャートである。まず、エッジデータ入力手段5aで入力されたエッジデータは、まずソートバッファ5bに蓄えられる。
〔S70〕ソート処理管理手段5dにより、エッジデータの個数nが算出される。ただし、1回目のソート処理の場合は、エッジリストバッファ9中のエッジデータ数の値をnと設定する。またfirst値i、last値jも設定する。
〔S71〕中点値選択手段5eにより、(n/2)番目の値xを選択する。
〔S72、73〕エッジデータ判定手段5fにより、値xとソートバッファ5b中のエッジデータの大小比較を行う。
〔S74〕エッジデータ判定手段5fで、振り分けが必要と判定されたエッジデータに対して、エッジデータ分別手段5gにより、エッジデータの振り分けを行い、振り分けた結果をソートバッファ5bに出力する。
〔S75〕ソート処理管理手段5dにより、ソートバッファ5b中の全エッジデータに対して、値xとの大小比較が完了したか判定し、完了していない場合は、ステップS72からステップS74の処理を繰り返す。値xとの大小比較がすべて完了している場合は次のステップに処理を移す。
〔S76、77〕ソート処理管理手段5dにより、値xにより振り分けられた1〜iまでのエッジデータおよびj〜nまでのエッジデータそれぞれに対して、ステップS70からステップS75の処理を繰り返し行うよう管理する。
【0119】
すべてのエッジデータがxの値の小さい順にソートされるまで、ステップS70からステップS77までの処理を繰り返す。
上記の処理がすべて終了し、ソートバッファ5b中の全エッジデータがソートされると、エッジデータ出力手段5cは、エッジリストバッファ9にソートバッファ5b中のエッジデータを出力する。
【0120】
以上説明したように本発明に印刷処理装置10では、所定の描画命令で記述されている印刷データを、ディスプレイリストに変換し、ディスプレイリストからビットマップ展開する印刷処理装置のエッジリストデータ生成処理において、描画オブジェクトのエッジを表す座標点を生成する座標点生成処理と、前記座標点に順序を付けるソート処理を分離し、複数の座標点生成装置を待機状態の座標点生成装置が発生しないよう管理しながら非同期で繰り返し座標点生成した後、ソート処理を行うよう構成した。このため、それぞれの処理に適した処理資源、即ち座標点生成処理はハードウェア、ソート処理はソフトウェアで処理することが可能となり、かつ有限の資源を有効に活用しながら記述言語で記述される複雑な描画オブジェクトに対しても軽い資源で高速の処理を行うことが可能になる。 次に本発明の印刷処理方法について説明する。図21は本発明の印刷処理方法の処理手順を示すフローチャートである。
〔S80〕少なくとも文字または図形のいずれかの描画オブジェクトを有し、描画命令で記述されている印刷データを解釈して、内部命令に変換する。
〔S81〕内部命令から描画オブジェクトの輪郭を構成するエッジのエッジ情報をエッジ毎に有したディスプレイリストを走査ライン毎に生成する。
〔S82〕ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成する。
〔S83〕座標点に順番を付けるソートを行う。
〔S84〕順番にしたがって整列させた座標点にもとづいて、印刷データを印刷出力可能な印刷画像データに変換する。
〔S85〕印刷画像データの出力処理を行う。
【0121】
以上説明したように、本発明の印刷処理方法は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成するものとした。これにより、高速に印刷処理を行うことが可能になる。
【0122】
【発明の効果】
以上説明したように、本発明の印刷処理装置は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成する構成とした。これにより、高速に印刷処理を行うことが可能になる。
【0123】
また、本発明の印刷処理方法は、ディスプレイリストのエッジ情報を用いて描画オブジェクトのエッジを表す座標点を順次非同期に生成するものとした。これにより、高速に印刷処理を行うことが可能になる。
【図面の簡単な説明】
【図1】本発明の印刷処理装置の原理図である。
【図2】本発明の印刷処理装置の詳細構成を示す図である。
【図3】印刷処理の流れの概要を示すフローチャートである。
【図4】印刷処理の流れの概要を示すフローチャートである。
【図5】印刷処理装置のハードウェアの構成を示す図である。
【図6】描画処理カードのハードウェアの構成例を示す図である。
【図7】ディスプレイリストの構成を示す図である。
【図8】ディスプレイリストの構成を示す図である。
【図9】座標点生成LSIの構成を示すブロック図である。
【図10】管理回路が管理する内部レジスタの一覧を示す図である。
【図11】座標点生成回路のブロック構成を示す図である。
【図12】エッジリストバッファの構成とエッジリストのデータ形式を示す図である。
【図13】1オブジェクトの座標点生成処理の流れを示すフローチャートである。
【図14】セルの入力とレジスタ設定処理の流れを示すフローチャートである。
【図15】座標点生成と出力の流れを示すフローチャートである。
【図16】座標点出力の処理の流れを示すフローチャートである。
【図17】ソート処理の詳細を示すフローチャートである。
【図18】ソート手段のソート方法を示す概念図である。
【図19】ソート手段のブロック構成を示す図である。
【図20】ソート手段の処理手順を示すフローチャートである。
【図21】本発明の印刷処理方法の処理手順を示すフローチャートである。
【図22】ディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
【図23】ディスプレイリストからビットマップ展開のためのエッジの座標点を生成する処理の流れを示す図である。
【符号の説明】
1 印刷データ
2 印刷データ解釈手段
3 ディスプレイリスト生成手段
4 座標点生成手段
5 ソート手段
6 印刷画像データ変換手段
8 印刷出力手段
10 印刷処理装置
20 プリンタ装置
Claims (8)
- 描画命令をビットマップ展開して印刷処理する印刷処理装置において、
少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換する印刷データ解釈手段と、
前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成するディスプレイリスト生成手段と、
前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す複数の座標点を順次非同期に生成する座標点生成手段と、
前記座標点に順番を付けるソート手段と、
前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換する印刷画像データ変換手段と、
前記印刷画像データの出力処理を行う印刷出力手段と、
を有することを特徴とする印刷処理装置。 - 前記座標点生成手段は、複数で構成され、前記座標点生成手段の数と同数の前記座標点を一度に生成することを特徴とする請求項1記載の印刷処理装置。
- 前記座標点生成手段は、座標点生成処理が終了すると直ちに、他の未処理のエッジの座標点生成処理を開始することを特徴とする請求項1記載の印刷処理装置。
- 前記描画オブジェクトの全ての前記座標点の生成が終了するまで、前記ディスプレイリストを前記座標点生成手段に繰り返し転送する管理手段を有することを特徴とする請求項1記載の印刷処理装置。
- 前記管理手段は、前記座標点生成手段が待機中にあることを検出する検出手段と、検出された前記座標点生成手段へ前記ディスプレイリストの前記エッジ情報を転送する転送手段と、を有することを特徴とする請求項4記載の印刷処理装置。
- 前記管理手段は、前記検出手段が待機中にある前記座標点生成手段を検出すると、直ちに前記転送手段により次に転送すべき前記エッジ情報を待機状態にある前記座標点生成手段に転送することを特徴とする請求項5記載の印刷処理装置。
- 前記転送手段は、前記座標点の生成により特定の前記エッジの交差数が0になった場合に座標点生成処理が終了したものとして、前記座標点生成手段へ前記エッジ情報を転送することを特徴とする請求項5記載の印刷処理装置。
- 描画命令をビットマップ展開して印刷処理する印刷処理方法において、
少なくとも文字又は図形のいずれかの描画オブジェクトを有し、前記描画命令で記述されている印刷データを解釈して、内部命令に変換し、
前記内部命令から前記描画オブジェクトの輪郭を構成するエッジのエッジ情報を前記エッジ毎に有したディスプレイリストを走査ライン毎に生成し、
前記ディスプレイリストの前記エッジ情報を用いて、前記描画オブジェクトの前記エッジを表す座標点を順次非同期に生成し、
前記座標点に順番を付けるソートを行い、
前記順番にしたがって整列させた前記座標点にもとづいて、前記印刷データを印刷出力可能な印刷画像データに変換し、
前記印刷画像データの出力処理を行うことを特徴とする印刷処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33394297A JP3651214B2 (ja) | 1997-12-04 | 1997-12-04 | 印刷処理装置及び印刷処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33394297A JP3651214B2 (ja) | 1997-12-04 | 1997-12-04 | 印刷処理装置及び印刷処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11165442A JPH11165442A (ja) | 1999-06-22 |
JP3651214B2 true JP3651214B2 (ja) | 2005-05-25 |
Family
ID=18271709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33394297A Expired - Fee Related JP3651214B2 (ja) | 1997-12-04 | 1997-12-04 | 印刷処理装置及び印刷処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3651214B2 (ja) |
-
1997
- 1997-12-04 JP JP33394297A patent/JP3651214B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11165442A (ja) | 1999-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5386510A (en) | Method of and apparatus for converting outline data to raster data | |
JP2817687B2 (ja) | 画像形成装置 | |
JP3651214B2 (ja) | 印刷処理装置及び印刷処理方法 | |
JP3864520B2 (ja) | 印刷処理装置及び印刷処理方法 | |
JPH05342314A (ja) | 画像処理装置 | |
JPH07168681A (ja) | Pdlデータ処理装置及びその制御方法、及びパターン展開装置 | |
JP2004106192A (ja) | 描画処理装置、情報処理装置、画像形成装置、描画処理方法およびプログラム | |
JP3864535B2 (ja) | 印刷処理装置および印刷処理方法 | |
JP2000013601A (ja) | 印刷情報処理装置、中間データ生成装置および方法 | |
JP4103164B2 (ja) | 印刷処理装置 | |
JPH11232473A (ja) | 印刷処理装置 | |
JPH10151815A (ja) | 印刷処理装置 | |
JP2003051929A (ja) | 画像処理方法及び装置 | |
JP2001096854A (ja) | 印刷処理装置および印刷処理方法 | |
JP2001312383A (ja) | 印刷装置、高速印刷方法、及び記憶媒体 | |
JPH11157147A (ja) | 印刷処理装置および印刷処理方法 | |
JP3118310B2 (ja) | ページプリンタの印字処理方法 | |
JP2989778B2 (ja) | 印刷制御装置及び方法 | |
JP4325339B2 (ja) | 印刷システム、ホストコンピュータ及びプリンタドライバ | |
JPH0216068A (ja) | 像形成装置 | |
JP3419450B2 (ja) | 画素データ処理装置および方法 | |
JPH10334248A (ja) | 印刷処理装置および印刷処理方法 | |
JPH1110961A (ja) | 印刷処理装置および印刷処理方法 | |
JPH10305639A (ja) | 印刷処理装置および印刷処理方法 | |
JPH10157217A (ja) | 印刷処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20050201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |