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