JPH11232473A - 印刷処理装置 - Google Patents

印刷処理装置

Info

Publication number
JPH11232473A
JPH11232473A JP10032900A JP3290098A JPH11232473A JP H11232473 A JPH11232473 A JP H11232473A JP 10032900 A JP10032900 A JP 10032900A JP 3290098 A JP3290098 A JP 3290098A JP H11232473 A JPH11232473 A JP H11232473A
Authority
JP
Japan
Prior art keywords
list
edge
coordinate
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.)
Pending
Application number
JP10032900A
Other languages
English (en)
Inventor
Koki Uetoko
弘毅 上床
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP10032900A priority Critical patent/JPH11232473A/ja
Publication of JPH11232473A publication Critical patent/JPH11232473A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 大規模なハードウェアを用意することなく、
高速にビットマップ展開することを可能とすることを目
的とする。 【解決手段】 リスト生成手段3は入力手段2に入力さ
れた印刷データ1から描画オブジェクトの輪郭を構成す
るエッジの始点および終点の情報を描画オブジェクトご
とに有したリストを生成し、リスト分別手段4でエッジ
が交差するものとしないものとに分ける。座標点生成装
置5は複数の座標点生成回路からなり、エッジが交差し
ないリストからエッジを表す複数の座標点を一度に複数
順序付けして生成する。座標点生成手段6は所定のプロ
グラムを中央演算処理装置で実行することでエッジが交
差するリストから座標点を順次生成する。ソート手段7
は生成された各座標点を順序付けし、変換手段8がその
座標点を用いて印刷データをビットマップ展開し、印刷
出力手段9に出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は印刷処理装置に関
し、特に外部から入力された所定の描画命令で記述され
ている印刷データを、印刷処理特有の中間コード(ディ
スプレイリスト)に変換し、変換された中間コードを所
定のバンド単位に、あるいはページ単位にビットマップ
展開する印刷処理装置に関する。
【0002】
【従来の技術】小型、高速のディジタル印刷に適した電
子写真方式のページプリンタの開発に伴い、従来の文字
情報中心の印刷から脱皮した、ラスタ、図形、文字など
を同様に取り扱い、図形、文字などの拡大、回転、変形
などが自由に制御できる記述言語を用いる印刷処理装置
が一般に普及してきた。この種の記述言語の代表例とし
て、PostScript(Adobe System
s社商標)、Interpress(Xerox社商
標)、Acrobat(Adobe Systems社
商標)、GDI(Graphics Device I
nterface、Microsoft社商標)などが
知られている。記述言語で作成されている印刷データ
は、ページ内の任意の位置のラスタ、図形、文字を表現
する描画命令が任意の順で構成されており、本発明に係
わるページプリンタで印字するためには、印字前に印刷
データをビットマップ展開しなければならない。ビット
マップ展開というのは、印刷データをページまたはペー
ジの一部を横切る一連の個々のドットまたは画素へ展開
してラスタ走査線を形成し、そのページの下へ引き続く
走査線を次々に発生する過程である。
【0003】記述言語で作成されている印刷データの
内、図形あるいは文字に関する描画命令を、それが表現
する描画オブジェクトの輪郭を構成するエッジ情報を含
んだリストを複数個連結させたディスプレイリストに変
換した後、そのディスプレイリストをビットマップ展開
することにより印刷処理を行う方法が一般的に知られて
いる。
【0004】ディスプレイリストからビットマップデー
タへ展開する方法は、文献「実践コンピュータグラフィ
ックス」(David F. Rogers著、山口富
士夫監修、1987年、日刊工業新聞社発行、pp84
−96)に記載されたものがある。
【0005】上記文献に記載された図形あるいは文字の
輪郭情報と上記ディスプレイリストの関係、ディスプレ
イリストからビットマップ展開のためのエッジの座標点
を生成する処理の流れを図27に示す。
【0006】図27は輪郭情報からビットマップ展開の
ためのエッジの座標点を生成するまでの流れを示す説明
図である。図27の例において、多角形の輪郭は、四つ
のエッジEa,Eb,Ec,Edから構成されている。
これらのエッジEa,Eb,Ec,Edは、絶対値の小
さい方の頂点(以下エッジの始点と呼ぶ)のy座標値に
よりソートされ、yバケットリストに連結されて記憶さ
れている。たとえば、エッジEa,Ebの始点(x1,
y1)を交差する走査ラインでは、y1の座標値に対応
するyバケットリストに、エッジEaの情報を表すセル
とエッジEbの情報を表すセルとが記憶されている。y
バケットリストの各セルは、走査ラインと各エッジの交
点を発生させるための情報、すなわち、エッジの始点の
x座標値と、エッジの傾きを表す走査ライン当たりのx
の変化量Δxと、エッジと走査ラインとの交差数Δy
と、次のセルへのポインタとを含んでいる。yバケット
リストおよび各セルを含む全体をディスプレイリストと
呼ぶ。次に、このディスプレイリストから各走査ライン
ごとに同時に処理しなければならない情報に変換され
る。これをアクティブエッジリストと呼ぶ。そして、こ
のアクティブエッジリストからエッジの座標点が出力さ
れることになる。
【0007】一般的にディスプレイリストからエッジの
座標点を生成する処理は走査ライン変換と呼ばれる。走
査ライン変換によって生成されたエッジの座標点を座標
値によりソートし、ソートされた座標点間を所定の色デ
ータで順次塗りつぶし処理を施したものがビットマップ
データである。走査ライン変換は、1走査ラインずつ、
上部から下部までのエッジの座標点を発生する。すなわ
ち、現在の走査ラインと交わる全エッジをリスト化し
て、図27に示すアクティブエッジリストを作成しなが
らエッジの座標点を出力する。現在の走査ラインの処理
後、アクティブエッジリストの各レコードは次走査のた
めに更新(x=x+Δx,Δy=Δy−1)される。Δ
y=0になったバケットは、リストから削除される。
【0008】このようなディスプレイリストからビット
マップデータへの展開をソフトウェア処理で行う場合、
高速の印刷処理装置には適用できないという問題点があ
った。これは、記述言語で作成される印刷データでは、
一つの描画命令で記述される描画オブジェクトの複雑さ
に制限がないため、上述した走査ライン変換あるいはエ
ッジの座標点のソート処理を専用のハードウェアで高速
化するためには、大規模なハードウェアを用意する必要
があるためである。
【0009】一方、コンピュータグラフィックスをディ
スプレイ上に表示する技術分野においては、図形の輪郭
を表現する多角形データのディスプレイリストを単純な
三角形データのディスプレイリストや台形データのディ
スプレイリストに分割した後、専用ハードウェアを用い
て高速にビットマップ展開する処理が行われている。す
なわち、コンピュータグラフィックスの技術分野におい
ては、一つの描画命令で記述される描画オブジェクトの
複雑さに制限を設けハードウェアで高速処理を行ってい
る。これは、コンピュータグラフィックスの技術分野に
おける図形の輪郭を表現する多角形は、一般に凸多角形
で表現されており、三角形や台形への分割が容易である
ためである。しかしながら、記述言語で作成される図形
要素では、エッジが交差する場合も発生するため、三角
形や台形への分割には多大な計算を必要とする。
【0010】図28はエッジが交差する図形要素の例を
示した図である。図28に示す図形要素は、七つのエッ
ジEe,Ef,Eg,Eh,Ei,Ej,Ekからな
り、この図形要素の中を塗りつぶすものとする。この塗
りつぶしは走査ラインと交差するエッジの座標点に挟ま
れた間で行われる。エッジEi,Ejのように交差して
いるところでは、たとえばエッジEeとエッジEjとに
挟まれた領域aを塗りつぶしていくと、途中でエッジE
eとエッジEiとに挟まれた領域bの塗りつぶしに入れ
替わる。つまり、エッジの交差する部分でエッジの並び
替えなどの処理が発生する。このため、三角形や台形へ
の分割にはこのような処理があらかじめなされているこ
とが必要であるため、多大な計算を必要とし、システム
全体としてハードウェア処理の高速性を十分に活かすこ
とはできない。したがって、コンピュータグラフィック
スの技術分野におけるハードウェア処理を、記述言語で
作成されている印刷データを処理する印刷処理の技術分
野に適用することはできない。
【0011】このような問題を解決する技術のうち、ソ
フトウェア処理のみによる改善を計るものとして、特開
平4−250582号公報に記載の技術がある。これ
は、エッジが走査ラインと初めて交差した時点でそのエ
ッジのラインリストを作成し、このリストを走査ライン
との交差位置について昇順にソートしたソートラインリ
ストを作成し、このソートラインリストを基に描画区間
となるパスを求めてそれを管理するフィルリストを作成
し、ソートラインリストが更新されない間はこのフィル
リストを基に描画を行う。そして、エッジが走査ライン
と交差しなくなった時点、あるいはエッジ同士の交差が
発生した時点でソートラインリストおよびフィルリスト
を更新して、さらにこれらの段階を繰り返すといった技
術が挙げられている。これによって、エッジの交点検出
を行う必要がなく、さらにソート回数を減らすことがで
きるので全体の処理速度向上が図られている。
【0012】しかし、ここで改善が図れるのはソート処
理に関してのみであり、走査ライン変換処理には依然と
して処理時間を費やしてしまう。さらに、このような問
題を解決する技術のうち、ハードウェア処理を用いるも
のとして、特願平9−138609号明細書に記載の技
術がある。特願平9−138609号明細書に記載の技
術によれば、ディスプレイリストから描画オブジェクト
のエッジを表す座標点を生成する座標点生成処理と、そ
の座標点に順序を付けるソート処理とを独立させ、座標
点生成処理に関しては、ハードウェアで構成された複数
の座標点生成回路で繰り返し座標点生成のみを行うよう
構成され、ソート処理は所定のプログラムを中央演算処
理装置で実行することにより座標点の順序付けを行うよ
うなソフトウェア処理で構成されている。また、ソート
処理のさらなる高速化を図るため、ソート処理の一部は
ハードウェアで実現し、座標点生成回路の数と同数の座
標点をソートし、これによって一部ソート済みの座標点
を後で一括してソフトウェア処理する技術も挙げられて
いる。このため、座標点生成処理とソート処理をすべて
ハードウェアで実現する場合に比較して、大規模なハー
ドウェアを用意したり、印刷データを制限されたハード
ウェア量に合わせたリストデータに変換するための前処
理に多大な処理時間を費やす必要がなくなる。さらに、
従来のソフトウェア処理のみで座標点生成処理とソート
処理を行っていた場合に比較して、ソフトウェア処理で
は多大な計算時間を必要する座標点生成処理を、ハード
ウェアで並列かつパイプライン構成により、高速に処理
することができるため、全体として高速化が可能とな
る。
【0013】
【発明が解決しようとする課題】しかしながら、ソート
処理の一部をハードウェア化すると、高速化は図れるが
やはりハードウェア規模が増大してしまうという問題点
がある。一方、ソートをすべてソフトウェア処理のみで
行うと処理速度の低下を招いてしまうという問題点もあ
る。
【0014】本発明は、このような点に鑑みてなされた
ものであり、図形や文字に関する描画命令を、それが表
現する描画オブジェクトの輪郭を構成するエッジ情報を
含んだディスプレイリストに変換し、そのディスプレイ
リストをビットマップ展開する印刷処理装置において、
大規模なハードウェアを用意することなく、高速にビッ
トマップ展開することを可能とする印刷処理装置を提供
することを目的とする。
【0015】
【課題を解決するための手段】本発明では上記問題を解
決するために、文字または図形に関する描画命令を印刷
画像データに変換して印刷出力する印刷処理装置におい
て、所定の描画命令で記述された少なくとも文字または
図形のいずれかの描画オブジェクトを有する印刷データ
を入力する入力手段と、前記入力手段に入力された前記
印刷データから前記描画オブジェクトの輪郭を構成する
エッジの始点および終点の情報を前記描画オブジェクト
ごとに有したリストを生成するリスト生成手段と、前記
リスト生成手段で生成されたリスト群を前記描画オブジ
ェクトの輪郭を構成するエッジが交差するものとしない
ものとに分けるリスト分別手段と、前記リスト分別手段
によりエッジが交差しないリスト群に分別されたリスト
の前記始点および終点情報から前記描画オブジェクトの
エッジを表す座標点を順次生成する座標点生成装置と、
前記リスト分別手段によりエッジが交差するリスト群に
分別されたリストの前記始点および終点情報から前記描
画オブジェクトのエッジを表す座標点を順次生成する座
標点生成手段と、前記座標点生成装置および/または前
記座標点生成手段で生成された前記座標点に順序を付け
るソート手段と、前記ソート手段で決定された順番の前
記座標点を用いて前記印刷画像データに変換する変換手
段と、前記変換手段で変換された印刷画像データを出力
する印刷出力手段と、を備えていることを特徴とする印
刷処理装置が提供される。
【0016】また、座標点生成装置は、複数の座標点生
成回路で構成され、座標点生成回路の数と同数の座標点
を一度に生成し、生成した座標点を順序付けして出力す
るよう構成している。
【0017】さらに、座標点生成手段は、所定のプログ
ラムを中央演算処理装置で実行することにより描画オブ
ジェクトのエッジを表す座標点を順次生成するよう構成
した。
【0018】このような構成の印刷処理装置によれば、
描画オブジェクトの輪郭を構成するエッジが交差するも
のとしないものとに分け、エッジが交差しない描画オブ
ジェクトの座標点生成は専用のハードウェアで、エッジ
が交差する描画オブジェクトの座標点生成はソフトウェ
ア処理により中央演算処理装置で実行する。座標点生成
装置は複数の座標点生成回路から順序付けした座標点を
同時に生成するので座標点をソートするための専用のハ
ードウェアが不要となる。このように、ディスプレイリ
ストの座標点の生成にソフトウェア処理とハードウェア
処理とを効率よく使い分けることで、有限の資源を有効
に活用しながら、印刷画像データ変換までの処理を高速
にすることが可能となる。
【0019】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して詳細に説明する。図1は本発明の原理的な構
成を示すブロック図である。図1において、印刷データ
1は少なくとも文字または図形のいずれかの描画オブジ
ェクトを有し、所定の描画命令で記述されている、印刷
処理装置に入力されるデータである。印刷処理装置は、
入力手段2と、リスト生成手段3と、リスト分別手段4
と、座標点生成装置5と、座標点生成手段6と、ソート
手段7と、変換手段8と、印刷出力手段9とから構成さ
れている。
【0020】ここで、座標点生成装置5は、複数の座標
点を一度に生成し、生成した座標点を順序付けして出力
する複数の座標点生成回路で構成され、座標点生成手段
6は、所定のプログラムを中央演算処理装置で実行する
ことにより描画オブジェクトのエッジを表す座標点を順
次生成するよう構成されている。
【0021】上記構成において、入力手段2に入力され
た印刷データ1から、まず、リスト生成手段3によって
描画オブジェクトの輪郭を構成するエッジの始点および
終点の情報を描画オブジェクトごとに有したリストが生
成される。このリスト生成手段3で生成されたリスト群
は、リスト分別手段4により描画オブジェクトの輪郭を
構成するエッジが交差するものとしないものとに分けら
れ、エッジが交差しないリスト群に分別されたリストは
座標点生成装置5に、エッジが交差するリスト群に分別
されたリストは座標点生成手段6に入力される。座標点
生成装置5では、入力されたリストの始点および終点情
報から描画オブジェクトのエッジを表す座標点が、複数
の座標点生成回路で一度に複数順序付けして生成され、
座標点生成手段6では、入力されたリストの始点および
終点情報から描画オブジェクトのエッジを表す座標点
が、所定のプログラムを中央演算処理装置で実行するこ
とにより順次生成される。このようにして生成された座
標点は、ソート手段7により順序が付けられ、変換手段
8がその順序の座標点を用いて印刷データを印刷出力手
段9で出力可能な印刷画像データに変換して、印刷出力
手段9に出力する。
【0022】このように、リスト分別手段4により描画
オブジェクトの輪郭を構成するエッジが交差するものと
しないものとに分けることによって、エッジが交差しな
い描画オブジェクトの座標点生成は専用のハードウェア
で、エッジが交差する描画オブジェクトの座標点生成は
ソフトウェア処理により中央演算処理装置で実行するよ
うに構成したことを特徴としている。すなわち、複数の
座標点生成回路はエッジが交差しない描画オブジェクト
の座標点生成のみを行えばよく、エッジの交点発生後の
座標点出力順序を意識する必要がなくなるので、走査ラ
インと初めて交差するエッジが発生した時のみ、その走
査ラインに交差する他のエッジの座標点との大小関係を
調べて順序付を行うことで、それ以降に生成される座標
点はそれに従った順序で出力される。この順序付を行う
部分はマルチプレクサなどを用いて簡単なハードウェア
構成で実現できる。したがって、複数の座標点生成回路
から同時に生成される座標点をソートするための専用の
ハードウェアが不要となって、資源の有効活用が可能と
なる。これにより、図形や文字に関する描画命令を、そ
れが表現する描画オブジェクトの輪郭を構成するエッジ
情報を含んだディスプレイリストに変換し、そのディス
プレイリストを印刷画像データに変換する印刷処理装置
において、大規模なハードウェアを用意することなく、
さらに、ディスプレイリストの座標点生成処理において
ソフトウェア処理とハードウェア処理を効率よく使い分
けることによって、有限の資源を有効に活用しながら、
印刷データを印刷画像データに高速に変換することが可
能となる。
【0023】次に、本発明に係わる印刷処理装置の実施
の形態について説明する。図2は本発明の印刷処理装置
の実施の形態を示すブロック図である。図2において、
印刷処理装置は、印刷データスプール部10と、印刷デ
ータ解釈部11と、ディスプレイリスト生成部12と、
ディスプレイリスト分別部13と、バンド分割部14
と、ラスタデータ処理部15と、ラスタデータバッファ
16と、ディスプレイリストバッファ17と、ディスプ
レイリストバンドバッファ18と、ディスプレイリスト
管理部19と、座標点生成部20と、ソート部21と、
エッジリストバッファ22と、印刷画像データ変換部2
3と、ラスタデータバンドバッファ24と、出力バッフ
ァ25と、プリンタ装置制御部26と、プリンタ装置2
7とから構成されている。以下、この印刷処理装置の各
構成要素の概要および動作について説明する。
【0024】図2において、印刷データ1は印刷処理装
置で処理可能な記述言語で記述されたものであり、図示
されないパーソナルコンピュータやワークステーション
において、文書作成や編集などを処理するアプリケーシ
ョンプログラムで作成された文書データから生成された
ものである。本実施の形態で対象とする記述言語は、た
とえばGDIであるが、Acrobatで代表されるP
DF(Portable Document Form
at)、PostScriptで代表されるページ記述
言語であってもよい。
【0025】印刷データスプール部10は、印刷データ
1を入力するための通信機能や、印刷データ解釈部11
へ出力されるまで印刷データを一時的に記憶する機能な
どを備えたものである。
【0026】印刷データ解釈部11は、印刷データスプ
ール部10より入力された印刷データを、定められた記
述言語のシンタックスに従ってトークンとして切り出し
た後、トークンを解釈し、内部命令やその引数に変換す
る。内部命令には、文字/図形/ラスタの描画を実行す
る描画命令や、色や線属性など描画に必要な情報を設定
する描画状態命令がある。描画命令が文字あるいは図形
の場合、描画命令はディスプレイリスト生成部12へ転
送される。一方、描画命令がラスタの場合は、描画命令
をラスタデータ処理部15へ転送するとともに、対象と
するラスタデータの縦と横の大きさをディスプレイリス
ト生成部12へ転送する。
【0027】ディスプレイリスト生成部12は、文字/
図形の描画命令に応じて、描画されるオブジェクトの輪
郭を構成するエッジデータを生成した後、オブジェクト
ごとにヘッダ情報と、描画オブジェクトの輪郭を構成す
るエッジの始点、傾きおよびエッジと走査ラインとの交
差数を含むエッジ情報とから構成されるディスプレイリ
ストを生成する。また、印刷データ解釈部11より転送
されたラスタデータの縦と横の大きさに基づき、ラスタ
データの輪郭を示すディスプレイリストを生成する。
【0028】ラスタデータ処理部15は、ラスタの描画
命令に応じて、対象とするラスタデータに対し座標変
換、色補正などのラスタ処理を実行し、処理されたラス
タデータをラスタデータバッファ16に格納する。
【0029】ディスプレイリスト分別部13は、ディス
プレイリスト生成部12で生成されたディスプレイリス
トのエッジ情報から描画オブジェクトの輪郭を構成する
エッジが交差するかどうかを判別し、エッジ交差の有無
の情報をディスプレイリストに付加してディスプレイリ
ストのタイプを分別する。
【0030】バンド分割部14は、ディスプレイリスト
生成部12で生成し、ディスプレイリスト分別部13で
分別された描画オブジェクトごとのディスプレイリスト
を、1ページ分を所定のバンド数で分割されるバンド単
位で分割する。バンドの分割数は、後段の出力バッファ
25の大きさで決定される。バンド単位で分割されたデ
ィスプレイリストは、ディスプレイリストバッファ17
に格納される。上記印刷データ解釈部11からバンド分
割部14までの処理をページを構成するすべての描画オ
ブジェクトに対して実行することにより、ページごとに
バンド単位で分割されたディスプレイリストが、ディス
プレイリストバッファ17に格納される。
【0031】ディスプレイリストバンドバッファ18
は、2つのバッファで構成され、バンド単位でディスプ
レイリストバッファ17からディスプレイリストデータ
が交互に入力される。
【0032】ディスプレイリスト管理部19は、ディス
プレイリストバンドバッファ18からのディスプレイリ
ストの読み出しと、エッジ交差の有無とをチェックし、
後段の座標点生成部20において座標点生成処理をハー
ドウェアで行うかソフトウェアで行うかの判定と、後段
の座標点生成部20の座標点生成処理ハードウェアが待
機状態にあることの検出と、検出結果に基づき座標点生
成部20の座標点生成処理ハードウェアへエッジ交差の
ないディスプレイリストのエッジ情報の転送を制御する
ものである。また、ディスプレイリスト管理部19で
は、ヘッダ情報に基づき処理するオブジェクトのタイプ
が文字/図形かまたはラスタかを検出し、ラスタの場合
は、印刷画像データ変換部23にラスタデータバッファ
16からラスタデータバンドバッファ24に当該オブジ
ェクトのラスタデータを転送するよう指示する。
【0033】座標点生成部20は、エッジの始点、傾き
およびエッジと走査ラインとの交差数を含むエッジ情報
から、エッジの座標点をエッジリストバッファ22に出
力するものであり、ディスプレイリスト分別部13によ
って分別されたディスプレイリストのタイプによって、
エッジ交差のあるものは所定のプログラムを中央演算処
理装置で実行して座標点生成を行い、エッジ交差のない
ものは座標点生成回路の数と同数のエッジの座標点を一
度に出力する複数の座標点生成回路を用いて座標点生成
を行う構成となっている。複数の座標点生成回路は、走
査ラインごとに複数のエッジに対する座標点生成を実行
する。この時生成された複数の座標点はソートされた状
態で出力される。処理中のすべてのエッジに対する処理
が終了すると、ディスプレイリスト管理部19より次に
処理すべき複数のエッジ情報が転送される。一つのオブ
ジェクトに対するすべてのエッジの座標点生成が終了す
るまで、複数の座標点生成回路による座標点生成が繰り
返される。また、処理するオブジェクトが文字/図形の
場合は、ヘッダ情報に基づき処理するオブジェクトの色
データがエッジリストバッファ22に格納される。
【0034】ソート部21は、座標点生成部20による
一つのオブジェクトに対するすべてのエッジの座標点生
成が終了した後、エッジリストバッファ22に格納され
ている走査ラインごとのエッジ座標点データを、座標値
の小さいものから順次整列するよう並べかえる処理を行
うものであり、所定のプログラムを中央演算処理装置で
実行する構成となっている。ソート処理のためのプログ
ラムとしては、たとえばクイックソートプログラムが用
いられる。
【0035】印刷画像データ変換部23は、エッジリス
トバッファ22の座標値の小さいものから順次整列する
よう並べかえられたエッジの座標点のペアの間の塗りつ
ぶし処理を行い、出力バッファ25に出力するものであ
る。処理するオブジェクトが文字/図形の場合は、エッ
ジリストバッファ22に格納されている色データにより
塗りつぶし処理を実行する。処理するオブジェクトがラ
スタデータの場合は、ラスタデータバンドバッファ24
よりエッジの座標点のペアの間を埋めるラスタデータを
読み出し、出力バッファ25に出力する。なお、上記エ
ッジリストバッファ22も2つのバッファで構成され、
上記座標点生成処理およびソート処理と、印刷画像デー
タ変換処理はパイプラインで実行可能に構成されてい
る。
【0036】出力バッファ25は、2つのバッファで構
成され、一方のバッファが印刷画像データ変換部23に
より塗りつぶし処理が行われている間、他方のバッファ
は、後段のプリンタ装置制御部26を介して、プリンタ
装置27へ印刷画像データが転送されるよう構成されて
いる。
【0037】プリンタ装置制御部26は、プリンタ装置
27の出力タイミングに応じて出力バッファ25の印刷
画像データをプリンタ装置27へ転送するとともに、プ
リンタ装置27の状態制御および管理を実行するもので
ある。
【0038】プリンタ装置27は、プリンタ装置制御部
26の制御に基づき、出力バッファ25から出力される
印刷画像データを受け取って、記録用紙に印字し出力す
るものである。さらに、詳しくは、CMYBk (シア
ン、マゼンタ、イエロー、ブラック)カラーの色ごとに
露光、現像、転写を繰り返すことによりフルカラー画像
を出力できるレーザ走査方式の電子写真方式を用いたカ
ラーページプリンタである。
【0039】なお、本実施の形態では、ディスプレイリ
ストが所定のバンド単位に分割され、バンド単位で処理
されることを前提に記載されているが、これに限定され
るものではなく、ページ単位で処理される構成であって
もよい。
【0040】次に、上述したように構成された印刷処理
装置における印刷処理の流れの概要について説明する。
図3は印刷データの流れの概要を説明するフローチャー
トである。印刷データスプール部10に文字または図形
を含む印刷データ1が入力されると、印刷データ解釈部
11、ディスプレイリスト生成部12、ディスプレイリ
スト分別部13、バンド分割部14を介してディスプレ
イリストが生成され、ディスプレイリストのタイプが分
別されて、少なくとも1ページ分のバンド分割されたデ
ィスプレイリストがディスプレイリストバッファ17に
格納される(ステップS1)。次に、ディスプレイリス
トバッファ17より、バンド単位で順次ディスプレイリ
ストがディスプレイリストバンドバッファ18に入力さ
れる(ステップS2)。
【0041】次に、ディスプレイリスト管理部19にお
いて、まず、ディスプレイリストのタイプを判定し(ス
テップS3)、処理しようとしているオブジェクトのエ
ッジが交差するタイプならば、ソフトウェア処理による
座標点生成を行い(ステップS8)、エッジが交差しな
いタイプならば、オブジェクトのディスプレイリストの
エッジ情報が、最大で座標点生成部20中の座標点生成
装置の有する座標点生成回路の数だけ座標点生成装置に
転送される(ステップS4)。座標点生成装置では、座
標点の生成(ステップS5)、走査ラインの更新(ステ
ップS6)、すべての座標点生成回路の待機状態のチェ
ック(ステップS7)が行われる。もし、すべての座標
点生成回路が待機状態でなければ、ステップS5、ステ
ップS6、ステップS7を繰り返す。もし、すべての座
標点生成回路が待機状態であれば、当該オブジェクトの
すべてのエッジの処理が終了していることになる。この
ようにして座標点生成部20での座標点生成処理が終了
し、次に、ソート部20でソート処理が実行された後
(ステップS9)、印刷画像データ変換部23で印刷画
像データへの変換処理および出力バッファへの出力(ス
テップS10)が実行される。
【0042】次に、バンド内のすべてのオブジェクト処
理終了のチェックが行われる(ステップS11)。も
し、当該バンドのすべてのオブジェクトの処理が終了し
ていなければ、ステップS4で次のオブジェクトの最初
のエッジ情報が、最大で座標点生成部20中の座標点生
成装置の有する座標点生成回路の数だけ座標点生成装置
に転送され、ステップS5以下の処理が繰り返される。
もし、当該バンドのすべてのオブジェクトの処理が終了
していれば、プリンタ装置制御部26を介してプリンタ
装置27に印刷画像データの出力が行われる(ステップ
S12)。
【0043】次に、ページ内のすべてのバンド処理終了
のチェック(ステップS13)が行われる。もし、当該
バンドのすべてのオブジェクトの処理が終了していなけ
れば、ステップS2以下の処理が繰り返される。もし、
当該バンドのすべてのオブジェクトの処理が終了してい
れば、1ページ分の印刷処理は終了する。処理する印刷
データが複数ページあれば、上記処理を複数ページ分繰
り返す。
【0044】なお、上記印刷データの流れの説明では、
簡単にするため、ラスタデータ処理に関する記載は省略
したが、ラスタデータ処理に関しては各構成要素の概要
および動作で説明したように処理される。
【0045】以上、本発明の印刷処理装置の概要につい
て記述した。次に、この印刷処理装置のうち、ディスプ
レイリストの構造およびディスプレイリスト分別部13
およびディスプレイリスト管理部19および座標点生成
部20を実装する座標点生成LSI(大規模集積回路)
について詳細に説明する。
【0046】まず、文字/図形およびラスタデータの二
つの場合のディスプレイリストの構造について説明す
る。図4はディスプレイリスト生成部で生成されるディ
スプレイリスト(文字/図形の場合)の構造を示す図、
図5はディスプレイリスト生成部で生成されるディスプ
レイリスト(ラスタの場合)の構造を示す図である。デ
ィスプレイリスト生成部12で生成されるディスプレイ
リストは、文字/図形およびラスタデータの場合、ヘッ
ダ部が異なる。以下にこれら二つの場合のディスプレイ
リストの構造について説明する。
【0047】文字/図形の場合、図4に示したように、
ヘッダ部は、描画オブジェクトの種類を示すTypeI
D(この場合、文字あるいは図形描画を示す)と、描画
オブジェクトを何色で塗りつぶすかを示す色情報(たと
えば、CMYBk の値など)と、yバケットの総数であ
るyリスト数と、各yリストに連結されているセルの総
数である連結セル数と、次の描画オブジェクトのディス
プレイリストへのポインタとから構成される。Type
IDの先頭ビットは、描画オブジェクトの輪郭を構成す
るエッジが交差するかどうかを表す。このビットが'
0' の場合はエッジは交差せず、' 1' の場合はエッジ
は交差する。
【0048】リスト部は、yバケットと、連結セルとか
ら構成される。yバケットは、入力された各描画オブジ
ェクトごとのベクタデータの始点のy座標値に相当する
走査ラインyと、最初の連結セルへのポインタであるセ
ルポインタとからなる。ここで、連結セルの存在しない
yバケットは、リスト部に登録しない。連結セルは、入
力された各描画オブジェクトごとのベクタデータの始点
のx座標値と、そのベクタデータの走査ライン当たりの
xの増分であるΔxと、そのベクタデータと交差する走
査ラインの数であるΔyと、その走査ラインyを始点と
する異なるベクタデータが存在するか否かを示す連結フ
ラグから構成される。連結フラグは、次に連結セルが存
在する場合は、フラグ' 1' を付加し、最後の連結セル
である場合は、EOC(End Of Cell)を表
すフラグ' 0' を付加する。
【0049】次に、図5に示すようにラスタデータの場
合、ヘッダ部は、TypeID(この場合、ラスタ描画
を示す)と、ラスタデータのデータサイズ(1画素当た
りのビット数*w*h:wは幅、hは高さ)と、ラスタ
データの格納されているラスタデータバッファ16のア
ドレスに相当するデータアドレスと、各yリストに連結
されているセルの総数である連結セル数と、次の描画オ
ブジェクトのディスプレイリストへのポインタとから構
成される。リスト部は、上述した文字/図形の場合と同
様であるので説明を省略する。
【0050】次に、ディスプレイリスト分別部13につ
いて説明する。ディスプレイリスト分別部13は、ディ
スプレイリスト生成部12で生成されたディスプレイリ
ストからエッジ交差の有無について判定し、その情報を
ディスプレイリストに書き込む。
【0051】エッジ交差の有無の判定方法について、図
6〜図11を用いて説明する。図6は量子化したオブジ
ェクトからディスプレイリストを生成する例を説明する
図である。図6に示すように、始点はエッジリストが存
在する点のy座標(4,5,7,8,9)である。エッ
ジ交差の有無を検出するためには、まず、オブジェクト
のどのエッジとどのエッジが交わる可能性があるのかを
調べる。エッジe1の始点はy座標が4で、スキャンラ
インに交わる数Δy1は6であるため、y座標4から9
までの間に存在するエッジがエッジe1と交わる可能性
がある。図6の場合は、y座標4から9までの間にエッ
ジe2,e3,e4,e5,e6が存在するため、エッ
ジe1とこれらのエッジが交わるかどうかを調べる。
【0052】次に、2つのエッジが交わるかどうかの判
定方法を説明する。図7はエッジの交差判定処理の流れ
を示すフローチャートである。ここでは、二つのエッジ
e1とe2が交わるかどうかを判定する。まず、エッジ
e1とエッジe2とがx軸上で重なり合うかどうかを調
べ(ステップS21)、重なり合わない場合はエッジは
交わらないと判断しその時点で処理を終了する。次に、
エッジe1とエッジe2とがx軸上で重なり合う場合
は、エッジがy軸上で重なり合う範囲内で交わるかどう
かを判定する(ステップS22)。そして、判定の結
果、エッジが交差する場合には、ディスプレイリストの
ヘッダ部のTypeIDの先頭ビットに' 1' を書き込
む(ステップS23)。交差しない場合は、何も書き込
まれない(デフォルトではTypeIDの先頭ビット
は' 0' とする)。
【0053】ここで、二つのエッジe11,e12があ
ったとして、これらがx軸上で重なり合うかどうかを調
べる方法について詳しく説明する。図8は二つのエッジ
がx座標軸上で重ならない場合の例を説明する図であ
る。まず、エッジe11とエッジe12とがx軸上のど
こに存在するのかを調べる。図8に示すように、エッジ
e11の始点のx座標をx1、終点のx座標をx1'、
エッジe12の始点のx座標をx2、終点のx座標をx
2' とする。ここで、
【0054】
【数1】 x1' =x1+(Δx1×Δy1) ・・(1)
【0055】
【数2】 x2' =x2+(Δx2×Δy2) ・・(2) である。x1,x1' とx2,x2' の値を比較し、不
等号の向きがすべて等しい場合はエッジe11とエッジ
e12は交わらず、1つでも向きが異なる場合は、エッ
ジe11とエッジe12が交わる可能性がある。図8の
例の場合、x1=3,x1' =1,x2=5,x2' =
10であるため不等号の向きは次のようになる。 x1<x2,x1<x2' x1' <x2,x1' <x2' このように不等号の向きがすべて等しい場合は、エッジ
e11とエッジe12は交わらない。また、等号が含ま
れていても、他の不等号の向きがすべて等しい場合は交
わらない。
【0056】図9は二つのエッジがx座標軸上で重なる
が交わらない場合の例を説明する図、図10は二つのエ
ッジが交わる場合の例を説明する図である。図9に示す
ようなエッジe11,e12の場合は、x1=7,x
1' =3,x2=10,x2'=2であるため、不等号
の向きは次のようになる。 x1<x2,x1>x2' x1' <x2,x1' >x2' 同様に、図10の場合も、x1=7,x1' =3,x2
=9,x2' =1であるため、不等号の向きは次のよう
になる。 x1<x2,x1>x2' x1' <x2,x1' >x2' 図9、図10の場合のように不等号の向きが1つでも異
なる場合は、エッジe11とe12が交わる可能性があ
る。
【0057】次に、不等号の向きが1つでも異なり、エ
ッジe11とエッジe12とが交わる可能性がある場合
の交わるかどうかの判定方法について詳しく説明する。
まず、エッジe11とエッジe12とがy座標上のどの
範囲に存在するのかを調べ、両方のエッジが存在するy
座標を特定する。図9の場合、エッジe11が存在する
y座標は2から10まで、エッジe12は8から12ま
でであるから、エッジe11とエッジe12とが両方存
在するy座標は、8から10までである。次に、y座標
が8の場合のエッジe11とエッジe12のx座標の値
を比較する。この場合は、e11<e12である。ま
た、y座標が10の場合もx座標の値は、e11<e1
2である。このように不等号の向きが同じ場合、エッジ
e11とエッジe12とは交わっていないといえる。ま
た、どちらかが等号の場合も交わっていない。
【0058】逆に、エッジe11とエッジe12とが交
わっている図10の場合、まず、エッジe11とエッジ
e12とが両方存在するy座標を調べる。この場合は、
両方存在するy座標の範囲は4から8までである。y座
標が4の場合のエッジe11,e12のx座標の値は、
e11<e12であり、y座標が8の場合のエッジe1
1,e12のx座標の値は、e11>e12である。こ
のように不等号が異なる場合はエッジが交わっていると
いえる。
【0059】以上のような方法で、エッジが交差するか
どうかを調べる。したがって、図6に示したようなオブ
ジェクトの場合では、まず、エッジe1とエッジe2と
が交差するかどうかを調べ、同様にe1と他のエッジと
の交差を順次調べる。この調べる順番を図11に示す。
【0060】図11はオブジェクトのエッジの交差を調
べる順番を示す図である。図6に示したオブジェクトに
ついて、エッジの交差を調べる場合、まず、エッジe1
については、このエッジe1が存在するy座標の範囲に
含まれるエッジe2〜e6との間で交差判定を行う。エ
ッジe2はx軸上で重なるe3以降のエッジはないの
で、エッジe2との交差判定はない。以上のようにし
て、エッジe3,e4,e5,e6の場合も同様に調べ
る。調べた結果、エッジが交差すると判定されたら、デ
ィスプレイリストのヘッダ部のTypeIDの先頭ビッ
トに' 1' を書き込み、その後の判定処理は行わない。
【0061】次に、ディスプレイリスト管理部19およ
び座標点生成部20を実装する座標点生成LSIについ
て説明する。図12は座標点生成LSIの構成を示すブ
ロック図である。図12において、座標点生成LSI5
5は、管理回路551と、四つの座標点生成回路552
A〜552Dとから構成される。また、座標点生成LS
I55は、内部バス61に接続されているメモリコント
ローラ53を介してメモリ54にアクセスする構成にな
っている。メモリ54はその一部がディスプレイリスト
バンドバッファ541およびエッジリストバッファ54
2に割り当てられている。内部バス61には、CPU
(中央演算処理装置)50が接続され、ソート部21の
ソート処理のための所定のプログラムの実行、メモリ5
4に対する入力制御やメモリクリアの制御などを実行す
る。
【0062】管理回路551は、以下の表1に示す複数
の内部レジスタを有し、ディスプレイリストのヘッダ情
報から座標点生成の処理方法の選択、座標点生成回路5
52A〜552Dによる座標点生成処理中の走査ライン
情報の管理、ディスプレイリストバンドバッファ541
およびエッジリストバッファ542へのアクセスの制
御、ディスプレイリストデータのデコード処理および再
構成処理、座標点生成回路552A〜552Dの状態管
理などの機能を備えるものである。
【0063】
【表1】
【0064】座標点生成回路552A〜552Dは、管
理回路551から1組ずつセルデータを入力し、各座標
点生成回路552ごとに同期して最大4点のエッジデー
タを並列に生成する機能を備えるものである。四つの座
標点生成回路552A〜552Dは、すべて同一の構造
を持つ。次に、座標点生成回路552A〜552Dの具
体的な回路構成について説明するが、これらの構造がす
べて同一なため、ここでは、座標点生成回路552Aで
説明する。
【0065】図13は座標点生成回路の回路構成を示す
ブロック図である。座標点生成回路552Aは、x座標
値を保持するXレジスタ5520と、エッジの傾きを保
持するΔXレジスタ5521と、交差数を保持するΔY
レジスタ5522と、Xレジスタ5520およびΔXレ
ジスタ5521の値を加算する加算器5523と、ΔY
レジスタ5522の値をデクリメントする演算器552
4と、三つのマルチプレクサ5525,5526,55
29と、実数値を整数値へ変換する演算器5527と、
ΔYレジスタ5522の値を0と比較する比較器552
8とから構成される。入力X,ΔX,ΔYは、対応する
各レジスタの初期値であり、管理回路551から入力さ
れる。入力XSEL,ΔYSELは、それぞれマルチプ
レクサ5525および5526の出力値の切り替え制御
信号、入力XLD,ΔXLD,ΔYLDは、レジスタ5
520〜5522の書き込み制御信号であり、管理回路
551から入力される。出力CURXは、管理回路55
1のカレントxiレジスタCURXiへ出力される。こ
の時、出力CURXは、座標点生成回路552Aがエッ
ジデータ生成処理をしている場合はエッジのx座標値を
出力し、待機中である場合はx座標値の取りうる最大値
maxvalueが出力される。出力ENDは、エッジ
の終了を管理回路551に通知するための制御信号であ
る。又、この例では、傾き情報ΔXは浮動小数点データ
になるので、加算器5523の出力は演算器5527に
て整数値に変換されている。
【0066】この座標点生成回路552Aによれば、上
半分の回路にて、アクティブエッジリストのxとΔxと
の加算処理を行い、下半分の回路では、アクティブエッ
ジリストのΔyの減算処理を行っている。いずれも、加
算および減算の結果をマルチプレクサ5525,552
6に戻して、加算および減算を順次行うようにしてい
る。
【0067】次に、メモリ54に割り当てられたエッジ
リストバッファ542の中の構成およびエッジリストの
データ形式について説明する。図14はエッジリストバ
ッファの構成を示す図である。エッジリストデータは、
オブジェクトの色情報と最初に現れるエッジのy座標値
ystart とから成るヘッダ部と、エッジと各走査ライン
との交点の座標値を含むエッジリスト部とから構成され
る。座標点生成回路552によって座標点生成処理を行
った場合のエッジリスト部の各走査ラインのx座標値
は、座標点生成回路の数nずつ(本例ではn=4)昇順
にソートされている。エッジリストバッファ542は、
エッジリストデータのヘッダ部を格納する領域と、エッ
ジリスト部を格納する領域とから構成される。エッジリ
ストバッファ542のヘッダ部格納領域の先頭アドレス
elheaderと、エッジリスト部格納領域の先頭ア
ドレスyadr0は、座標点生成LSI55の起動時に管理
回路551のELヘッダアドレスレジスタELHDAD
RおよびELトップアドレスレジスタELTOPADR
にそれぞれ書き込まれる。エッジリスト部格納領域は、
1バンドのすべての走査ラインに対してM個のx座標値
を格納することができる。各走査ラインのエッジリスト
の先頭には、そのラインにいくつのx座標値が格納され
ているかを表すエッジデータ数Piが格納される。座標
点生成LSI55からは座標点生成回路の数nずつ(本
例ではn=4)ソートされた状態でx座標値を出力する
ので、ハードウェア処理による座標点生成が行われた時
のエッジデータ数Piはnの倍数となる。1走査ライン
に格納可能なx座標値の最大数Mの値は、256以上の
2のべき乗数が望ましい。
【0068】次に、図15〜図19を用いて、上述した
ように構成される座標点生成LSI55における、1オ
ブジェクトの座標点生成処理の流れを説明する。まず、
全体の処理フローの概要を図15を用いて説明する。
【0069】図15は座標点生成LSIにおける1オブ
ジェクトの座標点生成処理の流れを示すフローチャート
である。座標点生成LSI55は、CPU50からの1
描画オブジェクトに対する座標点生成開始の指示を待
ち、ディスプレイリストバッファ17からディスプレイ
リストバンドバッファ541へのバンド単位のディスプ
レイリストデータの書き込みが終了し、CPU50から
座標点生成開始の指示を受けたら、座標点生成処理を開
始する。
【0070】まず、1描画オブジェクトに対するディス
プレイリストデータのヘッダ情報の読み込み、解釈、属
性管理といった処理を行う(ステップS31)。すなわ
ち、管理回路551は一つ目の描画オブジェクトに対す
るディスプレイリストデータのヘッダ情報の読み込み要
求をメモリコントローラ53へ出す。メモリコントロー
ラ53からアクセス許可信号を受け取ったら、DLヘッ
ダアドレスレジスタDLHDADRに保持しているアド
レスを出力して、一つ目の描画オブジェクトに対するデ
ィスプレイリストデータのヘッダ情報の読み込みを行
う。また、この時、DLヘッダアドレスレジスタDLH
DADRに保持しているアドレスとヘッダサイズとから
ディスプレイリストバンドバッファ541のyリスト部
の先頭アドレスを算出し、その値をyリストトップアド
レスレジスタYLTOPADRに格納する。読み込まれ
たヘッダ情報は一旦フェッチレジスタFETCHに格納
し、その内容は管理回路551で解釈され、その描画オ
ブジェクトに関する属性を管理回路551内のレジスタ
群に格納する。
【0071】次に、描画オブジェクトのエッジ交差の有
無を調べ、エッジ交差がない場合、次に描画オブジェク
トの種類を判別し、描画オブジェクトが文字または図形
の場合には、フェッチレジスタFETCH内のヘッダ情
報は、色情報、yリスト数、セル数、次ヘッダ部アドレ
スにデコードされてそれぞれカラーレジスタCOLO
R、トータルyリストレジスタNUMLIST、セルカ
ウンタレジスタNUMCELL、DLヘッダアドレスレ
ジスタDLHDADRに格納される。描画オブジェクト
がラスタの場合には、フェッチレジスタFETCH内の
ヘッダ情報は、ラスタデータバッファアドレスとラスタ
データサイズとセル数と次ヘッダ部アドレスとにデコー
ドされる。管理回路551は、デコードしたラスタデー
タバッファアドレスとラスタデータサイズを印刷画像デ
ータ変換部23に出力し、そのラスタデータをラスタデ
ータバッファ16からラスタデータバンドバッファ24
へ転送するよう指示する。デコードしたセル数と次ヘッ
ダ部アドレスは、それぞれセルカウンタレジスタNUM
CELL、DLヘッダアドレスレジスタDLHDADR
に格納する。なお、描画オブジェクトがラスタの場合の
ディスプレイリストには、ラスタデータが描画される矩
形領域情報しかないため、リスト部のyバケットは1個
で済む。したがって、ヘッダ情報にはyリスト数は含ま
れず、また後述するセルの追加判定処理も発生しないた
め、トータルyリストレジスタNUMLISTへの書き
込みは行われない。また、色情報も不要であるためカラ
ーレジスタCOLORへの書き込みも行われない。
【0072】次に、ステップS31で描画オブジェクト
のエッジ交差の有無を調べた結果に基づき、エッジ交差
がある場合とエッジ交差がない場合とに処理が分岐する
(ステップS32)。
【0073】エッジ交差がある場合には、描画オブジェ
クトの座標点生成を走査ライン変換アルゴリズムに基づ
いたソフトウェア処理で行うためにCPU50にその描
画オブジェクトの座標点生成処理開始を指示する(ステ
ップS33)。
【0074】一方、エッジ交差がない場合には、yバケ
ットの読み込み、読み込んだyバケットに連結されてい
る連結セルの読み込み、セル読み込み後のディスプレイ
リストの再構成といった処理を行う(ステップS3
4)。この処理の詳細については後述する。
【0075】次に、ステップS34で読み込んだセルデ
ータから座標点の算出、走査ラインの更新、エッジリス
トバッファ542へのエッジデータおよびエッジデータ
数の出力、四つの座標点生成回路の状態管理、セルデー
タの追加、セル追加後のディスプレイリストの再構成と
いった処理を行う(ステップS35)。この処理の詳細
については後述する。
【0076】次に、描画オブジェクトに含まれるすべて
のセルの処理が終了したかどうかを判別する処理を行う
(ステップS36)。ステップS31でセットしたセル
カウンタレジスタNUMCELLの値をチェックし、N
UMCELL>0ならばステップS34に移って上述の
処理を繰り返す。セルカウンタレジスタNUMCELL
の値が、NUMCELL=0ならば、その描画オブジェ
クトに対する処理が終了したものとする。
【0077】そして、ステップS33にて、CPU50
から描画オブジェクトに対する座標点生成処理の終了が
通知されると、あるいは、ステップS36にて全セルの
処理が終了したと判断されると、描画オブジェクトの色
情報とエッジリストデータが存在する走査ラインの開始
アドレスとを含むヘッダ情報をエッジリストバッファ5
42へ出力し、CPU50に描画オブジェクトに対する
処理が終了したことを通知して再び待機状態に戻るとい
った処理を行う(ステップS37)。すなわち、まず、
管理回路551がメモリコントローラ53へエッジリス
トバッファ542への書き込み要求を出力する。メモリ
コントローラ53からアクセス許可信号を受け取った
ら、ELヘッダアドレスレジスタELHDADRに保持
しているアドレスを出力し、次にカラーレジスタCOL
ORとスタートyレジスタSTARTYの値を出力して
エッジリストバッファ542に書き込みを行う。そし
て、CPU50に描画オブジェクトに対する座標点生成
処理が終了したことを通知して再び待機状態に戻る。
【0078】次に、ステップS34,ステップS35の
各ステップの処理内容についてより詳細に説明を行う。
まず、ステップS34について図16を用いて詳細な説
明を行う。
【0079】図16は座標点生成LSIのyリストに関
する処理の流れを示すフローチャートである。まず、y
リストを読み込む(ステップS41)。すなわち、yリ
ストトップアドレスレジスタYLTOPADRの内容を
yリストアドレスレジスタYLISTADRに読み込
み、最初のyバケットの読み出し要求をメモリコントロ
ーラ53に出す。メモリコントローラ53から読み出し
許可信号が来たら、YLISTADRの値をメモリコン
トローラ53に出力してyバケットデータの読み出しを
行う。読み出されたデータは一旦フェッチレジスタFE
TCHに格納して、y座標値とエッジセルへのポインタ
の切り出しを行い、y座標値をカレントyレジスタCU
RYとスタートyレジスタSTARTYに、ポインタを
セルアドレスレジスタCELLADRに格納する。ま
た、フェッチレジスタFETCHに格納されたデータを
yバケットレジスタYBUCKETに格納する。さら
に、yバケットの読み出し回数をカウントするyリスト
カウンタレジスタYCOUNTをインクリメントする。
【0080】次に、読み込んだyバケットにセルがある
かどうかが判断される(ステップS42)。もし、yバ
ケットにセルがなくなり、セルアドレスレジスタCEL
LADRの値がnullならば、ステップS41に戻
り、次のyバケットデータの読み出しを行い、フェッチ
レジスタFETCHに格納する。なお、ディスプレイリ
ストバンドバッファ541からのyリストの読み込みが
一巡目の時は、各yバケットには連結セルが必ず存在す
るため、ポインタアドレスがnullとなることはな
い。ポインタアドレスがnullとなるのは、後述する
セルポインタの更新のステップで連結セルがなくなって
更新処理が施された後に、本ステップを迎えた場合であ
る。
【0081】セルアドレスレジスタCELLADRの値
がnullでなければ、その値が指し示すセルのデータ
読み出しを行う(ステップS43)。まず、セルデータ
の読み出し要求をメモリコントローラ53に出す。メモ
リコントローラ53から読み出し許可信号が来たら、セ
ルアドレスレジスタCELLADRの値をメモリコント
ローラ53に出力して一つのセルデータの読み出しを行
う。読み出されたデータは一旦フェッチレジスタFET
CHに格納して、始点のx座標を表すx座標値、x座標
値の増分Δx、エッジと交差する走査ライン数を表すΔ
yの値、および次のセルへの継続状態を示す連結フラグ
をそれぞれ切り出し、待機中の座標点生成回路552に
連結フラグ以外の各データを転送して、x座標値をXレ
ジスタに、ΔxをΔXレジスタに、ΔyをΔYレジスタ
にそれぞれ格納する。なお、この時、データが転送され
た座標点生成回路552から出力されるEND信号は'
0' となり、ステータスレジスタSTATUSの座標点
生成回路に対応するビットにも' 0' が書き込まれて、
その座標点生成回路は待機状態ではなくなったことを示
す。データ転送後、座標点生成回路552A〜Dは、現
在処理中の走査ラインに対するエッジの座標点を生成し
てその値を管理回路551のエッジデータレジスタCU
RXi(i=1〜4)に格納する。
【0082】次に、セルポインタの更新を行う(ステッ
プS44)。すなわち、ステップS43で切り出した連
結フラグが' 1' ならば、次のセルデータの格納先を示
すアドレスを現在のセルアドレスレジスタCELLAD
Rの値とセルサイズとから算出して、セルアドレスレジ
スタCELLADRに書き込む。連結フラグが' 0'な
らば次に連結されるセルはないため、nullをセルア
ドレスレジスタCELLADRに書き込む。さらに、セ
ルカウントレジスタNUMCELLをデクリメントす
る。このようにしてセルポインタが更新される。
【0083】次に、連結フラグの値がセルの終了を示す
EOCを表す' 0' かどうかが判断される(ステップS
45)。連結フラグがセルの継続を表す' 1' ならば、
次に、待機状態にある座標点生成回路があるかどうかが
判断される(ステップS46)。座標点生成回路の待機
状態はステータスレジスタSTATUSの内容を調べる
ことで判断される。ステータスレジスタSTATUSの
内容として、待機状態であることを表す' 1' の値が検
出されたら、ステップS43に戻ってセルアドレスレジ
スタCELLADRに格納されているアドレスが示すセ
ルデータの読み出しを行い、' 1' の値が格納されてい
たビットに対応する座標点生成回路552にセルデータ
の各値を書き込むといった処理を行う。ステータスレジ
スタSTATUSの内容を調べた結果、全ビットの値
が' 0' 、つまりすべての座標点生成回路552は座標
点生成処理中である場合、連結セルが継続していても次
のセルの読み込みは行わない。
【0084】最後に、セルアドレスレジスタCELLA
DR中の更新セルポインタの値をディスプレイリストバ
ンドバッファ541に書き戻して更新する(ステップS
47)。まず、yバケットデータの書き込み要求をメモ
リコントローラ53に出し、メモリコントローラ53か
ら書き込み許可信号が来たら、Yリストアドレスレジス
タYLISTADR中のyリストアドレスを出力し、次
にセルアドレスレジスタCELLADR中の更新セルポ
インタの値を出力してディスプレイリストバンドバッフ
ァ541に書き込みを行い、現在処理中のyバケットに
おけるセルポインタを更新する。そして、yリストアド
レスレジスタYLISTADRの値を次に読み込むyリ
ストを示すバッファアドレスに更新する。
【0085】このようにして、yリストの処理(図15
のステップS34)が終了したら、図17のセルの処理
(図15のステップS35)に移る。なお、ディスプレ
イリストバンドバッファ541への書き込み処理は座標
点生成処理中に並行して行われる。
【0086】図17は座標点生成LSIのセルに関する
処理の流れを示すフローチャートである。まず、座標転
出力処理が行われる(ステップS51)。すなわち、エ
ッジリストバッファ542から現在処理中の走査ライン
に対してバッファに格納されているエッジデータ数Pi
を読み込み、その数を更新して、更新したエッジデータ
数とエッジデータレジスタCURXi(i=1〜4)に
格納したデータとをエッジリストバッファ542に書き
込む。この座標点出力処理の詳細は後述する。次に、エ
ッジデータの更新を行う(ステップS52)。ここで
は、次の走査ラインとエッジの交点の座標値を計算す
る。まず、カレントyレジスタCURYの値がインクリ
メントされる。次に、座標点生成回路552A〜552
Dのうち処理継続中である座標点生成回路552におい
て、Xレジスタ5520とΔYレジスタ5522の値
が、以下に示す式(3)および式(4)に従って、並列
に更新される。
【0087】
【数3】X=X+ΔX ・・(3)
【0088】
【数4】ΔY=ΔY−1 ・・(4) 最後に、更新されたXレジスタ5520の値が、演算器
5527によって整数化されてカレントxレジスタCU
RXi(i=1〜4)へ格納される。待機中、つまりス
テータスレジスタSTATUSの値が' 1' の座標点生
成回路552から出力されるデータは、上述した通り座
標点生成回路552のマルチプレクサ5529によりm
axvalueとなる。
【0089】次に、セルの追加判定処理が行われる(ス
テップS53)。ここでは、座標点生成回路552A〜
552Dの待機状態のチェック、待機状態の座標点生成
回路552がある場合の現在処理中の走査ラインに対す
るyバケットの有無のチェック、現在処理中の走査ライ
ンに対するyバケットが存在する場合のセルの読み出し
およびセルポインタの更新、セルの追加に伴う各座標点
生成回路552A〜552Dの出力値の大小関係の再構
成といった処理を行う。この処理の詳細は後述する。次
に、ステップS51と同様の座標点出力処理を行う(ス
テップS54)。
【0090】次に、セル処理の終了を判定する(ステッ
プS55)。セルの処理が終了すると、座標点生成回路
552A〜552DはEND信号を管理回路551に出
力し、各々の値を管理回路551のステータスレジスタ
STATUSに書き込む。したがって、セル処理の終了
は、ステータスレジスタSTATUSの値を調べること
によって判断できる。そして、すべての座標点生成回路
が待機状態かどうかが判断される(ステップS56)。
ステータスレジスタSTATUSの全ビットの値が'
1' 、つまりすべての座標点生成回路552は待機状態
であるならばステップS35の処理を終了し、図15の
ステップS36へ移る。一つでも値が' 0' のビットが
あるならば、つまり座標点生成処理中の座標点生成回路
552がある場合は、ステップS52へ移り、座標点生
成処理を継続する。
【0091】次に、図17のステップS51、ステップ
S53、ステップS54の各ステップの処理内容につい
てより詳細に説明を行う。まず、ステップS51および
ステップS54について図18を用いて詳細な説明を行
う。
【0092】図18は座標点生成LSIの座標点出力に
関する処理の流れを示すフローチャートである。まず、
管理回路551は、メモリコントローラ53へエッジリ
ストバッファ542へのアクセス先のアドレスを計算
し、並行してメモりアクセス要求を出す(ステップS6
1)。すなわち、現在処理中の走査ラインに対するエッ
ジデータ数Piが格納されているエッジリストバッファ
アドレスを式(5)に従って算出し、ELバッファアド
レスレジスタELBADRにその値を書き込む。同時
に、現在処理中の走査ラインに対する、エッジリストバ
ッファ542に格納されているエッジデータ数Piの読
み出し要求をメモリコントローラ53に出力する。
【0093】
【数5】 ELTOPADR+B*M*CURY ・・(5) 式(5)において、ELTOPADRはエッジリストバ
ッファ542のエッジリスト部の先頭アドレスが格納さ
れているELトップアドレスレジスタELTOPADR
の値を表し、Bは一つのx座標値を表現するために必要
なバイト数を表す。BとMが共に2のべき乗数である場
合は、式(5)はハードウェアにより1クロックサイク
ルで計算される。
【0094】次に、メモリコントローラ53から読み出
し許可信号が来たら、ELバッファアドレスレジスタE
LBADRの値をメモリコントローラ53に出力してエ
ッジデータ数Piの読み出しを行い(ステップS6
2)、メモリコントローラ53から出力されたエッジデ
ータ数Piを一旦フェッチレジスタFETCHに格納す
る(ステップS63)。
【0095】次に、まずフェッチレジスタFETCHの
値を読み出し、座標点生成回路552A〜552Dで一
走査ラインごとに生成される座標点の数4を読み出した
値に加えて、その値をメモリコントローラ53に出力
し、エッジリストバッファ542の読み込み時と同じア
ドレスに書き戻す(ステップS64)。さらに、ELバ
ッファアドレスレジスタELBADRの値とフェッチレ
ジスタFETCHの値(4を加える前の値)から現在処
理中の走査ラインに対するエッジデータを格納する先の
アドレスを算出し、更新エッジデータ数の出力後、その
アドレスをメモリコントローラ53へ出力する。なお、
内部バスのアービトレーション機能により、ステップS
51およびS54の処理中は内部バスおよびメモリ54
へのアクセス権は座標点生成LSI55が保持したまま
である。
【0096】最後に、管理回路551のカレントXiレ
ジスタCURXi(i=1〜4)に格納されている現在
処理中の走査ラインに対する各x座標値を同時に読み出
し、各データは昇順に配置された状態で、ステップS6
4でのアドレス出力後にメモリコントローラ53に出力
し、エッジリストバッファ542のステップS64で出
力したアドレスの示す領域に四つのx座標値を書き込む
(ステップS65)。このようにして、ステップS51
の処理が終了したら図17のステップS52に移り、ス
テップS54の処理が終了したら図17のステップS5
5に移る。
【0097】次に、ステップS53のセル追加判定処理
について図19を参照して詳細な説明を行う。図19は
座標点生成LSIのセル追加判定に関する処理の流れを
示すフローチャートである。まず、セルカウンタレジス
タNUMCELLの値により、追加するセルが残ってい
るかどうかを調べる(ステップS71)。セルカウンタ
レジスタNUMCELLの値が0の場合は、追加するセ
ルはないということなのでステップS53の処理を終了
して図17のステップS54に移る。
【0098】セルカウンタレジスタNUMCELLの値
が0でない場合は、ステータスレジスタSTATUSの
内容を調べる(ステップS72)。ステータスレジスタ
STATUSの内容を調べた結果、全ビットの値が'
0' 、つまり、すべての座標点生成回路552は座標点
生成処理中である場合は、ステップS53の処理を終了
して図17のステップS54に移る。
【0099】ステータスレジスタSTATUSの内容を
調べた結果、待機状態であることを表す' 1' の値が検
出された場合、yバケットレジスタYBUCKETに格
納されているyバケットデータのy座標値と、カレント
yレジスタCURYに格納されている現在処理中の走査
ラインのy座標値との比較を行う(ステップS73)。
比較の結果、YBUCKETのy座標値がCURYの値
より大きかったら、ステップS53の処理を終了し、図
17のステップS54に移る。
【0100】YBUCKETのy座標値がCURYの値
より小さかった場合、yバケットデータが読み込まれた
回数をカウントするyリストカウンタレジスタYCOU
NTをインクリメントする(ステップS74)。そし
て、yリストアドレスレジスタYLISTADRの値を
フェッチレジスタFETCHに読み出して次のyバケッ
トの読み出し要求をメモリコントローラ53に出す。メ
モリコントローラ53から読み出し許可信号が来たら、
フェッチレジスタFETCHに読み出したyリストアド
レスをメモリコントローラ53に出力して、次のyバケ
ットデータの読み出しを行う。読み出されたデータは一
旦フェッチレジスタFETCHに格納する。
【0101】次に、ステップS74でフェッチレジスタ
FETCHに格納したyバケットデータからy座標値y
iの切り出しを行い、カレントyレジスタCURYの値
との比較を行う(ステップS75)。この比較の結果、
切り出したy座標値yiがCURYの値より小さかった
場合、yリストカウンタレジスタYCOUNTとYリス
トの総数を表すトータルyリストレジスタNUMLIS
Tの値との比較を行う(ステップS76)。その結果、
両者の値が等しくない(YCOUNTの値がNUMLI
STの値より小さい)場合は、yリストアドレスレジス
タYLISTADRの値を次に読み込むyリストを示す
バッファアドレスに更新し、ステップS74に戻って次
のyリストの読み込みを行い、等しかったらyリストカ
ウンタレジスタYCOUNTの値を0リセットし、更に
yリストトップアドレスレジスタYLTOPADRの内
容をyリストアドレスレジスタYLISTADRに読み
込んでステップS53の処理を終了し、図17のステッ
プS54に移る。
【0102】ステップS75の比較の結果、切り出した
y座標値yiがCURYの値より大きかった場合、ステ
ップS74でフェッチレジスタFETCHに格納した、
yi>CURYとなったi番目のyバケットデータの値
をyバケットレジスタYBUCKETに書き込み、ステ
ップS53の処理を終了して図17のステップS54に
移る(ステップS77)。これは、処理する走査ライン
の更新後、追加判定処理が発生した場合に、毎回yリス
トの読み込みを行ってカレントyレジスタCURYの値
と等しいy座標値を持つyバケットを探さなくてもよい
ようにするために必要な処理である。
【0103】ステップS75の比較の結果、切り出した
y座標値yiがCURYの値と等しかった場合、ステッ
プS74でフェッチレジスタFETCHに格納したyバ
ケットデータからエッジセルへのポインタの切り出しを
行い、その値をセルアドレスレジスタCELLADRに
格納する(ステップS78)。そして、セルデータの読
み出し要求をメモリコントローラ53に出し、メモリコ
ントローラ53から読み出し許可信号が来たら、セルア
ドレスレジスタCELLADRの値をメモリコントロー
ラ53に出力して一つのセルデータの読み出しを行う。
読み出されたデータは一旦フェッチレジスタFETCH
に格納して、開始点を表すx座標値、x座標値の増分Δ
x、エッジと交差する走査ライン数を表すΔyの値、お
よび次のセルの継続状態を示す連結フラグをそれぞれ切
り出し、待機中の座標点生成回路552に連結フラグ以
外の各データを転送して、x座標値をXレジスタに、Δ
xをΔXレジスタに、ΔyをΔYレジスタにそれぞれ格
納する。なお、この時、データが転送された座標点生成
回路552から出力されるEND信号は' 0' となり、
ステータスレジスタSTATUSの該座標点生成回路に
対応するビットにも' 0' が書き込まれて、その座標点
生成回路は待機状態ではなくなったことを示す。
【0104】次に、現在座標点生成処理中の座標点生成
回路のx座標値と、ステップS78で新たに追加された
セルデータのx座標値との比較を行い、その大小関係に
よってオーダーレジスタORDERi(i=1〜4)を
更新する(ステップS79)。座標点生成回路552A
〜552DにオーダーレジスタORDER1〜ORDE
R4がそれぞれ対応する場合、たとえば、ステップS7
8以前に座標点生成回路552A,552Bが座標点生
成処理中であり、座標点生成回路552Aの出力値の方
が座標点生成回路552Bより小さいとすると、オーダ
ーレジスタORDER1,ORDER2の値はそれぞ
れ" 00" ," 01" となる。ここで、ORDERi
(i=1〜4)の値は各座標点生成回路552A〜55
2Dから出力されるx座標値が小さい順に" 00" ,"
01" ," 10" ," 11" となる。ステップS78で
新たに座標点生成回路552Cに追加されたセルデータ
のx座標値が座標点生成回路552Aの現在のx座標値
より小さい場合(Cのx座標値<Aのx座標値<Bのx
座標値)は、それぞれ対応するオーダーレジスタORD
ER1,ORDER2,ORDER3の値は" 01"
," 10" ," 00" に更新される。同様に、Aのx
座標値<Cのx座標値<Bのx座標値の場合はオーダー
レジスタORDER1,ORDER2,ORDER3の
値は" 00" ," 10" ," 01" に、Aのx座標値<
Bのx座標値<Cのx座標値の場合はオーダーレジスタ
ORDER1,ORDER2,ORDER3の値は" 0
0" ," 01"," 10" に更新される。座標点生成回
路552Dは待機中で出力値はmaxvalueとなる
ので、対応するオーダーレジスタORDER4の値は"
11" である。そして、座標点生成回路552A〜55
2Dは、現在処理中の走査ラインに対するエッジの座標
点を生成してその値を図示しないマルチプレクサに出力
し、各マルチプレクサはオーダーレジスタORDERi
の値によって各座標点データを管理回路551の対応す
るエッジデータレジスタCURXi(i=1〜4)に出
力する。ここで、エッジデータレジスタCURXi(i
=1〜4)はiの値の昇順に座標点データを昇順に格納
する。このようにして、オーダーレジスタORDERi
を再設定する。
【0105】次に、ステップS78で切り出した連結フ
ラグが' 1' ならば、次のセルデータの格納先を示すア
ドレスを現在のセルアドレスレジスタCELLADRの
値とセルサイズとから算出してセルアドレスレジスタC
ELLADRに書き戻す(ステップS80)。連結フラ
グが' 0' ならば次に連結されるセルはないため、nu
llをセルアドレスレジスタCELLADRに書き込
む。さらに、セルカウントレジスタNUMCELLをデ
クリメントする。このようにしてセルポインタを更新す
る。
【0106】次に、連結フラグがセルの終了を示すEO
Cかどうかを判断する(ステップS81)。ここで、連
結フラグがセルの継続を表す' 1' ならば、ステータス
レジスタSTATUSの内容を調べ、待機状態にある座
標点生成回路があるかどうかが判断される(ステップS
82)。ステータスレジスタSTATUSの内容を調
べ、待機状態であることを表す' 1' の値が検出された
らステップS78に戻ってセルアドレスレジスタCEL
LADRに格納されているアドレスが示すセルデータの
読み出しを行い、' 1' の値が格納されていたビットに
対応する座標点生成回路552にセルデータの各値を書
き込むといった処理を行う。ステータスレジスタSTA
TUSの内容を調べた結果、全ビットの値が' 0' 、つ
まりすべての座標点生成回路552は座標点生成処理中
である場合、連結セルが継続していても次のセルの読み
込みは行わない。
【0107】最後に、セルアドレスレジスタCELLA
DR中の更新セルポインタの値をディスプレイリストバ
ンドバッファ541に書き戻して更新する(ステップS
83)。まず、yバケットデータの書き込み要求をメモ
リコントローラ53に出し、メモリコントローラ53か
ら書き込み許可信号が来たら、Yリストアドレスレジス
タYLISTADR中のyリストアドレスを出力し、次
にセルアドレスレジスタCELLADR中の更新セルポ
インタの値を出力してディスプレイリストバンドバッフ
ァ541に書き込みを行い、現在処理中のyバケットに
おけるセルポインタを更新する。そして、yリストアド
レスレジスタYLISTADRの値を次に読み込むyリ
ストを示すバッファアドレスに更新する。このようにし
て、ステップS53の処理が終了したら図17のステッ
プS54に移る。なお、ディスプレイリストバンドバッ
ファ541への書き込み処理は座標点生成処理中に並行
して行われる。
【0108】次にソート部20について詳細に説明す
る。まず、ソート部21における処理の流れの概要を、
図20を参照して説明する。図20はソート部における
処理の流れを示すフローチャートである。まず、エッジ
リストバッファ22のアドレスelhdadrに格納さ
れているヘッダ情報を読み込み(ステップS91)、ヘ
ッダ情報中のystartの値により、最初に読み込む
エッジリストバッファアドレスyadrを設定し(ステ
ップS92)、エッジリストバッファアドレスyadr
から、エッジデータ数Piを読み込む(ステップS9
3)。
【0109】次に、読み込んだエッジデータ数Piが、
0か否かを判定する(ステップS94)。ここで、エッ
ジデータ数Piが0の場合は、現在のエッジリストバッ
ファアドレスyadrが示すバッファも含めて、それ以
降のエッジリストバッファ中には、エッジデータは存在
しないので、ソート処理を終了する。
【0110】エッジデータ数Piが0でない場合は、エ
ッジデータが存在するので読み込んだエッジデータ数P
iと設定値との大小判定を行う(ステップS95)。こ
こで、エッジデータ数が設定値より大きい場合は、現在
のエッジリストバッファアドレスyadrが示すバッフ
ァ中のエッジデータのソートが必要なので、現在のエッ
ジリストバッファアドレスyadrが示すバッファ中に
存在するエッジデータを、値の小さい順にソートする
(ステップS96)。なお、ステップS95の判定に
て、エッジデータ数Piが設定値以下であった場合、現
在のエッジリストバッファアドレスyadrが示すバッ
ファ中のエッジデータのソートは必要ないので、このス
テップS96はパスされる。
【0111】次に、エッジリストバッファアドレスya
drを次の走査ラインに対応するアドレスに設定し(ス
テップS97)、そして、アドレスがエッジリストバッ
ファ領域を超えたかどうかを判定する(ステップS9
8)。ここで、アドレスがエッジリストバッファ領域を
超えていない場合は、ステップS93に処理を移して繰
り返しソート処理を行い、超えた場合は、ソート処理を
終了する。
【0112】以上がソート部21における処理の流れの
概要である。次に、エッジリストバッファに格納されて
いるエッジデータがエッジに交差があってソフトウェア
処理によって生成されたものである場合の、ステップS
96のエッジデータのソート方法について詳細に説明す
る。なお、この時のステップS95における設定値は1
である。
【0113】図21はソート部の第1のソート方法を説
明する図である。ソフトウェア処理によってエッジデー
タを生成した場合のソート部21におけるソート方法に
おいて、まず、入力されたn個のエッジデータのうち、
n/2番目のエッジデータ値xに着目する。次に、全エ
ッジデータに対して、エッジデータ値xよりも小さいか
否かにより、それぞれのエッジデータをエッジデータ値
x以下(1〜i)のものと、エッジデータ値x以上(j
〜n)であるものとに振り分ける。1〜iまでのエッジ
データおよびj〜nまでのエッジデータそれぞれに対し
て、上記で述べた方法を、すべてのエッジデータが値の
小さい順にソートされるまで再帰的に繰り返す。上記の
方法により、順不同で入力されたエッジデータをソート
することが可能となる。
【0114】図22は第1のソート方法を実現するソー
ト部の構成例を示すブロック図である。ソート部21
は、エッジリストバッファ22からエッジデータを入力
するエッジデータ入力部211と、入力したエッジデー
タを一時的に蓄えるソートバッファ212と、最終的に
ソートされたエッジデータをソートバッファ212から
エッジリストバッファ22へ出力するエッジデータ出力
部213と、ソートすべきエッジデータ数の設定などの
ソート処理全体を管理するソート処理管理部214と、
(エッジデータ数/2)番目の値を選択する中点値選択
部215と、(エッジデータ数/2)番目の値とエッジ
データ値の大小比較を行うエッジデータ判定部216
と、エッジデータ判定部216の比較結果に従い、エッ
ジデータを振り分けるエッジデータ分別部217とから
構成される。
【0115】次に、上述したように構成されたソート部
21におけるソート処理について説明する。図23は第
1のソート方法を実現するソート部の処理の流れを示す
フローチャートである。エッジデータ入力部211で入
力されたエッジデータは、まずソートバッファ212に
蓄えられる。ここで、ソート処理管理部214により、
エッジデータの個数nが算出される。ただし、1回目の
ソート処理の場合、エッジリストバッファ21中のエッ
ジデータ(ED)の数の値はnと設定する。また、fi
rst値i、last値jも設定する(ステップS10
1)。次に、中点値選択部215により、エッジデータ
の(n/2)番目の値xを選択する(ステップS10
2)。
【0116】次に、エッジデータ判定部216により、
値xとソートバッファ212中のi番目のエッジデータ
の値との大小比較を行い(ステップS103)、値xが
大きければ、iをインクリメントする(ステップS10
4)。iをインクリメントしていって、値xより大きく
なれば、次に、値xとソートバッファ212の中のj番
目のエッジデータの値との大小比較を行い(ステップS
105)、値xが小さければ、jをデクリメントする
(ステップS106)。jをデクリメントしていって、
値xより小さくなれば、エッジデータ判定部216で、
振り分けが必要と判定されたエッジデータに対して、エ
ッジデータ分別部217により、エッジデータの振り分
けを行い、振り分けた結果をソートバッファ212に出
力する(ステップS107)。
【0117】次に、ソート処理管理部214により、ソ
ートバッファ212中の全エッジデータに対して、値x
との大小比較が完了したかどうかを判定する(ステップ
S108)。ここで、完了していない場合は、ステップ
S103からステップS107の処理を繰り返す。値x
との大小比較がすべて完了している場合は、ソート処理
管理部214により、iが1より大きいかどうかを判定
し(ステップS109)、iがまだ1より大きい場合に
は、値xにより振り分けられた1〜iまでのエッジデー
タに対して、ステップS101からステップS108の
処理を繰り返し行うよう管理する。iが1の場合には、
ソート処理管理部214により、jがnより小さいかど
うかを判定し(ステップS110)、jがまだnより小
さい場合には、値xにより振り分けられたj〜nまでの
エッジデータに対して、ステップS101からステップ
S109までの処理を繰り返し行うようにする。これに
より、すべてのエッジデータがxの値の小さい順にソー
トされることになる。
【0118】上記の処理がすべて終了し、ソートバッフ
ァ212中の全エッジデータがソートされると、エッジ
データ出力部213は、エッジリストバッファ22にソ
ートバッファ212中のエッジデータを出力する。
【0119】次に、エッジリストバッファに格納されて
いるエッジデータが、エッジに交差がなく座標点生成回
路552によるハードウェア処理によって生成されたも
のである場合の、ソート部の処理内容について述べる。
【0120】座標点生成LSI55によってCPU50
に描画オブジェクトに対する座標点生成処理が終了した
ことが通知されると、CPU50はエッジリストバッフ
ァ542のエッジリスト部に格納されている走査ライン
ごとのx座標値のソート処理を開始する。この場合は、
エッジリスト部に格納されている走査ラインごとのx座
標値は、先述した通りオーダーレジスタORDERi
(i=1〜4)の設定により、既に4個ずつ昇順にソー
トされている。したがって、ソート部21でのソート手
法は先述のクイックソートプログラムである必要はな
く、条件を生かすことのできるソート手法を用いること
が望ましい。そこで、本場合におけるソート部21の好
適な処理内容について詳細に説明する。なお、ここで用
いるソートの手法はマージソートと呼ばれるものであ
る。
【0121】本場合におけるソート部21における全体
的な処理の流れは、先例におけるソート部と同様である
のでここでは説明を省略する。但し、図20のステップ
S95での設定値は、本例では4となる。
【0122】図24はソート部の第2のソート方法を説
明する図である。本例におけるソート部のソート方法で
は、まず、入力されたn個のエッジデータを、4個づつ
読み込む。2組のエッジデータEDN ,EDN+1 それぞ
れに関して、先頭のエッジデータEDN (1),ED
N+1 (1)の大小比較を行い、小さい方(仮に、EDN
(1)とする)をバッファに書き込む。次に、残ったエ
ッジデータEDN+1 (1)と、次のエッジデータEDN
(2)の大小比較を行い、小さい方(仮に、ED
N+1 (1)とする)をバッファに書き込む。上記の処理
を繰り返し行い、8個すべてのエッジデータを、値の小
さい順にソートする。さらに、読み込むエッジデータの
数を4n(n=1,2・・・・・・)個として、上記の
処理を行うことにより、すべてのエッジデータをソート
することが可能となる。
【0123】次に、上述したソート方法を実現するため
の、本例におけるソート部の機能構成について説明す
る。図25は第2のソート方法を実現するソート部の構
成例を示すブロック図である。ソート部は、エッジリス
トバッファ542からエッジリストバッファアドレスが
示すバッファ内のエッジデータを入力するエッジデータ
入力部211と、入力したエッジデータを一時的に蓄え
るソートバッファ212と、最終的にソートされたエッ
ジデータをソートバッファ212からエッジリストバッ
ファ542へ出力するエッジデータ出力部213と、ソ
ートすべきエッジデータ数の設定などのソート処理全体
を管理するソート処理管理部214と、エッジデータ入
力部211で入力されたエッジデータをn個づつ読み込
む部分エッジデータ取得部218と、部分エッジデータ
取得部218で読み込んだそれぞれのエッジデータの大
小を判定する部分エッジデータ判定部219と、部分エ
ッジデータ判定部219の比較判定結果に従い、エッジ
データを併合して書き込む部分エッジデータ併合部21
0とから構成される。
【0124】次に、図25に示すブロック図のソート処
理の流れを図26のフローチャートにより詳細に説明す
る。図26は第2のソート方法を実現するソート部の処
理の流れを示すフローチャートである。エッジデータ入
力部211で入力されたエッジデータは、まず、ソート
バッファ212に蓄えられる。ここで、ソート処理が開
始されると、まず、部分エッジデータ取得部218によ
り、個数4m(m=1)のエッジデータが2組読み込ま
れる(ステップS111)。ただし、2組読み込めない
場合は、m=m+1として、処理を最初から繰り返す。
【0125】次に、部分エッジデータ判定部219によ
り、2組のエッジデータ列ED1 (i),ED2 (j)
のそれぞれのエッジデータ値の大小比較を行う(ステッ
プS112)。
【0126】次に、部分エッジデータ併合部210によ
り、これら2組のエッジデータED 1 (i),ED
2 (j)のうち、値の小さいエッジデータをソートバッ
ファ212へ書き込む。すなわち、大小比較の結果、エ
ッジデータED1 (i)がエッジデータED2 (j)よ
り小さい場合には、エッジデータED1 (i)を書き込
み(ステップS113)、エッジデータED2 (j)が
エッジデータED1 (i)より小さい場合には、エッジ
データED2 (j)を書き込む(ステップS116)。
次いで、ソート処理管理部214はiまたはjをそれぞ
れインクリメントし(ステップS114,S117)、
iまたはjをそれぞれnと比較する(ステップS11
5,S118)。比較の結果、iまたはjがnより小さ
い間は、ステップS112に戻る。このようにして、ソ
ート処理管理部214は、部分エッジデータ取得部21
8で読み込んだエッジデータ列のすべてのエッジデータ
の大小比較を行うように管理する。
【0127】次に、2組のエッジデータ列ED
1 (i),ED2 (j)のうち、いずれか一方の組のエ
ッジデータ列がすべて書き込まれた場合は、部分エッジ
データ併合部210により、他方の組のエッジデータ列
の残りすべてのエッジデータをソートバッファ212へ
書き込む(ステップS119)。
【0128】次に、ソート処理管理部214により、部
分エッジデータ取得部218で読み込むエッジデータ列
の個数を変更する(ステップS120)。そして、ソー
ト処理管理部214により、エッジデータ数がnより小
さいかどうかが判定される(ステップS121)。エッ
ジデータ数がnより大きい間は、ステップS111に戻
って、以上の処理を繰り返す。ステップS121の判定
にて、エッジデータ数がnより小さくなると、このソー
ト処理は終了する。これにより、エッジリストバッファ
542から入力された個数のエッジデータすべてに対し
て、xの値の小さい順にソートされることになる。
【0129】上記の処理がすべて終了し、ソートバッフ
ァ中の全エッジデータがソートされると、エッジデータ
出力部213は、エッジリストバッファ542にソート
バッファ212中のエッジデータおよびソート処理管理
部214で管理されている最大値mv(maxvalu
e)を除いた有効なエッジデータ数を出力する。
【0130】
【発明の効果】以上説明したように本発明では、所定の
描画命令で記述されている印刷データを、ディスプレイ
リストに変換し、ディスプレイリストからにビットマッ
プ展開する印刷処理装置のエッジリストデータ生成処理
において、描画オブジェクトのエッジを表す座標点を生
成する座標点生成処理と、座標点に順序を付けるソート
処理とを分離し、複数の座標点生成装置を待機状態の座
標点生成装置が発生しないよう管理しながら非同期で繰
り返し座標点生成した後、ソート処理を行うよう構成し
た。このため、それぞれの処理に適した処理資源、すな
わち座標点生成処理はハードウェア、ソート処理はソフ
トウェアで処理することが可能となり、かつ有限の資源
を有効に活用しながら記述言語で記述される複雑な描画
オブジェクトに対しても軽い資源で高速の処理を行うこ
とが可能となる。
【0131】また、本発明では、図形や文字に関する描
画命令を、それが表現する描画オブジェクトの輪郭を構
成するエッジ情報を含んだディスプレイリストに変換
し、そのディスプレイリストをビットマップ展開する印
刷処理装置において、描画オブジェクトの輪郭を構成す
るエッジが交差するものとしないものとに分けることに
よって、エッジが交差しない描画オブジェクトの座標点
生成は専用のハードウェアで、エッジが交差する描画オ
ブジェクトの座標点生成はソフトウェア処理により中央
演算処理装置で実行するように構成した。すなわち、複
数の座標点生成装置はエッジが交差しない描画オブジェ
クトの座標点生成のみを行えばよく、エッジの交点発生
後の座標点出力順序を意識する必要がなくなるので、走
査ラインと初めて交差するエッジが発生した時のみ、そ
の走査ラインに交差する他のエッジの座標点との大小関
係を調べて順序付を行うことで、それ以降に生成される
座標点はそれに従った順序で出力される。この順序付を
行う部分はマルチプレクサなどを用いて簡単なハードウ
ェア構成で実現できる。したがって、複数の座標点生成
装置から同時に生成される座標点をソートするための専
用のハードウェアが不要となるので、大規模なハードウ
ェアを用意することなく、更にディスプレイリストの座
標点生成処理においてソフトウェア処理とハードウェア
処理を効率よく使い分けることによって、有限の資源を
有効に活用しながら、高速にビットマップ展開すること
が可能となる。
【図面の簡単な説明】
【図1】本発明の原理的な構成を示すブロック図であ
る。
【図2】本発明の印刷処理装置の実施の形態を示すブロ
ック図である。
【図3】印刷データの流れの概要を説明するフローチャ
ートである。
【図4】ディスプレイリスト生成部で生成されるディス
プレイリスト(文字/図形の場合)の構造を示す図であ
る。
【図5】ディスプレイリスト生成部で生成されるディス
プレイリスト(ラスタの場合)の構造を示す図である。
【図6】量子化したオブジェクトからディスプレイリス
トを生成する例を説明する図である。
【図7】エッジの交差判定処理の流れを示すフローチャ
ートである。
【図8】二つのエッジがx座標軸上で重ならない場合の
例を説明する図である。
【図9】二つのエッジがx座標軸上で重なるが交わらな
い場合の例を説明する図である。
【図10】二つのエッジが交わる場合の例を説明する図
である。
【図11】オブジェクトのエッジの交差を調べる順番を
示す図である。
【図12】座標点生成LSIの構成を示すブロック図で
ある。
【図13】座標点生成回路の回路構成を示すブロック図
である。
【図14】エッジリストバッファの構成を示す図であ
る。
【図15】座標点生成LSIにおける1オブジェクトの
座標点生成処理の流れを示すフローチャートである。
【図16】座標点生成LSIのyリストに関する処理の
流れを示すフローチャートである。
【図17】座標点生成LSIのセルに関する処理の流れ
を示すフローチャートである。
【図18】座標点生成LSIの座標点出力に関する処理
の流れを示すフローチャートである。
【図19】座標点生成LSIのセル追加判定に関する処
理の流れを示すフローチャートである。
【図20】ソート部における処理の流れを示すフローチ
ャートである。
【図21】ソート部の第1のソート方法を説明する図で
ある。
【図22】第1のソート方法を実現するソート部の構成
例を示すブロック図である。
【図23】第1のソート方法を実現するソート部の処理
の流れを示すフローチャートである。
【図24】ソート部の第2のソート方法を説明する図で
ある。
【図25】第2のソート方法を実現するソート部の構成
例を示すブロック図である。
【図26】第2のソート方法を実現するソート部の処理
の流れを示すフローチャートである。
【図27】輪郭情報からビットマップ展開のためのエッ
ジの座標点を生成するまでの流れを示す説明図である。
【図28】エッジが交差する図形要素の例を示した図で
ある。
【符号の説明】
1 印刷データ 2 入力手段 3 リスト生成手段 4 リスト分別手段 5 座標点生成装置 6 座標点生成手段 7 ソート手段 8 変換手段 8 印刷出力手段 10 印刷データスプール部 11 印刷データ解釈部 12 ディスプレイリスト生成部 13 ディスプレイリスト分別部 14 バンド分割部 15 ラスタデータ処理部 16 ラスタデータバッファ 17 ディスプレイリストバッファ 18 ディスプレイリストバンドバッファ 19 ディスプレイリスト管理部 20 座標点生成部 21 ソート部 22 エッジリストバッファ 23 印刷画像データ変換部 24 ラスタデータバンドバッファ 25 出力バッファ 26 プリンタ装置制御部 27 プリンタ装置

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 文字または図形に関する描画命令を印刷
    画像データに変換して印刷出力する印刷処理装置におい
    て、 所定の描画命令で記述された少なくとも文字または図形
    のいずれかの描画オブジェクトを有する印刷データを入
    力する入力手段と、 前記入力手段に入力された前記印刷データから前記描画
    オブジェクトの輪郭を構成するエッジの始点および終点
    の情報を前記描画オブジェクトごとに有したリストを生
    成するリスト生成手段と、 前記リスト生成手段で生成されたリスト群を前記描画オ
    ブジェクトの輪郭を構成するエッジが交差するものとし
    ないものとに分けるリスト分別手段と、 前記リスト分別手段によりエッジが交差しないリスト群
    に分別されたリストの前記始点および終点情報から前記
    描画オブジェクトのエッジを表す座標点を順次生成する
    座標点生成装置と、 前記リスト分別手段によりエッジが交差するリスト群に
    分別されたリストの前記始点および終点情報から前記描
    画オブジェクトのエッジを表す座標点を順次生成する座
    標点生成手段と、 前記座標点生成装置および/または前記座標点生成手段
    で生成された前記座標点に順序を付けるソート手段と、 前記ソート手段で決定された順番の前記座標点を用いて
    前記印刷画像データに変換する変換手段と、 前記変換手段で変換された印刷画像データを出力する印
    刷出力手段と、 を備えていることを特徴とする印刷処理装置。
  2. 【請求項2】 前記座標点生成装置は、複数の座標点生
    成回路で構成されることを特徴とする請求項1記載の印
    刷処理装置。
  3. 【請求項3】 前記座標点生成装置は、複数の座標点生
    成回路の数と同数の前記座標点を一度に生成することを
    特徴とする請求項2記載の印刷処理装置。
  4. 【請求項4】 前記座標点生成装置は、前記複数の座標
    点生成回路で生成した前記座標点を順序付けして出力す
    ることを特徴とする請求項3記載の印刷処理装置。
  5. 【請求項5】 前記座標点生成手段は、所定のプログラ
    ムを中央演算処理装置で実行することにより前記描画オ
    ブジェクトの前記エッジを表す座標点を順次生成するこ
    とを特徴とする請求項1記載の印刷処理装置。
  6. 【請求項6】 所定の描画命令で記述され、少なくとも
    文字または図形のいずれかの描画オブジェクトを有する
    印刷データから生成される印刷画像データを、印刷出力
    装置の走査ラインごとに出力する印刷処理装置におい
    て、 前記描画オブジェクトの輪郭を構成するエッジのエッジ
    情報を前記エッジごとに有したディスプレイリストを前
    記走査ラインごとに生成するディスプレイリスト生成手
    段と、 前記ディスプレイリスト生成手段で生成されたディスプ
    レイリスト群を前記描画オブジェクトの輪郭を構成する
    エッジが交差するものとしないものとに分けるディスプ
    レイリスト分別手段と、 前記ディスプレイリスト分別手段によりエッジが交差し
    ないリスト群に分別されたディスプレイリストの前記エ
    ッジ情報を用いて前記描画オブジェクトの前記エッジを
    表す座標点を順次生成する座標点生成装置と、 前記ディスプレイリスト分別手段によりエッジが交差す
    るリスト群に分別されたディスプレイリストの前記エッ
    ジ情報を用いて前記描画オブジェクトの前記エッジを表
    す座標点を順次生成する座標点生成手段と、 前記座標点生成装置および/または前記座標点生成手段
    で生成された前記座標点に順序を付けるソート手段と、 前記ソート手段で決定された順番の前記座標点を用いて
    前記印刷データを前記印刷出力装置で出力可能な印刷画
    像データに変換する変換手段と、 を備えていることを特徴とする印刷処理装置。
  7. 【請求項7】 前記座標点生成装置は、複数の座標点生
    成回路で構成されることを特徴とする請求項6記載の印
    刷処理装置。
  8. 【請求項8】 前記座標点生成装置は、複数の座標点生
    成回路の数と同数の前記座標点を一度に生成することを
    特徴とする請求項7記載の印刷処理装置。
  9. 【請求項9】 前記座標点生成装置は、前記複数の座標
    点生成回路で生成した前記座標点を順序付けして出力す
    ることを特徴とする請求項8記載の印刷処理装置。
  10. 【請求項10】 前記座標点生成手段は、所定のプログ
    ラムを中央演算処理装置で実行することにより前記描画
    オブジェクトの前記エッジを表す座標点を順次生成する
    ことを特徴とする請求項7記載の印刷処理装置。
