JPH10334248A - 印刷処理装置および印刷処理方法 - Google Patents
印刷処理装置および印刷処理方法Info
- Publication number
- JPH10334248A JPH10334248A JP9138609A JP13860997A JPH10334248A JP H10334248 A JPH10334248 A JP H10334248A JP 9138609 A JP9138609 A JP 9138609A JP 13860997 A JP13860997 A JP 13860997A JP H10334248 A JPH10334248 A JP H10334248A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate point
- data
- edge
- coordinate
- unit
- 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
Links
Landscapes
- Dot-Matrix Printers And Others (AREA)
- Record Information Processing For Printing (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 所定の描画命令で記述されている印刷データ
をディスプレイリストに変換し、ディスプレイリストか
らビットマップ展開する印刷処理において、エッジリス
トデータ生成処理を高速にすることを目的とする。 【解決手段】 印刷データ1を入力する入力手段2と、
入力された印刷データ1から描画オブジェクトの輪郭を
構成するエッジの始点および終点の情報を有したリスト
を生成するリスト生成手段3と、描画オブジェクトのエ
ッジを表す座標点を順次生成する座標点生成手段4と、
その座標点に順序を付けるソート手段5と、印刷出力手
段7と、座標点をその印刷出力手段7で出力可能なデー
タに変換する変換手段6とで構成した。ここで、座標点
生成処理とソート処理とを分離し、先にハードウェア構
成の座標点生成手段4で複数の座標点を繰り返し生成
し、後でソフトウェアのソート手段5でソートすること
で、高速化を実現した。
をディスプレイリストに変換し、ディスプレイリストか
らビットマップ展開する印刷処理において、エッジリス
トデータ生成処理を高速にすることを目的とする。 【解決手段】 印刷データ1を入力する入力手段2と、
入力された印刷データ1から描画オブジェクトの輪郭を
構成するエッジの始点および終点の情報を有したリスト
を生成するリスト生成手段3と、描画オブジェクトのエ
ッジを表す座標点を順次生成する座標点生成手段4と、
その座標点に順序を付けるソート手段5と、印刷出力手
段7と、座標点をその印刷出力手段7で出力可能なデー
タに変換する変換手段6とで構成した。ここで、座標点
生成処理とソート処理とを分離し、先にハードウェア構
成の座標点生成手段4で複数の座標点を繰り返し生成
し、後でソフトウェアのソート手段5でソートすること
で、高速化を実現した。
Description
【0001】
【発明の属する技術分野】本発明は印刷処理装置および
印刷処理方法に関し、特に、外部から入力された所定の
描画命令で記述されている印刷データを印刷処理特有の
中間コード(ディスプレイリスト)に変換し、変換され
た中間コードを所定のバンド単位に、あるいはページ単
位にビットマップ展開する印刷処理装置および印刷処理
方法に関する。
印刷処理方法に関し、特に、外部から入力された所定の
描画命令で記述されている印刷データを印刷処理特有の
中間コード(ディスプレイリスト)に変換し、変換され
た中間コードを所定のバンド単位に、あるいはページ単
位にビットマップ展開する印刷処理装置および印刷処理
方法に関する。
【0002】
【従来の技術】小型、高速のディジタル印刷に適した電
子写真方式のページプリンタの開発に伴い、従来の文字
情報中心の印刷から脱皮した、ラスタ、図形、文字など
を同様に取り扱い、図形、文字等の拡大、回転、変形な
どが自由に制御できる記述言語を用いる印刷処理装置が
一般に普及してきた。この種の記述言語の代表例とし
て、PostScript(Adobe System
s社商標)、Interpress(Xerox社商
標)、Acrobat(Adobe Systems社
商標)、GDI(Graphics Device I
nterface、Microsoft社商標)等が知
られている。記述言語で作成されている印刷データは、
ページ内の任意の位置のラスタ、図形、文字を表現する
描画命令が任意の順で構成されており、本発明に係わる
ページプリンタで印字するためには、印字前に印刷デー
タをビットマップ展開しなければならない。ビットマッ
プ展開というのは、印刷データをページまたはページの
一部を横切る一連の個々のドットまたは画素へ展開して
ラスタ走査線を形成し、そのページの下へ引き続く走査
線を次々に発生する過程である。
子写真方式のページプリンタの開発に伴い、従来の文字
情報中心の印刷から脱皮した、ラスタ、図形、文字など
を同様に取り扱い、図形、文字等の拡大、回転、変形な
どが自由に制御できる記述言語を用いる印刷処理装置が
一般に普及してきた。この種の記述言語の代表例とし
て、PostScript(Adobe System
s社商標)、Interpress(Xerox社商
標)、Acrobat(Adobe Systems社
商標)、GDI(Graphics Device I
nterface、Microsoft社商標)等が知
られている。記述言語で作成されている印刷データは、
ページ内の任意の位置のラスタ、図形、文字を表現する
描画命令が任意の順で構成されており、本発明に係わる
ページプリンタで印字するためには、印字前に印刷デー
タをビットマップ展開しなければならない。ビットマッ
プ展開というのは、印刷データをページまたはページの
一部を横切る一連の個々のドットまたは画素へ展開して
ラスタ走査線を形成し、そのページの下へ引き続く走査
線を次々に発生する過程である。
【0003】記述言語で作成されている印刷データの
内、図形あるいは文字に関する描画命令を、それが表現
する描画オブジェクトの輪郭を構成するエッジ情報を含
んだリストを複数個連結させたディスプレイリストに変
換した後、そのディスプレイリストをビットマップ展開
することにより印刷処理を行う方法が一般的に知られて
いる。このような印刷処理方法として、例えば特開平6
−305203号公報、特開平7−175604号公報
等が公知である。
内、図形あるいは文字に関する描画命令を、それが表現
する描画オブジェクトの輪郭を構成するエッジ情報を含
んだリストを複数個連結させたディスプレイリストに変
換した後、そのディスプレイリストをビットマップ展開
することにより印刷処理を行う方法が一般的に知られて
いる。このような印刷処理方法として、例えば特開平6
−305203号公報、特開平7−175604号公報
等が公知である。
【0004】また、ディスプレイリストからビットマッ
プデータへ展開する方法は、文献「実践コンピュータグ
ラフィックス」(David F. Rogers著、
山口富士夫監修、1987年、日刊工業新聞社発行、p
p84−96)に記載されたものがある。
プデータへ展開する方法は、文献「実践コンピュータグ
ラフィックス」(David F. Rogers著、
山口富士夫監修、1987年、日刊工業新聞社発行、p
p84−96)に記載されたものがある。
【0005】上記文献に記載された図形あるいは文字の
輪郭情報と上記ディスプレイリストの関係、ディスプレ
イリストからビットマップ展開のためのエッジの座標点
を生成する処理の流れを図49に示す。
輪郭情報と上記ディスプレイリストの関係、ディスプレ
イリストからビットマップ展開のためのエッジの座標点
を生成する処理の流れを図49に示す。
【0006】図49は輪郭情報からビットマップ展開の
ためのエッジの座標点を生成するまでの流れを示す説明
図である。図49の例において、多角形の輪郭は四つの
エッジEa,Eb,Ec,Edから構成されている。こ
れらのエッジEa,Eb,Ec,Edは、それらの絶対
値の小さい方の頂点(以下エッジの始点と呼ぶ)のy座
標値によりソートされ、yバケットリストに連結されて
記憶されている。例えば、エッジEa,Ebの始点(x
1,y1)を交差する走査ラインでは、y1の座標値に
対応するyバケットリストに、エッジEaの情報を表す
セルとエッジEbの情報を表すセルとが記憶されてい
る。yバケットリストの各セルは、走査ラインと各エッ
ジの交点を発生させるための情報、すなわち、エッジの
始点のx座標値と、エッジの傾きを表す走査ライン当た
りのxの変化量Δxと、エッジと走査ラインとの交差数
Δyと、次のセルへのポインタとを含んでいる。yバケ
ットリストおよび各セルを含む全体をディスプレイリス
トと呼ぶ。次に、このディスプレイリストから各走査ラ
イン毎に同時に処理しなければならない情報に変換され
る。これをアクティブエッジリストと呼ぶ。そして、こ
のアクティブエッジリストからエッジの座標点が出力さ
れることになる。
ためのエッジの座標点を生成するまでの流れを示す説明
図である。図49の例において、多角形の輪郭は四つの
エッジEa,Eb,Ec,Edから構成されている。こ
れらのエッジEa,Eb,Ec,Edは、それらの絶対
値の小さい方の頂点(以下エッジの始点と呼ぶ)のy座
標値によりソートされ、yバケットリストに連結されて
記憶されている。例えば、エッジEa,Ebの始点(x
1,y1)を交差する走査ラインでは、y1の座標値に
対応するyバケットリストに、エッジEaの情報を表す
セルとエッジEbの情報を表すセルとが記憶されてい
る。yバケットリストの各セルは、走査ラインと各エッ
ジの交点を発生させるための情報、すなわち、エッジの
始点のx座標値と、エッジの傾きを表す走査ライン当た
りのxの変化量Δxと、エッジと走査ラインとの交差数
Δyと、次のセルへのポインタとを含んでいる。yバケ
ットリストおよび各セルを含む全体をディスプレイリス
トと呼ぶ。次に、このディスプレイリストから各走査ラ
イン毎に同時に処理しなければならない情報に変換され
る。これをアクティブエッジリストと呼ぶ。そして、こ
のアクティブエッジリストからエッジの座標点が出力さ
れることになる。
【0007】一般的にディスプレイリストからエッジの
座標点を生成する処理は走査ライン変換と呼ばれる。走
査ライン変換によって生成されたエッジの座標点を座標
値によりソートし、ソートされた座標点間を所定の色デ
ータで順次塗りつぶし処理を施したものがビットマップ
データである。走査ライン変換は、1走査ラインずつ、
上部から下部までのエッジの座標点を発生する。すなわ
ち、現在の走査ラインと交わる全エッジをリスト化し
て、図49に示すアクティブエッジリストを作成しなが
らエッジの座標点を出力する。現在の走査ラインの処理
後、アクティブエッジリストの各レコードは次走査のた
めに更新(x=x+Δx,Δy=Δy−1)される。Δ
y=0になったバケットは、リストから削除される。
座標点を生成する処理は走査ライン変換と呼ばれる。走
査ライン変換によって生成されたエッジの座標点を座標
値によりソートし、ソートされた座標点間を所定の色デ
ータで順次塗りつぶし処理を施したものがビットマップ
データである。走査ライン変換は、1走査ラインずつ、
上部から下部までのエッジの座標点を発生する。すなわ
ち、現在の走査ラインと交わる全エッジをリスト化し
て、図49に示すアクティブエッジリストを作成しなが
らエッジの座標点を出力する。現在の走査ラインの処理
後、アクティブエッジリストの各レコードは次走査のた
めに更新(x=x+Δx,Δy=Δy−1)される。Δ
y=0になったバケットは、リストから削除される。
【0008】
【発明が解決しようとする課題】上記特開平6−305
203号公報、特開平7−175604号公報等は、デ
ータ量の少ないディスプレイリストを印刷処理のための
中間データとし、印字装置の印字出力に応じて バンド
単位でビットマップ展開することにより、ビットマップ
展開のための大容量のフレームバッファメモリの削減を
狙ったものである。しかし、特開平6−305203号
公報、特開平7−175604号公報では、上記ディス
プレイリストからビットマップデータへの展開は、ソフ
トウェア処理で行われており、高速の印刷処理装置には
適用できないという問題点があった。これは、記述言語
で作成される印刷データでは、一つの描画命令で記述さ
れる描画オブジェクトの複雑さに制限がないため、上述
した走査ライン変換あるいはエッジの座標点のソート処
理を専用のハードウェアで高速化しようとすると、その
複雑さに対応した数の同時処理が必要になり、大規模な
ハードウェアを用意する必要があるためである。
203号公報、特開平7−175604号公報等は、デ
ータ量の少ないディスプレイリストを印刷処理のための
中間データとし、印字装置の印字出力に応じて バンド
単位でビットマップ展開することにより、ビットマップ
展開のための大容量のフレームバッファメモリの削減を
狙ったものである。しかし、特開平6−305203号
公報、特開平7−175604号公報では、上記ディス
プレイリストからビットマップデータへの展開は、ソフ
トウェア処理で行われており、高速の印刷処理装置には
適用できないという問題点があった。これは、記述言語
で作成される印刷データでは、一つの描画命令で記述さ
れる描画オブジェクトの複雑さに制限がないため、上述
した走査ライン変換あるいはエッジの座標点のソート処
理を専用のハードウェアで高速化しようとすると、その
複雑さに対応した数の同時処理が必要になり、大規模な
ハードウェアを用意する必要があるためである。
【0009】一方、コンピュータグラフィックスをディ
スプレイ上に表示する技術分野においては、図形の輪郭
を表現する多角形データのディスプレイリストを単純な
三角形データのディスプレイリストや台形データのディ
スプレイリストに分割した後、専用ハードウェアを用い
て高速にビットマップ展開する処理が行われている。例
えば、三角形データ分割に関しては特開平7−1608
99号公報等、台形データ分割に関しては特開平4−1
4189号公報等が公知である。すなわち、コンピュー
タグラフィックスの技術分野においては、一つの描画命
令で記述される描画オブジェクトの複雑さに制限を設け
ハードウェアで高速処理を行っている。これは、コンピ
ュータグラフィックスの技術分野における図形の輪郭を
表現する多角形は、一般に凸多角形で表現されており、
三角形や台形への分割が容易であるためである。しかし
ながら、記述言語で作成される図形要素では、エッジが
交差する場合も発生するため、三角形や台形への分割に
は多大な計算を必要とする。
スプレイ上に表示する技術分野においては、図形の輪郭
を表現する多角形データのディスプレイリストを単純な
三角形データのディスプレイリストや台形データのディ
スプレイリストに分割した後、専用ハードウェアを用い
て高速にビットマップ展開する処理が行われている。例
えば、三角形データ分割に関しては特開平7−1608
99号公報等、台形データ分割に関しては特開平4−1
4189号公報等が公知である。すなわち、コンピュー
タグラフィックスの技術分野においては、一つの描画命
令で記述される描画オブジェクトの複雑さに制限を設け
ハードウェアで高速処理を行っている。これは、コンピ
ュータグラフィックスの技術分野における図形の輪郭を
表現する多角形は、一般に凸多角形で表現されており、
三角形や台形への分割が容易であるためである。しかし
ながら、記述言語で作成される図形要素では、エッジが
交差する場合も発生するため、三角形や台形への分割に
は多大な計算を必要とする。
【0010】図50はエッジが交差する図形要素の例を
示した図である。図50に示す図形要素は七つのエッジ
Ee,Ef,Eg,Eh,Ei,Ej,Ekからなり、
この図形要素の中を塗りつぶすものとする。この塗りつ
ぶしは走査ラインと交差するエッジの座標点に挟まれた
間で行われる。エッジEi,Ejのように交差している
ところでは、例えばエッジEeとエッジEjとに挟まれ
た領域aを塗りつぶしていくと、途中でエッジEeとエ
ッジEiとに挟まれた領域bの塗りつぶしに入れ替わ
る。つまり、エッジの交差する部分でエッジの並べ替え
などの処理が発生する。このため、三角形や台形への分
割にはこのような処理があらかじめなされていることが
必要であり、多大な計算を必要とし、システム全体とし
てハードウェア処理の高速性を十分に活かすことはでき
ない。したがって、コンピュータグラフィックスの技術
分野におけるハードウェア処理を、記述言語で作成され
ている印刷データを処理する印刷処理の技術分野に適用
することはできない。
示した図である。図50に示す図形要素は七つのエッジ
Ee,Ef,Eg,Eh,Ei,Ej,Ekからなり、
この図形要素の中を塗りつぶすものとする。この塗りつ
ぶしは走査ラインと交差するエッジの座標点に挟まれた
間で行われる。エッジEi,Ejのように交差している
ところでは、例えばエッジEeとエッジEjとに挟まれ
た領域aを塗りつぶしていくと、途中でエッジEeとエ
ッジEiとに挟まれた領域bの塗りつぶしに入れ替わ
る。つまり、エッジの交差する部分でエッジの並べ替え
などの処理が発生する。このため、三角形や台形への分
割にはこのような処理があらかじめなされていることが
必要であり、多大な計算を必要とし、システム全体とし
てハードウェア処理の高速性を十分に活かすことはでき
ない。したがって、コンピュータグラフィックスの技術
分野におけるハードウェア処理を、記述言語で作成され
ている印刷データを処理する印刷処理の技術分野に適用
することはできない。
【0011】本発明は、このような点に鑑みてなされた
ものであり、図形や文字に関する描画命令を、それが表
現する描画オブジェクトの輪郭を構成するエッジ情報を
含んだディスプレイリストに変換し、そのディスプレイ
リストをビットマップ展開する印刷処理装置において、
大規模なハードウェアを用意することなく、さらに、複
雑な描画オブジェクトを三角形や台形からなるディスプ
レイリストに分割するために多大な計算を必要とするこ
となく、高速にビットマップ展開することを可能とする
印刷処理装置および印刷処理方法を提供することを目的
とする。
ものであり、図形や文字に関する描画命令を、それが表
現する描画オブジェクトの輪郭を構成するエッジ情報を
含んだディスプレイリストに変換し、そのディスプレイ
リストをビットマップ展開する印刷処理装置において、
大規模なハードウェアを用意することなく、さらに、複
雑な描画オブジェクトを三角形や台形からなるディスプ
レイリストに分割するために多大な計算を必要とするこ
となく、高速にビットマップ展開することを可能とする
印刷処理装置および印刷処理方法を提供することを目的
とする。
【0012】
【課題を解決するための手段】本発明では上記問題を解
決するために、文字または図形に関する描画命令を印刷
画像データに変換して印刷出力する印刷処理装置におい
て、所定の描画命令で記述された少なくとも文字または
図形のいずれかの描画オブジェクトを有する印刷データ
を入力する入力手段と、前記入力手段に入力された前記
印刷データから前記描画オブジェクトの輪郭を構成する
エッジの始点および終点の情報を有したリストを前記描
画オブジェクト毎に生成するリスト生成手段と、前記リ
スト生成手段で生成された前記リストの前記始点および
終点の情報から前記描画オブジェクトの前記エッジを表
す座標点を順次生成する座標点生成手段と、前記座標点
生成手段で生成された前記座標点に順序を付けるソート
手段と、前記描画オブジェクトの印刷画像データを印刷
出力する印刷出力手段と、前記ソート手段で決定された
順番の前記座標点を前記印刷出力手段で出力可能な印刷
画像データに変換する変換手段と、を備えていることを
特徴とする印刷処理装置が提供される。
決するために、文字または図形に関する描画命令を印刷
画像データに変換して印刷出力する印刷処理装置におい
て、所定の描画命令で記述された少なくとも文字または
図形のいずれかの描画オブジェクトを有する印刷データ
を入力する入力手段と、前記入力手段に入力された前記
印刷データから前記描画オブジェクトの輪郭を構成する
エッジの始点および終点の情報を有したリストを前記描
画オブジェクト毎に生成するリスト生成手段と、前記リ
スト生成手段で生成された前記リストの前記始点および
終点の情報から前記描画オブジェクトの前記エッジを表
す座標点を順次生成する座標点生成手段と、前記座標点
生成手段で生成された前記座標点に順序を付けるソート
手段と、前記描画オブジェクトの印刷画像データを印刷
出力する印刷出力手段と、前記ソート手段で決定された
順番の前記座標点を前記印刷出力手段で出力可能な印刷
画像データに変換する変換手段と、を備えていることを
特徴とする印刷処理装置が提供される。
【0013】このような印刷処理装置によれば、入力手
段に入力された印刷データは、リスト生成手段に渡さ
れ、ここで、印刷データに指示された描画オブジェクト
の輪郭を構成するエッジの始点および終点の情報を描画
オブジェクト毎に有したリストを生成する。次にこのリ
スト情報を基に、描画オブジェクトのエッジを表す座標
点をある順序に従って生成するが、本発明による印刷処
理装置では、この部分の処理を座標点生成手段およびソ
ート手段で分けて行うように構成したことを特徴として
いる。すなわち、まず、座標点生成手段を複数の座標点
生成装置で構成し、これら複数の座標点生成装置がリス
ト情報から描画オブジェクトのエッジを表す座標点を専
ら生成するよう繰り返し処理し、複数の座標点を一度に
生成する。座標点生成装置で生成された座標点はソート
手段にて順序付けされる。そして、順序付けされた座標
点は変換手段にて印刷出力手段が出力可能な印刷画像デ
ータに変換される。このようにして、座標点生成および
順序付けの処理を独立させたことにより、それぞれの処
理に適した処理資源を適用することができ、座標点生成
に関して高速に処理することが可能になる。
段に入力された印刷データは、リスト生成手段に渡さ
れ、ここで、印刷データに指示された描画オブジェクト
の輪郭を構成するエッジの始点および終点の情報を描画
オブジェクト毎に有したリストを生成する。次にこのリ
スト情報を基に、描画オブジェクトのエッジを表す座標
点をある順序に従って生成するが、本発明による印刷処
理装置では、この部分の処理を座標点生成手段およびソ
ート手段で分けて行うように構成したことを特徴として
いる。すなわち、まず、座標点生成手段を複数の座標点
生成装置で構成し、これら複数の座標点生成装置がリス
ト情報から描画オブジェクトのエッジを表す座標点を専
ら生成するよう繰り返し処理し、複数の座標点を一度に
生成する。座標点生成装置で生成された座標点はソート
手段にて順序付けされる。そして、順序付けされた座標
点は変換手段にて印刷出力手段が出力可能な印刷画像デ
ータに変換される。このようにして、座標点生成および
順序付けの処理を独立させたことにより、それぞれの処
理に適した処理資源を適用することができ、座標点生成
に関して高速に処理することが可能になる。
【0014】また、本発明によれば、文字または図形に
関する描画命令を印刷画像データに変換して印刷出力す
る印刷処理方法において、所定の描画命令で記述された
少なくとも文字または図形のいずれかの描画オブジェク
トを有する印刷データを入力し、前記描画オブジェクト
の輪郭を構成するエッジの始点および終点の情報を有し
たリストを前記描画オブジェクト毎に生成し、前記リス
トの前記始点および終点情報から前記描画オブジェクト
の前記エッジを表す座標点を一度に複数生成し、生成さ
れた前記座標点に順序を付け、順序付け工程で決定され
た順番の前記座標点情報を最終的に印刷出力される画像
データに変換する、ことからなることを特徴とする印刷
処理方法が提供される。
関する描画命令を印刷画像データに変換して印刷出力す
る印刷処理方法において、所定の描画命令で記述された
少なくとも文字または図形のいずれかの描画オブジェク
トを有する印刷データを入力し、前記描画オブジェクト
の輪郭を構成するエッジの始点および終点の情報を有し
たリストを前記描画オブジェクト毎に生成し、前記リス
トの前記始点および終点情報から前記描画オブジェクト
の前記エッジを表す座標点を一度に複数生成し、生成さ
れた前記座標点に順序を付け、順序付け工程で決定され
た順番の前記座標点情報を最終的に印刷出力される画像
データに変換する、ことからなることを特徴とする印刷
処理方法が提供される。
【0015】この印刷処理方法では、入力された印刷デ
ータから描画オブジェクト毎にリストを生成した後、ま
ず、リストの始点および終点の情報から描画オブジェク
トのエッジを表す座標点を一度に複数生成し、次に、生
成された座標点に順序付けを行う。つまり、座標点の生
成と座標点の順序付けとを別個に行うようにしている。
そして、順序付けされた座標点の情報から印刷出力装置
が出力可能な画像データへの変換が行われる。このよう
に、座標点の生成工程が座標点の順序付けと独立に行わ
れるので、この工程を座標点生成に適した処理資源によ
り実施することにより、印刷データを入力してから印刷
出力装置が出力可能な画像データへの変換までの印刷処
理を高速に行うことができる。
ータから描画オブジェクト毎にリストを生成した後、ま
ず、リストの始点および終点の情報から描画オブジェク
トのエッジを表す座標点を一度に複数生成し、次に、生
成された座標点に順序付けを行う。つまり、座標点の生
成と座標点の順序付けとを別個に行うようにしている。
そして、順序付けされた座標点の情報から印刷出力装置
が出力可能な画像データへの変換が行われる。このよう
に、座標点の生成工程が座標点の順序付けと独立に行わ
れるので、この工程を座標点生成に適した処理資源によ
り実施することにより、印刷データを入力してから印刷
出力装置が出力可能な画像データへの変換までの印刷処
理を高速に行うことができる。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は本発明による印刷処理装置
の原理的な構成を示す図である。図1において、印刷処
理装置は、所定の描画命令で記述された少なくとも文字
または図形のいずれかの描画オブジェクトを有する印刷
データ1を入力する入力手段2と、入力手段2に入力さ
れた印刷データ1から描画オブジェクトの輪郭を構成す
るエッジの始点および終点の情報を描画オブジェクト毎
に有したリストを生成するリスト生成手段3と、リスト
生成手段3で生成されたリストの始点および終点の情報
から描画オブジェクトのエッジを表す座標点を順次生成
する座標点生成手段4と、この座標点生成手段で生成さ
れた座標点に順序を付けるソート手段5と、印刷データ
1を出力する印刷出力手段7と、ソート手段5で決定さ
れた順番の座標点を用いて印刷データ1を印刷出力手段
7で出力可能なデータに変換する変換手段6とから構成
されている。
を参照して説明する。図1は本発明による印刷処理装置
の原理的な構成を示す図である。図1において、印刷処
理装置は、所定の描画命令で記述された少なくとも文字
または図形のいずれかの描画オブジェクトを有する印刷
データ1を入力する入力手段2と、入力手段2に入力さ
れた印刷データ1から描画オブジェクトの輪郭を構成す
るエッジの始点および終点の情報を描画オブジェクト毎
に有したリストを生成するリスト生成手段3と、リスト
生成手段3で生成されたリストの始点および終点の情報
から描画オブジェクトのエッジを表す座標点を順次生成
する座標点生成手段4と、この座標点生成手段で生成さ
れた座標点に順序を付けるソート手段5と、印刷データ
1を出力する印刷出力手段7と、ソート手段5で決定さ
れた順番の座標点を用いて印刷データ1を印刷出力手段
7で出力可能なデータに変換する変換手段6とから構成
されている。
【0017】ここで、座標点生成手段4は、複数の座標
点生成装置で構成され、座標点生成装置の数と同数の座
標点を一度に生成するよう構成されている。さらに好ま
しくは、複数の座標点生成装置はハードウェアで構成さ
れ、ソート手段は、所定のプログラムを中央演算処理装
置で実行することにより座標点の順序付けを行うよう構
成されている。
点生成装置で構成され、座標点生成装置の数と同数の座
標点を一度に生成するよう構成されている。さらに好ま
しくは、複数の座標点生成装置はハードウェアで構成さ
れ、ソート手段は、所定のプログラムを中央演算処理装
置で実行することにより座標点の順序付けを行うよう構
成されている。
【0018】上記構成において、本発明は、描画オブジ
ェクトの輪郭を構成するエッジの始点および終点の情報
を描画オブジェクト毎に有したリスト情報から、描画オ
ブジェクトのエッジを表す座標点を生成する座標点生成
処理と、座標点に順序を付けるソート処理とを独立さ
せ、それぞれの処理に適した処理資源で処理されるよう
構成したことを特徴としている。すなわち、座標点生成
処理に関しては、座標点生成手段4の複数の座標点生成
装置で繰り返し座標点生成のみを行うよう構成すること
ができ、従来のハードウェアのみで座標点生成処理とソ
ート処理とを行っていた場合に比較して、大規模なハー
ドウェアを用意したり、印刷データを制限されたハード
ウェア量に合わせたリストデータに変換するための前処
理に多大な処理時間を費やす必要がなくなる。また、従
来のソフトウェア処理のみで座標点生成処理とソート処
理を行っていた場合に比較して、ソフトウェア処理では
多大な計算時間を必要する座標点生成処理を、ハードウ
ェアで並列かつパイプライン構成により、高速に処理す
ることができるため、全体として高速化が可能となる。
ェクトの輪郭を構成するエッジの始点および終点の情報
を描画オブジェクト毎に有したリスト情報から、描画オ
ブジェクトのエッジを表す座標点を生成する座標点生成
処理と、座標点に順序を付けるソート処理とを独立さ
せ、それぞれの処理に適した処理資源で処理されるよう
構成したことを特徴としている。すなわち、座標点生成
処理に関しては、座標点生成手段4の複数の座標点生成
装置で繰り返し座標点生成のみを行うよう構成すること
ができ、従来のハードウェアのみで座標点生成処理とソ
ート処理とを行っていた場合に比較して、大規模なハー
ドウェアを用意したり、印刷データを制限されたハード
ウェア量に合わせたリストデータに変換するための前処
理に多大な処理時間を費やす必要がなくなる。また、従
来のソフトウェア処理のみで座標点生成処理とソート処
理を行っていた場合に比較して、ソフトウェア処理では
多大な計算時間を必要する座標点生成処理を、ハードウ
ェアで並列かつパイプライン構成により、高速に処理す
ることができるため、全体として高速化が可能となる。
【0019】したがって、図形や文字に関する描画命令
を、それが表現する描画オブジェクトの輪郭を構成する
エッジ情報を含んだディスプレイリストに変換し、その
ディスプレイリストをビットマップ展開する印刷処理装
置に本発明を適用することにより、大規模なハードウェ
アを用意することなく、さらに、複雑な描画オブジェク
トを三角形や台形からなるディスプレイリストに分割す
るために多大な計算を必要とすることなく、高速にビッ
トマップ展開することが可能となる。
を、それが表現する描画オブジェクトの輪郭を構成する
エッジ情報を含んだディスプレイリストに変換し、その
ディスプレイリストをビットマップ展開する印刷処理装
置に本発明を適用することにより、大規模なハードウェ
アを用意することなく、さらに、複雑な描画オブジェク
トを三角形や台形からなるディスプレイリストに分割す
るために多大な計算を必要とすることなく、高速にビッ
トマップ展開することが可能となる。
【0020】図2は本発明の印刷処理装置の全体的な構
成を示すブロック図である。図2において、印刷処理装
置は、印刷データスプール部10と、印刷データ解釈部
11と、ディスプレイリスト生成部12と、バンド分割
部13と、ラスタデータ処理部14と、ラスタデータバ
ッファ15と、ディスプレイリストバッファ16と、デ
ィスプレイリストバンドバッファ17と、ディスプレイ
リスト管理部18と、座標点生成部19と、ソート部2
0と、エッジリストバッファ21と、印刷画像データ変
換部22と、ラスタデータバンドバッファ23と、出力
バッファ24と、プリンタ装置制御部25と、プリンタ
装置26とから構成されている。以下、この印刷処理装
置の各構成要素の概要および動作について説明する。
成を示すブロック図である。図2において、印刷処理装
置は、印刷データスプール部10と、印刷データ解釈部
11と、ディスプレイリスト生成部12と、バンド分割
部13と、ラスタデータ処理部14と、ラスタデータバ
ッファ15と、ディスプレイリストバッファ16と、デ
ィスプレイリストバンドバッファ17と、ディスプレイ
リスト管理部18と、座標点生成部19と、ソート部2
0と、エッジリストバッファ21と、印刷画像データ変
換部22と、ラスタデータバンドバッファ23と、出力
バッファ24と、プリンタ装置制御部25と、プリンタ
装置26とから構成されている。以下、この印刷処理装
置の各構成要素の概要および動作について説明する。
【0021】図2において、印刷データ1は印刷処理装
置で処理可能な記述言語で記述されたものであり、図示
されないパーソナルコンピュータやワークステーション
において、文書作成や編集等を処理するアプリケーショ
ンプログラムで作成された文書データから生成されたも
のである。本実施例で対象とする記述言語は、例えばG
DIであるが、Acrobatで代表されるPDF(P
ortable Document Format)、
PostScriptで代表されるページ記述言語であ
ってもよい。
置で処理可能な記述言語で記述されたものであり、図示
されないパーソナルコンピュータやワークステーション
において、文書作成や編集等を処理するアプリケーショ
ンプログラムで作成された文書データから生成されたも
のである。本実施例で対象とする記述言語は、例えばG
DIであるが、Acrobatで代表されるPDF(P
ortable Document Format)、
PostScriptで代表されるページ記述言語であ
ってもよい。
【0022】印刷データスプール部10は、印刷データ
1を入力するための通信機能や、印刷データ解釈部11
へ出力されるまで印刷データを一時的に記憶する機能等
を備えたものである。
1を入力するための通信機能や、印刷データ解釈部11
へ出力されるまで印刷データを一時的に記憶する機能等
を備えたものである。
【0023】印刷データ解釈部11は、印刷データスプ
ール部10より入力された印刷データを、定められた記
述言語のシンタックスに従ってトークンとして切り出し
た後、そのトークンを解釈し、内部命令やその引数に変
換する。内部命令には、文字/図形/ラスタの描画を実
行する描画命令や、色や線属性など描画に必要な情報を
設定する描画状態命令がある。描画命令が文字あるいは
図形の場合は、描画命令をディスプレイリスト生成部1
2へ転送する。一方、描画命令がラスタの場合は、描画
命令をラスタデータ処理部14へ転送するとともに、対
象とするラスタデータの縦および横の大きさを表す情報
をディスプレイリスト生成部12へ転送する。
ール部10より入力された印刷データを、定められた記
述言語のシンタックスに従ってトークンとして切り出し
た後、そのトークンを解釈し、内部命令やその引数に変
換する。内部命令には、文字/図形/ラスタの描画を実
行する描画命令や、色や線属性など描画に必要な情報を
設定する描画状態命令がある。描画命令が文字あるいは
図形の場合は、描画命令をディスプレイリスト生成部1
2へ転送する。一方、描画命令がラスタの場合は、描画
命令をラスタデータ処理部14へ転送するとともに、対
象とするラスタデータの縦および横の大きさを表す情報
をディスプレイリスト生成部12へ転送する。
【0024】ディスプレイリスト生成部12は、文字/
図形の描画命令に応じて、描画されるオブジェクトの輪
郭を構成するエッジデータを生成した後、オブジェクト
毎にヘッダ情報と、描画オブジェクトの輪郭を構成する
エッジの始点、傾きおよびエッジと走査ラインとの交差
数を含むエッジ情報とから構成されるディスプレイリス
トを生成する。また、印刷データ解釈部11より転送さ
れたラスタデータの縦および横の大きさに基づき、ラス
タデータの輪郭を示すディスプレイリストを生成する。
図形の描画命令に応じて、描画されるオブジェクトの輪
郭を構成するエッジデータを生成した後、オブジェクト
毎にヘッダ情報と、描画オブジェクトの輪郭を構成する
エッジの始点、傾きおよびエッジと走査ラインとの交差
数を含むエッジ情報とから構成されるディスプレイリス
トを生成する。また、印刷データ解釈部11より転送さ
れたラスタデータの縦および横の大きさに基づき、ラス
タデータの輪郭を示すディスプレイリストを生成する。
【0025】バンド分割部13は、ディスプレイリスト
生成部12で生成された描画オブジェクト毎のディスプ
レイリストを1ページ分を所定のバンド数で分割したと
きのバンド単位で分割する。バンドの分割数は、後段の
出力バッファ24の大きさで決定される。バンド単位で
分割されたディスプレイリストは、ディスプレイリスト
バッファ16に格納される。印刷データ解釈部11から
バンド分割部13までの処理を、ページを構成するすべ
ての描画オブジェクトに対して実行することにより、バ
ンド単位で分割されたディスプレイリストがページ毎に
ディスプレイリストバッファ16に格納される。
生成部12で生成された描画オブジェクト毎のディスプ
レイリストを1ページ分を所定のバンド数で分割したと
きのバンド単位で分割する。バンドの分割数は、後段の
出力バッファ24の大きさで決定される。バンド単位で
分割されたディスプレイリストは、ディスプレイリスト
バッファ16に格納される。印刷データ解釈部11から
バンド分割部13までの処理を、ページを構成するすべ
ての描画オブジェクトに対して実行することにより、バ
ンド単位で分割されたディスプレイリストがページ毎に
ディスプレイリストバッファ16に格納される。
【0026】ラスタデータ処理部14は、ラスタの描画
命令に応じて、対象とするラスタデータに対し座標変
換、色補正等のラスタ処理を実行し、処理されたラスタ
データはラスタデータバッファ15に格納される。
命令に応じて、対象とするラスタデータに対し座標変
換、色補正等のラスタ処理を実行し、処理されたラスタ
データはラスタデータバッファ15に格納される。
【0027】ディスプレイリストバンドバッファ17
は、二つのバッファで構成され、ディスプレイリストバ
ッファ16からディスプレイリストデータがバンド単位
で交互に入力される。
は、二つのバッファで構成され、ディスプレイリストバ
ッファ16からディスプレイリストデータがバンド単位
で交互に入力される。
【0028】ディスプレイリスト管理部18は、ディス
プレイリストバンドバッファ17からのディスプレイリ
ストの読み出しと、後段の座標点生成部19が待機状態
にあることの検出と、検出結果に基づき座標点生成部1
9へディスプレイリストのエッジ情報の転送を制御する
ものである。また、ディスプレイリスト管理部18で
は、ヘッダ情報に基づき処理するオブジェクトのタイプ
が文字/図形かまたはラスタかを検出し、ラスタの場合
は、印刷画像データ変換部22に指示して、当該オブジ
ェクトのラスタデータをラスタデータバッファ15から
ラスタデータバンドバッファ23に転送する。
プレイリストバンドバッファ17からのディスプレイリ
ストの読み出しと、後段の座標点生成部19が待機状態
にあることの検出と、検出結果に基づき座標点生成部1
9へディスプレイリストのエッジ情報の転送を制御する
ものである。また、ディスプレイリスト管理部18で
は、ヘッダ情報に基づき処理するオブジェクトのタイプ
が文字/図形かまたはラスタかを検出し、ラスタの場合
は、印刷画像データ変換部22に指示して、当該オブジ
ェクトのラスタデータをラスタデータバッファ15から
ラスタデータバンドバッファ23に転送する。
【0029】座標点生成部19は、エッジの始点、傾き
およびエッジと走査ラインとの交差数を含むエッジ情報
から、走査ライン毎にエッジの座標点をエッジリストバ
ッファ21に出力するものであり、複数の座標点生成回
路で構成され、座標点生成回路の数と同数のエッジの座
標点を一度に出力する。複数の座標点生成回路は、走査
ライン毎に複数のエッジに対する座標点生成を実行す
る。処理中のすべてのエッジに対する処理が終了する
と、ディスプレイリスト管理部18より次に処理すべき
複数のエッジ情報が転送される。一つのオブジェクトに
対するすべてのエッジの座標点生成が終了するまで、複
数の座標点生成回路による座標点生成が繰り返される。
また、処理するオブジェクトが文字/図形の場合は、ヘ
ッダ情報に基づき処理するオブジェクトの色データがエ
ッジリストバッファ21に格納される。
およびエッジと走査ラインとの交差数を含むエッジ情報
から、走査ライン毎にエッジの座標点をエッジリストバ
ッファ21に出力するものであり、複数の座標点生成回
路で構成され、座標点生成回路の数と同数のエッジの座
標点を一度に出力する。複数の座標点生成回路は、走査
ライン毎に複数のエッジに対する座標点生成を実行す
る。処理中のすべてのエッジに対する処理が終了する
と、ディスプレイリスト管理部18より次に処理すべき
複数のエッジ情報が転送される。一つのオブジェクトに
対するすべてのエッジの座標点生成が終了するまで、複
数の座標点生成回路による座標点生成が繰り返される。
また、処理するオブジェクトが文字/図形の場合は、ヘ
ッダ情報に基づき処理するオブジェクトの色データがエ
ッジリストバッファ21に格納される。
【0030】ソート部20は、座標点生成部19による
一つのオブジェクトに対するすべてのエッジの座標点生
成が終了した後、エッジリストバッファ21に格納され
ている走査ライン毎のエッジ座標点データを、座標値の
小さいものから順次整列するよう並べ替える処理を行う
ものであり、所定のプログラムを中央演算処理装置で実
行する構成となっている。ソート処理のためのプログラ
ムとしては、例えばクイックソートプログラムが用いら
れる。
一つのオブジェクトに対するすべてのエッジの座標点生
成が終了した後、エッジリストバッファ21に格納され
ている走査ライン毎のエッジ座標点データを、座標値の
小さいものから順次整列するよう並べ替える処理を行う
ものであり、所定のプログラムを中央演算処理装置で実
行する構成となっている。ソート処理のためのプログラ
ムとしては、例えばクイックソートプログラムが用いら
れる。
【0031】印刷画像データ変換部22は、エッジリス
トバッファ21の座標値の小さいものから順次整列する
よう並べかえられたエッジの座標点のペアの間の塗りつ
ぶし処理を行い、出力バッファ24に出力するものであ
る。処理するオブジェクトが文字/図形の場合は、エッ
ジリストバッファ21に格納されている色データにより
塗りつぶし処理を実行する。処理するオブジェクトがラ
スタデータの場合は、ラスタデータバンドバッファ23
よりエッジの座標点のペアの間を埋めるラスタデータを
読み出し、出力バッファ24に出力する。なお、エッジ
リストバッファ21も二つのバッファで構成され、座標
点生成処理およびソート処理と、印刷画像データ変換処
理はパイプラインで実行可能に構成されている。
トバッファ21の座標値の小さいものから順次整列する
よう並べかえられたエッジの座標点のペアの間の塗りつ
ぶし処理を行い、出力バッファ24に出力するものであ
る。処理するオブジェクトが文字/図形の場合は、エッ
ジリストバッファ21に格納されている色データにより
塗りつぶし処理を実行する。処理するオブジェクトがラ
スタデータの場合は、ラスタデータバンドバッファ23
よりエッジの座標点のペアの間を埋めるラスタデータを
読み出し、出力バッファ24に出力する。なお、エッジ
リストバッファ21も二つのバッファで構成され、座標
点生成処理およびソート処理と、印刷画像データ変換処
理はパイプラインで実行可能に構成されている。
【0032】出力バッファ24は、二つのバッファで構
成され、一方のバッファが印刷画像データ変換部22に
より塗りつぶし処理が行われている間、他方のバッファ
は、後段のプリンタ装置制御部25を介して、プリンタ
装置26へ印刷画像データが転送されるよう構成されて
いる。
成され、一方のバッファが印刷画像データ変換部22に
より塗りつぶし処理が行われている間、他方のバッファ
は、後段のプリンタ装置制御部25を介して、プリンタ
装置26へ印刷画像データが転送されるよう構成されて
いる。
【0033】プリンタ装置制御部25は、プリンタ装置
26の出力タイミングに応じて出力バッファ24の印刷
画像データをプリンタ装置26へ転送するとともに、プ
リンタ装置26の状態制御および管理を実行するもので
ある。
26の出力タイミングに応じて出力バッファ24の印刷
画像データをプリンタ装置26へ転送するとともに、プ
リンタ装置26の状態制御および管理を実行するもので
ある。
【0034】プリンタ装置26は、プリンタ装置制御部
25の制御に基づき、出力バッファ24から出力される
印刷画像データを受け取って、記録用紙に印字し出力す
るものである。さらに、詳しくは、このプリンタ装置2
6は、CMYBk(シアン、マゼンタ、イエロー、ブラ
ック)カラーの色毎に露光、現像、転写を繰り返すこと
によりフルカラー画像を出力できるレーザ走査方式の電
子写真方式を用いたカラーページプリンタである。
25の制御に基づき、出力バッファ24から出力される
印刷画像データを受け取って、記録用紙に印字し出力す
るものである。さらに、詳しくは、このプリンタ装置2
6は、CMYBk(シアン、マゼンタ、イエロー、ブラ
ック)カラーの色毎に露光、現像、転写を繰り返すこと
によりフルカラー画像を出力できるレーザ走査方式の電
子写真方式を用いたカラーページプリンタである。
【0035】なお、この構成例はディスプレイリストが
所定のバンド単位に分割され、バンド単位で処理される
ことを前提に記載されているが、これに限定されるもの
ではなく、ページ単位で処理される構成であってもよ
い。
所定のバンド単位に分割され、バンド単位で処理される
ことを前提に記載されているが、これに限定されるもの
ではなく、ページ単位で処理される構成であってもよ
い。
【0036】次に上述したように構成された印刷処理装
置における印刷処理の流れの概要について、図3を用い
て説明する。図3は印刷処理装置における印刷処理の流
れを示すフローチャートである。まず、文字または図形
を含む印刷データ1が印刷データスプール部10に入力
されると、印刷データ解釈部11、ディスプレイリスト
生成部12、バンド分割部13を介してディスプレイリ
ストが生成され、少なくとも1ページ分のバンド分割さ
れたディスプレイリストがディスプレイリストバッファ
16に格納される(ステップS1)。次に、ディスプレ
イリストがディスプレイリストバッファ16よりバンド
単位で順次ディスプレイリストバンドバッファ17に入
力される(ステップS2)。
置における印刷処理の流れの概要について、図3を用い
て説明する。図3は印刷処理装置における印刷処理の流
れを示すフローチャートである。まず、文字または図形
を含む印刷データ1が印刷データスプール部10に入力
されると、印刷データ解釈部11、ディスプレイリスト
生成部12、バンド分割部13を介してディスプレイリ
ストが生成され、少なくとも1ページ分のバンド分割さ
れたディスプレイリストがディスプレイリストバッファ
16に格納される(ステップS1)。次に、ディスプレ
イリストがディスプレイリストバッファ16よりバンド
単位で順次ディスプレイリストバンドバッファ17に入
力される(ステップS2)。
【0037】次に、ディスプレイリスト管理部18にお
いて、最初のオブジェクトのディスプレイリストのエッ
ジ情報が、最大で座標点生成部19の有する座標点生成
回路の数だけ座標点生成部19に転送される(ステップ
S3)。座標点生成部19では、座標点の生成(ステッ
プS4)、走査ラインの更新(ステップS5)、すべて
の座標点生成回路の待機状態のチェック(ステップS
6)が行われる。もし、すべての座標点生成回路が待機
状態でなければ、ステップS4、ステップS5、ステッ
プS6を繰り返す。もし、すべての座標点生成回路が待
機状態になれば、オブジェクトのすべてのエッジの処理
終了のチェック(ステップS7)が行われる。もし、当
該オブジェクトのすべてのエッジの処理が終了していな
ければ、ステップS3で次のエッジ情報が最大で座標点
生成部19の有する座標点生成回路の数だけ座標点生成
部19に転送され、ステップS4以下の処理が繰り返さ
れる。もし、当該オブジェクトのすべてのエッジの処理
が終了していれば、ソート部20によるソート処理が実
行され(ステップS8)、続いて印刷画像データ変換部
22による印刷画像データへの変換処理および変換され
た印刷画像データの出力バッファ24への出力が実行さ
れる(ステップS9)。
いて、最初のオブジェクトのディスプレイリストのエッ
ジ情報が、最大で座標点生成部19の有する座標点生成
回路の数だけ座標点生成部19に転送される(ステップ
S3)。座標点生成部19では、座標点の生成(ステッ
プS4)、走査ラインの更新(ステップS5)、すべて
の座標点生成回路の待機状態のチェック(ステップS
6)が行われる。もし、すべての座標点生成回路が待機
状態でなければ、ステップS4、ステップS5、ステッ
プS6を繰り返す。もし、すべての座標点生成回路が待
機状態になれば、オブジェクトのすべてのエッジの処理
終了のチェック(ステップS7)が行われる。もし、当
該オブジェクトのすべてのエッジの処理が終了していな
ければ、ステップS3で次のエッジ情報が最大で座標点
生成部19の有する座標点生成回路の数だけ座標点生成
部19に転送され、ステップS4以下の処理が繰り返さ
れる。もし、当該オブジェクトのすべてのエッジの処理
が終了していれば、ソート部20によるソート処理が実
行され(ステップS8)、続いて印刷画像データ変換部
22による印刷画像データへの変換処理および変換され
た印刷画像データの出力バッファ24への出力が実行さ
れる(ステップS9)。
【0038】次に、バンド内のすべてのオブジェクト処
理終了のチェックが行われる(ステップS10)。も
し、当該バンドのすべてのオブジェクトの処理が終了し
ていなければ、ステップS3に戻り、次のオブジェクト
の最初のエッジ情報が、最大で座標点生成部19の有す
る座標点生成回路の数だけ座標点生成部19に転送さ
れ、ステップS4以下の処理が繰り返される。もし、当
該バンドのすべてのオブジェクトの処理が終了していれ
ば、プリンタ装置制御部25を介してプリンタ装置26
に印刷画像データの出力が行われる(ステップS1
1)。
理終了のチェックが行われる(ステップS10)。も
し、当該バンドのすべてのオブジェクトの処理が終了し
ていなければ、ステップS3に戻り、次のオブジェクト
の最初のエッジ情報が、最大で座標点生成部19の有す
る座標点生成回路の数だけ座標点生成部19に転送さ
れ、ステップS4以下の処理が繰り返される。もし、当
該バンドのすべてのオブジェクトの処理が終了していれ
ば、プリンタ装置制御部25を介してプリンタ装置26
に印刷画像データの出力が行われる(ステップS1
1)。
【0039】次に、ページ内のすべてのバンド処理終了
のチェックが行われる(ステップS12)。もし、当該
バンドのすべてのオブジェクトの処理が終了していなけ
れば、ステップS2以下の処理が繰り返される。もし、
当該バンドのすべてのオブジェクトの処理が終了してい
れば、1ページ分の印刷処理は終了する。処理する印刷
データが複数ページあれば、上記処理を複数ページ分繰
り返す。
のチェックが行われる(ステップS12)。もし、当該
バンドのすべてのオブジェクトの処理が終了していなけ
れば、ステップS2以下の処理が繰り返される。もし、
当該バンドのすべてのオブジェクトの処理が終了してい
れば、1ページ分の印刷処理は終了する。処理する印刷
データが複数ページあれば、上記処理を複数ページ分繰
り返す。
【0040】なお、上記印刷処理の流れの説明では、簡
単にするため、ラスタデータ処理に関する記載は省略し
たが、ラスタデータ処理に関しては各構成要素の概要お
よび動作で説明したように処理される。
単にするため、ラスタデータ処理に関する記載は省略し
たが、ラスタデータ処理に関しては各構成要素の概要お
よび動作で説明したように処理される。
【0041】次に、印刷処理装置が実装されるコンピュ
ータシステムの二つの構成例を以下に示す。図4は印刷
処理装置全体が実装されるコンピュータシステムのハー
ドウェア構成例を示した図である。図4において、コン
ピュータシステムは、ホストコンピュータ30と、ホス
トコンピュータ30が接続されるネットワーク41と、
ホストコンピュータ30に装着される描画処理カード3
8と、プリンタ装置26と、描画処理カード38とプリ
ンタ装置26とを接続する専用バス42とで構成されて
いる。ネットワーク41は、例えばイーサネット(Et
hernet)であり、ネットワーク41を介して図示
しないパーソナルコンピュータ、ワークステーション等
から印刷データ1が入力される。ホストコンピュータ3
0は、CPU(中央演算処理装置)31と、メモリコン
トローラ32と、DRAM(dynamic rand
om access memory)33と、システム
バスコントローラ34と、ネットワークインタフェース
35と、磁気ディスク36と、カードコントローラ37
と、CPUバス39と、システムバス40とから構成さ
れる一般的なものである。
ータシステムの二つの構成例を以下に示す。図4は印刷
処理装置全体が実装されるコンピュータシステムのハー
ドウェア構成例を示した図である。図4において、コン
ピュータシステムは、ホストコンピュータ30と、ホス
トコンピュータ30が接続されるネットワーク41と、
ホストコンピュータ30に装着される描画処理カード3
8と、プリンタ装置26と、描画処理カード38とプリ
ンタ装置26とを接続する専用バス42とで構成されて
いる。ネットワーク41は、例えばイーサネット(Et
hernet)であり、ネットワーク41を介して図示
しないパーソナルコンピュータ、ワークステーション等
から印刷データ1が入力される。ホストコンピュータ3
0は、CPU(中央演算処理装置)31と、メモリコン
トローラ32と、DRAM(dynamic rand
om access memory)33と、システム
バスコントローラ34と、ネットワークインタフェース
35と、磁気ディスク36と、カードコントローラ37
と、CPUバス39と、システムバス40とから構成さ
れる一般的なものである。
【0042】システムバス40は、例えばPCI(pe
ripheral component interc
onnect)バスであり、カードコントローラ37は
高速のデータ転送が可能なカードバス(CardBu
s)対応のコントローラである。ホストコンピュータ3
0には、本印刷処理装置の印刷データスプール部10、
印刷データ解釈部11、ディスプレイリスト生成部1
2、バンド分割部13、ラスタデータ処理部14、ラス
タデータバッファ15、ディスプレイリストバッファ1
6に相当する機能が実装される。例えば、磁気ディスク
36は、印刷データ解釈部11、ディスプレイリスト生
成部12、バンド分割部13、ラスタデータ処理部14
の各処理のための所定のプログラム等の格納領域、印刷
データスプール部10の印刷データ格納領域として使用
される。また、DRAM33は、印刷データ解釈部1
1、ディスプレイリスト生成部12、バンド分割部1
3、ラスタデータ処理部14の各処理のためのワークエ
リア、ラスタデータバッファ15、ディスプレイリスト
バッファ16として使用される。さらに、CPU31は
印刷データ解釈部11、ディスプレイリスト生成部1
2、バンド分割部13、ラスタデータ処理部14の各処
理のための所定のプログラムを実行する。
ripheral component interc
onnect)バスであり、カードコントローラ37は
高速のデータ転送が可能なカードバス(CardBu
s)対応のコントローラである。ホストコンピュータ3
0には、本印刷処理装置の印刷データスプール部10、
印刷データ解釈部11、ディスプレイリスト生成部1
2、バンド分割部13、ラスタデータ処理部14、ラス
タデータバッファ15、ディスプレイリストバッファ1
6に相当する機能が実装される。例えば、磁気ディスク
36は、印刷データ解釈部11、ディスプレイリスト生
成部12、バンド分割部13、ラスタデータ処理部14
の各処理のための所定のプログラム等の格納領域、印刷
データスプール部10の印刷データ格納領域として使用
される。また、DRAM33は、印刷データ解釈部1
1、ディスプレイリスト生成部12、バンド分割部1
3、ラスタデータ処理部14の各処理のためのワークエ
リア、ラスタデータバッファ15、ディスプレイリスト
バッファ16として使用される。さらに、CPU31は
印刷データ解釈部11、ディスプレイリスト生成部1
2、バンド分割部13、ラスタデータ処理部14の各処
理のための所定のプログラムを実行する。
【0043】図5は描画処理カードのハードウェア構成
例を示した図である。図5において、描画処理カード3
8は、ホストコンピュータ30のCPUとは異なる第2
のCPU50と、カードインタフェース51と、フラッ
シュROM(read only memory)52
と、メモリコントローラ53と、メモリ54と、座標点
生成LSI(大規模集積回路)55と、印刷画像データ
変換LSI56と、出力バッファメモリ57と、ラスタ
データバンドバッファメモリ58と、プリンタ制御LS
I59と、ビデオインタフェース60と、カード内部バ
ス61とから構成されている。この描画処理カード38
には、本印刷処理装置のディスプレイリストバンドバッ
ファ17、ディスプレイリスト管理部18、座標点生成
部19、ソート部20、エッジリストバッファ21、印
刷画像データ変換部22、ラスタデータバンドバッファ
23、出力バッファ24、およびプリンタ装置制御部2
5の機能が実装されている。例えばフラッシュROM5
2はソート部20のソート処理のための所定のプログラ
ム等が格納されるとともに、オペレーティングシステム
のプログラムが格納される。メモリ54は、例えばDR
AMで構成され、ソート処理のためのプログラム実行の
ためのワークエリア、ディスプレイリストバンドバッフ
ァ17、エッジリストバッファ21として使用される。
また、座標点生成LSI55にはディスプレイリスト管
理部18と座標点生成部19の機能、印刷画像データ変
換LSI56には印刷画像データ変換部22の機能、プ
リンタ制御LSI59およびビデオインタフェース60
はプリンタ装置制御部25の機能がそれぞれ実装されて
いる。さらに、第2のCPU50はソート部20のソー
ト処理のための所定のプログラムの実行、ディスプレイ
リストバンドバッファ17へのディスプレイリスト入力
の制御、出力バッファメモリ57やラスタデータバンド
バッファメモリ58のメモリクリアの制御等を実行す
る。また、出力バッファメモリ57およびラスタデータ
バンドバッファメモリ58は、例えばDRAMで構成さ
れる。
例を示した図である。図5において、描画処理カード3
8は、ホストコンピュータ30のCPUとは異なる第2
のCPU50と、カードインタフェース51と、フラッ
シュROM(read only memory)52
と、メモリコントローラ53と、メモリ54と、座標点
生成LSI(大規模集積回路)55と、印刷画像データ
変換LSI56と、出力バッファメモリ57と、ラスタ
データバンドバッファメモリ58と、プリンタ制御LS
I59と、ビデオインタフェース60と、カード内部バ
ス61とから構成されている。この描画処理カード38
には、本印刷処理装置のディスプレイリストバンドバッ
ファ17、ディスプレイリスト管理部18、座標点生成
部19、ソート部20、エッジリストバッファ21、印
刷画像データ変換部22、ラスタデータバンドバッファ
23、出力バッファ24、およびプリンタ装置制御部2
5の機能が実装されている。例えばフラッシュROM5
2はソート部20のソート処理のための所定のプログラ
ム等が格納されるとともに、オペレーティングシステム
のプログラムが格納される。メモリ54は、例えばDR
AMで構成され、ソート処理のためのプログラム実行の
ためのワークエリア、ディスプレイリストバンドバッフ
ァ17、エッジリストバッファ21として使用される。
また、座標点生成LSI55にはディスプレイリスト管
理部18と座標点生成部19の機能、印刷画像データ変
換LSI56には印刷画像データ変換部22の機能、プ
リンタ制御LSI59およびビデオインタフェース60
はプリンタ装置制御部25の機能がそれぞれ実装されて
いる。さらに、第2のCPU50はソート部20のソー
ト処理のための所定のプログラムの実行、ディスプレイ
リストバンドバッファ17へのディスプレイリスト入力
の制御、出力バッファメモリ57やラスタデータバンド
バッファメモリ58のメモリクリアの制御等を実行す
る。また、出力バッファメモリ57およびラスタデータ
バンドバッファメモリ58は、例えばDRAMで構成さ
れる。
【0044】ディスプレイリストバンドバッファ17以
降の処理機能を独立した1枚の描画処理カードの回路基
板上に一体に実装することにより、カード内部バス61
はホストコンピュータ30のシステムバス40とは独立
に設けることが可能になり、バスの競合によるデータ転
送速度低下を低減することができる。さらに、ホストコ
ンピュータ30のシステムバス40より高速のバスを設
けることにより、データ転送の高速化が可能となる。ま
た、図5の構成において、出力バッファメモリ57およ
びラスタデータバンドバッファメモリ58は、カード内
部バス61を介さず直接印刷画像データ変換LSI56
に接続された構成をとっている。このような構成をとる
ことにより、データ転送のボトルネックを解消し、より
高速のデータ転送が可能となる。また、第2のCPU5
0の主要な処理はソート処理に限定されるため、ホスト
コンピュータ30のCPU31に比較して、性能の低い
CPUを使用することが可能であり、図5に示すような
カード化が可能である。また、ディスプレイリストバン
ドバッファ17以降の処理機能をカード化したことによ
り、ディスプレイリストバンドバッファ17までの処理
機能を持つホストコンピュータ30とは着脱自在な形態
になっている。
降の処理機能を独立した1枚の描画処理カードの回路基
板上に一体に実装することにより、カード内部バス61
はホストコンピュータ30のシステムバス40とは独立
に設けることが可能になり、バスの競合によるデータ転
送速度低下を低減することができる。さらに、ホストコ
ンピュータ30のシステムバス40より高速のバスを設
けることにより、データ転送の高速化が可能となる。ま
た、図5の構成において、出力バッファメモリ57およ
びラスタデータバンドバッファメモリ58は、カード内
部バス61を介さず直接印刷画像データ変換LSI56
に接続された構成をとっている。このような構成をとる
ことにより、データ転送のボトルネックを解消し、より
高速のデータ転送が可能となる。また、第2のCPU5
0の主要な処理はソート処理に限定されるため、ホスト
コンピュータ30のCPU31に比較して、性能の低い
CPUを使用することが可能であり、図5に示すような
カード化が可能である。また、ディスプレイリストバン
ドバッファ17以降の処理機能をカード化したことによ
り、ディスプレイリストバンドバッファ17までの処理
機能を持つホストコンピュータ30とは着脱自在な形態
になっている。
【0045】図6は印刷処理装置全体が実装される他の
コンピュータシステムのハードウェア構成例を示した図
である。図6において、図4と同じ構成要素については
同じ符号を付して詳細な説明は省略する。図6に示した
コンピュータシステムは、図4に示した構成ではディス
プレイリストバンドバッファ17以降の処理を実装する
描画処理カード38がホストコンピュータ30に直接接
続されているのに対し、ディスプレイリストバンドバッ
ファ17以降の処理を実装する描画処理ボード45がシ
リアルバス44を介してプリンタ装置26に直接接続さ
れている。このため、ホストコンピュータ30にはシリ
アルバスインタフェース43が設けられている。この描
画処理ボード45もディスプレイリストバンドバッファ
17以降の処理機能を独立した1枚の回路基板上に一体
に実装され、ディスプレイリストバンドバッファ17ま
での処理機能と着脱可能になっている。
コンピュータシステムのハードウェア構成例を示した図
である。図6において、図4と同じ構成要素については
同じ符号を付して詳細な説明は省略する。図6に示した
コンピュータシステムは、図4に示した構成ではディス
プレイリストバンドバッファ17以降の処理を実装する
描画処理カード38がホストコンピュータ30に直接接
続されているのに対し、ディスプレイリストバンドバッ
ファ17以降の処理を実装する描画処理ボード45がシ
リアルバス44を介してプリンタ装置26に直接接続さ
れている。このため、ホストコンピュータ30にはシリ
アルバスインタフェース43が設けられている。この描
画処理ボード45もディスプレイリストバンドバッファ
17以降の処理機能を独立した1枚の回路基板上に一体
に実装され、ディスプレイリストバンドバッファ17ま
での処理機能と着脱可能になっている。
【0046】図7は描画処理ボードのハードウェア構成
例を示した図である。図7において、図5と同じ構成要
素については同じ符号を付して詳細な説明は省略する。
図7に示した描画処理ボード45は、シリアルバスイン
タフェース62が設けられている点で図5の構成と異な
るが、その他の構成要素および機能は図5のものと同一
である。シリアルバス44は、例えばIEEE(米国電
気電子技術者協会)1394高性能シリアルバスであ
る。このIEEE1394高性能シリアルバスを設ける
ことにより、処理性能を低下させることなく、プリンタ
装置26およびホストコンピュータ30の配置構成を自
由に設定することが可能となる。
例を示した図である。図7において、図5と同じ構成要
素については同じ符号を付して詳細な説明は省略する。
図7に示した描画処理ボード45は、シリアルバスイン
タフェース62が設けられている点で図5の構成と異な
るが、その他の構成要素および機能は図5のものと同一
である。シリアルバス44は、例えばIEEE(米国電
気電子技術者協会)1394高性能シリアルバスであ
る。このIEEE1394高性能シリアルバスを設ける
ことにより、処理性能を低下させることなく、プリンタ
装置26およびホストコンピュータ30の配置構成を自
由に設定することが可能となる。
【0047】以上、本発明の印刷処理装置の概要につい
て記述した。次に、この印刷処理装置の主要部の詳細に
ついて説明する。初めに、印刷データ解釈部11につい
て詳細に説明する。
て記述した。次に、この印刷処理装置の主要部の詳細に
ついて説明する。初めに、印刷データ解釈部11につい
て詳細に説明する。
【0048】図8は印刷データ解釈部の構成を示すブロ
ック図である。図8において、印刷データ解釈部11
は、字句解析部111と、トークン解釈部112と、命
令実行部113と、描画状態記憶部114とから構成さ
れている。
ック図である。図8において、印刷データ解釈部11
は、字句解析部111と、トークン解釈部112と、命
令実行部113と、描画状態記憶部114とから構成さ
れている。
【0049】字句解析部111は、印刷データスプール
部10から入力された印刷データを定められた記述言語
のシンタックスに従ってトークンとして切り出し、その
トークンをトークン解釈部112に出力するものであ
る。トークン解釈部112は、字句解析部111から入
力されたトークンを解釈し、内部命令やその引数に変換
し、それら内部命令と引数との組を命令実行部113へ
転送する。内部命令には、例えば文字/図形/ラスタの
描画を実行する描画命令や、色や線属性など描画に必要
な情報を設定する描画状態命令などがある。
部10から入力された印刷データを定められた記述言語
のシンタックスに従ってトークンとして切り出し、その
トークンをトークン解釈部112に出力するものであ
る。トークン解釈部112は、字句解析部111から入
力されたトークンを解釈し、内部命令やその引数に変換
し、それら内部命令と引数との組を命令実行部113へ
転送する。内部命令には、例えば文字/図形/ラスタの
描画を実行する描画命令や、色や線属性など描画に必要
な情報を設定する描画状態命令などがある。
【0050】命令実行部113は、トークン解釈部11
2から送られてきた内部命令を実行する。ここで実行す
る命令は、主に描画命令と描画状態命令とがある。例え
ば描画命令には、以下の表1に示すように3種類の描画
命令があり、それぞれの描画に必要な情報が示されてい
る。このうちアンダーラインがある情報については、描
画命令中の引数として与えられ、その他の情報は予め初
期設定や先行する命令などにより描画状態記憶部114
に記憶されている。描画命令の実行は、ラスタ描画以外
は受け取った描画命令をそのままディスプレイリスト生
成部12へ転送する。ラスタ描画の場合は、受け取った
描画命令をラスタデータ処理部14へ転送するととも
に、ラスタヘッダ内の縦および横の大きさを表す情報を
ディスプレイリスト生成部12へ転送する。また描画状
態命令については、命令を描画状態記憶部114へ転送
する。
2から送られてきた内部命令を実行する。ここで実行す
る命令は、主に描画命令と描画状態命令とがある。例え
ば描画命令には、以下の表1に示すように3種類の描画
命令があり、それぞれの描画に必要な情報が示されてい
る。このうちアンダーラインがある情報については、描
画命令中の引数として与えられ、その他の情報は予め初
期設定や先行する命令などにより描画状態記憶部114
に記憶されている。描画命令の実行は、ラスタ描画以外
は受け取った描画命令をそのままディスプレイリスト生
成部12へ転送する。ラスタ描画の場合は、受け取った
描画命令をラスタデータ処理部14へ転送するととも
に、ラスタヘッダ内の縦および横の大きさを表す情報を
ディスプレイリスト生成部12へ転送する。また描画状
態命令については、命令を描画状態記憶部114へ転送
する。
【0051】
【表1】
【0052】描画状態記憶部114は、命令実行部11
3から受け取った命令に含まれる引数の値で、例えば表
1に示したアンダーラインのない情報についての値の設
定を行い、それらを記憶する。また、ラスタデータ処理
部14、ディスプレイリスト生成部12の要求に従っ
て、それらの値を転送する。
3から受け取った命令に含まれる引数の値で、例えば表
1に示したアンダーラインのない情報についての値の設
定を行い、それらを記憶する。また、ラスタデータ処理
部14、ディスプレイリスト生成部12の要求に従っ
て、それらの値を転送する。
【0053】次に、ラスタデータ処理部14について説
明する。ラスタデータ処理部14は、印刷データ解釈部
11の命令実行部113から入力された命令の引数であ
る入力ラスタヘッダと入力ラスタデータとを、描画状態
記憶部114から獲得した変換マトリックスを使ってア
フィン変換したり、入力ラスタの色空間を出力装置の色
空間に変換する色空間変換などの処理を行い、出力ラス
タヘッダと出力ラスタデータとを生成してラスタデータ
バッファ15へ転送する。
明する。ラスタデータ処理部14は、印刷データ解釈部
11の命令実行部113から入力された命令の引数であ
る入力ラスタヘッダと入力ラスタデータとを、描画状態
記憶部114から獲得した変換マトリックスを使ってア
フィン変換したり、入力ラスタの色空間を出力装置の色
空間に変換する色空間変換などの処理を行い、出力ラス
タヘッダと出力ラスタデータとを生成してラスタデータ
バッファ15へ転送する。
【0054】次に、ディスプレイリスト生成部12につ
いて詳細に説明する。図9はディスプレイリスト生成部
を示すブロック図である。ディスプレイリスト生成部1
2は、ベクタデータ生成部121と、フォント管理部1
22と、マトリックス変換部123と、ショートベクタ
生成部124と、リストデータ生成部125とから構成
される。
いて詳細に説明する。図9はディスプレイリスト生成部
を示すブロック図である。ディスプレイリスト生成部1
2は、ベクタデータ生成部121と、フォント管理部1
22と、マトリックス変換部123と、ショートベクタ
生成部124と、リストデータ生成部125とから構成
される。
【0055】ベクタデータ生成部121では、印刷デー
タ解釈部11の命令実行部113から送られてきた命令
と引数、描画状態記憶部114の値を使用して、塗りつ
ぶし描画を除く、新たに描画するためのベクタデータを
生成する。まず、文字描画の場合について説明する。引
数で与えられた文字コードと描画状態記憶部114から
獲得したフォントIDとをフォント管理部122へ転送
して、文字のアウトラインデータを獲得する。獲得した
アウトラインデータには、描画原点(カレントポイン
ト)の情報が含まれていないので、描画状態記憶部11
4から獲得したカレントポイントのオフセットをアウト
ラインデータに加えることによって、目的のベクタデー
タを生成する。ラスタ描画の場合には、引数で与えられ
たラスタヘッダの縦および横のサイズからそれに対する
矩形ベクタを生成し、描画状態記憶部114から獲得し
たカレントポイントのオフセットを加えることで目的の
ベクタデータを生成する。ストローク描画の場合は、引
数で与えられたベクタと描画状態記憶部114から獲得
した各種の線属性とからアウトラインベクタを生成す
る。
タ解釈部11の命令実行部113から送られてきた命令
と引数、描画状態記憶部114の値を使用して、塗りつ
ぶし描画を除く、新たに描画するためのベクタデータを
生成する。まず、文字描画の場合について説明する。引
数で与えられた文字コードと描画状態記憶部114から
獲得したフォントIDとをフォント管理部122へ転送
して、文字のアウトラインデータを獲得する。獲得した
アウトラインデータには、描画原点(カレントポイン
ト)の情報が含まれていないので、描画状態記憶部11
4から獲得したカレントポイントのオフセットをアウト
ラインデータに加えることによって、目的のベクタデー
タを生成する。ラスタ描画の場合には、引数で与えられ
たラスタヘッダの縦および横のサイズからそれに対する
矩形ベクタを生成し、描画状態記憶部114から獲得し
たカレントポイントのオフセットを加えることで目的の
ベクタデータを生成する。ストローク描画の場合は、引
数で与えられたベクタと描画状態記憶部114から獲得
した各種の線属性とからアウトラインベクタを生成す
る。
【0056】図10はアウトラインベクタの説明図であ
る。ストローク描画によって、2本のつながった直線を
描画しようとする場合には、破線で示した中心線の引数
で与えられたベクタと描画状態記憶部114から獲得し
た輪郭データの各種の線属性とからアウトラインベクタ
を生成する。すなわち、中心線とその太さと2本の線の
つなぎの処理を指定されることにより、図10に示すよ
うな太さを持った線の輪郭のアウトラインベクタが生成
される。このように生成したベクタ(塗りつぶし描画の
場合は命令実行部113から直接受け取ったベクタ)
を、マトリックス変換部123へ転送する。
る。ストローク描画によって、2本のつながった直線を
描画しようとする場合には、破線で示した中心線の引数
で与えられたベクタと描画状態記憶部114から獲得し
た輪郭データの各種の線属性とからアウトラインベクタ
を生成する。すなわち、中心線とその太さと2本の線の
つなぎの処理を指定されることにより、図10に示すよ
うな太さを持った線の輪郭のアウトラインベクタが生成
される。このように生成したベクタ(塗りつぶし描画の
場合は命令実行部113から直接受け取ったベクタ)
を、マトリックス変換部123へ転送する。
【0057】フォント管理部122は、各種フォントに
対するアウトラインベクタデータを記憶するとともに、
与えられた文字コードとフォントIDとによって、その
文字に対するアウトラインベクタデータを提供する。
対するアウトラインベクタデータを記憶するとともに、
与えられた文字コードとフォントIDとによって、その
文字に対するアウトラインベクタデータを提供する。
【0058】マトリックス変換部123は、ベクタデー
タ生成部121から受け取ったベクタデータを、描画状
態記憶部114から獲得した変換マトリックスによって
アフィン変換する。このアフィン変換の主な目的は、ア
プリケーションの解像度(座標系)からプリンタの解像
度(座標系)に変換するためのものである。変換マトリ
ックスには下式(1)に示すような3×3のものが使わ
れ、入力ベクタデータ(Xn,Yn)は、出力ベクタデ
ータ(Xn’,Yn’)に変換されてショートベクタ生
成部124へ送られる。
タ生成部121から受け取ったベクタデータを、描画状
態記憶部114から獲得した変換マトリックスによって
アフィン変換する。このアフィン変換の主な目的は、ア
プリケーションの解像度(座標系)からプリンタの解像
度(座標系)に変換するためのものである。変換マトリ
ックスには下式(1)に示すような3×3のものが使わ
れ、入力ベクタデータ(Xn,Yn)は、出力ベクタデ
ータ(Xn’,Yn’)に変換されてショートベクタ生
成部124へ送られる。
【0059】
【数1】
【0060】ショートベクタ生成部124は、入力され
たベクタの中に曲線のベクタがある場合にその曲線のベ
クタを、誤差が描画状態記憶部114から獲得したfl
atness値より小さくなるように、複数のショート
ベクタで近似する処理を行う。これを図11を参照して
説明する。
たベクタの中に曲線のベクタがある場合にその曲線のベ
クタを、誤差が描画状態記憶部114から獲得したfl
atness値より小さくなるように、複数のショート
ベクタで近似する処理を行う。これを図11を参照して
説明する。
【0061】図11は曲線の再帰的な分割を示す説明図
である。例えば曲線のベクタには、図11に黒丸記号で
示した四つの制御点で表現されるベジエ曲線が使われ
る。この場合、ショートベクタ化の処理は、黒丸で示し
た元のベジエ曲線の制御点の間の距離を中点分割してい
き、その分割位置を新たなベジエ曲線の制御点とする。
この制御点は黒四角の記号で示してある。さらに、この
制御点に対してそれらの間を中点分割していくことによ
り、ベジエ曲線をより短い複数のベクタで表現すること
ができる。このように、ベジエ曲線を再帰的に分割し、
分割された制御点で作られる三角の高さ(距離d)がf
latnessで与えられた値より小さくなった時点で
分割を終了する。そして分割された各ベジエ曲線の始点
と終点を順番に結ぶことにより、ショートベクタ化が完
了する。生成されたショートベクタは、リストデータ生
成部125へ送られる。
である。例えば曲線のベクタには、図11に黒丸記号で
示した四つの制御点で表現されるベジエ曲線が使われ
る。この場合、ショートベクタ化の処理は、黒丸で示し
た元のベジエ曲線の制御点の間の距離を中点分割してい
き、その分割位置を新たなベジエ曲線の制御点とする。
この制御点は黒四角の記号で示してある。さらに、この
制御点に対してそれらの間を中点分割していくことによ
り、ベジエ曲線をより短い複数のベクタで表現すること
ができる。このように、ベジエ曲線を再帰的に分割し、
分割された制御点で作られる三角の高さ(距離d)がf
latnessで与えられた値より小さくなった時点で
分割を終了する。そして分割された各ベジエ曲線の始点
と終点を順番に結ぶことにより、ショートベクタ化が完
了する。生成されたショートベクタは、リストデータ生
成部125へ送られる。
【0062】リストデータ生成部125は、入力された
ショートベクタデータから、各描画オブジェクト毎に、
ヘッダ部とリスト部とを有したディスプレイリストを生
成する。以下に、オブジェクトが文字/図形の場合とラ
スタの場合とについて、リストデータ生成部125で生
成されるディスプレイリストの構造を示す。
ショートベクタデータから、各描画オブジェクト毎に、
ヘッダ部とリスト部とを有したディスプレイリストを生
成する。以下に、オブジェクトが文字/図形の場合とラ
スタの場合とについて、リストデータ生成部125で生
成されるディスプレイリストの構造を示す。
【0063】図12はリストデータ生成部で生成される
ディスプレイリスト(文字/図形の場合)の構造を示す
図、図13はリストデータ生成部で生成されるディスプ
レイリスト(ラスタの場合)の構造を示す図である。リ
ストデータ生成部125で生成されるディスプレイリス
トは、文字/図形およびラスタデータの場合、ヘッダ部
が異なる。以下にこれら二つの場合のディスプレイリス
トの構造について説明する。
ディスプレイリスト(文字/図形の場合)の構造を示す
図、図13はリストデータ生成部で生成されるディスプ
レイリスト(ラスタの場合)の構造を示す図である。リ
ストデータ生成部125で生成されるディスプレイリス
トは、文字/図形およびラスタデータの場合、ヘッダ部
が異なる。以下にこれら二つの場合のディスプレイリス
トの構造について説明する。
【0064】図12に示すように文字/図形の場合、ヘ
ッダ部は、描画オブジェクトの種類を示すTypeID
(この場合、文字あるいは図形描画を示す)と、描画オ
ブジェクトを何色で塗りつぶすかを示す色情報(例え
ば、CMYBkの値等)と、yバケットの総数であるy
リスト数と、各yリストに連結されているセルの総数で
ある連結セル数と、次の描画オブジェクトのディスプレ
イリスト(DL)へのポインタとから構成される。
ッダ部は、描画オブジェクトの種類を示すTypeID
(この場合、文字あるいは図形描画を示す)と、描画オ
ブジェクトを何色で塗りつぶすかを示す色情報(例え
ば、CMYBkの値等)と、yバケットの総数であるy
リスト数と、各yリストに連結されているセルの総数で
ある連結セル数と、次の描画オブジェクトのディスプレ
イリスト(DL)へのポインタとから構成される。
【0065】リスト部は、yバケットと、連結セルとか
ら構成される。yバケットは、入力された各描画オブジ
ェクト毎のベクタデータの始点のy座標値に相当する走
査ラインyと、最初の連結セルへのポインタであるセル
ポインタからなる。ここで、連結セルの存在しないyバ
ケットは、リスト部に登録しない。連結セルは、入力さ
れた各描画オブジェクト毎のベクタデータの始点のx座
標値と、そのベクタデータの走査ライン当たりのxの増
分であるΔxと、そのベクタデータと交差する走査ライ
ンの数であるΔyと、その走査ラインyを始点とする異
なるベクタデータが存在するか否かを示す連結フラグか
ら構成される。連結フラグは、次に連結セルが存在する
場合は、フラグ’1’を付加し、最後の連結セルである
場合は、EOC(End Of Cell)を表すフラ
グ’0’を付加する。
ら構成される。yバケットは、入力された各描画オブジ
ェクト毎のベクタデータの始点のy座標値に相当する走
査ラインyと、最初の連結セルへのポインタであるセル
ポインタからなる。ここで、連結セルの存在しないyバ
ケットは、リスト部に登録しない。連結セルは、入力さ
れた各描画オブジェクト毎のベクタデータの始点のx座
標値と、そのベクタデータの走査ライン当たりのxの増
分であるΔxと、そのベクタデータと交差する走査ライ
ンの数であるΔyと、その走査ラインyを始点とする異
なるベクタデータが存在するか否かを示す連結フラグか
ら構成される。連結フラグは、次に連結セルが存在する
場合は、フラグ’1’を付加し、最後の連結セルである
場合は、EOC(End Of Cell)を表すフラ
グ’0’を付加する。
【0066】次に、図13に示すようにラスタデータの
場合、ヘッダ部は、TypeID(この場合、ラスタ描
画を示す)と、ラスタデータのデータサイズ(1画素当
たりのビット数*w*h:wは幅、hは高さ)と、ラス
タデータの格納されているラスタデータバッファ15の
アドレスに相当するデータアドレスと、各yリストに連
結されているセルの総数である連結セル数と、次の描画
オブジェクトのディスプレイリストへのポインタとから
構成される。リスト部は、上述した文字/図形の場合と
同様であるので説明を省略する。
場合、ヘッダ部は、TypeID(この場合、ラスタ描
画を示す)と、ラスタデータのデータサイズ(1画素当
たりのビット数*w*h:wは幅、hは高さ)と、ラス
タデータの格納されているラスタデータバッファ15の
アドレスに相当するデータアドレスと、各yリストに連
結されているセルの総数である連結セル数と、次の描画
オブジェクトのディスプレイリストへのポインタとから
構成される。リスト部は、上述した文字/図形の場合と
同様であるので説明を省略する。
【0067】なお、ディスプレイリスト生成部12で生
成されるディスプレイリストは、ショートベクタ生成部
124で生成される各ベクタ同士の繋がり方や、命令実
行部113からの描画状態命令にある塗りつぶし方法等
を考慮して生成される。
成されるディスプレイリストは、ショートベクタ生成部
124で生成される各ベクタ同士の繋がり方や、命令実
行部113からの描画状態命令にある塗りつぶし方法等
を考慮して生成される。
【0068】次に、バンド分割部13について説明す
る。図14はディスプレイリストのバンド境界での分割
の概要を示す説明図である。バンド分割部13は、図1
4に示すように、ディスプレイリスト生成部12で生成
された各描画オブジェクト毎のディスプレイリストの
内、複数のバンドにまたがるディスプレイリストを各バ
ンドに分割する機能を有するもので、バンド毎に分割さ
れたディスプレイリストはディスプレイリストバッファ
部16へ転送される。図14においては、第1ベクタに
相当するリスト部が、バンド境界により2分割され、第
2バンドの先頭に新たに連結セルが作られて追加され
る。なお、yborderは交差しているバンド境界の走査ラ
イン数を示している。次に、第1ベクタを分割する際の
処理の流れについて説明する。
る。図14はディスプレイリストのバンド境界での分割
の概要を示す説明図である。バンド分割部13は、図1
4に示すように、ディスプレイリスト生成部12で生成
された各描画オブジェクト毎のディスプレイリストの
内、複数のバンドにまたがるディスプレイリストを各バ
ンドに分割する機能を有するもので、バンド毎に分割さ
れたディスプレイリストはディスプレイリストバッファ
部16へ転送される。図14においては、第1ベクタに
相当するリスト部が、バンド境界により2分割され、第
2バンドの先頭に新たに連結セルが作られて追加され
る。なお、yborderは交差しているバンド境界の走査ラ
イン数を示している。次に、第1ベクタを分割する際の
処理の流れについて説明する。
【0069】図15はディスプレイリストのバンド分割
の処理の流れを示すフローチャートである。まず、走査
ラインy1 を始点とする第1ベクタに相当するy1 バケ
ットがバンド境界と交わり、複数のバンドにまたがるか
どうかを判定する(ステップS21)。もし、y1 バケ
ットがバンド境界と交わるならば、Δy1 をΔy1'に更
新する(ステップS22)。次に、第1ベクタに相当す
るディスプレイリストのリスト部を分割し、連結セルを
更新する(ステップS23)。連結セルの更新は、下式
(2)により行う。
の処理の流れを示すフローチャートである。まず、走査
ラインy1 を始点とする第1ベクタに相当するy1 バケ
ットがバンド境界と交わり、複数のバンドにまたがるか
どうかを判定する(ステップS21)。もし、y1 バケ
ットがバンド境界と交わるならば、Δy1 をΔy1'に更
新する(ステップS22)。次に、第1ベクタに相当す
るディスプレイリストのリスト部を分割し、連結セルを
更新する(ステップS23)。連結セルの更新は、下式
(2)により行う。
【0070】
【数2】 x=x1+Δx1×Δy1' ……(2a) Δx=Δx1 ……(2b) Δy=Δy1−Δy1' ……(2c) 次に、ステップS23での処理が済んだとき、またはス
テップS21の判定でバンド境界との交わりがないとき
には、現在更新した連結セルの連結フラグに従って、連
結フラグがEOCを表すフラグ’0’であるかどうかを
判定する(ステップS24)。ここで、連結フラグが’
0’でなければ、ステップS21に処理を戻し、連結フ
ラグが’0’であれば、リスト終了かどうかを判定する
(ステップS25)。リスト部の他のyバケットについ
ても、まだバンド境界と交わるベクタがある場合は、ス
テップS21からステップS24までの処理を行い、リ
スト部中のすべてのyバケットが終了した場合は、リス
ト部が分割された場合のヘッダ部の追加およびヘッダ部
の更新を行い(ステップS26)、バンド分割処理を終
了する。ヘッダ部の追加は、新たにバンド分割されたデ
ィスプレイリストに、現在の描画オブジェクトのヘッダ
部をコピーする。ヘッダ部の更新は、文字/図形の場合
は、yリスト数、連結セル数の変更およびディスプレイ
リスト(DL)のポインタの付け替えを行い、ラスタの
場合は、データサイズ、データアドレスの更新、連結セ
ル数の変更およびDLのポインタの付け替えをそれぞれ
行うことになる。
テップS21の判定でバンド境界との交わりがないとき
には、現在更新した連結セルの連結フラグに従って、連
結フラグがEOCを表すフラグ’0’であるかどうかを
判定する(ステップS24)。ここで、連結フラグが’
0’でなければ、ステップS21に処理を戻し、連結フ
ラグが’0’であれば、リスト終了かどうかを判定する
(ステップS25)。リスト部の他のyバケットについ
ても、まだバンド境界と交わるベクタがある場合は、ス
テップS21からステップS24までの処理を行い、リ
スト部中のすべてのyバケットが終了した場合は、リス
ト部が分割された場合のヘッダ部の追加およびヘッダ部
の更新を行い(ステップS26)、バンド分割処理を終
了する。ヘッダ部の追加は、新たにバンド分割されたデ
ィスプレイリストに、現在の描画オブジェクトのヘッダ
部をコピーする。ヘッダ部の更新は、文字/図形の場合
は、yリスト数、連結セル数の変更およびディスプレイ
リスト(DL)のポインタの付け替えを行い、ラスタの
場合は、データサイズ、データアドレスの更新、連結セ
ル数の変更およびDLのポインタの付け替えをそれぞれ
行うことになる。
【0071】以上のように、バンド分割部13では、各
描画オブジェクト毎のディスプレイリストの全連結セル
に対してステップS21からステップS26までの処理
を行い、バンド単位のディスプレイリストを生成する。
描画オブジェクト毎のディスプレイリストの全連結セル
に対してステップS21からステップS26までの処理
を行い、バンド単位のディスプレイリストを生成する。
【0072】次に、ディスプレイリストバッファ16に
ついて説明する。図16はディスプレイリストバッファ
におけるディスプレイリストの記憶形態を示す説明図で
ある。ディスプレイリストバッファ16は、図16に示
すように、描画オブジェクト毎に、ディスプレイリスト
生成部12で生成あるいはバンド分割部13で分割され
たディスプレイリストをバンド単位に記憶するものであ
る。例えば、バンドiにn個の描画オブジェクト含む場
合には、ディスプレイリストバッファ16のバンドiに
対応する記憶領域にn個のディスプレイリストが記憶さ
れ、これらのディスプレイリストは、バンド毎にディス
プレイリストバンドバッファ17へ転送される。
ついて説明する。図16はディスプレイリストバッファ
におけるディスプレイリストの記憶形態を示す説明図で
ある。ディスプレイリストバッファ16は、図16に示
すように、描画オブジェクト毎に、ディスプレイリスト
生成部12で生成あるいはバンド分割部13で分割され
たディスプレイリストをバンド単位に記憶するものであ
る。例えば、バンドiにn個の描画オブジェクト含む場
合には、ディスプレイリストバッファ16のバンドiに
対応する記憶領域にn個のディスプレイリストが記憶さ
れ、これらのディスプレイリストは、バンド毎にディス
プレイリストバンドバッファ17へ転送される。
【0073】次に、ディスプレイリスト管理部18およ
び座標点生成部19を実装する座標点生成LSI55に
ついて詳細に説明する。図17は座標点生成LSIの構
成を示すブロック図である。図17において、座標点生
成LSI55は、管理回路551と、四つの座標点生成
回路552A〜552Dとから構成される。また、座標
点生成LSI55は、内部バス61に接続されているメ
モリコントローラ53を介してメモリ54にアクセスす
る構成になっている。メモリ54はその一部がディスプ
レイリストバンドバッファ541およびエッジリストバ
ッファ542に割り当てられている。
び座標点生成部19を実装する座標点生成LSI55に
ついて詳細に説明する。図17は座標点生成LSIの構
成を示すブロック図である。図17において、座標点生
成LSI55は、管理回路551と、四つの座標点生成
回路552A〜552Dとから構成される。また、座標
点生成LSI55は、内部バス61に接続されているメ
モリコントローラ53を介してメモリ54にアクセスす
る構成になっている。メモリ54はその一部がディスプ
レイリストバンドバッファ541およびエッジリストバ
ッファ542に割り当てられている。
【0074】管理回路551は、以下の表2に示す複数
の内部レジスタを有し、現在処理中の走査ライン情報の
管理、ディスプレイリストバンドバッファ541および
エッジリストバッファ542へのアクセスの制御、ディ
スプレイリストデータのデコード処理、座標点生成回路
552の状態管理などの機能を備えるものである。
の内部レジスタを有し、現在処理中の走査ライン情報の
管理、ディスプレイリストバンドバッファ541および
エッジリストバッファ542へのアクセスの制御、ディ
スプレイリストデータのデコード処理、座標点生成回路
552の状態管理などの機能を備えるものである。
【0075】
【表2】
【0076】座標点生成回路552A〜552Dは、管
理回路551から1組ずつセルデータを入力し、走査ラ
イン毎に同期して最大4点のエッジデータを並列に生成
する機能を備えるものである。四つの座標点生成回路5
52A〜552Dは、すべて同一の構造を持つ。次に、
座標点生成回路552A〜552Dの具体的な回路構成
について説明するが、これらの構造がすべて同一なた
め、ここでは、座標点生成回路552Aで説明する。
理回路551から1組ずつセルデータを入力し、走査ラ
イン毎に同期して最大4点のエッジデータを並列に生成
する機能を備えるものである。四つの座標点生成回路5
52A〜552Dは、すべて同一の構造を持つ。次に、
座標点生成回路552A〜552Dの具体的な回路構成
について説明するが、これらの構造がすべて同一なた
め、ここでは、座標点生成回路552Aで説明する。
【0077】図18は座標点生成回路の回路構成を示す
ブロック図である。座標点生成回路552Aは、x座標
値を保持するXレジスタ5520と、エッジの傾きを保
持するΔXレジスタ5521と、交差数を保持するΔY
レジスタ5522と、Xレジスタ5520およびΔXレ
ジスタ5521の値を加算する加算器5523と、ΔY
レジスタ5522の値をデクリメントする演算器552
4と、二つのマルチプレクサ5525および5526
と、実数値を整数値へ変換する演算器5527と、ΔY
レジスタ5522の値を’0’と比較する比較器552
8とから構成される。
ブロック図である。座標点生成回路552Aは、x座標
値を保持するXレジスタ5520と、エッジの傾きを保
持するΔXレジスタ5521と、交差数を保持するΔY
レジスタ5522と、Xレジスタ5520およびΔXレ
ジスタ5521の値を加算する加算器5523と、ΔY
レジスタ5522の値をデクリメントする演算器552
4と、二つのマルチプレクサ5525および5526
と、実数値を整数値へ変換する演算器5527と、ΔY
レジスタ5522の値を’0’と比較する比較器552
8とから構成される。
【0078】入力X,ΔX,ΔYは、対応する各レジス
タの初期値であり、管理回路551から入力される。入
力XSEL,ΔYSELは、それぞれマルチプレクサ5
525および5526の出力値の切り替え制御信号、入
力XLD,ΔXLD,ΔYLDは、レジスタ5520〜
5522の書き込み制御信号であり、管理回路551か
ら入力される。出力CURXは、管理回路551のカレ
ントxレジスタCURXへ出力される。出力ENDは、
エッジの終了を管理回路551に通知するための制御信
号である。また、この例では、傾き情報ΔXは浮動小数
点データになるので、加算器5523の出力は演算器5
527にて整数値に変換されている。
タの初期値であり、管理回路551から入力される。入
力XSEL,ΔYSELは、それぞれマルチプレクサ5
525および5526の出力値の切り替え制御信号、入
力XLD,ΔXLD,ΔYLDは、レジスタ5520〜
5522の書き込み制御信号であり、管理回路551か
ら入力される。出力CURXは、管理回路551のカレ
ントxレジスタCURXへ出力される。出力ENDは、
エッジの終了を管理回路551に通知するための制御信
号である。また、この例では、傾き情報ΔXは浮動小数
点データになるので、加算器5523の出力は演算器5
527にて整数値に変換されている。
【0079】この座標点生成回路552Aによれば、上
半分の回路にて、アクティブエッジリストのxとΔxと
の加算処理を行い、下半分の回路ではアクティブエッジ
リストのΔyの減算処理を行っている。いずれも、加算
および減算の結果をマルチプレクサ5525および55
26に戻して、加算および減算を順次行うようにしてい
る。
半分の回路にて、アクティブエッジリストのxとΔxと
の加算処理を行い、下半分の回路ではアクティブエッジ
リストのΔyの減算処理を行っている。いずれも、加算
および減算の結果をマルチプレクサ5525および55
26に戻して、加算および減算を順次行うようにしてい
る。
【0080】次に、メモリ54に割り当てられたエッジ
リストバッファ542の中の構成およびエッジリストの
データ形式について説明する。図19はエッジリストバ
ッファの構成を示す図である。エッジリストデータは、
オブジェクトの色情報と最初に現れるエッジのy座標値
ystart とから成るヘッダ部と、エッジと各走査ライン
との交点の座標値を含むエッジリスト部とから構成され
る。エッジリストバッファ542は、エッジリストデー
タのヘッダ部を格納する領域と、エッジリスト部を格納
する領域とから構成される。エッジリストバッファ54
2のヘッダ部格納領域の先頭アドレスelhdadr
と、エッジリスト部格納領域の先頭アドレスyadr0
は、座標点生成LSI55の起動時に管理回路551の
ELヘッダアドレスレジスタELHDADRおよびEL
トップアドレスレジスタELTOPADRにそれぞれ書
き込まれる。エッジリストバッファ542のエッジリス
ト部格納領域は、1バンドのすべての走査ラインに対し
てそれぞれM個のx座標値を格納することができる。各
走査ラインのエッジリストの先頭には、そのラインにい
くつのx座標値が格納されているかを表すエッジデータ
数Piが格納される。したがって、各走査ラインにオブ
ジェクトがなければ、エッジデータ数は’0’となり、
エッジリストデータを処理するときには、エッジデータ
数が0であるところは読み飛ばしてオブジェクトのある
エッジリストバッファアドレスのところから処理が開始
される。1走査ラインに格納可能なx座標値の最大数M
の値は、256以上の2のべき乗数が望ましい。
リストバッファ542の中の構成およびエッジリストの
データ形式について説明する。図19はエッジリストバ
ッファの構成を示す図である。エッジリストデータは、
オブジェクトの色情報と最初に現れるエッジのy座標値
ystart とから成るヘッダ部と、エッジと各走査ライン
との交点の座標値を含むエッジリスト部とから構成され
る。エッジリストバッファ542は、エッジリストデー
タのヘッダ部を格納する領域と、エッジリスト部を格納
する領域とから構成される。エッジリストバッファ54
2のヘッダ部格納領域の先頭アドレスelhdadr
と、エッジリスト部格納領域の先頭アドレスyadr0
は、座標点生成LSI55の起動時に管理回路551の
ELヘッダアドレスレジスタELHDADRおよびEL
トップアドレスレジスタELTOPADRにそれぞれ書
き込まれる。エッジリストバッファ542のエッジリス
ト部格納領域は、1バンドのすべての走査ラインに対し
てそれぞれM個のx座標値を格納することができる。各
走査ラインのエッジリストの先頭には、そのラインにい
くつのx座標値が格納されているかを表すエッジデータ
数Piが格納される。したがって、各走査ラインにオブ
ジェクトがなければ、エッジデータ数は’0’となり、
エッジリストデータを処理するときには、エッジデータ
数が0であるところは読み飛ばしてオブジェクトのある
エッジリストバッファアドレスのところから処理が開始
される。1走査ラインに格納可能なx座標値の最大数M
の値は、256以上の2のべき乗数が望ましい。
【0081】次に図20〜23を用いて、上述したよう
に構成される座標点生成LSI55における、1オブジ
ェクトの座標点生成処理の流れを説明する。図20は座
標点生成LSIにおける1オブジェクトの座標点生成処
理の流れを示すフローチャートである。座標点生成LS
I55は、CPU50から座標点生成処理開始の通知を
受け取ると、ディスプレイリストデータのヘッダ部の処
理を開始する(ステップS31)。すなわち、まず、管
理回路551がメモリコントローラ53へディスプレイ
リストバンドバッファ541へのリードアクセス要求を
出す。アクセスが許可されると、管理回路551はDL
ヘッダアドレスレジスタDLHDADRに保持している
アドレスをメモリコントローラ53へ出力し、そのアド
レスからヘッダ部のデータを読み出して、一旦フェッチ
レジスタFETCHに格納する。また、次のステップS
32の処理に備えて、DLヘッダアドレスレジスタDL
HDADRに保持しているアドレスとヘッダサイズとか
らディスプレイリストバンドバッファ541のyリスト
部の先頭アドレスを算出し、その値をyリストアドレス
レジスタYLISTADRにセットする。
に構成される座標点生成LSI55における、1オブジ
ェクトの座標点生成処理の流れを説明する。図20は座
標点生成LSIにおける1オブジェクトの座標点生成処
理の流れを示すフローチャートである。座標点生成LS
I55は、CPU50から座標点生成処理開始の通知を
受け取ると、ディスプレイリストデータのヘッダ部の処
理を開始する(ステップS31)。すなわち、まず、管
理回路551がメモリコントローラ53へディスプレイ
リストバンドバッファ541へのリードアクセス要求を
出す。アクセスが許可されると、管理回路551はDL
ヘッダアドレスレジスタDLHDADRに保持している
アドレスをメモリコントローラ53へ出力し、そのアド
レスからヘッダ部のデータを読み出して、一旦フェッチ
レジスタFETCHに格納する。また、次のステップS
32の処理に備えて、DLヘッダアドレスレジスタDL
HDADRに保持しているアドレスとヘッダサイズとか
らディスプレイリストバンドバッファ541のyリスト
部の先頭アドレスを算出し、その値をyリストアドレス
レジスタYLISTADRにセットする。
【0082】オブジェクトが文字または図形の場合に
は、フェッチレジスタFETCH内のヘッダ情報が、色
情報とセル数と次ヘッダ部アドレスにデコードされて、
それぞれカラーレジスタCOLOR、セルカウンタレジ
スタNUMCELL、DLヘッダアドレスレジスタDL
HDADRに格納される。
は、フェッチレジスタFETCH内のヘッダ情報が、色
情報とセル数と次ヘッダ部アドレスにデコードされて、
それぞれカラーレジスタCOLOR、セルカウンタレジ
スタNUMCELL、DLヘッダアドレスレジスタDL
HDADRに格納される。
【0083】オブジェクトがラスタの場合には、フェッ
チレジスタFETCH内のヘッダ情報が、ラスタデータ
バッファアドレスとラスタデータサイズとセル数と次ヘ
ッダ部アドレスにデコードされる。管理回路551は、
デコードしたラスタデータバッファアドレスとラスタデ
ータサイズを印刷画像データ変換LSI56に出力し、
該ラスタデータをホストコンピュータ30のラスタデー
タバッファ15からラスタデータバンドバッファメモリ
58へ転送するよう指示する。デコードしたセル数と次
ヘッダ部アドレスは、それぞれセルカウンタレジスタN
UMCELL、DLヘッダアドレスレジスタDLHDA
DRに格納する。
チレジスタFETCH内のヘッダ情報が、ラスタデータ
バッファアドレスとラスタデータサイズとセル数と次ヘ
ッダ部アドレスにデコードされる。管理回路551は、
デコードしたラスタデータバッファアドレスとラスタデ
ータサイズを印刷画像データ変換LSI56に出力し、
該ラスタデータをホストコンピュータ30のラスタデー
タバッファ15からラスタデータバンドバッファメモリ
58へ転送するよう指示する。デコードしたセル数と次
ヘッダ部アドレスは、それぞれセルカウンタレジスタN
UMCELL、DLヘッダアドレスレジスタDLHDA
DRに格納する。
【0084】ステップS31でバンドの終了が検出され
た場合(NUMCELL=0の場合)は、以降の処理を
中断してバンドの終了をCPU50に通知し、次のバン
ドの処理に備えてDLヘッダアドレスレジスタDLHD
ADRをリセットして、座標点生成LSI55はアイド
ル状態になる。
た場合(NUMCELL=0の場合)は、以降の処理を
中断してバンドの終了をCPU50に通知し、次のバン
ドの処理に備えてDLヘッダアドレスレジスタDLHD
ADRをリセットして、座標点生成LSI55はアイド
ル状態になる。
【0085】次に、yリストの読み込みとデコードを行
うyリストの処理を行う(ステップS32)。まず、管
理回路551がメモリコントローラ53へディスプレイ
リストバンドバッファ541へのリードアクセス要求を
出す。アクセスが許可されると、管理回路551はyリ
ストアドレスレジスタYLISTADRに保持している
アドレスをメモリコントローラ53へ出力し、そのアド
レスからyバケットデータを読み出して、一旦フェッチ
レジスタFETCHに格納する。続いて、フェッチレジ
スタFETCH内のyバケットデータは、yバケットレ
ジスタYBUCKETにコピーされ、yリストアドレス
レジスタYLISTADRがインクリメントされる。最
初のyバケットを読み込んだ時のみ、そのy座標値がス
タートyレジスタSTARTYに格納される。
うyリストの処理を行う(ステップS32)。まず、管
理回路551がメモリコントローラ53へディスプレイ
リストバンドバッファ541へのリードアクセス要求を
出す。アクセスが許可されると、管理回路551はyリ
ストアドレスレジスタYLISTADRに保持している
アドレスをメモリコントローラ53へ出力し、そのアド
レスからyバケットデータを読み出して、一旦フェッチ
レジスタFETCHに格納する。続いて、フェッチレジ
スタFETCH内のyバケットデータは、yバケットレ
ジスタYBUCKETにコピーされ、yリストアドレス
レジスタYLISTADRがインクリメントされる。最
初のyバケットを読み込んだ時のみ、そのy座標値がス
タートyレジスタSTARTYに格納される。
【0086】次に、セルの読み込みとデコードを行い、
座標点生成回路552の内部レジスタを初期設定する
(ステップS33)。ここで、このステップS33の処
理の流れを、図21を用いて詳細に説明する。
座標点生成回路552の内部レジスタを初期設定する
(ステップS33)。ここで、このステップS33の処
理の流れを、図21を用いて詳細に説明する。
【0087】図21はセルの入力とレジスタ設定処理の
流れを示すフローチャートである。まず、セルの読み込
みを行う(ステップS41)。つまり、管理回路551
がメモリコントローラ53へディスプレイリストバンド
バッファ541へのリードアクセス要求を出し、アクセ
スが許可されると、管理回路551はyバケットレジス
タYBUCKETのセルポインタ部に保持しているアド
レスをメモリコントローラ53へ出力し、そのアドレス
からセルデータを読み出して、一旦フェッチレジスタF
ETCHに格納する。
流れを示すフローチャートである。まず、セルの読み込
みを行う(ステップS41)。つまり、管理回路551
がメモリコントローラ53へディスプレイリストバンド
バッファ541へのリードアクセス要求を出し、アクセ
スが許可されると、管理回路551はyバケットレジス
タYBUCKETのセルポインタ部に保持しているアド
レスをメモリコントローラ53へ出力し、そのアドレス
からセルデータを読み出して、一旦フェッチレジスタF
ETCHに格納する。
【0088】次に、フェッチレジスタFETCH内のセ
ルデータをデコードして、待機状態の座標点生成回路5
52の内部レジスタにセットする(ステップS42)。
まず、ステータスレジスタSTATUSの値をチェック
し、待機状態の座標点生成回路552を検出する。次
に、検出された座標点生成回路552にセルデータから
デコードしたx座標値とエッジの傾きΔxと交差数Δy
とを入力し、それぞれXレジスタ5520、ΔXレジス
タ5521、ΔYレジスタ5522へ格納する。ステー
タスレジスタSTATUSの上記検出された座標点生成
回路552の待機状態を表すビットは、処理中を表す’
0’に変更され、アイドルカウンタレジスタNUMID
LEはデクリメントされる。セルデータからデコードさ
れたx座標値は、始点を出力するためにカレントxレジ
スタCURXにもコピーされる。次に、セルデータの連
結フラグ部をデコードし、その値が継続を表す’1’な
らばyバケットレジスタYBUCKETのセルポインタ
部をインクリメントし、連結フラグの値が’0’(EO
C)ならばyバケットレジスタYBUCKETのセルポ
インタ部にnull値をセットする。さらに、セルカウ
ンタレジスタNUMCELLをデクリメントし、カレン
トyレジスタCURYにyバケットレジスタYBUCK
ETに格納しているy座標値をコピーする。
ルデータをデコードして、待機状態の座標点生成回路5
52の内部レジスタにセットする(ステップS42)。
まず、ステータスレジスタSTATUSの値をチェック
し、待機状態の座標点生成回路552を検出する。次
に、検出された座標点生成回路552にセルデータから
デコードしたx座標値とエッジの傾きΔxと交差数Δy
とを入力し、それぞれXレジスタ5520、ΔXレジス
タ5521、ΔYレジスタ5522へ格納する。ステー
タスレジスタSTATUSの上記検出された座標点生成
回路552の待機状態を表すビットは、処理中を表す’
0’に変更され、アイドルカウンタレジスタNUMID
LEはデクリメントされる。セルデータからデコードさ
れたx座標値は、始点を出力するためにカレントxレジ
スタCURXにもコピーされる。次に、セルデータの連
結フラグ部をデコードし、その値が継続を表す’1’な
らばyバケットレジスタYBUCKETのセルポインタ
部をインクリメントし、連結フラグの値が’0’(EO
C)ならばyバケットレジスタYBUCKETのセルポ
インタ部にnull値をセットする。さらに、セルカウ
ンタレジスタNUMCELLをデクリメントし、カレン
トyレジスタCURYにyバケットレジスタYBUCK
ETに格納しているy座標値をコピーする。
【0089】次に、現在処理しているyバケットにセル
リストが連結されているか否かを調べてセルポインタ部
の値がnullかどうかが判定される(ステップS4
3)。もし、yバケットレジスタYBUCKETのセル
ポインタ部の値がnullならば、現在処理しているy
バケットにはセルが連結されていないので、図20のセ
ルの入力とレジスタ設定処理のステップS33を終了す
る。nullでない場合は、セルリストが連結されてい
るので、再びセルを入力するかどうかを決定するため、
アイドルカウンタレジスタNUMIDLEの値をチェッ
クして、待機状態の座標点生成回路552の有無を調べ
る(ステップS44)。NUMIDLE=0の場合は、
すべての座標点生成回路552が処理状態にあるので、
図20のステップS33の処理を終了する。NUMID
LE>0の場合は、待機状態の座標点生成回路552が
存在するので、ステップS41に戻って、次のセルデー
タを読み込み、ステップS42以下の処理を繰り返す。
リストが連結されているか否かを調べてセルポインタ部
の値がnullかどうかが判定される(ステップS4
3)。もし、yバケットレジスタYBUCKETのセル
ポインタ部の値がnullならば、現在処理しているy
バケットにはセルが連結されていないので、図20のセ
ルの入力とレジスタ設定処理のステップS33を終了す
る。nullでない場合は、セルリストが連結されてい
るので、再びセルを入力するかどうかを決定するため、
アイドルカウンタレジスタNUMIDLEの値をチェッ
クして、待機状態の座標点生成回路552の有無を調べ
る(ステップS44)。NUMIDLE=0の場合は、
すべての座標点生成回路552が処理状態にあるので、
図20のステップS33の処理を終了する。NUMID
LE>0の場合は、待機状態の座標点生成回路552が
存在するので、ステップS41に戻って、次のセルデー
タを読み込み、ステップS42以下の処理を繰り返す。
【0090】図20に戻って、ステップS33で座標点
生成回路552にセルデータが設定されると、次のステ
ップS34で実際に座標点の生成と出力が行われる。こ
こで、ステップS34の処理の流れを図22を用いて詳
細に説明する。
生成回路552にセルデータが設定されると、次のステ
ップS34で実際に座標点の生成と出力が行われる。こ
こで、ステップS34の処理の流れを図22を用いて詳
細に説明する。
【0091】図22は座標点生成と出力処理の流れを示
すフローチャートである。まず、エッジの始点の座標値
をエッジリストバッファ542へ出力する(ステップS
51)。このステップS51の処理の詳細は、追って説
明する。続いて、次の走査ラインとエッジの交点の座標
値を計算する(ステップS52)。まず、カレントyレ
ジスタCURYの値がインクリメントされる。次に、処
理状態にある座標点生成回路552のXレジスタ552
0およびΔYレジスタ5522の値が、以下に示す式
(3)および式(4)に従って並列に更新される。
すフローチャートである。まず、エッジの始点の座標値
をエッジリストバッファ542へ出力する(ステップS
51)。このステップS51の処理の詳細は、追って説
明する。続いて、次の走査ラインとエッジの交点の座標
値を計算する(ステップS52)。まず、カレントyレ
ジスタCURYの値がインクリメントされる。次に、処
理状態にある座標点生成回路552のXレジスタ552
0およびΔYレジスタ5522の値が、以下に示す式
(3)および式(4)に従って並列に更新される。
【0092】
【数3】X=X+ΔX ……(3)
【0093】
【数4】ΔY=ΔY−1 ……(4) 最後に、更新されたXレジスタ5520の値が、演算器
5527によって整数化されてカレントxレジスタCU
RXへ格納される。カレントxレジスタCURXは、最
大で四つの座標点を格納できる大きさを持ち、必ず左詰
めで、最小有効ビット(LSB)側から有効なデータが
格納されるように管理されている。
5527によって整数化されてカレントxレジスタCU
RXへ格納される。カレントxレジスタCURXは、最
大で四つの座標点を格納できる大きさを持ち、必ず左詰
めで、最小有効ビット(LSB)側から有効なデータが
格納されるように管理されている。
【0094】次に、ステップS52で計算された座標値
をエッジリストバッファ542へ出力する(ステップS
53)。このステップS53の処理の詳細は、追って説
明する。次に、エッジの終点を出力した座標点生成回路
552を検出して、待機状態にする処理を行う(ステッ
プS54)。エッジの終点を出力し、ΔYレジスタ55
22の値が’0’になった座標点生成回路552は、E
ND=’1’を出力する。管理回路551では、アクテ
ィブになったEND信号を検出し、ステータスレジスタ
STATUSの該当する座標点生成回路552の状態を
表すビットを、待機中を表す’1’に変更する。またア
イドルカウンタレジスタNUMIDLEに、検出された
座標点生成回路552の個数を加算する。
をエッジリストバッファ542へ出力する(ステップS
53)。このステップS53の処理の詳細は、追って説
明する。次に、エッジの終点を出力した座標点生成回路
552を検出して、待機状態にする処理を行う(ステッ
プS54)。エッジの終点を出力し、ΔYレジスタ55
22の値が’0’になった座標点生成回路552は、E
ND=’1’を出力する。管理回路551では、アクテ
ィブになったEND信号を検出し、ステータスレジスタ
STATUSの該当する座標点生成回路552の状態を
表すビットを、待機中を表す’1’に変更する。またア
イドルカウンタレジスタNUMIDLEに、検出された
座標点生成回路552の個数を加算する。
【0095】そして、すべての座標点生成回路552が
待機中か否かを調べる(ステップS55)。ここで、ア
イドルカウンタレジスタNUMIDLEの値が4に等し
ければ、座標点生成回路552A〜552Dはすべて待
機状態にあるので、図20のステップS34を終了す
る。もし、NUMIDLE<4ならば、処理中の座標点
生成回路552が存在するので、ステップS52に戻
り、次の走査ラインの座標点生成と出力を繰り返す。
待機中か否かを調べる(ステップS55)。ここで、ア
イドルカウンタレジスタNUMIDLEの値が4に等し
ければ、座標点生成回路552A〜552Dはすべて待
機状態にあるので、図20のステップS34を終了す
る。もし、NUMIDLE<4ならば、処理中の座標点
生成回路552が存在するので、ステップS52に戻
り、次の走査ラインの座標点生成と出力を繰り返す。
【0096】ここで、ステップS51およびステップS
53における座標点出力処理の流れを図23を用いて、
詳細に説明する。図23は座標点出力処理の流れを示す
フローチャートである。まず、管理回路551は、メモ
リコントローラ53へエッジリストバッファ542への
アクセス要求を出し、並行してアクセス先のアドレスを
計算する(ステップS61)。現在処理中の走査ライン
に対応するエッジデータ数が格納されているエッジリス
トバッファアドレスは、カレントyレジスタCURYの
値を用いて、
53における座標点出力処理の流れを図23を用いて、
詳細に説明する。図23は座標点出力処理の流れを示す
フローチャートである。まず、管理回路551は、メモ
リコントローラ53へエッジリストバッファ542への
アクセス要求を出し、並行してアクセス先のアドレスを
計算する(ステップS61)。現在処理中の走査ライン
に対応するエッジデータ数が格納されているエッジリス
トバッファアドレスは、カレントyレジスタCURYの
値を用いて、
【0097】
【数5】 ELTOPADR+B*M*CURY ……(5) により計算され、エッジリストバッファアドレスレジス
タELBADRに格納される。式(5)において、EL
TOPADRはエッジリストバッファ542のエッジリ
スト部の先頭アドレスが格納されているELトップアド
レスレジスタELTOPADRの値を表し、Bは一つの
x座標値を表現するために必要なバイト数を表す。Bと
Mが共に2のべき乗数である場合は、式(5)はハード
ウェアにより1クロックサイクルで計算される。
タELBADRに格納される。式(5)において、EL
TOPADRはエッジリストバッファ542のエッジリ
スト部の先頭アドレスが格納されているELトップアド
レスレジスタELTOPADRの値を表し、Bは一つの
x座標値を表現するために必要なバイト数を表す。Bと
Mが共に2のべき乗数である場合は、式(5)はハード
ウェアにより1クロックサイクルで計算される。
【0098】次に、メモリコントローラ53によりエッ
ジリストバッファ542へのアクセスが許可されると、
管理回路551はステップS61で計算したアドレスを
メモリコントローラ53へ出力し、そのアドレスからエ
ッジデータ数を読み込んで、一旦フェッチレジスタFE
TCHに格納する(ステップS62)。
ジリストバッファ542へのアクセスが許可されると、
管理回路551はステップS61で計算したアドレスを
メモリコントローラ53へ出力し、そのアドレスからエ
ッジデータ数を読み込んで、一旦フェッチレジスタFE
TCHに格納する(ステップS62)。
【0099】次に、フェッチレジスタFETCH内のエ
ッジデータ数に(4−NUMIDLE)の値を加算し、
結果をエッジリストバッファ542の読み込んだ時と同
一のアドレスへ書き込む(ステップS63)。
ッジデータ数に(4−NUMIDLE)の値を加算し、
結果をエッジリストバッファ542の読み込んだ時と同
一のアドレスへ書き込む(ステップS63)。
【0100】最後に、まず、エッジリストバッファアド
レスレジスタELBADRに、フェッチレジスタFET
CH内のエッジデータ数にBを乗じた値を加え、続い
て、このアドレスへカレントxレジスタCURXの値を
書き込む(ステップS64)。以上でステップS51ま
たはステップS53の座標点出力の処理は終了する。
レスレジスタELBADRに、フェッチレジスタFET
CH内のエッジデータ数にBを乗じた値を加え、続い
て、このアドレスへカレントxレジスタCURXの値を
書き込む(ステップS64)。以上でステップS51ま
たはステップS53の座標点出力の処理は終了する。
【0101】図20に戻って、ステップS34の処理が
終了すると、次に、セルカウンタレジスタNUMCEL
Lの値がチェックされる(ステップS35)。ここで、
NUMCELL>0ならば、yバケットレジスタYBU
CKETに格納されているセルポインタの値がチェック
される(ステップS36)。もし、セルポインタの値が
nullならばステップS32へ戻り、null以外な
らばステップS33へ戻る。ステップS35において、
NUMCELL=0ならば、オブジェクトのヘッダ情報
をエッジリストバッファ542へ書き込み、一連の座標
点生成処理を終了する(ステップS37)。まず、管理
回路551がメモリコントローラ53へエッジリストバ
ッファ542へのライトアクセス要求を出す。アクセス
が許可されると、管理回路551はエッジリストヘッダ
アドレスレジスタELHDADRに保持しているアドレ
スをメモリコントローラ53へ出力し、そのアドレスに
カラーレジスタCOLORおよびスタートyレジスタS
TARTYの値を書き込む。次に、1オブジェクト分の
座標点生成処理が終了したことをCPU50に通知し
て、座標点生成LSI55はアイドル状態になる。
終了すると、次に、セルカウンタレジスタNUMCEL
Lの値がチェックされる(ステップS35)。ここで、
NUMCELL>0ならば、yバケットレジスタYBU
CKETに格納されているセルポインタの値がチェック
される(ステップS36)。もし、セルポインタの値が
nullならばステップS32へ戻り、null以外な
らばステップS33へ戻る。ステップS35において、
NUMCELL=0ならば、オブジェクトのヘッダ情報
をエッジリストバッファ542へ書き込み、一連の座標
点生成処理を終了する(ステップS37)。まず、管理
回路551がメモリコントローラ53へエッジリストバ
ッファ542へのライトアクセス要求を出す。アクセス
が許可されると、管理回路551はエッジリストヘッダ
アドレスレジスタELHDADRに保持しているアドレ
スをメモリコントローラ53へ出力し、そのアドレスに
カラーレジスタCOLORおよびスタートyレジスタS
TARTYの値を書き込む。次に、1オブジェクト分の
座標点生成処理が終了したことをCPU50に通知し
て、座標点生成LSI55はアイドル状態になる。
【0102】次に、図2に示したソート部20について
詳細に説明する。まず、ソート部20における処理の流
れの概要を図24を参照して説明する。図24はソート
部における処理の流れを示すフローチャートである。ソ
ート部20において、まず、エッジリストバッファ21
のアドレスelhdadrに格納されているヘッダ情報
を読み込む(ステップS71)。次に、ヘッダ情報中の
ystart の値により、最初に読み込むエッジリストバッ
ファアドレスyadr を設定する(ステップS72)。そ
して、エッジリストバッファアドレスyadr から、エッ
ジデータ数Pi を読み込む(ステップS73)。
詳細に説明する。まず、ソート部20における処理の流
れの概要を図24を参照して説明する。図24はソート
部における処理の流れを示すフローチャートである。ソ
ート部20において、まず、エッジリストバッファ21
のアドレスelhdadrに格納されているヘッダ情報
を読み込む(ステップS71)。次に、ヘッダ情報中の
ystart の値により、最初に読み込むエッジリストバッ
ファアドレスyadr を設定する(ステップS72)。そ
して、エッジリストバッファアドレスyadr から、エッ
ジデータ数Pi を読み込む(ステップS73)。
【0103】ここで、読み込んだエッジデータ数Pi が
0か否かを判定する(ステップS74)。0の場合は、
現在のエッジリストバッファアドレスyadr が示すバッ
ファも含めて、それ以降のエッジリストバッファ中に
は、エッジデータは存在しないので、ソート処理を終了
する。エッジデータ数Pi が0でない場合は、エッジデ
ータが存在するので、その読み込んだエッジデータ数P
i と設定値との大小判定を行う(ステップS75)。こ
こでは、設定値=1としてある。エッジデータ数Pi と
設定値との比較の結果、エッジデータ数が設定値より大
きい場合は、現在のエッジリストバッファアドレスy
adr が示すバッファ中のエッジデータのソートが必要と
判定され、現在のエッジリストバッファアドレスyadr
が示すバッファ中に存在するエッジデータを、x座標の
値の小さい順にソートする(ステップS76)。ソート
が終了すると、あるいはステップS75の判定にて、エ
ッジデータ数Pi が設定値以下で、現在のエッジリスト
バッファアドレスyadr が示すバッファ中のエッジデー
タのソートは必要ないと判定された場合には、エッジリ
ストバッファアドレスyadr を次の走査ラインに対応す
るアドレスに設定する(ステップS77)。そして、ア
ドレスがエッジリストバッファ領域を超えたかどうかを
判定する(ステップS78)。ここで、アドレスがエッ
ジリストバッファ領域を超えていない場合は、ステップ
S73に処理を移して繰り返しソート処理を行う。も
し、アドレスがエッジリストバッファ領域を超えた場合
には、ソート処理を終了する。
0か否かを判定する(ステップS74)。0の場合は、
現在のエッジリストバッファアドレスyadr が示すバッ
ファも含めて、それ以降のエッジリストバッファ中に
は、エッジデータは存在しないので、ソート処理を終了
する。エッジデータ数Pi が0でない場合は、エッジデ
ータが存在するので、その読み込んだエッジデータ数P
i と設定値との大小判定を行う(ステップS75)。こ
こでは、設定値=1としてある。エッジデータ数Pi と
設定値との比較の結果、エッジデータ数が設定値より大
きい場合は、現在のエッジリストバッファアドレスy
adr が示すバッファ中のエッジデータのソートが必要と
判定され、現在のエッジリストバッファアドレスyadr
が示すバッファ中に存在するエッジデータを、x座標の
値の小さい順にソートする(ステップS76)。ソート
が終了すると、あるいはステップS75の判定にて、エ
ッジデータ数Pi が設定値以下で、現在のエッジリスト
バッファアドレスyadr が示すバッファ中のエッジデー
タのソートは必要ないと判定された場合には、エッジリ
ストバッファアドレスyadr を次の走査ラインに対応す
るアドレスに設定する(ステップS77)。そして、ア
ドレスがエッジリストバッファ領域を超えたかどうかを
判定する(ステップS78)。ここで、アドレスがエッ
ジリストバッファ領域を超えていない場合は、ステップ
S73に処理を移して繰り返しソート処理を行う。も
し、アドレスがエッジリストバッファ領域を超えた場合
には、ソート処理を終了する。
【0104】以上がソート部20における処理の流れの
概要である。次に、ステップS76のエッジデータのソ
ート方法について詳細に説明する。図25はソート部に
おけるソート方法を示す説明図である。入力されたn個
のエッジデータは(A)で示してある。このn個のエッ
ジデータのうち、まず、真ん中に位置するn/2番目の
エッジデータ値xに着目する。次に、全エッジデータに
対して、(B)に示したように、エッジデータ値xより
も小さいか否かにより、それぞれのエッジデータをエッ
ジデータ値x以下(1〜i)のものと、エッジデータ値
x以上(j〜n)であるものとに振り分ける。今度は、
(C)に示したように、1〜iまでのエッジデータおよ
びj〜nまでのエッジデータそれぞれに対して、上記で
述べた方法で振り分ける。これを、すべてのエッジデー
タが値の小さい順にソートされるまで再帰的に繰り返
す。これにより、(D)に示したように、順不同で入力
されたエッジデータはソートされることになる。次に、
ソート部20でこのソート方法を実現するソフトウェア
の機能構成について説明する。
概要である。次に、ステップS76のエッジデータのソ
ート方法について詳細に説明する。図25はソート部に
おけるソート方法を示す説明図である。入力されたn個
のエッジデータは(A)で示してある。このn個のエッ
ジデータのうち、まず、真ん中に位置するn/2番目の
エッジデータ値xに着目する。次に、全エッジデータに
対して、(B)に示したように、エッジデータ値xより
も小さいか否かにより、それぞれのエッジデータをエッ
ジデータ値x以下(1〜i)のものと、エッジデータ値
x以上(j〜n)であるものとに振り分ける。今度は、
(C)に示したように、1〜iまでのエッジデータおよ
びj〜nまでのエッジデータそれぞれに対して、上記で
述べた方法で振り分ける。これを、すべてのエッジデー
タが値の小さい順にソートされるまで再帰的に繰り返
す。これにより、(D)に示したように、順不同で入力
されたエッジデータはソートされることになる。次に、
ソート部20でこのソート方法を実現するソフトウェア
の機能構成について説明する。
【0105】図26はソート部の構成例を示すブロック
図である。ソート部20は、エッジデータ入力部201
と、ソートバッファ202と、エッジデータ出力部20
3と、ソート処理管理部204と、中点値選択部205
と、エッジデータ判定部206と、エッジデータ分別部
207とから構成される。
図である。ソート部20は、エッジデータ入力部201
と、ソートバッファ202と、エッジデータ出力部20
3と、ソート処理管理部204と、中点値選択部205
と、エッジデータ判定部206と、エッジデータ分別部
207とから構成される。
【0106】エッジデータ入力部201はエッジリスト
バッファ21からエッジデータが入力され、入力された
エッジデータはソートバッファ202に一時的に蓄えら
れる。エッジデータ出力部203はソートバッファ20
2内の最終的にソートされたエッジデータをエッジリス
トバッファ21へ出力する。ソート処理管理部204は
ソートすべきエッジデータ数の設定などのソート処理全
体を管理する。中点値選択部205はソートバッファ2
02内のエッジデータに対して(エッジデータ数/2)
番目の値を選択する。エッジデータ判定部206は(エ
ッジデータ数/2)番目の値とエッジデータ値との大小
比較を行い、エッジデータ分別部207はエッジデータ
判定部206の比較結果に従い、エッジデータを振り分
ける機能を有する。
バッファ21からエッジデータが入力され、入力された
エッジデータはソートバッファ202に一時的に蓄えら
れる。エッジデータ出力部203はソートバッファ20
2内の最終的にソートされたエッジデータをエッジリス
トバッファ21へ出力する。ソート処理管理部204は
ソートすべきエッジデータ数の設定などのソート処理全
体を管理する。中点値選択部205はソートバッファ2
02内のエッジデータに対して(エッジデータ数/2)
番目の値を選択する。エッジデータ判定部206は(エ
ッジデータ数/2)番目の値とエッジデータ値との大小
比較を行い、エッジデータ分別部207はエッジデータ
判定部206の比較結果に従い、エッジデータを振り分
ける機能を有する。
【0107】次に、上述したように構成されるソート部
20におけるソート処理の流れを図27のフローチャー
トを用いて詳細に説明する。図27はソート部の処理の
流れを示すフローチャートである。エッジデータ入力部
201に入力されたエッジデータは、まず、ソートバッ
ファ202に蓄えられる。ここで、ソート処理管理部2
04により、エッジデータの個数nが算出される。ただ
し、1回目のソート処理の場合は、エッジリストバッフ
ァ21中のエッジデータ(ED)の数の値はnと設定す
る。また、first値i=1、last値j=nも設
定する(ステップS81)。次に、中点値選択部205
により、エッジデータの(n/2)番目の値xを選択す
る(ステップS82)。
20におけるソート処理の流れを図27のフローチャー
トを用いて詳細に説明する。図27はソート部の処理の
流れを示すフローチャートである。エッジデータ入力部
201に入力されたエッジデータは、まず、ソートバッ
ファ202に蓄えられる。ここで、ソート処理管理部2
04により、エッジデータの個数nが算出される。ただ
し、1回目のソート処理の場合は、エッジリストバッフ
ァ21中のエッジデータ(ED)の数の値はnと設定す
る。また、first値i=1、last値j=nも設
定する(ステップS81)。次に、中点値選択部205
により、エッジデータの(n/2)番目の値xを選択す
る(ステップS82)。
【0108】次に、エッジデータ判定部206にて、ソ
ートバッファ202の中の値xとi番目のエッジデータ
の値との比較を行い(ステップS83)、値xが大きけ
れば、iをインクリメントする(ステップS84)。i
をインクリメントしていって、値xが大きくなくなれ
ば、次に、ソートバッファ202の中の値xとj番目の
エッジデータの値との比較を行い(ステップS85)、
値xが小さければ、jをデクリメントする(ステップS
86)。jをデクリメントしていって、値xが小さくな
れば、エッジデータ判定部206で振り分けが必要と判
定されたエッジデータに対して、エッジデータ分別部2
07により、エッジデータの振り分けを行い、振り分け
た結果をソートバッファ202に出力する(ステップS
87)。
ートバッファ202の中の値xとi番目のエッジデータ
の値との比較を行い(ステップS83)、値xが大きけ
れば、iをインクリメントする(ステップS84)。i
をインクリメントしていって、値xが大きくなくなれ
ば、次に、ソートバッファ202の中の値xとj番目の
エッジデータの値との比較を行い(ステップS85)、
値xが小さければ、jをデクリメントする(ステップS
86)。jをデクリメントしていって、値xが小さくな
れば、エッジデータ判定部206で振り分けが必要と判
定されたエッジデータに対して、エッジデータ分別部2
07により、エッジデータの振り分けを行い、振り分け
た結果をソートバッファ202に出力する(ステップS
87)。
【0109】次に、ソート処理管理部204にて、iと
jとを比較し、ソートバッファ202の中の全エッジデ
ータに対して、値xとの大小比較が完了したかどうかを
判定する(ステップS88)。ここで、完了していない
場合は、ステップS83からステップS87の処理を繰
り返す。値xとの大小比較がすべて完了している場合に
は、ソート処理管理部204により、iが1より大きい
かどうかを判定し(ステップS89)、iがまだ1より
大きい場合には値xにより振り分けられた1〜iまでの
エッジデータに対して、ステップS81からステップS
88までの処理を繰り返し行うようにする。iが1の場
合には、ソート処理管理部204により、jがnより小
さいかどうかを判定し(ステップS90)、jがまだn
より小さい場合には値xにより振り分けられたj〜nま
でのエッジデータに対して、ステップS81からステッ
プS89までの処理を繰り返し行うようにする。これに
より、すべてのエッジデータがxの値の小さい順にソー
トされることになる。
jとを比較し、ソートバッファ202の中の全エッジデ
ータに対して、値xとの大小比較が完了したかどうかを
判定する(ステップS88)。ここで、完了していない
場合は、ステップS83からステップS87の処理を繰
り返す。値xとの大小比較がすべて完了している場合に
は、ソート処理管理部204により、iが1より大きい
かどうかを判定し(ステップS89)、iがまだ1より
大きい場合には値xにより振り分けられた1〜iまでの
エッジデータに対して、ステップS81からステップS
88までの処理を繰り返し行うようにする。iが1の場
合には、ソート処理管理部204により、jがnより小
さいかどうかを判定し(ステップS90)、jがまだn
より小さい場合には値xにより振り分けられたj〜nま
でのエッジデータに対して、ステップS81からステッ
プS89までの処理を繰り返し行うようにする。これに
より、すべてのエッジデータがxの値の小さい順にソー
トされることになる。
【0110】上記の処理がすべて終了し、ソートバッフ
ァ202中の全エッジデータがソートされると、エッジ
データ出力部203は、エッジリストバッファ21にソ
ートバッファ202中のエッジデータを出力する。
ァ202中の全エッジデータがソートされると、エッジ
データ出力部203は、エッジリストバッファ21にソ
ートバッファ202中のエッジデータを出力する。
【0111】次に、印刷画像データ変換部22を実装す
る印刷画像データ変換LSI56について詳細に説明す
る。図28は印刷画像データ変換LSIの構成を示すブ
ロック図である。図28において、印刷画像データ変換
LSI56は、エッジリスト入力回路561と、データ
演算回路562と、アドレス計算回路563と、メモリ
描画回路564と、ラスタデータ転送回路565とから
構成される。また、印刷画像データ変換LSI56は、
メモリ54内のエッジリストバッファ542にはカード
内部バス61に接続されているメモリコントローラ53
を介してアクセスし、出力バッファ57およびラスタデ
ータバンドバッファ58にはローカルバスを用いて直接
アクセスする構成になっている。この構成により、出力
バッファ57あるいはラスタデータバンドバッファ58
との高速なデータ転送を実現している。
る印刷画像データ変換LSI56について詳細に説明す
る。図28は印刷画像データ変換LSIの構成を示すブ
ロック図である。図28において、印刷画像データ変換
LSI56は、エッジリスト入力回路561と、データ
演算回路562と、アドレス計算回路563と、メモリ
描画回路564と、ラスタデータ転送回路565とから
構成される。また、印刷画像データ変換LSI56は、
メモリ54内のエッジリストバッファ542にはカード
内部バス61に接続されているメモリコントローラ53
を介してアクセスし、出力バッファ57およびラスタデ
ータバンドバッファ58にはローカルバスを用いて直接
アクセスする構成になっている。この構成により、出力
バッファ57あるいはラスタデータバンドバッファ58
との高速なデータ転送を実現している。
【0112】エッジリスト入力回路561は、エッジリ
ストバッファ542からエッジリストデータを読み込
み、オブジェクトのヘッダ情報あるいは描画する線分の
始点および終点の座標値をデコードして、データ演算回
路562およびアドレス計算回路563へ出力する機能
を備えるものである。
ストバッファ542からエッジリストデータを読み込
み、オブジェクトのヘッダ情報あるいは描画する線分の
始点および終点の座標値をデコードして、データ演算回
路562およびアドレス計算回路563へ出力する機能
を備えるものである。
【0113】データ演算回路562は、描画するオブジ
ェクトが文字または図形の場合にはオブジェクトによっ
て固定的な色を表す色データを入力し、この値を用いて
スクリーン処理を行って、メモリ描画回路564へ出力
する機能を備える。描画するオブジェクトがラスタの場
合には、入力されるラスタデータに対してスクリーン処
理を行って、メモリ描画回路564へ出力する機能を備
える。
ェクトが文字または図形の場合にはオブジェクトによっ
て固定的な色を表す色データを入力し、この値を用いて
スクリーン処理を行って、メモリ描画回路564へ出力
する機能を備える。描画するオブジェクトがラスタの場
合には、入力されるラスタデータに対してスクリーン処
理を行って、メモリ描画回路564へ出力する機能を備
える。
【0114】アドレス計算回路563は、描画する線分
の始点および終点の座標値を入力して、始点に対応する
出力バッファアドレスと描画する線分のワード長とを計
算して、メモリ描画回路564へ出力するものである。
の始点および終点の座標値を入力して、始点に対応する
出力バッファアドレスと描画する線分のワード長とを計
算して、メモリ描画回路564へ出力するものである。
【0115】メモリ描画回路564は、入力されたアド
レスと描画データとを用いて、描画する線分を表すすべ
てのワードにデータが書き込まれるまで、出力バッファ
57への描画処理を繰り返し行う機能を備えるものであ
る。
レスと描画データとを用いて、描画する線分を表すすべ
てのワードにデータが書き込まれるまで、出力バッファ
57への描画処理を繰り返し行う機能を備えるものであ
る。
【0116】ラスタデータ転送回路565は、描画する
オブジェクトがラスタの場合に、座標点生成LSI55
から通知を受けて、描画する1バンド分のラスタデータ
を、ホストコンピュータ30にラスタデータバッファ1
5として使用されるDRAM33からラスタデータバン
ドバッファ58へ転送する機能を備える。また、ラスタ
データをラスタデータバンドバッファ58から読み出し
てデータ演算回路562へ出力する機能を備える。
オブジェクトがラスタの場合に、座標点生成LSI55
から通知を受けて、描画する1バンド分のラスタデータ
を、ホストコンピュータ30にラスタデータバッファ1
5として使用されるDRAM33からラスタデータバン
ドバッファ58へ転送する機能を備える。また、ラスタ
データをラスタデータバンドバッファ58から読み出し
てデータ演算回路562へ出力する機能を備える。
【0117】次に、上述したように構成される印刷画像
データ変換LSI56における、描画処理の流れについ
て説明する。印刷画像データ変換LSI56は、描画処
理カード38のCPU50から1オブジェクトの描画処
理開始の通知を受け取ると、まずエッジリスト入力回路
561がエッジリストバッファ542からエッジリスト
のヘッダ部を読み込んで、オブジェクトの色情報と最初
のy座標値とにデコードし、内部レジスタに格納する。
次に、式(5)に従って最初のy座標値に対応するエッ
ジリストバッファアドレスが計算され、そのアドレスか
らエッジデータ数Pi を読み込んで内部レジスタに格納
する。その後、座標点データを二つずつ読み込んで出力
バッファ57へ描画するという処理を繰り返す。座標点
データを二つずつ読み込む度に、エッジデータ数Pi を
格納しているレジスタを二つずつデクリメントし、その
レジスタの値が0になったら次の走査ラインの処理に移
る。エッジリスト入力回路561によってデコードされ
た二つのx座標値(xj ,xj+1 )と現在の走査ライン
を表すy座標値yi は、データ演算回路562とアドレ
ス計算回路563へ出力される。エッジリストヘッダか
らデコードされたオブジェクトの色情報は、データ演算
回路562へ出力される。データ演算回路562では、
入力された色データと座標値データを用いてスクリーン
処理を行い、1または複数のワード分の描画データを生
成して、メモリ描画回路564へ出力する。アドレス計
算回路563では、入力された座標値を用いて、次式、
データ変換LSI56における、描画処理の流れについ
て説明する。印刷画像データ変換LSI56は、描画処
理カード38のCPU50から1オブジェクトの描画処
理開始の通知を受け取ると、まずエッジリスト入力回路
561がエッジリストバッファ542からエッジリスト
のヘッダ部を読み込んで、オブジェクトの色情報と最初
のy座標値とにデコードし、内部レジスタに格納する。
次に、式(5)に従って最初のy座標値に対応するエッ
ジリストバッファアドレスが計算され、そのアドレスか
らエッジデータ数Pi を読み込んで内部レジスタに格納
する。その後、座標点データを二つずつ読み込んで出力
バッファ57へ描画するという処理を繰り返す。座標点
データを二つずつ読み込む度に、エッジデータ数Pi を
格納しているレジスタを二つずつデクリメントし、その
レジスタの値が0になったら次の走査ラインの処理に移
る。エッジリスト入力回路561によってデコードされ
た二つのx座標値(xj ,xj+1 )と現在の走査ライン
を表すy座標値yi は、データ演算回路562とアドレ
ス計算回路563へ出力される。エッジリストヘッダか
らデコードされたオブジェクトの色情報は、データ演算
回路562へ出力される。データ演算回路562では、
入力された色データと座標値データを用いてスクリーン
処理を行い、1または複数のワード分の描画データを生
成して、メモリ描画回路564へ出力する。アドレス計
算回路563では、入力された座標値を用いて、次式、
【0118】
【数6】 startadr+xj+wpsl*yi ……(6) により、描画する線分の始点(xj ,yi )が格納され
る出力バッファアドレスを計算する。式(6)におい
て、startadrは座標原点(0,0)が格納され
る出力バッファアドレスを表す定数であり、wpslは
1走査ラインを格納するのに必要な出力バッファ57の
ワード数を表す定数である。またアドレス計算回路56
3では、入力された二つのx座標値(xj ,xj+1 )か
ら、描画する線分のワード長を計算する。計算された始
点アドレスと線分の長さは、メモリ描画回路564へ出
力される。メモリ描画回路564では、入力された始点
アドレスから順次、入力された描画データを出力バッフ
ァ57へ書き込む。この時、1ワード描画する毎に線分
の長さを格納したレジスタの値をデクリメントしてい
き、該レジスタの値が0になったら線分の描画を終了す
る。描画するオブジェクトがラスタの場合は、1ワード
毎にラスタデータバンドバッファ58から描画するデー
タを読み出して、データ演算回路562でスクリーン処
理を行い、メモリ描画回路564が出力バッファ57へ
描画する。
る出力バッファアドレスを計算する。式(6)におい
て、startadrは座標原点(0,0)が格納され
る出力バッファアドレスを表す定数であり、wpslは
1走査ラインを格納するのに必要な出力バッファ57の
ワード数を表す定数である。またアドレス計算回路56
3では、入力された二つのx座標値(xj ,xj+1 )か
ら、描画する線分のワード長を計算する。計算された始
点アドレスと線分の長さは、メモリ描画回路564へ出
力される。メモリ描画回路564では、入力された始点
アドレスから順次、入力された描画データを出力バッフ
ァ57へ書き込む。この時、1ワード描画する毎に線分
の長さを格納したレジスタの値をデクリメントしてい
き、該レジスタの値が0になったら線分の描画を終了す
る。描画するオブジェクトがラスタの場合は、1ワード
毎にラスタデータバンドバッファ58から描画するデー
タを読み出して、データ演算回路562でスクリーン処
理を行い、メモリ描画回路564が出力バッファ57へ
描画する。
【0119】以上はエッジデータをオブジェクト毎でし
かもエッジの開始点毎に座標点生成回路に入力し、すべ
ての座標点生成回路での処理が終了したら、次のエッジ
データを処理していくようにしたが、この場合、エッジ
データの数によりすべての座標点生成回路が常に同時に
処理中とは限らないので、待機中の座標点生成回路が発
生してくる。次に、このような座標点生成回路がないよ
うに有効利用した本発明の第2の実施の形態について説
明する。
かもエッジの開始点毎に座標点生成回路に入力し、すべ
ての座標点生成回路での処理が終了したら、次のエッジ
データを処理していくようにしたが、この場合、エッジ
データの数によりすべての座標点生成回路が常に同時に
処理中とは限らないので、待機中の座標点生成回路が発
生してくる。次に、このような座標点生成回路がないよ
うに有効利用した本発明の第2の実施の形態について説
明する。
【0120】図29は第2の実施の形態での座標点生成
LSIの構成例を示すブロック図である。図29におい
て、座標点生成LSI55は、管理回路551と、四つ
の座標点生成回路552A〜552Dと、部分ソート回
路553とから構成されている。さらに、管理回路55
1にはエッジデータ追加処理回路5511が含まれてい
る。また、座標点生成LSI55はカード内部バス61
に接続されているメモリコントローラ53を介してメモ
リ54に割り当てられたディスプレイリストバンドバッ
ファ541およびエッジリストバッファ542にアクセ
スする構成になっている。
LSIの構成例を示すブロック図である。図29におい
て、座標点生成LSI55は、管理回路551と、四つ
の座標点生成回路552A〜552Dと、部分ソート回
路553とから構成されている。さらに、管理回路55
1にはエッジデータ追加処理回路5511が含まれてい
る。また、座標点生成LSI55はカード内部バス61
に接続されているメモリコントローラ53を介してメモ
リ54に割り当てられたディスプレイリストバンドバッ
ファ541およびエッジリストバッファ542にアクセ
スする構成になっている。
【0121】管理回路551は、以下の表3に示す複数
の内部レジスタを有し、現在処理中の走査ライン情報の
管理、ディスプレイリストバンドバッファ541および
エッジリストバッファ542へのアクセス制御、座標点
生成回路552の状態管理、エッジデータの追加判定処
理、ディスプレイリストデータのデコードおよび再構成
処理、部分ソート回路553で生成されたエッジデータ
の内部レジスタ格納処理といった機能を備えたものであ
る。
の内部レジスタを有し、現在処理中の走査ライン情報の
管理、ディスプレイリストバンドバッファ541および
エッジリストバッファ542へのアクセス制御、座標点
生成回路552の状態管理、エッジデータの追加判定処
理、ディスプレイリストデータのデコードおよび再構成
処理、部分ソート回路553で生成されたエッジデータ
の内部レジスタ格納処理といった機能を備えたものであ
る。
【0122】
【表3】
【0123】座標点生成回路552A〜552Dは、管
理回路551から1組ずつセルデータを入力し、走査ラ
イン毎に同期して最大4点のエッジデータを並列に生成
する機能を備えるものである。四つの座標点生成回路5
52A〜552Dは、すべて同一の構造を持つ。部分ソ
ート回路553は、座標点生成回路552で生成された
複数のエッジデータを昇順に並べ換える機能を備えたも
のである。
理回路551から1組ずつセルデータを入力し、走査ラ
イン毎に同期して最大4点のエッジデータを並列に生成
する機能を備えるものである。四つの座標点生成回路5
52A〜552Dは、すべて同一の構造を持つ。部分ソ
ート回路553は、座標点生成回路552で生成された
複数のエッジデータを昇順に並べ換える機能を備えたも
のである。
【0124】次に、上述した各部のうち管理回路551
中のエッジデータ追加処理回路5511、座標点生成回
路552、部分ソート回路553の構成および動作につ
いて更に詳細に説明する。また、エッジリストバッファ
542の構成についても詳細に説明する。
中のエッジデータ追加処理回路5511、座標点生成回
路552、部分ソート回路553の構成および動作につ
いて更に詳細に説明する。また、エッジリストバッファ
542の構成についても詳細に説明する。
【0125】図30はエッジデータ追加処理回路の構成
例を示すブロック図である。管理回路551内に設けら
れたエッジデータ追加処理回路5511はプリフェッチ
部55110と比較部55111とから構成される。プ
リフェッチ部55110はm個(この例では4個)のy
バケットバッファを持ち、座標点生成処理開始前にディ
スプレイリストバンドバッファ541より座標点生成処
理を待っているm個のyバケットデータ(y座標値yi
および先頭セルポインタ&i )がプリフェッチされる。
そして、比較部55111において現走査ラインのy座
標値ycurrentとプリフェッチ部55110のyバケッ
トバッファの値を参照して比較し、エッジデータの追加
処理が発生しないかチェックする。プリフェッチデータ
がすべてチェックされた場合は、新たにm個のyバケッ
トデータをプリフェッチするが、その読み込み処理は座
標点データ生成処理中に並行して行われる。また、現走
査ラインのy座標値ycurrent より大きいy座標値を持
つyバケットが現れた場合、そのyバケットデータをy
next,&nextとして比較部55111内部のバッファに
保持しておく。これにより、更新された走査ラインのy
座標値がynextより大きくなるまではこのバッファの値
との比較を行えばよいことになり、処理の効率化を図る
ことができる。次に、座標点生成回路552A〜552
Dの具体的な回路構成について説明するが、これらの構
造がすべて同一なため、ここでは、代表して座標点生成
回路552Aで説明する。
例を示すブロック図である。管理回路551内に設けら
れたエッジデータ追加処理回路5511はプリフェッチ
部55110と比較部55111とから構成される。プ
リフェッチ部55110はm個(この例では4個)のy
バケットバッファを持ち、座標点生成処理開始前にディ
スプレイリストバンドバッファ541より座標点生成処
理を待っているm個のyバケットデータ(y座標値yi
および先頭セルポインタ&i )がプリフェッチされる。
そして、比較部55111において現走査ラインのy座
標値ycurrentとプリフェッチ部55110のyバケッ
トバッファの値を参照して比較し、エッジデータの追加
処理が発生しないかチェックする。プリフェッチデータ
がすべてチェックされた場合は、新たにm個のyバケッ
トデータをプリフェッチするが、その読み込み処理は座
標点データ生成処理中に並行して行われる。また、現走
査ラインのy座標値ycurrent より大きいy座標値を持
つyバケットが現れた場合、そのyバケットデータをy
next,&nextとして比較部55111内部のバッファに
保持しておく。これにより、更新された走査ラインのy
座標値がynextより大きくなるまではこのバッファの値
との比較を行えばよいことになり、処理の効率化を図る
ことができる。次に、座標点生成回路552A〜552
Dの具体的な回路構成について説明するが、これらの構
造がすべて同一なため、ここでは、代表して座標点生成
回路552Aで説明する。
【0126】図31は第2の実施の形態での座標点生成
回路の回路構成を示すブロック図である。各レジスタお
よび演算器を表す5520〜5528については、図1
8で述べたものと同様なのでここでは説明を省略する。
第2の実施の形態における座標点生成回路552Aは、
実数値を整数値へ変換する演算器5527の出力にマル
チプレクサ5529が接続されていることを特徴とす
る。マルチプレクサ5529は、座標点生成回路552
がエッジデータ生成処理をしている場合はエッジのx座
標値を出力し、待機中である場合はx座標値の取り得る
最大値を出力する。このようにして得られた四つのx座
標値は次段の部分ソート回路553に出力される。
回路の回路構成を示すブロック図である。各レジスタお
よび演算器を表す5520〜5528については、図1
8で述べたものと同様なのでここでは説明を省略する。
第2の実施の形態における座標点生成回路552Aは、
実数値を整数値へ変換する演算器5527の出力にマル
チプレクサ5529が接続されていることを特徴とす
る。マルチプレクサ5529は、座標点生成回路552
がエッジデータ生成処理をしている場合はエッジのx座
標値を出力し、待機中である場合はx座標値の取り得る
最大値を出力する。このようにして得られた四つのx座
標値は次段の部分ソート回路553に出力される。
【0127】図32は部分ソート回路の回路構成を示す
ブロック図である。部分ソート回路553は、二つのx
座標値を昇順にソートする三つの2入力ソート回路55
38〜55310と、ソートするデータを保持する四つ
のレジスタ5530〜5533と、座標点生成回路55
2からの入力データと1サイクル目のソートデータとを
管理回路551からの選択信号SELにより各レジスタ
5530〜5533へ選択入力するための四つのマルチ
プレクサ5534〜5537とから構成されている。
ブロック図である。部分ソート回路553は、二つのx
座標値を昇順にソートする三つの2入力ソート回路55
38〜55310と、ソートするデータを保持する四つ
のレジスタ5530〜5533と、座標点生成回路55
2からの入力データと1サイクル目のソートデータとを
管理回路551からの選択信号SELにより各レジスタ
5530〜5533へ選択入力するための四つのマルチ
プレクサ5534〜5537とから構成されている。
【0128】まず、座標点生成回路552A〜552D
で生成された四つのx座標値はマルチプレクサ5534
〜5537により選択出力されて、各々の対応するレジ
スタ5530〜5533にその値が書き込まれる。そし
て、第1段目の二つの2入力ソート回路5538,55
310はこれらのx座標値を二つずつ昇順にソートす
る。次に、2入力ソート回路5538の出力データの大
きい方と2入力ソート回路55310の出力データの小
さい方とが第2段目の1つの2入力ソート回路5539
に入力され、ここで昇順にソートされる。このようにし
て、2段のソート処理によりソートされた四つのx座標
値は先のマルチプレクサ5534〜5537に入力さ
れ、マルチプレクサ5534〜5537は切り替えられ
て各々の対応するレジスタ5530〜5533にソート
処理途中のx座標値を書き込む。そして、先のソート処
理と同様に2段のソート処理により各々二つずつ昇順に
ソートを行うことにより、最終的に昇順にソートされた
四つのx座標値が得られる。ソート処理が終了した四つ
のx座標値は管理回路551のカレントxiレジスタC
URXi(i=1〜4)に出力される。
で生成された四つのx座標値はマルチプレクサ5534
〜5537により選択出力されて、各々の対応するレジ
スタ5530〜5533にその値が書き込まれる。そし
て、第1段目の二つの2入力ソート回路5538,55
310はこれらのx座標値を二つずつ昇順にソートす
る。次に、2入力ソート回路5538の出力データの大
きい方と2入力ソート回路55310の出力データの小
さい方とが第2段目の1つの2入力ソート回路5539
に入力され、ここで昇順にソートされる。このようにし
て、2段のソート処理によりソートされた四つのx座標
値は先のマルチプレクサ5534〜5537に入力さ
れ、マルチプレクサ5534〜5537は切り替えられ
て各々の対応するレジスタ5530〜5533にソート
処理途中のx座標値を書き込む。そして、先のソート処
理と同様に2段のソート処理により各々二つずつ昇順に
ソートを行うことにより、最終的に昇順にソートされた
四つのx座標値が得られる。ソート処理が終了した四つ
のx座標値は管理回路551のカレントxiレジスタC
URXi(i=1〜4)に出力される。
【0129】次に、メモリ54に割り当てられたエッジ
リストバッファ542の中の構成およびエッジリストの
データ形式について説明する。図33は第2の実施の形
態でのエッジリストバッファの構成を示す図である。エ
ッジリストデータは、オブジェクトの色情報と最初に現
れるエッジのy座標値ystart とから成るヘッダ部と、
エッジと各走査ラインとの交点の座標値を含むエッジリ
スト部とから構成される。エッジリスト部の各走査ライ
ンのx座標値は、部分ソート回路553で同時にソート
する数n(ここでは、n=4)ずつ昇順にソートされて
いる。エッジリストバッファ542は、エッジリストデ
ータのヘッダ部を格納する領域と、エッジリスト部を格
納する領域とから構成される。エッジリストバッファ5
42のヘッダ部格納領域の先頭アドレスelhdadr
と、エッジリスト部格納領域の先頭アドレスyadr0
は、座標点生成LSI55の起動時に管理回路551の
ELヘッダアドレスレジスタELHDADRおよびEL
トップアドレスレジスタELTOPADRにそれぞれ書
き込まれる。エッジリスト部格納領域は、1バンドのす
べての走査ラインに対してM個のx座標値を格納するこ
とができる。各走査ラインのエッジリストの先頭には、
そのラインにいくつのx座標値が格納されているかを表
すエッジデータ数Pi が格納される。座標点生成LSI
55からは部分ソート回路553で同時にソートする数
n(n=4)ずつx座標値を出力するので、エッジデー
タ数Pi はnの倍数となる。ここで、待機中の座標点生
成回路からのデータは座標点生成で出力される最大値以
上の値、ここでは最大値を入力しておく。これにより、
ソート部20でソフトウェアにより行われるx座標値の
ソートの際には、これら最大値は走査ラインの最後に整
列されることになる。1走査ラインに格納可能なx座標
値の最大数Mの値は、256以上の2のべき乗数が望ま
しい。
リストバッファ542の中の構成およびエッジリストの
データ形式について説明する。図33は第2の実施の形
態でのエッジリストバッファの構成を示す図である。エ
ッジリストデータは、オブジェクトの色情報と最初に現
れるエッジのy座標値ystart とから成るヘッダ部と、
エッジと各走査ラインとの交点の座標値を含むエッジリ
スト部とから構成される。エッジリスト部の各走査ライ
ンのx座標値は、部分ソート回路553で同時にソート
する数n(ここでは、n=4)ずつ昇順にソートされて
いる。エッジリストバッファ542は、エッジリストデ
ータのヘッダ部を格納する領域と、エッジリスト部を格
納する領域とから構成される。エッジリストバッファ5
42のヘッダ部格納領域の先頭アドレスelhdadr
と、エッジリスト部格納領域の先頭アドレスyadr0
は、座標点生成LSI55の起動時に管理回路551の
ELヘッダアドレスレジスタELHDADRおよびEL
トップアドレスレジスタELTOPADRにそれぞれ書
き込まれる。エッジリスト部格納領域は、1バンドのす
べての走査ラインに対してM個のx座標値を格納するこ
とができる。各走査ラインのエッジリストの先頭には、
そのラインにいくつのx座標値が格納されているかを表
すエッジデータ数Pi が格納される。座標点生成LSI
55からは部分ソート回路553で同時にソートする数
n(n=4)ずつx座標値を出力するので、エッジデー
タ数Pi はnの倍数となる。ここで、待機中の座標点生
成回路からのデータは座標点生成で出力される最大値以
上の値、ここでは最大値を入力しておく。これにより、
ソート部20でソフトウェアにより行われるx座標値の
ソートの際には、これら最大値は走査ラインの最後に整
列されることになる。1走査ラインに格納可能なx座標
値の最大数Mの値は、256以上の2のべき乗数が望ま
しい。
【0130】次に、上述したように構成された座標点生
成LSI55における、1描画オブジェクトのディスプ
レイリストからエッジデータを生成するまでの処理の流
れについて、図34〜図39を用いて説明する。
成LSI55における、1描画オブジェクトのディスプ
レイリストからエッジデータを生成するまでの処理の流
れについて、図34〜図39を用いて説明する。
【0131】図34は第2の実施の形態での座標点生成
LSIの全体の処理の流れを示すフローチャートであ
る。座標点生成LSI55は、CPU50からの1描画
オブジェクトに対する座標点生成開始の指示を待ち、ホ
ストコンピュータ30からディスプレイリストバンドバ
ッファ541へのバンド単位のディスプレイリストデー
タの書き込みが終了し、CPU50から座標点生成開始
の指示を受けることによって座標点生成処理を開始す
る。
LSIの全体の処理の流れを示すフローチャートであ
る。座標点生成LSI55は、CPU50からの1描画
オブジェクトに対する座標点生成開始の指示を待ち、ホ
ストコンピュータ30からディスプレイリストバンドバ
ッファ541へのバンド単位のディスプレイリストデー
タの書き込みが終了し、CPU50から座標点生成開始
の指示を受けることによって座標点生成処理を開始す
る。
【0132】座標点生成処理では、まず、1描画オブジ
ェクトに対するディスプレイリストデータのヘッダ情報
の読み込み、解釈、属性管理といったディスプレイリス
トヘッダの処理を行う(ステップS101)。すなわ
ち、管理回路551は一つ目の描画オブジェクトに対す
るディスプレイリストデータのヘッダ情報の読み込み要
求をメモリコントローラ53へ出す。メモリコントロー
ラ53からアクセス許可信号を受け取ったら、DLヘッ
ダアドレスレジスタDLHDADRに保持しているアド
レスを出力して、一つ目の描画オブジェクトに対するデ
ィスプレイリストデータのヘッダ情報の読み込みを行
う。また、この時、DLヘッダアドレスレジスタDLH
DADRに保持しているアドレスとヘッダサイズからD
Lバンドバッファのyリスト部の先頭アドレスとを算出
し、その値をyリストトップアドレスレジスタYLTO
PADRに格納する。読み込まれたヘッダ情報は一旦フ
ェッチレジスタFETCHに格納され、その内容は管理
回路551で解釈され、その描画オブジェクトに関する
属性を管理回路551内のレジスタ群に格納して以降の
ステップに移る。管理回路551では、まず、描画オブ
ジェクトの種類が判別され、描画オブジェクトが文字ま
たは図形の場合には、フェッチレジスタFETCH内の
ヘッダ情報は、色情報、yリスト数、セル数、次ヘッダ
部アドレスにデコードされてそれぞれカラーレジスタC
OLOR、トータルyリストレジスタNUMLIST、
セルカウンタレジスタNUMCELL、DLヘッダアド
レスレジスタDLHDADRに格納される。描画オブジ
ェクトがラスタの場合には、フェッチレジスタFETC
H内のヘッダ情報は、ラスタデータバッファアドレスと
ラスタデータサイズとセル数と次ヘッダ部アドレスとに
デコードされる。管理回路551は、デコードしたラス
タデータバッファアドレスとラスタデータサイズとを印
刷画像データ変換LSI56に出力し、そのラスタデー
タをホストコンピュータ30のラスタデータバッファ1
5からラスタデータバンドバッファ58へ転送するよう
指示する。デコードしたセル数と次ヘッダ部アドレスと
は、それぞれセルカウンタレジスタNUMCELL、D
LヘッダアドレスレジスタDLHDADRに格納する。
なお、描画オブジェクトがラスタの場合のディスプレイ
リストには、ラスタデータが描画される矩形領域情報し
かないため、リスト部のyバケットは1個で済む。した
がって、ヘッダ情報にはyリスト数は含まれず、また後
述するセルの追加判定処理も発生しないため、トータル
yリストレジスタNUMLISTへの書き込みは行われ
ない。また、色情報も不要であるためカラーレジスタC
OLORへの書き込みも行われない。
ェクトに対するディスプレイリストデータのヘッダ情報
の読み込み、解釈、属性管理といったディスプレイリス
トヘッダの処理を行う(ステップS101)。すなわ
ち、管理回路551は一つ目の描画オブジェクトに対す
るディスプレイリストデータのヘッダ情報の読み込み要
求をメモリコントローラ53へ出す。メモリコントロー
ラ53からアクセス許可信号を受け取ったら、DLヘッ
ダアドレスレジスタDLHDADRに保持しているアド
レスを出力して、一つ目の描画オブジェクトに対するデ
ィスプレイリストデータのヘッダ情報の読み込みを行
う。また、この時、DLヘッダアドレスレジスタDLH
DADRに保持しているアドレスとヘッダサイズからD
Lバンドバッファのyリスト部の先頭アドレスとを算出
し、その値をyリストトップアドレスレジスタYLTO
PADRに格納する。読み込まれたヘッダ情報は一旦フ
ェッチレジスタFETCHに格納され、その内容は管理
回路551で解釈され、その描画オブジェクトに関する
属性を管理回路551内のレジスタ群に格納して以降の
ステップに移る。管理回路551では、まず、描画オブ
ジェクトの種類が判別され、描画オブジェクトが文字ま
たは図形の場合には、フェッチレジスタFETCH内の
ヘッダ情報は、色情報、yリスト数、セル数、次ヘッダ
部アドレスにデコードされてそれぞれカラーレジスタC
OLOR、トータルyリストレジスタNUMLIST、
セルカウンタレジスタNUMCELL、DLヘッダアド
レスレジスタDLHDADRに格納される。描画オブジ
ェクトがラスタの場合には、フェッチレジスタFETC
H内のヘッダ情報は、ラスタデータバッファアドレスと
ラスタデータサイズとセル数と次ヘッダ部アドレスとに
デコードされる。管理回路551は、デコードしたラス
タデータバッファアドレスとラスタデータサイズとを印
刷画像データ変換LSI56に出力し、そのラスタデー
タをホストコンピュータ30のラスタデータバッファ1
5からラスタデータバンドバッファ58へ転送するよう
指示する。デコードしたセル数と次ヘッダ部アドレスと
は、それぞれセルカウンタレジスタNUMCELL、D
LヘッダアドレスレジスタDLHDADRに格納する。
なお、描画オブジェクトがラスタの場合のディスプレイ
リストには、ラスタデータが描画される矩形領域情報し
かないため、リスト部のyバケットは1個で済む。した
がって、ヘッダ情報にはyリスト数は含まれず、また後
述するセルの追加判定処理も発生しないため、トータル
yリストレジスタNUMLISTへの書き込みは行われ
ない。また、色情報も不要であるためカラーレジスタC
OLORへの書き込みも行われない。
【0133】次に、yリストの処理を行う(ステップS
102)。ここでは、yバケットの読み込み、読み込ん
だyバケットに連結されている連結セルの読み込み、セ
ル読み込み後のディスプレイリストの再構成といった処
理を行うが、その処理の詳細については後述する通りで
ある。
102)。ここでは、yバケットの読み込み、読み込ん
だyバケットに連結されている連結セルの読み込み、セ
ル読み込み後のディスプレイリストの再構成といった処
理を行うが、その処理の詳細については後述する通りで
ある。
【0134】次に、セルの処理を行う(ステップS10
3)。ここでは、ステップS102で読み込んだセルデ
ータから座標点の算出、走査ラインの更新、エッジリス
トバッファ542へのエッジデータおよびエッジデータ
数の出力、四つの座標点生成回路の状態管理、セルデー
タの追加、セル追加後のディスプレイリストの再構成と
いった処理を行う。このセルの処理の詳細については後
述する通りである。
3)。ここでは、ステップS102で読み込んだセルデ
ータから座標点の算出、走査ラインの更新、エッジリス
トバッファ542へのエッジデータおよびエッジデータ
数の出力、四つの座標点生成回路の状態管理、セルデー
タの追加、セル追加後のディスプレイリストの再構成と
いった処理を行う。このセルの処理の詳細については後
述する通りである。
【0135】次に、描画オブジェクトに含まれるすべて
のセルの処理が終了したかどうかを判別する処理を行う
(ステップS104)。すなわち、ステップS101で
セットしたセルカウンタレジスタNUMCELLの値を
チェックし、NUMCELL>0ならばステップS10
2に移って先述の処理を繰り返し、NUMCELL=0
ならば、その描画オブジェクトに対する処理が終了した
ものと判定する。
のセルの処理が終了したかどうかを判別する処理を行う
(ステップS104)。すなわち、ステップS101で
セットしたセルカウンタレジスタNUMCELLの値を
チェックし、NUMCELL>0ならばステップS10
2に移って先述の処理を繰り返し、NUMCELL=0
ならば、その描画オブジェクトに対する処理が終了した
ものと判定する。
【0136】そして、当該描画オブジェクトの色情報と
エッジリストデータが存在する走査ラインの開始アドレ
スとを含むヘッダ情報をエッジリストバッファ542へ
出力し、CPU50にその描画オブジェクトに対する処
理が終了したことを通知して再び待機状態に戻るといっ
た終了処理を行う(ステップS105)。まず、管理回
路551がメモリコントローラ53へエッジリストバッ
ファ542への書き込み要求を出力する。メモリコント
ローラ53からアクセス許可信号を受け取ったら、EL
ヘッダアドレスレジスタELHDADRに保持している
アドレスを出力し、次に、カラーレジスタCOLORと
スタートyレジスタSTARTYとの値を出力してエッ
ジリストバッファ542への書き込みを行う。そして、
CPU50にその描画オブジェクトに対する座標点生成
処理が終了したことを通知して再び待機状態に戻る。
エッジリストデータが存在する走査ラインの開始アドレ
スとを含むヘッダ情報をエッジリストバッファ542へ
出力し、CPU50にその描画オブジェクトに対する処
理が終了したことを通知して再び待機状態に戻るといっ
た終了処理を行う(ステップS105)。まず、管理回
路551がメモリコントローラ53へエッジリストバッ
ファ542への書き込み要求を出力する。メモリコント
ローラ53からアクセス許可信号を受け取ったら、EL
ヘッダアドレスレジスタELHDADRに保持している
アドレスを出力し、次に、カラーレジスタCOLORと
スタートyレジスタSTARTYとの値を出力してエッ
ジリストバッファ542への書き込みを行う。そして、
CPU50にその描画オブジェクトに対する座標点生成
処理が終了したことを通知して再び待機状態に戻る。
【0137】次に、この1オブジェクトに対する座標点
生成処理のステップS102におけるyリストの処理の
処理内容についてより詳細に説明する。図35は第2の
実施の形態での座標点生成LSIのyリストの処理の流
れを示すフローチャートである。まず、yリストの読み
込みを行う(ステップS111)。管理回路551は、
yリストトップアドレスレジスタYLTOPADRの内
容をyリストアドレスレジスタYLISTADRに読み
込み、最初のn個のyバケットの読み出し要求をメモリ
コントローラ53に出す。メモリコントローラ53から
読み出し許可信号が来たら、YLISTADRの値をメ
モリコントローラ53に出力してn個のyバケットデー
タの連続読み出しを行う。読み出されたデータはプリフ
ェッチレジスタPREFETCHに格納し、一つ目のy
バケットデータを一旦フェッチレジスタFETCHに格
納して、y座標値とエッジセルへのポインタの切り出し
を行い、y座標値をカレントyレジスタCURYとスタ
ートyレジスタSTARTYとに、ポインタをセルアド
レスレジスタCELLADRに格納する。さらにyバケ
ットの読み出し回数をカウントするyリストカウンタレ
ジスタYCOUNTをインクリメントする。
生成処理のステップS102におけるyリストの処理の
処理内容についてより詳細に説明する。図35は第2の
実施の形態での座標点生成LSIのyリストの処理の流
れを示すフローチャートである。まず、yリストの読み
込みを行う(ステップS111)。管理回路551は、
yリストトップアドレスレジスタYLTOPADRの内
容をyリストアドレスレジスタYLISTADRに読み
込み、最初のn個のyバケットの読み出し要求をメモリ
コントローラ53に出す。メモリコントローラ53から
読み出し許可信号が来たら、YLISTADRの値をメ
モリコントローラ53に出力してn個のyバケットデー
タの連続読み出しを行う。読み出されたデータはプリフ
ェッチレジスタPREFETCHに格納し、一つ目のy
バケットデータを一旦フェッチレジスタFETCHに格
納して、y座標値とエッジセルへのポインタの切り出し
を行い、y座標値をカレントyレジスタCURYとスタ
ートyレジスタSTARTYとに、ポインタをセルアド
レスレジスタCELLADRに格納する。さらにyバケ
ットの読み出し回数をカウントするyリストカウンタレ
ジスタYCOUNTをインクリメントする。
【0138】次に、読み込んだyバケットにセルがある
か否かを判定する(ステップS112)。もし、セルア
ドレスレジスタCELLADRの値がnullならば、
ステップS111に戻り、プリフェッチレジスタPRE
FETCHから次のyバケットデータをフェッチレジス
タFETCHに格納する。セルアドレスレジスタCEL
LADRの値がnullでなければ、ステップS113
に移ってその値が指し示すセルのデータ読み出しを行う
(ステップS113)。なお、ディスプレイリストバン
ドバッファ541からのyリストの読み込みが一巡目の
時は、各yバケットには連結セルが必ず存在するため、
ポインタアドレスがnullとなることはない。ポイン
タアドレスがnullとなるのは、後述するセルポイン
タの更新のステップで連結セルがなくなって更新処理が
施された後に、本ステップを迎えた場合である。また、
ステップS111で最初のn個のyバケットデータをプ
リフェッチした後は、座標点生成処理に並行してyバケ
ットデータのプリフェッチを行って、プリフェッチレジ
スタPREFETCHの内容が更新される。
か否かを判定する(ステップS112)。もし、セルア
ドレスレジスタCELLADRの値がnullならば、
ステップS111に戻り、プリフェッチレジスタPRE
FETCHから次のyバケットデータをフェッチレジス
タFETCHに格納する。セルアドレスレジスタCEL
LADRの値がnullでなければ、ステップS113
に移ってその値が指し示すセルのデータ読み出しを行う
(ステップS113)。なお、ディスプレイリストバン
ドバッファ541からのyリストの読み込みが一巡目の
時は、各yバケットには連結セルが必ず存在するため、
ポインタアドレスがnullとなることはない。ポイン
タアドレスがnullとなるのは、後述するセルポイン
タの更新のステップで連結セルがなくなって更新処理が
施された後に、本ステップを迎えた場合である。また、
ステップS111で最初のn個のyバケットデータをプ
リフェッチした後は、座標点生成処理に並行してyバケ
ットデータのプリフェッチを行って、プリフェッチレジ
スタPREFETCHの内容が更新される。
【0139】ステップS113のセルを読み込むステッ
プでは、セルデータの読み出し要求をメモリコントロー
ラ53に出す。メモリコントローラ53から読み出し許
可信号が来たら、セルアドレスレジスタCELLADR
の値をメモリコントローラ53に出力して一つのセルデ
ータの読み出しを行う。読み出されたデータは一旦フェ
ッチレジスタFETCHに格納して、始点のx座標を表
すx座標値、x座標値の増分Δx、エッジと交差する走
査ライン数を表すΔyの値、および次のセルへの継続状
態を示す連結フラグをそれぞれ切り出し、待機中の座標
点生成回路552A〜552Dに連結フラグ以外の各デ
ータを転送して、x座標値をXレジスタに、ΔxをΔX
レジスタに、ΔyをΔYレジスタにそれぞれ格納して次
のステップS114に移る。なお、この時、データが転
送された座標点生成回路552A〜552Dから出力さ
れるEND信号は’0’となり、ステータスレジスタS
TATUSのその座標点生成回路552A〜552Dに
対応するビットにも’0’が書き込まれて、当該座標点
生成回路552A〜552Dは待機状態ではなくなった
ことを示す。データ転送後、座標点生成回路552A〜
552Dは、現在処理中の走査ラインに対するエッジの
座標点を生成してその値を部分ソート回路553に出力
し、部分ソート回路553によってソートされた各座標
点データを管理回路551のエッジデータレジスタCU
RXi(i=1〜4)に格納する。
プでは、セルデータの読み出し要求をメモリコントロー
ラ53に出す。メモリコントローラ53から読み出し許
可信号が来たら、セルアドレスレジスタCELLADR
の値をメモリコントローラ53に出力して一つのセルデ
ータの読み出しを行う。読み出されたデータは一旦フェ
ッチレジスタFETCHに格納して、始点のx座標を表
すx座標値、x座標値の増分Δx、エッジと交差する走
査ライン数を表すΔyの値、および次のセルへの継続状
態を示す連結フラグをそれぞれ切り出し、待機中の座標
点生成回路552A〜552Dに連結フラグ以外の各デ
ータを転送して、x座標値をXレジスタに、ΔxをΔX
レジスタに、ΔyをΔYレジスタにそれぞれ格納して次
のステップS114に移る。なお、この時、データが転
送された座標点生成回路552A〜552Dから出力さ
れるEND信号は’0’となり、ステータスレジスタS
TATUSのその座標点生成回路552A〜552Dに
対応するビットにも’0’が書き込まれて、当該座標点
生成回路552A〜552Dは待機状態ではなくなった
ことを示す。データ転送後、座標点生成回路552A〜
552Dは、現在処理中の走査ラインに対するエッジの
座標点を生成してその値を部分ソート回路553に出力
し、部分ソート回路553によってソートされた各座標
点データを管理回路551のエッジデータレジスタCU
RXi(i=1〜4)に格納する。
【0140】次に、セルポインタの更新処理を行う(ス
テップS114)。ステップS113で切り出した連結
フラグが’1’ならば、次のセルデータの格納先を示す
アドレスを、現在のセルアドレスレジスタCELLAD
Rの値とセルサイズとから算出して、セルアドレスレジ
スタCELLADRに書き込む。連結フラグが’0’な
らば、次に連結されるセルは無いため、nullをセル
アドレスレジスタCELLADRに書き込む。さらに、
セルカウントレジスタNUMCELLをデクリメントす
る。このようにしてセルポインタを更新した後、次に、
連結フラグはセルの終了を表すEOCであるかどうかを
判定する(ステップS115)。ここで連結フラグがセ
ルの継続を表す’1’ならばステップS116に、EO
Cを表す’0’ならばステップS117に移るよう、先
の連結フラグの値によって処理フローの切替えを行う。
テップS114)。ステップS113で切り出した連結
フラグが’1’ならば、次のセルデータの格納先を示す
アドレスを、現在のセルアドレスレジスタCELLAD
Rの値とセルサイズとから算出して、セルアドレスレジ
スタCELLADRに書き込む。連結フラグが’0’な
らば、次に連結されるセルは無いため、nullをセル
アドレスレジスタCELLADRに書き込む。さらに、
セルカウントレジスタNUMCELLをデクリメントす
る。このようにしてセルポインタを更新した後、次に、
連結フラグはセルの終了を表すEOCであるかどうかを
判定する(ステップS115)。ここで連結フラグがセ
ルの継続を表す’1’ならばステップS116に、EO
Cを表す’0’ならばステップS117に移るよう、先
の連結フラグの値によって処理フローの切替えを行う。
【0141】連結フラグがセルの継続を表す’1’の場
合、ステータスレジスタSTATUSの内容を調べ、待
機状態であることを表す’1’の値が検出されるかどう
かが判定される(ステップS116)。ここで、待機状
態の座標点生成回路があると判定されたならば、ステッ
プS113に戻ってセルアドレスレジスタCELLAD
Rに格納されているアドレスが示すセルデータの読み出
しを行い、’1’の値が格納されていたビットに対応す
る座標点生成回路552A〜552Dにセルデータの各
値を書き込むといった処理を行う。ステータスレジスタ
STATUSの内容を調べた結果、全ビットの値が’
0’、つまり、すべての座標点生成回路552A〜55
2Dは座標点生成処理中である場合は、連結セルが継続
していても次のセルの読み込みを行わない。
合、ステータスレジスタSTATUSの内容を調べ、待
機状態であることを表す’1’の値が検出されるかどう
かが判定される(ステップS116)。ここで、待機状
態の座標点生成回路があると判定されたならば、ステッ
プS113に戻ってセルアドレスレジスタCELLAD
Rに格納されているアドレスが示すセルデータの読み出
しを行い、’1’の値が格納されていたビットに対応す
る座標点生成回路552A〜552Dにセルデータの各
値を書き込むといった処理を行う。ステータスレジスタ
STATUSの内容を調べた結果、全ビットの値が’
0’、つまり、すべての座標点生成回路552A〜55
2Dは座標点生成処理中である場合は、連結セルが継続
していても次のセルの読み込みを行わない。
【0142】待機状態の座標点生成回路がない場合は、
セルアドレスレジスタCELLADR中の更新セルポイ
ンタの値をプリフェッチレジスタPREFETCHの現
在処理中のyバケットに書き込んで更新する(ステップ
S117)。プリフェッチレジスタPREFETCHの
全yバケットデータに対する更新が終了した場合は、y
バケットデータの書き込み要求をメモリコントローラ5
3に出し、メモリコントローラ53から書き込み許可信
号が来たら、YリストアドレスレジスタYLISTAD
R中のyリストアドレスを出力し、次にセルアドレスレ
ジスタCELLADR中の更新セルポインタの値を連続
出力してディスプレイリストバンドバッファ541に書
き込みを行い、プリフェッチしたyバケットにおけるセ
ルポインタを更新する。そして、yリストアドレスレジ
スタYLISTADRの値を次に読み込むyリストを示
すバッファアドレスに更新する。このようにして、yリ
ストの処理が終了したら図34のステップS103のセ
ルの処理に移る。なお、ディスプレイリストバンドバッ
ファ541への書き込み処理は座標点生成処理中に並行
して行われる。
セルアドレスレジスタCELLADR中の更新セルポイ
ンタの値をプリフェッチレジスタPREFETCHの現
在処理中のyバケットに書き込んで更新する(ステップ
S117)。プリフェッチレジスタPREFETCHの
全yバケットデータに対する更新が終了した場合は、y
バケットデータの書き込み要求をメモリコントローラ5
3に出し、メモリコントローラ53から書き込み許可信
号が来たら、YリストアドレスレジスタYLISTAD
R中のyリストアドレスを出力し、次にセルアドレスレ
ジスタCELLADR中の更新セルポインタの値を連続
出力してディスプレイリストバンドバッファ541に書
き込みを行い、プリフェッチしたyバケットにおけるセ
ルポインタを更新する。そして、yリストアドレスレジ
スタYLISTADRの値を次に読み込むyリストを示
すバッファアドレスに更新する。このようにして、yリ
ストの処理が終了したら図34のステップS103のセ
ルの処理に移る。なお、ディスプレイリストバンドバッ
ファ541への書き込み処理は座標点生成処理中に並行
して行われる。
【0143】図36は第2の実施の形態での座標点生成
LSIのセルの処理の流れを示すフローチャートであ
る。まず、セルの処理は座標点出力処理で始まる(ステ
ップS121)。すなわち、エッジリストバッファ54
2から現在処理中の走査ラインに対してバッファに格納
されているエッジデータ数Piを読み込み、その数を更
新して、更新したエッジデータ数とエッジデータレジス
タCURXi(i=1〜4)に格納したデータとをエッ
ジリストバッファ542に書き込む。次に、走査ライン
の更新、それに伴うエッジデータの更新、算出された座
標点のソート処理、ソート結果のエッジデータレジスタ
への格納といったエッジデータ更新処理を行い(ステッ
プS122)、続いて、座標点生成回路552A〜55
2Dの待機状態のチェック、待機状態の座標点生成回路
552A〜552Dがある場合の現在処理中の走査ライ
ンに対するyバケットの有無のチェック、現在処理中の
走査ラインに対するyバケットが存在する場合のセルの
読み出しおよびセルポインタの更新といったセル追加判
定処理を行い(ステップS123)、再度、ステップS
121と同様の座標点出力処理を行う(ステップS12
4)。
LSIのセルの処理の流れを示すフローチャートであ
る。まず、セルの処理は座標点出力処理で始まる(ステ
ップS121)。すなわち、エッジリストバッファ54
2から現在処理中の走査ラインに対してバッファに格納
されているエッジデータ数Piを読み込み、その数を更
新して、更新したエッジデータ数とエッジデータレジス
タCURXi(i=1〜4)に格納したデータとをエッ
ジリストバッファ542に書き込む。次に、走査ライン
の更新、それに伴うエッジデータの更新、算出された座
標点のソート処理、ソート結果のエッジデータレジスタ
への格納といったエッジデータ更新処理を行い(ステッ
プS122)、続いて、座標点生成回路552A〜55
2Dの待機状態のチェック、待機状態の座標点生成回路
552A〜552Dがある場合の現在処理中の走査ライ
ンに対するyバケットの有無のチェック、現在処理中の
走査ラインに対するyバケットが存在する場合のセルの
読み出しおよびセルポインタの更新といったセル追加判
定処理を行い(ステップS123)、再度、ステップS
121と同様の座標点出力処理を行う(ステップS12
4)。
【0144】次に、セル処理終了の判定をする(ステッ
プS125)。すなわち、座標点生成回路552A〜5
52DのEND信号を管理回路551に出力し、各々の
値を管理回路551のステータスレジスタSTATUS
に書き込む。そして、ステータスレジスタSTATUS
の値を調べ、全ビットの値が’1’、つまり、すべての
座標点生成回路552A〜552Dは待機状態であるか
を判定する(ステップS126)。ここで、すべての座
標点生成回路552A〜552Dが待機状態であるなら
ば、このセルの処理を終了し、図34のステップS10
4へ移る。一つでも値が’0’のビットがあるならば、
つまり座標点生成処理中の座標点生成回路552A〜5
52Dがある場合は、ステップS122へ移り、座標点
生成処理を継続する。
プS125)。すなわち、座標点生成回路552A〜5
52DのEND信号を管理回路551に出力し、各々の
値を管理回路551のステータスレジスタSTATUS
に書き込む。そして、ステータスレジスタSTATUS
の値を調べ、全ビットの値が’1’、つまり、すべての
座標点生成回路552A〜552Dは待機状態であるか
を判定する(ステップS126)。ここで、すべての座
標点生成回路552A〜552Dが待機状態であるなら
ば、このセルの処理を終了し、図34のステップS10
4へ移る。一つでも値が’0’のビットがあるならば、
つまり座標点生成処理中の座標点生成回路552A〜5
52Dがある場合は、ステップS122へ移り、座標点
生成処理を継続する。
【0145】次に、このセルの処理における座標点出力
処理であるステップS121,S124の各ステップの
処理内容についてより詳細に説明を行う。図37は第2
の実施の形態での座標点生成LSIの座標点出力処理の
流れを示すフローチャートである。座標点出力処理で
は、まず、アドレス計算およびメモリアクセス要求を行
う(ステップS131)すなわち、現在処理中の走査ラ
インに対するエッジデータ数Piが格納されているエッ
ジリストバッファアドレスを式(5)に従って算出し、
ELバッファアドレスレジスタELBADRにその値を
書き込む。同時に、現在処理中の走査ラインに対する、
エッジリストバッファ542に格納されているエッジデ
ータ数Piの読み出し要求をメモリコントローラ53に
出力する。次に、メモリコントローラ53から読み出し
許可信号が来たら、ELバッファアドレスレジスタEL
BADRの値をメモリコントローラ53に出力する(ス
テップS132)。次に、メモリコントローラ53がメ
モリ54のエッジリストバッファ542からエッジデー
タ数Piを読み出すと、そのエッジデータ数Piを読み
込み、一旦フェッチレジスタFETCHに格納する(ス
テップS133)。
処理であるステップS121,S124の各ステップの
処理内容についてより詳細に説明を行う。図37は第2
の実施の形態での座標点生成LSIの座標点出力処理の
流れを示すフローチャートである。座標点出力処理で
は、まず、アドレス計算およびメモリアクセス要求を行
う(ステップS131)すなわち、現在処理中の走査ラ
インに対するエッジデータ数Piが格納されているエッ
ジリストバッファアドレスを式(5)に従って算出し、
ELバッファアドレスレジスタELBADRにその値を
書き込む。同時に、現在処理中の走査ラインに対する、
エッジリストバッファ542に格納されているエッジデ
ータ数Piの読み出し要求をメモリコントローラ53に
出力する。次に、メモリコントローラ53から読み出し
許可信号が来たら、ELバッファアドレスレジスタEL
BADRの値をメモリコントローラ53に出力する(ス
テップS132)。次に、メモリコントローラ53がメ
モリ54のエッジリストバッファ542からエッジデー
タ数Piを読み出すと、そのエッジデータ数Piを読み
込み、一旦フェッチレジスタFETCHに格納する(ス
テップS133)。
【0146】次に、読み込んだエッジデータ数Piに座
標点生成回路の数である’4’を加えてメモリ54へ書
き戻す(ステップS134)。すなわち、まず、フェッ
チレジスタFETCHの値を読み出し、座標点生成回路
552A〜552Dで一走査ライン毎に生成される座標
点の数の4を読み出した値に加えて、その値をメモリコ
ントローラ53に出力し、エッジリストバッファ542
の読み込み時と同じアドレスに書き戻す。さらに、EL
バッファアドレスレジスタELBADRの値とフェッチ
レジスタFETCHの値(4を加える前の値)から現在
処理中の走査ラインに対するエッジデータを格納する先
のアドレスを算出し、更新エッジデータ数の出力後、そ
のアドレスをメモリコントローラ53へ出力する。な
お、内部バスのアービトレーション機能により、ステッ
プS121およびステップS124の処理中はカード内
部バスおよびメモリ54へのアクセス権は座標点生成L
SI55が保持したままである。
標点生成回路の数である’4’を加えてメモリ54へ書
き戻す(ステップS134)。すなわち、まず、フェッ
チレジスタFETCHの値を読み出し、座標点生成回路
552A〜552Dで一走査ライン毎に生成される座標
点の数の4を読み出した値に加えて、その値をメモリコ
ントローラ53に出力し、エッジリストバッファ542
の読み込み時と同じアドレスに書き戻す。さらに、EL
バッファアドレスレジスタELBADRの値とフェッチ
レジスタFETCHの値(4を加える前の値)から現在
処理中の走査ラインに対するエッジデータを格納する先
のアドレスを算出し、更新エッジデータ数の出力後、そ
のアドレスをメモリコントローラ53へ出力する。な
お、内部バスのアービトレーション機能により、ステッ
プS121およびステップS124の処理中はカード内
部バスおよびメモリ54へのアクセス権は座標点生成L
SI55が保持したままである。
【0147】最後に、エッジデータをメモリ54へ書き
込む(ステップS135)。すなわち、管理回路551
のカレントXiレジスタCURXi(i=1〜4)に格
納されている現在処理中の走査ラインに対する各x座標
値を同時に読み出し、各データは昇順に配置された状態
で、ステップS134でのアドレス出力後にメモリコン
トローラ53に出力し、エッジリストバッファ542の
ステップS124で出力したアドレスの示す領域に四つ
のx座標値を書き込む。このようにして、行われた座標
点出力処理が図36のステップS121ならば、処理は
図36のステップS122に移り、図36のステップS
124であれば、図36のステップS125に処理が移
る。
込む(ステップS135)。すなわち、管理回路551
のカレントXiレジスタCURXi(i=1〜4)に格
納されている現在処理中の走査ラインに対する各x座標
値を同時に読み出し、各データは昇順に配置された状態
で、ステップS134でのアドレス出力後にメモリコン
トローラ53に出力し、エッジリストバッファ542の
ステップS124で出力したアドレスの示す領域に四つ
のx座標値を書き込む。このようにして、行われた座標
点出力処理が図36のステップS121ならば、処理は
図36のステップS122に移り、図36のステップS
124であれば、図36のステップS125に処理が移
る。
【0148】次に、図36のステップS122における
エッジデータ更新処理について図38により詳細に説明
する。図38は第2の実施の形態での座標点生成LSI
のエッジデータ更新処理の流れを示すフローチャートで
ある。エッジデータ更新処理では、まず、処理の終了し
た走査ラインに対するy座標値を管理回路551のカレ
ントyレジスタCURYから読み出し、その値に1を加
えてレジスタCURYに書き戻し、処理を行う走査ライ
ンを更新する(ステップS141)。次に、座標点生成
回路552A〜552Dのうち処理継続中である座標点
生成回路において、図31に示す、Xレジスタ、ΔXレ
ジスタ、ΔYレジスタより座標点生成回路内の演算回路
5523,5524に入力されているX,ΔY,ΔXの
値から、ΔYのデクリメント処理およびXとΔXとの加
算処理をそれぞれ行ってΔY,Xの各値を更新し、LD
信号を’1’にして各レジスタに書き込むという処理を
行う(ステップS142)。
エッジデータ更新処理について図38により詳細に説明
する。図38は第2の実施の形態での座標点生成LSI
のエッジデータ更新処理の流れを示すフローチャートで
ある。エッジデータ更新処理では、まず、処理の終了し
た走査ラインに対するy座標値を管理回路551のカレ
ントyレジスタCURYから読み出し、その値に1を加
えてレジスタCURYに書き戻し、処理を行う走査ライ
ンを更新する(ステップS141)。次に、座標点生成
回路552A〜552Dのうち処理継続中である座標点
生成回路において、図31に示す、Xレジスタ、ΔXレ
ジスタ、ΔYレジスタより座標点生成回路内の演算回路
5523,5524に入力されているX,ΔY,ΔXの
値から、ΔYのデクリメント処理およびXとΔXとの加
算処理をそれぞれ行ってΔY,Xの各値を更新し、LD
信号を’1’にして各レジスタに書き込むという処理を
行う(ステップS142)。
【0149】その後、座標点生成回路552の演算回路
5527により、ステップS142で更新されたXレジ
スタの値を整数化して、部分ソート回路553に出力す
る(ステップS143)。待機中、つまり、ステータス
レジスタSTATUSの値が’1’の座標点生成回路5
52A〜552Dから部分ソート回路553へ出力され
るデータは、先述した通り座標点生成回路552のマル
チプレクサ5529により最大値となる。そして、部分
ソート回路553において、入力された四つのx座標値
を先述した処理に従って昇順にソートし、その結果を管
理回路551に出力して管理回路551のカレントxレ
ジスタCURXi(i=1〜4)に格納する(ステップ
S144)。このようにしてエッジデータ更新処理のス
テップS122の処理が終了したら、図36のステップ
S123のセル追加判定処理に移る。このセル追加判定
処理の詳細を図39を参照して詳細に説明する。
5527により、ステップS142で更新されたXレジ
スタの値を整数化して、部分ソート回路553に出力す
る(ステップS143)。待機中、つまり、ステータス
レジスタSTATUSの値が’1’の座標点生成回路5
52A〜552Dから部分ソート回路553へ出力され
るデータは、先述した通り座標点生成回路552のマル
チプレクサ5529により最大値となる。そして、部分
ソート回路553において、入力された四つのx座標値
を先述した処理に従って昇順にソートし、その結果を管
理回路551に出力して管理回路551のカレントxレ
ジスタCURXi(i=1〜4)に格納する(ステップ
S144)。このようにしてエッジデータ更新処理のス
テップS122の処理が終了したら、図36のステップ
S123のセル追加判定処理に移る。このセル追加判定
処理の詳細を図39を参照して詳細に説明する。
【0150】図39は第2の実施の形態での座標点生成
LSIのセル追加判定処理の流れを示すフローチャート
である。セル追加判定処理では、まず、セルカウンタレ
ジスタNUMCELLの値により、追加するセルが残っ
ているかどうかを調べる(ステップS151)。セルカ
ウンタレジスタNUMCELLの値が0の場合は、追加
するセルはないということなので、このセル追加判定処
理を終了して処理を図36のステップS124に移す。
セルカウンタレジスタNUMCELLの値が0でない場
合は、待機状態の座標点生成回路があるかどうかを判定
する(ステップS152)。ここでは、ステータスレジ
スタSTATUSの内容を調べた結果、全ビットの値
が’0’、つまり、すべての座標点生成回路552A〜
552Dが座標点生成処理中である場合は、このセル追
加判定処理を終了して図36のステップS124に処理
を移す。もし、ステータスレジスタSTATUSの内容
を調べて待機状態であることを表す’1’の値が検出さ
れたならば、yバケットレジスタYBUCKETに格納
されているyバケットデータのy座標値ynextとカレン
トyレジスタCURYに格納されている現在処理中の走
査ラインのy座標値との比較を行う(ステップS15
3)。その比較の結果、yバケットレジスタYBUCK
ETのy座標値ynextがカレントyレジスタCURYの
y座標値より大きければ、このセル追加判定処理を終了
して図36のステップS124に処理を移す。もし、y
バケットレジスタYBUCKETのy座標値がカレント
yレジスタCURYの値より小さければ、ステップS1
54に移り、yバケットレジスタYBUCKETのy座
標値がカレントyレジスタCURYの値と等しければ、
yバケットレジスタYBUCKETの内容をフェッチレ
ジスタFETCHに書き込み、更にプリフェッチレジス
タPREFETCHから次のyバケットデータをyバケ
ットレジスタYBUCKETに格納してステップS16
0に移る。
LSIのセル追加判定処理の流れを示すフローチャート
である。セル追加判定処理では、まず、セルカウンタレ
ジスタNUMCELLの値により、追加するセルが残っ
ているかどうかを調べる(ステップS151)。セルカ
ウンタレジスタNUMCELLの値が0の場合は、追加
するセルはないということなので、このセル追加判定処
理を終了して処理を図36のステップS124に移す。
セルカウンタレジスタNUMCELLの値が0でない場
合は、待機状態の座標点生成回路があるかどうかを判定
する(ステップS152)。ここでは、ステータスレジ
スタSTATUSの内容を調べた結果、全ビットの値
が’0’、つまり、すべての座標点生成回路552A〜
552Dが座標点生成処理中である場合は、このセル追
加判定処理を終了して図36のステップS124に処理
を移す。もし、ステータスレジスタSTATUSの内容
を調べて待機状態であることを表す’1’の値が検出さ
れたならば、yバケットレジスタYBUCKETに格納
されているyバケットデータのy座標値ynextとカレン
トyレジスタCURYに格納されている現在処理中の走
査ラインのy座標値との比較を行う(ステップS15
3)。その比較の結果、yバケットレジスタYBUCK
ETのy座標値ynextがカレントyレジスタCURYの
y座標値より大きければ、このセル追加判定処理を終了
して図36のステップS124に処理を移す。もし、y
バケットレジスタYBUCKETのy座標値がカレント
yレジスタCURYの値より小さければ、ステップS1
54に移り、yバケットレジスタYBUCKETのy座
標値がカレントyレジスタCURYの値と等しければ、
yバケットレジスタYBUCKETの内容をフェッチレ
ジスタFETCHに書き込み、更にプリフェッチレジス
タPREFETCHから次のyバケットデータをyバケ
ットレジスタYBUCKETに格納してステップS16
0に移る。
【0151】ステップS153での比較の結果、yバケ
ットレジスタYBUCKETのy座標値がカレントyレ
ジスタCURYの値より小さいと判定された場合には、
yバケットデータが比較部55111に読み込まれた回
数をカウントするyリストカウンタレジスタYCOUN
Tをインクリメントする(ステップS154)。次に、
プリフェッチデータの更新の必要性を判定する(ステッ
プS155)。すなわち、プリフェッチ部55110に
プリフェッチされたyバケットデータがすべて比較部5
5111に読み込まれたかどうかを、yリストカウンタ
レジスタYCOUNTの値とプリフェッチ数mとから判
別し、すべて読み込まれている場合にはプリフェッチデ
ータを更新する必要があると判定される。更新の必要が
ある場合には、ステップS156に、そうでない場合は
プリフェッチレジスタPREFETCHから次のyバケ
ットデータをフェッチレジスタFETCHに格納してス
テップS157に移る。
ットレジスタYBUCKETのy座標値がカレントyレ
ジスタCURYの値より小さいと判定された場合には、
yバケットデータが比較部55111に読み込まれた回
数をカウントするyリストカウンタレジスタYCOUN
Tをインクリメントする(ステップS154)。次に、
プリフェッチデータの更新の必要性を判定する(ステッ
プS155)。すなわち、プリフェッチ部55110に
プリフェッチされたyバケットデータがすべて比較部5
5111に読み込まれたかどうかを、yリストカウンタ
レジスタYCOUNTの値とプリフェッチ数mとから判
別し、すべて読み込まれている場合にはプリフェッチデ
ータを更新する必要があると判定される。更新の必要が
ある場合には、ステップS156に、そうでない場合は
プリフェッチレジスタPREFETCHから次のyバケ
ットデータをフェッチレジスタFETCHに格納してス
テップS157に移る。
【0152】ステップS155において、プリフェッチ
データを更新すると判定された場合には、mバケット分
のyバケットデータをプリフェッチする(ステップS1
56)。すなわち、yリストアドレスレジスタYLIS
TADRの値をフェッチレジスタFETCHに読み出し
て次のm個のyバケットの読み出し要求をメモリコント
ローラ53に出す。メモリコントローラ53から読み出
し許可信号が来たら、フェッチレジスタFETCHに読
み出したyリストアドレスをメモリコントローラ53に
出力してm個のyバケットデータの連続読み出しを行
う。読み出されたデータはプリフェッチレジスタPRE
FETCHに格納し、yリストカウンタレジスタYCO
UNTのカウント値に対応したyバケットデータをフェ
ッチレジスタFETCHに格納する。
データを更新すると判定された場合には、mバケット分
のyバケットデータをプリフェッチする(ステップS1
56)。すなわち、yリストアドレスレジスタYLIS
TADRの値をフェッチレジスタFETCHに読み出し
て次のm個のyバケットの読み出し要求をメモリコント
ローラ53に出す。メモリコントローラ53から読み出
し許可信号が来たら、フェッチレジスタFETCHに読
み出したyリストアドレスをメモリコントローラ53に
出力してm個のyバケットデータの連続読み出しを行
う。読み出されたデータはプリフェッチレジスタPRE
FETCHに格納し、yリストカウンタレジスタYCO
UNTのカウント値に対応したyバケットデータをフェ
ッチレジスタFETCHに格納する。
【0153】次に、ステップS155またはステップS
156にて、フェッチレジスタFETCHに格納したy
バケットデータからy座標値yi の切り出しを行い、カ
レントyレジスタCURYの値との比較を行う(ステッ
プS157)。その比較の結果、切り出したy座標値y
i がカレントyレジスタCURYの値より小さかった場
合にはステップS158に、大きかった場合にはステッ
プS159に、または等しかった場合にはステップS1
60に処理が移る。
156にて、フェッチレジスタFETCHに格納したy
バケットデータからy座標値yi の切り出しを行い、カ
レントyレジスタCURYの値との比較を行う(ステッ
プS157)。その比較の結果、切り出したy座標値y
i がカレントyレジスタCURYの値より小さかった場
合にはステップS158に、大きかった場合にはステッ
プS159に、または等しかった場合にはステップS1
60に処理が移る。
【0154】ステップS157での判定にて、y座標値
yi がカレントyレジスタCURYの値より小さかった
場合、yリストカウンタレジスタYCOUNTとyリス
トの総数を表すトータルyリストレジスタNUMLIS
Tの値との比較が行われる(ステップS158)。その
比較の結果、両者の値が等しくない(YCOUNTの値
がNUMLISTの値より小さい)場合は、yリストア
ドレスレジスタYLISTADRの値を次に読み込むy
リストを示すバッファアドレスに更新し、ステップS1
54に戻って、次のyリストの読み込みを行い、等しい
場合には、yリストカウンタレジスタYCOUNTの値
を0リセットし、更にyリストトップアドレスレジスタ
YLTOPADRの内容をyリストアドレスレジスタY
LISTADRに読み込んで、このセル追加判定処理を
終了して処理を図36のステップS124に移す。
yi がカレントyレジスタCURYの値より小さかった
場合、yリストカウンタレジスタYCOUNTとyリス
トの総数を表すトータルyリストレジスタNUMLIS
Tの値との比較が行われる(ステップS158)。その
比較の結果、両者の値が等しくない(YCOUNTの値
がNUMLISTの値より小さい)場合は、yリストア
ドレスレジスタYLISTADRの値を次に読み込むy
リストを示すバッファアドレスに更新し、ステップS1
54に戻って、次のyリストの読み込みを行い、等しい
場合には、yリストカウンタレジスタYCOUNTの値
を0リセットし、更にyリストトップアドレスレジスタ
YLTOPADRの内容をyリストアドレスレジスタY
LISTADRに読み込んで、このセル追加判定処理を
終了して処理を図36のステップS124に移す。
【0155】ステップS157での判定にて、y座標値
yi がカレントyレジスタCURYの値より大きかった
場合、ステップS156でフェッチレジスタFETCH
に格納した、yi >CURYとなったi番目のyバケッ
トデータの値をyバケットレジスタYBUCKETに格
納する(ステップS159)。これは、処理する走査ラ
インの更新後、追加判定処理が発生した場合に、毎回y
リストの読み込みを行ってカレントyレジスタCURY
の値と等しいy座標値を持つyバケットを探さなくても
よいようにするために必要な処理である。その後、この
セル追加判定処理を終了して処理を図36のステップS
124に移す。
yi がカレントyレジスタCURYの値より大きかった
場合、ステップS156でフェッチレジスタFETCH
に格納した、yi >CURYとなったi番目のyバケッ
トデータの値をyバケットレジスタYBUCKETに格
納する(ステップS159)。これは、処理する走査ラ
インの更新後、追加判定処理が発生した場合に、毎回y
リストの読み込みを行ってカレントyレジスタCURY
の値と等しいy座標値を持つyバケットを探さなくても
よいようにするために必要な処理である。その後、この
セル追加判定処理を終了して処理を図36のステップS
124に移す。
【0156】ステップS157での判定にて、y座標値
yi がカレントyレジスタCURYの値に等しかった場
合、次のセルデータを読み込む(ステップS160)。
すなわち、ステップS155またはステップS156で
フェッチレジスタFETCHに格納したyバケットデー
タからエッジセルへのポインタの切り出しを行い、その
値をセルアドレスレジスタCELLADRに格納する。
そして、セルデータの読み出し要求をメモリコントロー
ラ53に出し、メモリコントローラ53から読み出し許
可信号が来たら、セルアドレスレジスタCELLADR
の値をメモリコントローラ53に出力して一つのセルデ
ータの読み出しを行う。読み出されたデータは一旦フェ
ッチレジスタFETCHに格納され、開始点を表すx座
標値、x座標値の増分Δx、エッジと交差する走査ライ
ン数を表すΔyの値、および次のセルの継続状態を示す
連結フラグをそれぞれ切り出し、待機中の座標点生成回
路に連結フラグ以外の各データを転送して、x座標値を
Xレジスタに、ΔxをΔXレジスタに、ΔyをΔYレジ
スタにそれぞれ格納する。なお、この時、データが転送
された座標点生成回路から出力されるEND信号は’
0’となり、ステータスレジスタSTATUSの当該座
標点生成回路に対応するビットにも’0’が書き込まれ
て、その座標点生成回路は待機状態ではなくなったこと
を示す。データ転送後、座標点生成回路552A〜55
2Dは、現在処理中の走査ラインに対するエッジの座標
点を生成してその値を部分ソート回路553に出力し、
部分ソート回路553によってソートされた各座標点デ
ータを管理回路551のエッジデータレジスタCURX
i(i=1〜4)に格納する。
yi がカレントyレジスタCURYの値に等しかった場
合、次のセルデータを読み込む(ステップS160)。
すなわち、ステップS155またはステップS156で
フェッチレジスタFETCHに格納したyバケットデー
タからエッジセルへのポインタの切り出しを行い、その
値をセルアドレスレジスタCELLADRに格納する。
そして、セルデータの読み出し要求をメモリコントロー
ラ53に出し、メモリコントローラ53から読み出し許
可信号が来たら、セルアドレスレジスタCELLADR
の値をメモリコントローラ53に出力して一つのセルデ
ータの読み出しを行う。読み出されたデータは一旦フェ
ッチレジスタFETCHに格納され、開始点を表すx座
標値、x座標値の増分Δx、エッジと交差する走査ライ
ン数を表すΔyの値、および次のセルの継続状態を示す
連結フラグをそれぞれ切り出し、待機中の座標点生成回
路に連結フラグ以外の各データを転送して、x座標値を
Xレジスタに、ΔxをΔXレジスタに、ΔyをΔYレジ
スタにそれぞれ格納する。なお、この時、データが転送
された座標点生成回路から出力されるEND信号は’
0’となり、ステータスレジスタSTATUSの当該座
標点生成回路に対応するビットにも’0’が書き込まれ
て、その座標点生成回路は待機状態ではなくなったこと
を示す。データ転送後、座標点生成回路552A〜55
2Dは、現在処理中の走査ラインに対するエッジの座標
点を生成してその値を部分ソート回路553に出力し、
部分ソート回路553によってソートされた各座標点デ
ータを管理回路551のエッジデータレジスタCURX
i(i=1〜4)に格納する。
【0157】次に、セルポインタの更新を行う(ステッ
プS161)。ここでは、ステップS160で切り出し
た連結フラグが’1’ならば、次のセルデータの格納先
を示すアドレスを現在のセルアドレスレジスタCELL
ADRの値とセルサイズとから算出してセルアドレスレ
ジスタCELLADRに書き戻す。もし、連結フラグ
が’0’ならば、次に連結されるセルはないため、nu
llをセルアドレスレジスタCELLADRに書き込
む。さらに、セルカウントレジスタNUMCELLをデ
クリメントする。このようにしてセルポインタを更新し
た後、その連結フラグはEOCを表す’0’であったか
どうかの判定が行われる(ステップS162)。判定の
結果、連結フラグが’0’でない場合には、待機状態の
座標点生成回路があるかどうかを判定する(ステップS
163)。ここでは、ステータスレジスタSTATUS
の内容を調べ、待機状態であることを表す’1’の値が
検出されたならば、ステップS160に戻って、セルア
ドレスレジスタCELLADRに格納されているアドレ
スが示すセルデータの読み出しを行い、’1’の値が格
納されていたビットに対応する座標点生成回路にセルデ
ータの各値を書き込むといった処理を行う。ステータス
レジスタSTATUSの内容を調べた結果、全ビットの
値が’0’、つまり、すべての座標点生成回路552A
〜552Dは座標点生成処理中である場合は、連結セル
が継続していても次のセルの読み込みを行わない。
プS161)。ここでは、ステップS160で切り出し
た連結フラグが’1’ならば、次のセルデータの格納先
を示すアドレスを現在のセルアドレスレジスタCELL
ADRの値とセルサイズとから算出してセルアドレスレ
ジスタCELLADRに書き戻す。もし、連結フラグ
が’0’ならば、次に連結されるセルはないため、nu
llをセルアドレスレジスタCELLADRに書き込
む。さらに、セルカウントレジスタNUMCELLをデ
クリメントする。このようにしてセルポインタを更新し
た後、その連結フラグはEOCを表す’0’であったか
どうかの判定が行われる(ステップS162)。判定の
結果、連結フラグが’0’でない場合には、待機状態の
座標点生成回路があるかどうかを判定する(ステップS
163)。ここでは、ステータスレジスタSTATUS
の内容を調べ、待機状態であることを表す’1’の値が
検出されたならば、ステップS160に戻って、セルア
ドレスレジスタCELLADRに格納されているアドレ
スが示すセルデータの読み出しを行い、’1’の値が格
納されていたビットに対応する座標点生成回路にセルデ
ータの各値を書き込むといった処理を行う。ステータス
レジスタSTATUSの内容を調べた結果、全ビットの
値が’0’、つまり、すべての座標点生成回路552A
〜552Dは座標点生成処理中である場合は、連結セル
が継続していても次のセルの読み込みを行わない。
【0158】ステップS162において連結セルがない
と判定された場合、またはステップS163においてす
べての座標点生成回路552A〜552Dが座標点生成
処理中であると判定された場合には、セルアドレスレジ
スタCELLADR中の更新セルポインタの値をプリフ
ェッチレジスタPREFETCHの現在処理中のyバケ
ットに書き込んで更新する(ステップS164)。プリ
フェッチレジスタPREFETCHの全yバケットデー
タに対する更新が終了した場合は、yバケットデータの
書き込み要求をメモリコントローラ53に出し、メモリ
コントローラ53から書き込み許可信号が来たら、yリ
ストアドレスレジスタYLISTADR中のyリストア
ドレスを出力し、次に、セルアドレスレジスタCELL
ADR中の更新セルポインタの値を連続出力してディス
プレイリストバンドバッファ541に書き込みを行い、
プリフェッチしたyバケットにおけるセルポインタを更
新する。そして、yリストアドレスレジスタYLIST
ADRの値を次に読み込むyリストを示すバッファアド
レスに更新する。なお、ディスプレイリストバンドバッ
ファ541への書き込み処理は座標点生成処理中に並行
して行われる。このようにして、このセル追加判定処理
を終了すると、処理は図36のステップS124に移
る。
と判定された場合、またはステップS163においてす
べての座標点生成回路552A〜552Dが座標点生成
処理中であると判定された場合には、セルアドレスレジ
スタCELLADR中の更新セルポインタの値をプリフ
ェッチレジスタPREFETCHの現在処理中のyバケ
ットに書き込んで更新する(ステップS164)。プリ
フェッチレジスタPREFETCHの全yバケットデー
タに対する更新が終了した場合は、yバケットデータの
書き込み要求をメモリコントローラ53に出し、メモリ
コントローラ53から書き込み許可信号が来たら、yリ
ストアドレスレジスタYLISTADR中のyリストア
ドレスを出力し、次に、セルアドレスレジスタCELL
ADR中の更新セルポインタの値を連続出力してディス
プレイリストバンドバッファ541に書き込みを行い、
プリフェッチしたyバケットにおけるセルポインタを更
新する。そして、yリストアドレスレジスタYLIST
ADRの値を次に読み込むyリストを示すバッファアド
レスに更新する。なお、ディスプレイリストバンドバッ
ファ541への書き込み処理は座標点生成処理中に並行
して行われる。このようにして、このセル追加判定処理
を終了すると、処理は図36のステップS124に移
る。
【0159】次に、座標点生成LSI55によってCP
U50に当該描画オブジェクトに対する座標点生成処理
が終了したことが通知されると、CPU50はエッジリ
ストバッファ542のエッジリスト部に格納されている
走査ライン毎のx座標値のソート処理を開始する。第2
の実施の形態では、エッジリスト部に格納されている走
査ライン毎のx座標値は、先述した通り既に部分ソート
回路553により4個ずつ昇順にソートされており、大
部分はソート部20でのソート処理を必要としないほど
ソートされている。したがって、ソート部20でのソー
ト処理は図24〜図27で述べたクイックソートプログ
ラムである必要はなく、ソートがほとんど済んでいると
いう条件を活かすことのできるソート処理方法を用いる
ことが望ましい。そこで、以下に本発明の第2の実施の
形態におけるソート部20の好適な処理内容について詳
細に説明する。
U50に当該描画オブジェクトに対する座標点生成処理
が終了したことが通知されると、CPU50はエッジリ
ストバッファ542のエッジリスト部に格納されている
走査ライン毎のx座標値のソート処理を開始する。第2
の実施の形態では、エッジリスト部に格納されている走
査ライン毎のx座標値は、先述した通り既に部分ソート
回路553により4個ずつ昇順にソートされており、大
部分はソート部20でのソート処理を必要としないほど
ソートされている。したがって、ソート部20でのソー
ト処理は図24〜図27で述べたクイックソートプログ
ラムである必要はなく、ソートがほとんど済んでいると
いう条件を活かすことのできるソート処理方法を用いる
ことが望ましい。そこで、以下に本発明の第2の実施の
形態におけるソート部20の好適な処理内容について詳
細に説明する。
【0160】発明の第2の実施の形態におけるソート部
20の全体的な処理の流れは、図24の処理の流れと同
様であるのでここでは説明を省略する。但し、図24の
ステップS75での設定値は、第2の実施の形態におい
ては、4となる。
20の全体的な処理の流れは、図24の処理の流れと同
様であるのでここでは説明を省略する。但し、図24の
ステップS75での設定値は、第2の実施の形態におい
ては、4となる。
【0161】図40は第2の実施の形態でのソート部に
おけるソート方法の概念を示す説明図である。まず、入
力されたn個のエッジデータは4個ずつ読み込まれる。
ここで、2組のエッジデータEDN ,EDN+1 のそれぞ
れに関して、先頭のエッジデータEDN(1),EDN+1(1)
の大小比較を行い、小さい方(仮に、EDN(1)とする)
をバッファに書き込む。次に、残ったエッジデータED
N+1(1)と、次のエッジデータEDN(2)の大小比較を行
い、小さい方(仮に、EDN+1(1)とする)をバッファに
書き込む。上記の処理を繰り返し行い、8個すべてのエ
ッジデータを、値の小さい順にソートする。
おけるソート方法の概念を示す説明図である。まず、入
力されたn個のエッジデータは4個ずつ読み込まれる。
ここで、2組のエッジデータEDN ,EDN+1 のそれぞ
れに関して、先頭のエッジデータEDN(1),EDN+1(1)
の大小比較を行い、小さい方(仮に、EDN(1)とする)
をバッファに書き込む。次に、残ったエッジデータED
N+1(1)と、次のエッジデータEDN(2)の大小比較を行
い、小さい方(仮に、EDN+1(1)とする)をバッファに
書き込む。上記の処理を繰り返し行い、8個すべてのエ
ッジデータを、値の小さい順にソートする。
【0162】さらに、読み込むエッジデータの数を4n
(n=1,2・・・)個として、上記の処理を行うこと
により、すべてのエッジデータをソートすることが可能
となる。
(n=1,2・・・)個として、上記の処理を行うこと
により、すべてのエッジデータをソートすることが可能
となる。
【0163】次に、ソート部でこの上述したソート方法
を実現するソフトウェアの機能構成について説明する。
図41は第2の実施の形態でのソート部の構成例を示す
ブロック図である。ソート部は、エッジデータ入力部2
01と、ソートバッファ202と、エッジデータ出力部
203と、ソート処理管理部204と、部分エッジデー
タ取得部208と、部分エッジデータ判定部209と、
部分エッジデータ併合部210とから構成される。
を実現するソフトウェアの機能構成について説明する。
図41は第2の実施の形態でのソート部の構成例を示す
ブロック図である。ソート部は、エッジデータ入力部2
01と、ソートバッファ202と、エッジデータ出力部
203と、ソート処理管理部204と、部分エッジデー
タ取得部208と、部分エッジデータ判定部209と、
部分エッジデータ併合部210とから構成される。
【0164】エッジデータ入力部201はエッジリスト
バッファ542からエッジリストバッファアドレスが示
すバッファ内のエッジデータを入力する。ソートバッフ
ァ202はエッジデータ入力部201に入力したエッジ
データを一時的に蓄える。エッジデータ出力部203は
最終的にソートされたエッジデータをソートバッファ2
02からエッジリストバッファ542へ出力する。ソー
ト処理管理部204はソートすべきエッジデータ数の設
定などのソート処理全体を管理する。部分エッジデータ
取得部208はエッジデータ入力部201で入力された
エッジデータをn個ずつ読み込む。部分エッジデータ判
定部209は部分エッジデータ取得部208で読み込ん
だそれぞれのエッジデータの大小を判定する。そして、
部分エッジデータ併合部210は部分エッジデータ判定
部209の比較判定結果に従い、エッジデータを併合し
て書き込む機能を有している。
バッファ542からエッジリストバッファアドレスが示
すバッファ内のエッジデータを入力する。ソートバッフ
ァ202はエッジデータ入力部201に入力したエッジ
データを一時的に蓄える。エッジデータ出力部203は
最終的にソートされたエッジデータをソートバッファ2
02からエッジリストバッファ542へ出力する。ソー
ト処理管理部204はソートすべきエッジデータ数の設
定などのソート処理全体を管理する。部分エッジデータ
取得部208はエッジデータ入力部201で入力された
エッジデータをn個ずつ読み込む。部分エッジデータ判
定部209は部分エッジデータ取得部208で読み込ん
だそれぞれのエッジデータの大小を判定する。そして、
部分エッジデータ併合部210は部分エッジデータ判定
部209の比較判定結果に従い、エッジデータを併合し
て書き込む機能を有している。
【0165】次に、図41に示したように構成されるソ
ート部におけるソート処理の流れを図42のフローチャ
ートを用いて詳細に説明する。図42は第2の実施の形
態でのソート部の処理の流れを示すフローチャートであ
る。エッジデータ入力部201で入力されたエッジデー
タは、まず、ソートバッファ202に蓄えられる。ここ
で、ソート処理が開始されると、まず、部分エッジデー
タ取得部208はエッジデータ数が4以下かどうかを判
定する(ステップS171)。エッジデータ数が4以下
なら終了し、4より大きければ、部分エッジデータ取得
部208により、個数4m(m=1)のエッジデータが
2組読み込まれる(ステップS172)。次に、部分エ
ッジデータ判定部209により、2組のエッジデータE
D1(i),ED2(j)のそれぞれのエッジデータ値の大小比
較を行う(ステップS173)。部分エッジデータ併合
部210により、これら2組のエッジデータED1(i),
ED2(j)の内、値の小さいエッジデータをソートバッフ
ァ202へ書き込む。すなわち、大小比較の結果、エッ
ジデータED1(i)がエッジデータED2(j)より小さい場
合には、エッジデータED1(i)を書き込み(ステップS
174)、エッジデータED2(j)がエッジデータED
1(i)より小さい場合には、エッジデータED2(j)を書き
込む(ステップS175)。次いで、ソート処理管理部
204はiまたはjをそれぞれインクリメントし(ステ
ップS176,S177)、iまたはjをそれぞれnと
比較する(ステップS178,S179)。比較の結
果、iまたはjがnより小さい間は、ステップS173
に戻る。このようにして、ソート処理管理部204は、
部分エッジデータ取得部208で読み込んだエッジデー
タ列のすべてのエッジデータの大小比較を行うように管
理する。
ート部におけるソート処理の流れを図42のフローチャ
ートを用いて詳細に説明する。図42は第2の実施の形
態でのソート部の処理の流れを示すフローチャートであ
る。エッジデータ入力部201で入力されたエッジデー
タは、まず、ソートバッファ202に蓄えられる。ここ
で、ソート処理が開始されると、まず、部分エッジデー
タ取得部208はエッジデータ数が4以下かどうかを判
定する(ステップS171)。エッジデータ数が4以下
なら終了し、4より大きければ、部分エッジデータ取得
部208により、個数4m(m=1)のエッジデータが
2組読み込まれる(ステップS172)。次に、部分エ
ッジデータ判定部209により、2組のエッジデータE
D1(i),ED2(j)のそれぞれのエッジデータ値の大小比
較を行う(ステップS173)。部分エッジデータ併合
部210により、これら2組のエッジデータED1(i),
ED2(j)の内、値の小さいエッジデータをソートバッフ
ァ202へ書き込む。すなわち、大小比較の結果、エッ
ジデータED1(i)がエッジデータED2(j)より小さい場
合には、エッジデータED1(i)を書き込み(ステップS
174)、エッジデータED2(j)がエッジデータED
1(i)より小さい場合には、エッジデータED2(j)を書き
込む(ステップS175)。次いで、ソート処理管理部
204はiまたはjをそれぞれインクリメントし(ステ
ップS176,S177)、iまたはjをそれぞれnと
比較する(ステップS178,S179)。比較の結
果、iまたはjがnより小さい間は、ステップS173
に戻る。このようにして、ソート処理管理部204は、
部分エッジデータ取得部208で読み込んだエッジデー
タ列のすべてのエッジデータの大小比較を行うように管
理する。
【0166】次に、2組のエッジデータED1(i),ED
2(j)の内、いずれか一方の組のエッジデータ列がすべて
書き込まれた場合は、部分エッジデータ併合部210に
より、他方の組のエッジデータ列の残りすべてのエッジ
データをソートバッファ202へ書き込む(ステップS
180)。ここで、n個ずつ2組読み込めるエッジデー
タがあるかどうかが判定される(ステップS181)。
もし、n個ずつ2組読み込めるエッジデータがある場合
には、ステップS172に戻り、新しいエッジデータの
読み込みを行う。n個ずつ2組読み込めるエッジデータ
がなければ、ソート処理管理部204は、部分エッジデ
ータ取得部208で読み込むエッジデータ列の個数を変
更する(ステップS182)。そして、ソート処理管理
部204により、エッジデータ数がnより小さいかどう
かが判定される(ステップS183)。エッジデータ数
がnより大きい間は、ステップS172に戻って、以上
の処理を繰り返す。ステップS183の判定にて、エッ
ジデータ数がnより小さくなると、このソート処理は終
了する。これにより、エッジリストバッファ542から
入力された個数のエッジデータすべてに対して、xの値
の小さい順にソートされることになる。
2(j)の内、いずれか一方の組のエッジデータ列がすべて
書き込まれた場合は、部分エッジデータ併合部210に
より、他方の組のエッジデータ列の残りすべてのエッジ
データをソートバッファ202へ書き込む(ステップS
180)。ここで、n個ずつ2組読み込めるエッジデー
タがあるかどうかが判定される(ステップS181)。
もし、n個ずつ2組読み込めるエッジデータがある場合
には、ステップS172に戻り、新しいエッジデータの
読み込みを行う。n個ずつ2組読み込めるエッジデータ
がなければ、ソート処理管理部204は、部分エッジデ
ータ取得部208で読み込むエッジデータ列の個数を変
更する(ステップS182)。そして、ソート処理管理
部204により、エッジデータ数がnより小さいかどう
かが判定される(ステップS183)。エッジデータ数
がnより大きい間は、ステップS172に戻って、以上
の処理を繰り返す。ステップS183の判定にて、エッ
ジデータ数がnより小さくなると、このソート処理は終
了する。これにより、エッジリストバッファ542から
入力された個数のエッジデータすべてに対して、xの値
の小さい順にソートされることになる。
【0167】上記の処理がすべて終了し、ソートバッフ
ァ中の全エッジデータがソートされると、エッジデータ
出力部203は、エッジリストバッファ542にソート
バッファ202中のエッジデータおよびソート処理管理
部204で管理されている最大値を除いた有効なエッジ
データ数を出力する。
ァ中の全エッジデータがソートされると、エッジデータ
出力部203は、エッジリストバッファ542にソート
バッファ202中のエッジデータおよびソート処理管理
部204で管理されている最大値を除いた有効なエッジ
データ数を出力する。
【0168】以上の二つの実施の形態では、座標点生成
の処理に必要なエッジの傾き情報、すなわち、Δxは浮
動小数点データになるので、座標点生成回路には傾き情
報を整数値へ変換する演算器を備えているが、次に、傾
き情報をあらかじめ整数化して座標点生成を行うように
した本発明の第3の実施の形態について説明する。
の処理に必要なエッジの傾き情報、すなわち、Δxは浮
動小数点データになるので、座標点生成回路には傾き情
報を整数値へ変換する演算器を備えているが、次に、傾
き情報をあらかじめ整数化して座標点生成を行うように
した本発明の第3の実施の形態について説明する。
【0169】図43は第3の実施の形態でのディスプレ
イリストの連結セルの構成を示す図である。ディスプレ
イリストのヘッダ部およびyバケットは、図12および
図13で示したディスプレイリストのヘッダ部およびy
バケットの構成と同様であるので、ここでは説明を省略
する。連結セルは、入力された各描画オブジェクト毎の
ベクタデータの始点のx座標値と、ベクタデータの終点
のx座標値と始点のx座標値との差分であるdxと、ベ
クタデータの終点のy座標値と始点のy座標値との差分
であるdyと、ベクタデータと交差する走査ラインの数
であるΔyと、その走査ラインyを始点とする異なるベ
クタデータが存在するか否かを示す連結フラグとから構
成される。これらの内、x,dx,dy,Δyは、すべ
て整数で表される。複数のバンドにまたがる描画オブジ
ェクトは、バンドの境界で複数のオブジェクトに分割さ
れるため、dyとΔyは異なる値を持つ。複数のバンド
にまたがらない描画オブジェクトでは、各連結セルのd
yとΔyは等しい。
イリストの連結セルの構成を示す図である。ディスプレ
イリストのヘッダ部およびyバケットは、図12および
図13で示したディスプレイリストのヘッダ部およびy
バケットの構成と同様であるので、ここでは説明を省略
する。連結セルは、入力された各描画オブジェクト毎の
ベクタデータの始点のx座標値と、ベクタデータの終点
のx座標値と始点のx座標値との差分であるdxと、ベ
クタデータの終点のy座標値と始点のy座標値との差分
であるdyと、ベクタデータと交差する走査ラインの数
であるΔyと、その走査ラインyを始点とする異なるベ
クタデータが存在するか否かを示す連結フラグとから構
成される。これらの内、x,dx,dy,Δyは、すべ
て整数で表される。複数のバンドにまたがる描画オブジ
ェクトは、バンドの境界で複数のオブジェクトに分割さ
れるため、dyとΔyは異なる値を持つ。複数のバンド
にまたがらない描画オブジェクトでは、各連結セルのd
yとΔyは等しい。
【0170】次に、第3の実施の形態における座標点生
成LSI55について詳細に説明する。座標点生成LS
I55は、たとえば図29に示した構成のものを使用す
ると、管理回路551と、四つの座標点生成回路552
A〜552Dと、部分ソート回路553とから構成され
る。これらの構成要素の内、管理回路551および部分
ソート回路553は、第2の実施の形態で述べたものと
同様である。ただし、本実施の形態でのディスプレイリ
ストは、図43に示したように、第2の実施の形態のも
のとは異なるので、管理回路551から座標点生成回路
552へ転送されるセルデータは(X,DX,DY,Δ
Y)となっている。座標点生成回路552A〜552D
は、管理回路551から1組ずつ上記セルデータを入力
し、走査ライン毎に同期して最大4点のエッジデータを
並列に生成する機能を備えるものである。四つの座標点
生成回路552A〜552Dは、すべて同一の構造を持
つ。このように、第3の実施の形態での座標点生成回路
552は、座標点計算がすべて整数演算のみで実行でき
るように工夫されている。
成LSI55について詳細に説明する。座標点生成LS
I55は、たとえば図29に示した構成のものを使用す
ると、管理回路551と、四つの座標点生成回路552
A〜552Dと、部分ソート回路553とから構成され
る。これらの構成要素の内、管理回路551および部分
ソート回路553は、第2の実施の形態で述べたものと
同様である。ただし、本実施の形態でのディスプレイリ
ストは、図43に示したように、第2の実施の形態のも
のとは異なるので、管理回路551から座標点生成回路
552へ転送されるセルデータは(X,DX,DY,Δ
Y)となっている。座標点生成回路552A〜552D
は、管理回路551から1組ずつ上記セルデータを入力
し、走査ライン毎に同期して最大4点のエッジデータを
並列に生成する機能を備えるものである。四つの座標点
生成回路552A〜552Dは、すべて同一の構造を持
つ。このように、第3の実施の形態での座標点生成回路
552は、座標点計算がすべて整数演算のみで実行でき
るように工夫されている。
【0171】図44は第3の実施の形態での座標点生成
回路の構成例を示すブロック図である。座標点生成回路
552は、初期値計算部554と、座標点計算部555
とから構成される。初期値計算部554は、管理回路5
51からセルデータのDXとDYとを入力し、誤差の初
期値E0 と、誤差Eが正の時にXに加算される値DXP
と、誤差Eが負の時にXに加算される値DXNと、誤差
Eが正の時にEに加算される値DEPと、誤差Eが負の
時にEに加算される値DENを計算し、座標点計算部5
55へ出力するものである。座標点計算部555は、
X,DXP,DXN,E0 ,DEP,DEN,ΔYを用
いて走査ライン毎にエッジの座標点を計算するものであ
る。
回路の構成例を示すブロック図である。座標点生成回路
552は、初期値計算部554と、座標点計算部555
とから構成される。初期値計算部554は、管理回路5
51からセルデータのDXとDYとを入力し、誤差の初
期値E0 と、誤差Eが正の時にXに加算される値DXP
と、誤差Eが負の時にXに加算される値DXNと、誤差
Eが正の時にEに加算される値DEPと、誤差Eが負の
時にEに加算される値DENを計算し、座標点計算部5
55へ出力するものである。座標点計算部555は、
X,DXP,DXN,E0 ,DEP,DEN,ΔYを用
いて走査ライン毎にエッジの座標点を計算するものであ
る。
【0172】図45は第3の実施の形態での座標点生成
処理の様子を示す説明図である。誤差Eとは、走査ライ
ン毎に行われる座標点計算において、座標値Xの増分を
決定するために用いる数である。DX/DYの小数点以
下を切り捨てた数を基本増分Δとし、エッジと走査ライ
ンとの交点をP、Xi+ΔとXi+Δ+1との中点をQと
すれば、誤差Eiは、交点Pと中点Qとの差分(P−
Q)と定義される。ここで、エッジが図45に示したよ
うに例えば中点Qよりも右側で走査ラインと交差してい
るとき、すなわち、Ei>0の場合は、Xi+1=Xi+Δ
+1となり、逆に、Ei<0の場合はXi+1=Xi+Δ
となる。また、誤差E自身も走査ライン毎に更新され、
Ei>0の場合はEi+1=Ei+2dx−2dy(Δ+
1)となり、Ei<0の場合はEi+1=Ei+2dx−2
dyΔとなる。走査ライン毎にXあるいはEに加えられ
る値は、既に述べたように、あらかじめ初期値計算部5
54で計算され、座標点計算部555の内部レジスタに
格納される。初期値の計算式は式(7)に示す通りであ
る。ただし、符号はΔ>0の時、+をとり、Δ<0の時
は−をとる。
処理の様子を示す説明図である。誤差Eとは、走査ライ
ン毎に行われる座標点計算において、座標値Xの増分を
決定するために用いる数である。DX/DYの小数点以
下を切り捨てた数を基本増分Δとし、エッジと走査ライ
ンとの交点をP、Xi+ΔとXi+Δ+1との中点をQと
すれば、誤差Eiは、交点Pと中点Qとの差分(P−
Q)と定義される。ここで、エッジが図45に示したよ
うに例えば中点Qよりも右側で走査ラインと交差してい
るとき、すなわち、Ei>0の場合は、Xi+1=Xi+Δ
+1となり、逆に、Ei<0の場合はXi+1=Xi+Δ
となる。また、誤差E自身も走査ライン毎に更新され、
Ei>0の場合はEi+1=Ei+2dx−2dy(Δ+
1)となり、Ei<0の場合はEi+1=Ei+2dx−2
dyΔとなる。走査ライン毎にXあるいはEに加えられ
る値は、既に述べたように、あらかじめ初期値計算部5
54で計算され、座標点計算部555の内部レジスタに
格納される。初期値の計算式は式(7)に示す通りであ
る。ただし、符号はΔ>0の時、+をとり、Δ<0の時
は−をとる。
【0173】
【数7】 DXN=Δ=DX/DY ……(7a) DXP=Δ±1 ……(7b) E0 =2・DX−DY−2・DY・Δ ……(7c) DEN=2・DX−2・DY・Δ ……(7d) DEP=2・DX−2・DY・(Δ±1) ……(7e) 次に、図44に示した座標点生成回路552の初期値計
算部554の構成例について説明する。
算部554の構成例について説明する。
【0174】図46は初期値計算部の構成例を示すブロ
ック図である。初期値計算部554は、セルデータ(D
X,DY)を保持するDXレジスタ5541およびDY
レジスタ5542と、加減算器5543と、シフトレジ
スタ5544と、計算結果の初期値を一時的に保持する
TMPレジスタ5545と、二つのマルチプレクサ55
46および5547とから構成される。加減算器554
3とシフトレジスタ5544との組合せにより、乗算お
よび除算を実行することができる。また、加減算器55
43はインクリメンタとデクリメンタの機能を持つ。D
Xレジスタ5541、DYレジスタ5542およびTM
Pレジスタ5545は、1ビット左シフトの操作ができ
るように構成されている。各レジスタへの書き込み、シ
フトの開始/終了、加減算器5543の処理の切り替
え、各マルチプレクサの切り替え等は、図示しない制御
信号によって管理回路551から制御される。初期値計
算部554は、この構成により、セルデータ(DX,D
Y)を入力し、式(7)に従った計算を行うことにより
初期値であるDXN,DXP,E0 ,DEN,DEPを
出力するが、この初期値計算部554における計算処理
の流れを図47を用いて説明する。
ック図である。初期値計算部554は、セルデータ(D
X,DY)を保持するDXレジスタ5541およびDY
レジスタ5542と、加減算器5543と、シフトレジ
スタ5544と、計算結果の初期値を一時的に保持する
TMPレジスタ5545と、二つのマルチプレクサ55
46および5547とから構成される。加減算器554
3とシフトレジスタ5544との組合せにより、乗算お
よび除算を実行することができる。また、加減算器55
43はインクリメンタとデクリメンタの機能を持つ。D
Xレジスタ5541、DYレジスタ5542およびTM
Pレジスタ5545は、1ビット左シフトの操作ができ
るように構成されている。各レジスタへの書き込み、シ
フトの開始/終了、加減算器5543の処理の切り替
え、各マルチプレクサの切り替え等は、図示しない制御
信号によって管理回路551から制御される。初期値計
算部554は、この構成により、セルデータ(DX,D
Y)を入力し、式(7)に従った計算を行うことにより
初期値であるDXN,DXP,E0 ,DEN,DEPを
出力するが、この初期値計算部554における計算処理
の流れを図47を用いて説明する。
【0175】図47は初期値計算部の処理の流れを示す
フローチャートである。まず、DXレジスタ5541お
よびDYレジスタ5542にセルデータDX,DYが入
力されると、まず、加減算器5543とシフトレジスタ
5544を用いてDX/DYの整数除算を行い、初期値
DXNを計算して出力する(ステップS191)。この
時、同時にTMPレジスタ5545にもDXNの値を格
納しておく。次に、TMPレジスタ5545の符号ビッ
トの値に応じて加減算器5543におけるインクリメン
トとデクリメントを切り替え、初期値DXPを計算して
出力する(ステップS192)。このとき、TMPレジ
スタ5545の符号ビットの値、すなわちΔの符号は、
初期値計算が終了するまで図示しないステートマシンの
ステータスレジスタに記憶しておく。次に、加減算器5
543とシフトレジスタ5544とを用いて、DY×T
MPの乗算を行い、結果をTMPレジスタ5545に格
納する(ステップS193)。このとき、DXレジスタ
5541を左シフトしておく。
フローチャートである。まず、DXレジスタ5541お
よびDYレジスタ5542にセルデータDX,DYが入
力されると、まず、加減算器5543とシフトレジスタ
5544を用いてDX/DYの整数除算を行い、初期値
DXNを計算して出力する(ステップS191)。この
時、同時にTMPレジスタ5545にもDXNの値を格
納しておく。次に、TMPレジスタ5545の符号ビッ
トの値に応じて加減算器5543におけるインクリメン
トとデクリメントを切り替え、初期値DXPを計算して
出力する(ステップS192)。このとき、TMPレジ
スタ5545の符号ビットの値、すなわちΔの符号は、
初期値計算が終了するまで図示しないステートマシンの
ステータスレジスタに記憶しておく。次に、加減算器5
543とシフトレジスタ5544とを用いて、DY×T
MPの乗算を行い、結果をTMPレジスタ5545に格
納する(ステップS193)。このとき、DXレジスタ
5541を左シフトしておく。
【0176】次に、TMPレジスタ5545を左シフト
し、その結果を用いて初期値DENを計算して出力する
(ステップS194)。このとき、同時にTMPレジス
タ5545にもDENの値を格納しておく。次に、TM
Pレジスタ5545に格納したDENとDYレジスタ5
542の値とを用いて、初期値E0 を計算して出力する
(ステップS195)。最後に、DYレジスタ5542
を左シフトし、その結果とTMPレジスタ5545に格
納したDENとを用いて初期値DEPを計算して出力す
る(ステップS196)。以上の初期値計算処理は、始
点の座標点出力処理と並列に実行される。
し、その結果を用いて初期値DENを計算して出力する
(ステップS194)。このとき、同時にTMPレジス
タ5545にもDENの値を格納しておく。次に、TM
Pレジスタ5545に格納したDENとDYレジスタ5
542の値とを用いて、初期値E0 を計算して出力する
(ステップS195)。最後に、DYレジスタ5542
を左シフトし、その結果とTMPレジスタ5545に格
納したDENとを用いて初期値DEPを計算して出力す
る(ステップS196)。以上の初期値計算処理は、始
点の座標点出力処理と並列に実行される。
【0177】次に、図44に示した座標点生成回路55
2の座標点計算部555の構成例について説明する。図
48は座標点計算部の構成例を示すブロック図である。
座標点計算部555は、x座標値を保持するXレジスタ
55501と、DXPを保持するDXPレジスタ555
02と、DXNを保持するDXNレジスタ55503
と、誤差Eを保持するEレジスタ55504と、DEP
を保持するDEPレジスタ55505と、DENを保持
するDENレジスタ55506と、交差数ΔYを保持す
るΔYレジスタ55507と、二つの加算器55508
および55509と、ΔYレジスタ55507の値をデ
クリメントする演算器55510と、ΔYレジスタ55
507の値を0と比較する比較器55511と、Eレジ
スタ55504の符号ビットを切り出す演算器5551
2と、六つのマルチプレクサ55513〜55518と
から構成される。初期値計算部554から順次入力され
る初期値は、図示しないセレクタ回路によって適切なレ
ジスタへ入力され、格納される。各レジスタへの書き込
み、各マルチプレクサの切り替え等は、図示しない制御
信号によって管理回路551から制御される。座標点計
算部555における走査ライン毎の座標点計算処理は、
以下の式(8a)〜(8e)に従って実行される。
2の座標点計算部555の構成例について説明する。図
48は座標点計算部の構成例を示すブロック図である。
座標点計算部555は、x座標値を保持するXレジスタ
55501と、DXPを保持するDXPレジスタ555
02と、DXNを保持するDXNレジスタ55503
と、誤差Eを保持するEレジスタ55504と、DEP
を保持するDEPレジスタ55505と、DENを保持
するDENレジスタ55506と、交差数ΔYを保持す
るΔYレジスタ55507と、二つの加算器55508
および55509と、ΔYレジスタ55507の値をデ
クリメントする演算器55510と、ΔYレジスタ55
507の値を0と比較する比較器55511と、Eレジ
スタ55504の符号ビットを切り出す演算器5551
2と、六つのマルチプレクサ55513〜55518と
から構成される。初期値計算部554から順次入力され
る初期値は、図示しないセレクタ回路によって適切なレ
ジスタへ入力され、格納される。各レジスタへの書き込
み、各マルチプレクサの切り替え等は、図示しない制御
信号によって管理回路551から制御される。座標点計
算部555における走査ライン毎の座標点計算処理は、
以下の式(8a)〜(8e)に従って実行される。
【0178】
【数8】 X=X+DXP (E≧0のとき) ……(8a) X=X+DXN (E<0のとき) ……(8b) E=E+DEP (E≧0のとき) ……(8c) E=E+DEN (E<0のとき) ……(8d) ΔY=ΔY−1 ……(8e) まず、Xレジスタ55501、DXPレジスタ5550
2、DXNレジスタ55503、および加算器5550
8を使い、演算器55512の出力結果に従ってマルチ
プレクサ55516を切り替えることにより、式(8
a)および(8b)の計算が行われる。同様に、Eレジ
スタ55504、DEPレジスタ55505、DENレ
ジスタ55506、および加算器55509を使い、演
算器55512の出力結果に従ってマルチプレクサ55
517を切り替えることにより、式(8c)および(8
d)の計算が行行われる。そして、ΔYレジスタ555
07および演算器55510により式(8e)の計算が
行われる。マルチプレクサ55518は、座標点生成回
路552がエッジデータ生成処理をしている場合は、式
(8a)または(8b)に従って更新されたXレジスタ
55501の値を出力し、待機中である場合は、x座標
値の取り得る最大値を出力する。このようにして得られ
たx座標値は次段の部分ソート回路553に出力され
る。
2、DXNレジスタ55503、および加算器5550
8を使い、演算器55512の出力結果に従ってマルチ
プレクサ55516を切り替えることにより、式(8
a)および(8b)の計算が行われる。同様に、Eレジ
スタ55504、DEPレジスタ55505、DENレ
ジスタ55506、および加算器55509を使い、演
算器55512の出力結果に従ってマルチプレクサ55
517を切り替えることにより、式(8c)および(8
d)の計算が行行われる。そして、ΔYレジスタ555
07および演算器55510により式(8e)の計算が
行われる。マルチプレクサ55518は、座標点生成回
路552がエッジデータ生成処理をしている場合は、式
(8a)または(8b)に従って更新されたXレジスタ
55501の値を出力し、待機中である場合は、x座標
値の取り得る最大値を出力する。このようにして得られ
たx座標値は次段の部分ソート回路553に出力され
る。
【0179】
【発明の効果】以上説明したように本発明では、所定の
描画命令で記述されている印刷データをディスプレイリ
ストに変換し、ディスプレイリストからビットマップ展
開する印刷処理装置のエッジリストデータ生成処理を、
描画オブジェクトのエッジを表す座標点を生成する座標
点生成処理と、座標点に順序を付けるソート処理とに分
離し、最初に複数の座標点生成装置で繰り返し座標点生
成した後、ソート処理を行うよう構成した。このため、
それぞれの処理に適した処理資源、すなわち、座標点生
成処理はハードウェア、ソート処理はソフトウェアで処
理することが可能となり、記述言語で記述される複雑な
描画オブジェクトに対しても軽い資源で高速の処理を行
うことが可能となり、座標点生成およびソート処理をソ
フトウェアで処理する場合に比べて10ないし15倍高
速になる。
描画命令で記述されている印刷データをディスプレイリ
ストに変換し、ディスプレイリストからビットマップ展
開する印刷処理装置のエッジリストデータ生成処理を、
描画オブジェクトのエッジを表す座標点を生成する座標
点生成処理と、座標点に順序を付けるソート処理とに分
離し、最初に複数の座標点生成装置で繰り返し座標点生
成した後、ソート処理を行うよう構成した。このため、
それぞれの処理に適した処理資源、すなわち、座標点生
成処理はハードウェア、ソート処理はソフトウェアで処
理することが可能となり、記述言語で記述される複雑な
描画オブジェクトに対しても軽い資源で高速の処理を行
うことが可能となり、座標点生成およびソート処理をソ
フトウェアで処理する場合に比べて10ないし15倍高
速になる。
【0180】また、第2の実施の形態では、複数の座標
点生成装置に、複数の座標点生成装置から一度に出力さ
れる座標点群に対して部分的なソート処理を実行するハ
ードウェアを付加するよう構成した。このため、ソフト
ウェアで実行されるソート処理の負荷を軽減することが
可能になり、一層の高速化が実現できる。さらに、第2
の実施の形態では、複数の座標点生成装置に待機状態が
発生した場合、エッジ情報を追加するよう構成したた
め、複数の座標点生成装置を有効に利用することが可能
となり、複数の座標点生成装置の繰り返し回数が低減
し、座標点生成処理のさらなる高速化が可能となる。
点生成装置に、複数の座標点生成装置から一度に出力さ
れる座標点群に対して部分的なソート処理を実行するハ
ードウェアを付加するよう構成した。このため、ソフト
ウェアで実行されるソート処理の負荷を軽減することが
可能になり、一層の高速化が実現できる。さらに、第2
の実施の形態では、複数の座標点生成装置に待機状態が
発生した場合、エッジ情報を追加するよう構成したた
め、複数の座標点生成装置を有効に利用することが可能
となり、複数の座標点生成装置の繰り返し回数が低減
し、座標点生成処理のさらなる高速化が可能となる。
【0181】また、本発明を適用することにより、第1
の実施の形態での実装例で示されているようにディスプ
レイリストからビットマップ展開するまでの処理を一体
の回路基板上に構成することが可能となる。このため、
データ量が急増するディスプレイリスト以降の処理に対
して専用の高速バスを設けることが可能となり、ディス
プレイリストからビットマップ展開するまでの処理全体
の高速化を実現することができる。
の実施の形態での実装例で示されているようにディスプ
レイリストからビットマップ展開するまでの処理を一体
の回路基板上に構成することが可能となる。このため、
データ量が急増するディスプレイリスト以降の処理に対
して専用の高速バスを設けることが可能となり、ディス
プレイリストからビットマップ展開するまでの処理全体
の高速化を実現することができる。
【図1】本発明による印刷処理装置の原理的な構成を示
す図である。
す図である。
【図2】本発明の印刷処理装置の全体的な構成を示すブ
ロック図である。
ロック図である。
【図3】印刷処理装置における印刷処理の流れを示すフ
ローチャートである。
ローチャートである。
【図4】印刷処理装置全体が実装されるコンピュータシ
ステムのハードウェア構成例を示した図である。
ステムのハードウェア構成例を示した図である。
【図5】描画処理カードのハードウェア構成例を示した
図である。
図である。
【図6】印刷処理装置全体が実装される他のコンピュー
タシステムのハードウェア構成例を示した図である。
タシステムのハードウェア構成例を示した図である。
【図7】描画処理ボードのハードウェア構成例を示した
図である。
図である。
【図8】印刷データ解釈部の構成を示すブロック図であ
る。
る。
【図9】ディスプレイリスト生成部を示すブロック図で
ある。
ある。
【図10】アウトラインベクタの説明図である。
【図11】曲線の再帰的な分割を示す説明図である。
【図12】リストデータ生成部で生成されるディスプレ
イリスト(文字/図形の場合)の構造を示す図である。
イリスト(文字/図形の場合)の構造を示す図である。
【図13】リストデータ生成部で生成されるディスプレ
イリスト(ラスタの場合)の構造を示す図である。
イリスト(ラスタの場合)の構造を示す図である。
【図14】ディスプレイリストのバンド境界での分割の
概要を示す説明図である。
概要を示す説明図である。
【図15】ディスプレイリストのバンド分割の処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図16】ディスプレイリストバッファにおけるディス
プレイリストの記憶形態を示す説明図である。
プレイリストの記憶形態を示す説明図である。
【図17】座標点生成LSIの構成を示すブロック図で
ある。
ある。
【図18】座標点生成回路の回路構成を示すブロック図
である。
である。
【図19】エッジリストバッファの構成を示す図であ
る。
る。
【図20】座標点生成LSIにおける1オブジェクトの
座標点生成処理の流れを示すフローチャートである。
座標点生成処理の流れを示すフローチャートである。
【図21】セルの入力とレジスタ設定処理の流れを示す
フローチャートである。
フローチャートである。
【図22】座標点生成と出力処理の流れを示すフローチ
ャートである。
ャートである。
【図23】座標点出力処理の流れを示すフローチャート
である。
である。
【図24】ソート部における処理の流れを示すフローチ
ャートである。
ャートである。
【図25】ソート部におけるソート方法を示す説明図で
ある。
ある。
【図26】ソート部の構成例を示すブロック図である。
【図27】ソート部の処理の流れを示すフローチャート
である。
である。
【図28】印刷画像データ変換LSIの構成を示すブロ
ック図である。
ック図である。
【図29】第2の実施の形態での座標点生成LSIの構
成例を示すブロック図である。
成例を示すブロック図である。
【図30】エッジデータ追加処理回路の構成例を示すブ
ロック図である。
ロック図である。
【図31】第2の実施の形態での座標点生成回路の回路
構成を示すブロック図である。
構成を示すブロック図である。
【図32】部分ソート回路の回路構成を示すブロック図
である。
である。
【図33】第2の実施の形態でのエッジリストバッファ
の構成を示す図である。
の構成を示す図である。
【図34】第2の実施の形態での座標点生成LSIの全
体の処理の流れを示すフローチャートである。
体の処理の流れを示すフローチャートである。
【図35】第2の実施の形態での座標点生成LSIのy
リストの処理の流れを示すフローチャートである。
リストの処理の流れを示すフローチャートである。
【図36】第2の実施の形態での座標点生成LSIのセ
ルの処理の流れを示すフローチャートである。
ルの処理の流れを示すフローチャートである。
【図37】第2の実施の形態での座標点生成LSIの座
標点出力処理の流れを示すフローチャートである。
標点出力処理の流れを示すフローチャートである。
【図38】第2の実施の形態での座標点生成LSIのエ
ッジデータ更新処理の流れを示すフローチャートであ
る。
ッジデータ更新処理の流れを示すフローチャートであ
る。
【図39】第2の実施の形態での座標点生成LSIのセ
ル追加判定処理の流れを示すフローチャートである。
ル追加判定処理の流れを示すフローチャートである。
【図40】第2の実施の形態でのソート部におけるソー
ト方法の概念を示す説明図である。
ト方法の概念を示す説明図である。
【図41】第2の実施の形態でのソート部の構成例を示
すブロック図である。
すブロック図である。
【図42】第2の実施の形態でのソート部の処理の流れ
を示すフローチャートである。
を示すフローチャートである。
【図43】第3の実施の形態でのディスプレイリストの
連結セルの構成を示す図である。
連結セルの構成を示す図である。
【図44】第3の実施の形態での座標点生成回路の構成
例を示すブロック図である。
例を示すブロック図である。
【図45】第3の実施の形態での座標点生成処理の様子
を示す説明図である。
を示す説明図である。
【図46】初期値計算部の構成例を示すブロック図であ
る。
る。
【図47】初期値計算部の処理の流れを示すフローチャ
ートである。
ートである。
【図48】座標点計算部の構成例を示すブロック図であ
る。
る。
【図49】輪郭情報からビットマップ展開のためのエッ
ジの座標点を生成するまでの流れを示す説明図である。
ジの座標点を生成するまでの流れを示す説明図である。
【図50】エッジが交差する図形要素の例を示した図で
ある。
ある。
【符号の説明】 1 印刷データ 2 入力手段 3 リスト生成手段 4 座標点生成手段 5 ソート手段 6 変換手段 7 印刷出力手段 10 印刷データスプール部 11 印刷データ解釈部 12 ディスプレイリスト生成部 13 バンド分割部 14 ラスタデータ処理部 15 ラスタデータバッファ 16 ディスプレイリストバッファ 17 ディスプレイリストバンドバッファ 18 ディスプレイリスト管理部 19 座標点生成部 20 ソート部 21 エッジリストバッファ 22 印刷画像データ変換部 23 ラスタデータバンドバッファ 24 出力バッファ 25 プリンタ装置制御部 26 プリンタ装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小柳 雅彦 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内 (72)発明者 石川 宏 神奈川県足柄上郡中井町境430 グリーン テクなかい 富士ゼロックス株式会社内
Claims (37)
- 【請求項1】 文字または図形に関する描画命令を印刷
画像データに変換して印刷出力する印刷処理装置におい
て、 所定の描画命令で記述された少なくとも文字または図形
のいずれかの描画オブジェクトを有する印刷データを入
力する入力手段と、 前記入力手段に入力された前記印刷データから前記描画
オブジェクトの輪郭を構成するエッジの始点および終点
の情報を有したリストを前記描画オブジェクト毎に生成
するリスト生成手段と、 前記リスト生成手段で生成された前記リストの前記始点
および終点の情報から前記描画オブジェクトの前記エッ
ジを表す座標点を順次生成する座標点生成手段と、 前記座標点生成手段で生成された前記座標点に順序を付
けるソート手段と、 前記描画オブジェクトの印刷画像データを印刷出力する
印刷出力手段と、 前記ソート手段で決定された順番の前記座標点を前記印
刷出力手段で出力可能な印刷画像データに変換する変換
手段と、 を備えていることを特徴とする印刷処理装置。 - 【請求項2】 前記座標点生成手段は、複数の座標点生
成装置で構成されることを特徴とする請求項1記載の印
刷処理装置。 - 【請求項3】 前記複数の座標点生成装置は、座標点生
成装置の数と同数の前記座標点を一度に生成することを
特徴とする請求項2記載の印刷処理装置。 - 【請求項4】 前記座標点生成手段は、前記描画オブジ
ェクトのすべてのエッジの座標点生成が終了するまで、
前記リストの前記始点および終点情報から前記座標点を
順次、繰り返し生成することを特徴とする請求項1記載
の印刷処理装置。 - 【請求項5】 前記ソート手段は、前記座標点生成手段
で生成された前記座標点の順番を変更するものであるこ
とを特徴とする請求項1記載の印刷処理装置。 - 【請求項6】 前記ソート手段は、所定のプログラムを
中央演算処理装置で実行することにより前記座標点の順
序付けを行うことを特徴とする請求項1記載の印刷処理
装置。 - 【請求項7】 所定の描画命令で記述された少なくとも
文字または図形のいずれかの描画オブジェクトを有する
印刷データから生成される印刷画像データを、印刷出力
装置の走査ライン毎に出力する印刷処理装置において、 前記描画オブジェクトの輪郭を構成するエッジのエッジ
情報を前記エッジ毎に有したディスプレイリストを前記
走査ライン毎に生成するディスプレイリスト生成手段
と、 前記ディスプレイリスト生成手段で生成された前記ディ
スプレイリストの前記エッジ情報を用いて前記描画オブ
ジェクトの前記エッジを表す座標点を順次生成する座標
点生成手段と、 前記描画オブジェクトのすべてのエッジについて前記座
標点生成が終了するまで前記ディスプレイリストの前記
エッジ情報を前記座標点生成手段に繰り返し転送する管
理手段と、 前記座標点生成手段で生成された前記座標点に順序を付
けるソート手段と、 前記ソート手段で決定された順番の前記座標点を用いて
前記印刷データを前記印刷出力装置で出力可能な印刷画
像データに変換する変換手段と、 を備えていることを特徴とする印刷処理装置。 - 【請求項8】 前記座標点生成手段は、複数の座標点生
成装置で構成されることを特徴とする請求項7記載の印
刷処理装置。 - 【請求項9】 前記複数の座標点生成装置は、座標点生
成装置の数と同数の前記座標点を一度に生成することを
特徴とする請求項8記載の印刷処理装置。 - 【請求項10】 前記ディスプレイリストは、オブジェ
クト毎に、少なくともヘッダ情報と、前記オブジェクト
の前記エッジ情報とを含むことを特徴とする請求項7記
載の印刷処理装置。 - 【請求項11】 前記ヘッダ情報は、少なくとも前記オ
ブジェクトの色データと、エッジ数と、次のオブジェク
トへのポインタとを含むことを特徴とする請求項10記
載の印刷処理装置。 - 【請求項12】 前記エッジ情報は、少なくとも前記描
画オブジェクトの輪郭を構成するエッジの始点、エッジ
の傾き、および前記エッジと前記走査ラインとの交差数
を含むことを特徴とする請求項10記載の印刷処理装
置。 - 【請求項13】 前記エッジ情報は、前記走査ラインの
位置情報と、前記エッジの開始する座標点、傾きおよび
前記交差数を一組とする複数のエッジデータと、各エッ
ジデータを連結するための複数のポインタとを含むこと
を特徴とする請求項12記載の印刷処理装置。 - 【請求項14】 前記座標点生成手段は、前記座標点を
生成する毎に、前記交差数を1ずつ減らすことを特徴と
する請求項12記載の印刷処理装置。 - 【請求項15】 前記管理手段は、前記座標点生成装置
が待機状態にあることを検出する検出手段と、検出され
た前記座標点生成装置へ前記ディスプレイリストの前記
エッジ情報を転送する転送手段とを備えていることを特
徴とする請求項8記載の印刷処理装置。 - 【請求項16】 前記転送手段は、前記座標点の生成に
より特定のエッジの前記交差数が0になった前記座標点
生成装置へ、前記ディスプレイリストの有する他の前記
エッジのエッジ情報を転送することを特徴とする請求項
15記載の印刷処理装置。 - 【請求項17】 前記管理手段は、前記転送手段により
前記ディスプレイリストの前記エッジ情報を転送した
後、ディスプレイリストの前記ポインタを、次に転送す
る前記エッジデータが格納されているポインタに更新す
る機能を備えていることを特徴とする請求項15記載の
印刷処理装置。 - 【請求項18】 前記管理手段は、前記待機状態にある
座標点生成装置に転送する前記他のエッジのエッジ情報
に含まれる走査ライン位置情報と次に転送する前記エッ
ジデータが格納されているポインタとを、前記走査ライ
ン位置情報が示す走査ラインにおける座標点生成を開始
するまで保持しておくことを特徴とする請求項15また
は16記載の印刷処理装置。 - 【請求項19】 前記管理手段は、前記ディスプレイリ
ストの複数の走査ライン位置情報と当該走査ラインの次
に転送するエッジデータが格納されているポインタとを
保持する手段を備えていることを特徴とする請求項15
または16記載の印刷処理装置。 - 【請求項20】 前記座標点生成装置は、前記座標点を
保持するための第1レジスタと、前記エッジの傾きを保
持するための第2レジスタと、前記交差数を保持するた
めの第3レジスタと、前記第1レジスタと第2レジスタ
の内容を加算する第1の演算器と、前記第3レジスタの
内容を1減算する第2の演算器とから構成されることを
特徴とする請求項8記載の印刷処理装置。 - 【請求項21】 前記座標点生成装置は、前記ディスプ
レイリストの前記エッジ情報を座標点生成装置内で使用
される内部形式に変換する初期値計算部と、前記内部形
式に変換されたエッジ情報を用いて前記エッジを表す座
標点を順次生成する座標点計算部とから構成されること
を特徴とする請求項8記載の印刷処理装置。 - 【請求項22】 前記内部形式は、前記座標点と、走査
ライン毎の座標点の基本増分と、前記エッジと走査ライ
ンとの交点と座標点との誤差と、走査ライン毎の誤差の
増分を含むことを特徴とする請求項21記載の印刷処理
装置。 - 【請求項23】 前記内部形式の各構成要素は、すべて
整数であることを特徴とする請求項21記載の印刷処理
装置。 - 【請求項24】 前記座標点計算部は、前記座標点を保
持するための第1レジスタと、前記基本増分を保持する
ための第2レジスタと、前記誤差を保持するための第3
レジスタと、前記誤差が正の時に誤差に加えられる値を
保持するための第4レジスタと、前記誤差が負の時に誤
差に加えられる値を保持するための第5レジスタと、前
記交差数を保持するための第6レジスタと、前記第1レ
ジスタと第2レジスタとの内容を加算する第1の演算器
と、前記第3レジスタと第4レジスタまたは第5レジス
タとの内容を加算する第2の演算器と、前記第6レジス
タの内容を1減算する第2の演算器とから構成されるこ
とを特徴とする請求項23記載の印刷処理装置。 - 【請求項25】 前記ソート手段は、前記座標点を入力
する座標点入力手段と、前記座標点の中のある特定の値
を選択する座標点値選択手段と、前記座標点値選択手段
で選択された座標点と他の前記座標点との値の大小を判
定する座標点判定手段と、前記座標点判定手段により判
定された結果に従って前記座標点を振り分ける座標点分
別手段と、前記座標点の順序付けがすべて終了するまで
管理するソート管理手段とを備えていることを特徴とす
る請求項7記載の印刷処理装置。 - 【請求項26】 前記変換手段で変換された1ページ分
の印刷画像データを格納するためのページメモリ手段を
備えていることを特徴とする請求項7記載の印刷処理装
置。 - 【請求項27】 前記ディスプレイリスト生成手段で生
成された前記ディスプレイリストの1ページ分を所定の
バンド数で分割されるバンド単位で分割するバンド分割
手段と、前記変換手段で変換された印刷画像データを前
記バンド単位に格納するためのバンドメモリ手段とを備
え、前記座標点生成手段は前記バンド分割手段で分割さ
れた前記ディスプレイリストの前記エッジ情報を用いて
前記描画オブジェクトの前記エッジを表す座標点を順次
生成することを特徴とする請求項7記載の印刷処理装
置。 - 【請求項28】 前記分割手段は、複数のバンドにまた
がる前記描画オブジェクトについては、そのディスプレ
イリストをバンドの境界で分割してそれぞれ1バンドに
収まる複数のディスプレイリストにすることを特徴とす
る請求項27記載の印刷処理装置。 - 【請求項29】 少なくとも前記座標点生成手段と、前
記管理手段と、前記ソート手段と、前記変換手段とは、
一つの実装手段に一体に構成されていることを特徴とす
る請求項7記載の印刷処理装置。 - 【請求項30】 前記実装手段は、ディスプレイリスト
生成までの処理手段とは着脱可能であることを特徴とす
る請求項29記載の印刷処理装置。 - 【請求項31】 前記座標点生成手段は、前記ディスプ
レイリスト生成手段で生成された前記ディスプレイリス
トの前記エッジ情報を用いて前記描画オブジェクトの前
記エッジを表す座標点を順次生成する複数の座標点生成
装置と、前記複数の座標点生成装置と同数の前記座標点
を一度に順序付けする部分ソート手段とを備えているこ
とを特徴とする請求項7記載の印刷処理装置。 - 【請求項32】 前記複数の座標点生成装置の内、待機
状態にある座標点生成装置は、待機状態でない座標点生
成装置の出力する座標点の最大値以上の特定の値を前記
部分ソート手段に出力することを特徴とする請求項31
記載の印刷処理装置。 - 【請求項33】 前記部分ソート手段は、少なくとも座
標点を保持するための複数のレジスタと、二つの前記座
標点の大小比較を行うための複数の2入力ソート回路
と、前記複数の2入力ソート回路から出力される座標点
と前記座標点生成装置から入力される座標点との前記レ
ジスタ回路への入力を切り換えるための複数のマルチプ
レクサとから構成されることを特徴とする請求項31記
載の印刷処理装置。 - 【請求項34】 前記管理手段は、ソートを必要とする
走査ラインを前記ソート手段に通知することを特徴とす
る請求項31記載の印刷処理装置。 - 【請求項35】 前記ソート手段は、前記座標点を入力
する座標点入力手段と、入力された前記座標点から前記
部分ソート手段で順序付けされた座標点の組を選択する
座標点部分選択手段と、前記座標点部分選択手段で選択
された順序付けされた座標点の組と前記座標点部分選択
手段で選択された別の順序付けされた座標点の組とのそ
れぞれの座標点の値の大小を判定する座標点判定手段
と、前記座標点判定手段により判定された結果に従って
二つの前記座標点の組を併合する座標点併合手段と、前
記座標点の順序付けがすべて終了するまで管理するソー
ト管理手段とを備えていることを特徴とする請求項31
記載の印刷処理装置。 - 【請求項36】 文字または図形に関する描画命令を印
刷画像データに変換して印刷出力する印刷処理方法にお
いて、 所定の描画命令で記述された少なくとも文字または図形
のいずれかの描画オブジェクトを有する印刷データを入
力し、 前記描画オブジェクトの輪郭を構成するエッジの始点お
よび終点の情報を有したリストを前記描画オブジェクト
毎に生成し、 前記リストの前記始点および終点情報から前記描画オブ
ジェクトの前記エッジを表す座標点を一度に複数生成
し、 生成された前記座標点に順序を付け、 順序付け工程で決定された順番の前記座標点情報を最終
的に印刷出力される画像データに変換する、 ことからなることを特徴とする印刷処理方法。 - 【請求項37】 所定の描画命令で記述された少なくと
も文字または図形のいずれかの描画オブジェクトを有す
る印刷データから生成される印刷画像データを、この印
刷画像データを出力する印刷出力装置の走査ライン毎に
出力する印刷処理方法において、 前記描画オブジェクトの輪郭を構成するエッジのエッジ
情報を前記エッジ毎に有したディスプレイリストを前記
走査ライン毎に生成し、 生成された前記ディスプレイリストの前記エッジ情報を
用い、全ディスプレイリストについて前記描画オブジェ
クトの前記エッジを表す座標点を生成し、 生成された前記座標点に順序付けをし、 順序付け工程で決定された順番の前記座標点情報を用い
て前記印刷データを前記印刷出力装置で出力可能な印刷
画像データに変換する、 ことからなることを特徴とする印刷処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9138609A JPH10334248A (ja) | 1997-05-28 | 1997-05-28 | 印刷処理装置および印刷処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9138609A JPH10334248A (ja) | 1997-05-28 | 1997-05-28 | 印刷処理装置および印刷処理方法 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001348849A Division JP2002216142A (ja) | 2001-11-14 | 2001-11-14 | 画像処理装置および画像処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10334248A true JPH10334248A (ja) | 1998-12-18 |
Family
ID=15226091
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9138609A Pending JPH10334248A (ja) | 1997-05-28 | 1997-05-28 | 印刷処理装置および印刷処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10334248A (ja) |
-
1997
- 1997-05-28 JP JP9138609A patent/JPH10334248A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6339424B1 (en) | Drawing processor | |
| US5386510A (en) | Method of and apparatus for converting outline data to raster data | |
| JPH08297737A (ja) | 任意図形クリッピング方法および装置 | |
| JP2817687B2 (ja) | 画像形成装置 | |
| JPH1131052A (ja) | 文書処理システム | |
| US6538756B1 (en) | Information processing apparatus and recording medium with pattern generation programs recorded thereon | |
| JPH10334248A (ja) | 印刷処理装置および印刷処理方法 | |
| JP2002216142A (ja) | 画像処理装置および画像処理方法 | |
| JPH11232473A (ja) | 印刷処理装置 | |
| JPH11147344A (ja) | 描画処理装置および方法 | |
| JP5603295B2 (ja) | 正しいzオーダーでのデータのレンダリング | |
| JP3864520B2 (ja) | 印刷処理装置及び印刷処理方法 | |
| JP2000013601A (ja) | 印刷情報処理装置、中間データ生成装置および方法 | |
| JP3651214B2 (ja) | 印刷処理装置及び印刷処理方法 | |
| JP3146771B2 (ja) | フォントラスタライズ装置およびその方法 | |
| JP3864535B2 (ja) | 印刷処理装置および印刷処理方法 | |
| JPH10151815A (ja) | 印刷処理装置 | |
| US6950201B2 (en) | Generating images quickly in raster image processing | |
| Kawata et al. | An outline font rendering processor with an embedded RISC CPU for high-speed hint processing | |
| JPH11157147A (ja) | 印刷処理装置および印刷処理方法 | |
| JPH1110961A (ja) | 印刷処理装置および印刷処理方法 | |
| Singh et al. | PostScript™ rendering with virtual hardware | |
| JPH1185428A (ja) | 画像形成方法及び画像形成装置 | |
| US7164483B2 (en) | Optimal approach to perform raster operations | |
| JP2000242802A (ja) | 図形処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050509 |