JP10032900A 1998-02-16 1998-02-16 印刷処理装置 Pending JPH11232473A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10032900A JPH11232473A (ja) 1998-02-16 1998-02-16 印刷処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10032900A JPH11232473A (ja) 1998-02-16 1998-02-16 印刷処理装置

Publications (1)

Publication Number Publication Date
JPH11232473A true JPH11232473A (ja) 1999-08-27

Family

ID=12371781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10032900A Pending JPH11232473A (ja) 1998-02-16 1998-02-16 印刷処理装置

Country Status (1)

Country Link
JP (1) JPH11232473A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064520A1 (ja) * 2003-12-26 2005-07-14 Toudai Tlo, Ltd. 配列探索システムおよび探索プログラム
JP2009269179A (ja) * 2008-04-30 2009-11-19 Ricoh Co Ltd 印刷装置、プログラム及び記録媒体
JP2011034139A (ja) * 2009-07-29 2011-02-17 Canon Inc 画像処理装置及び画像処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064520A1 (ja) * 2003-12-26 2005-07-14 Toudai Tlo, Ltd. 配列探索システムおよび探索プログラム
JP2009269179A (ja) * 2008-04-30 2009-11-19 Ricoh Co Ltd 印刷装置、プログラム及び記録媒体
JP2011034139A (ja) * 2009-07-29 2011-02-17 Canon Inc 画像処理装置及び画像処理方法
US8736871B2 (en) 2009-07-29 2014-05-27 Canon Kabushiki Kaisha Image processing apparatus and image processing method

Similar Documents

Publication Publication Date Title
US5157765A (en) Method and apparatus for pipelined parallel rasterization
EP0356103B1 (en) Scan-conversion process and processor
US7436531B2 (en) Systems and methods for using multiple processors for imaging
JPH10105361A (ja) オブジェクト指定方法及びシステム
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
JP3927939B2 (ja) 印刷システム及び方法
JP2006331191A (ja) 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム
JP2817687B2 (ja) 画像形成装置
JPH1131052A (ja) 文書処理システム
JPH11232473A (ja) 印刷処理装置
US6538756B1 (en) Information processing apparatus and recording medium with pattern generation programs recorded thereon
JPH11147344A (ja) 描画処理装置および方法
JP3864535B2 (ja) 印刷処理装置および印刷処理方法
JP3864520B2 (ja) 印刷処理装置及び印刷処理方法
JPH11157147A (ja) 印刷処理装置および印刷処理方法
JP3651214B2 (ja) 印刷処理装置及び印刷処理方法
JP2000013601A (ja) 印刷情報処理装置、中間データ生成装置および方法
JPH10151815A (ja) 印刷処理装置
JPH10334248A (ja) 印刷処理装置および印刷処理方法
JP2002216142A (ja) 画像処理装置および画像処理方法
JP2002208017A (ja) 描画処理装置
JP2000099750A (ja) 画像処理装置及び画像処理方法
JPH1011593A (ja) 画像形成装置
JPH1120273A (ja) 画像処理装置および画像処理方法
JPH1185428A (ja) 画像形成方法及び画像形成装置