(57)【特許請求の範囲】
【請求項１】
表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置であって、
入力された複数の座標データのうち先に入力された座標データから順にそれぞれ一データずつ出力されるＦＩＦＯ式の第１のデータ記憶手段及び第２のデータ記憶手段と、
前記第１のデータ記憶手段及び第２のデータ記憶手段から出力される各座標データを受け、受けた座標データ同士を加算して加算データを出力する加算手段と、
前記加算データの値を２分の１に除してなる除算データを出力する除算手段とを備え、
前記第１のデータ記憶手段は、該第１のデータ記憶手段から出力される座標データと前記第２のデータ記憶手段から出力される座標データとが入力されると共に、
前記第２のデータ記憶手段は、前記除算手段からの除算データが入力され、
前記除算手段からの除算データに基づいて、前記始点座標と前記終点座標との間を結ぶ直線を描画することを特徴とする直線描画装置。
【請求項２】
前記除算手段は、配線によって桁下がり方向に１ビット分シフトするシフト演算器であることを特徴とする請求項１に記載の直線描画装置。
【請求項３】
前記第１のデータ記憶手段及び第２のデータ記憶手段に対して、出力データのフィードバック回数を規制する繰返制御手段をさらに備え、
前記繰返制御手段は、前記始点座標及び終点座標のうち、Ｘ座標同士の差の絶対値とＹ座標同士の差の絶対値とを算出し、前記絶対値の大きい方の値を出力する長辺演算選択部と、
出力された絶対値から前記フィードバック回数を算出する演算回数算出部とを有していることを特徴とする請求項１に記載の直線描画装置。
【請求項４】
入力された複数の色情報のうち先に入力された色情報から順にそれぞれ一情報ずつ出力するＦＩＦＯ式の第１の色情報記憶手段及び第２の色情報記憶手段と、
前記第１の色情報記憶手段及び第２の色情報記憶手段から出力される各色情報を受け、受けた色情報同士を加算して加算色情報を出力する色情報加算手段と、
前記加算色情報の値を２分の１に除してなる除算色情報を出力する色情報除算手段とをさらに備え、
前記第１の色情報記憶手段は、該第１の色情報記憶手段から出力され前記始点座標と対応する色情報と、前記第２の色情報記憶手段から出力され前記終点座標と対応する色情報とが入力されると共に、
前記第２の色情報記憶手段は、前記色情報除算手段からの除算色情報が入力され、
前記除算色情報に基づいて、前記始点座標と前記終点座標との間を結ぶ直線の描画色を決定することを特徴とする請求項１に記載の直線描画装置。
【請求項５】
入力された複数の輝度情報のうち先に入力された輝度情報から順にそれぞれ一情報ずつ出力するＦＩＦＯ式の第１の輝度情報記憶手段及び第２の輝度情報記憶手段と、
前記第１の輝度情報記憶手段及び第２の輝度情報記憶手段から出力される各輝度情報を受け、受けた輝度情報同士を加算して加算輝度情報を出力する輝度情報加算手段と、
前記加算輝度情報の値を２分の１に除してなる除算輝度情報を出力する輝度情報除算手段とをさらに備え、
前記第１の輝度情報記憶手段は、該第１の輝度情報記憶手段から出力され前記始点座標と対応する輝度情報と、前記第２の輝度情報記憶手段から出力され前記終点座標と対応する輝度情報とが入力されると共に、
前記第２の輝度情報記憶手段は、前記輝度情報除算手段からの除算輝度情報が入力され、
前記除算輝度情報に基づいて、前記始点座標と前記終点座標との間を結ぶ直線の輝度を決定することを特徴とする請求項１又は４に記載の直線描画装置。
【請求項６】
前記始点座標及び終点座標を含む直線の傾きを表わす１次パラメータを算出して出力する１次パラメータ算出手段と、
前記１次パラメータと前記第１のデータ記憶手段からの出力データとを受け、そのうちのいずれか一方を選択して前記加算手段に出力する第１の切替手段と、
前記除算データと前記第２のデータ記憶手段からの出力データとを受け、そのうちのいずれか一方を選択して前記加算手段に出力する第２の切替手段とをさらに備えていることを特徴とする請求項１に記載の直線描画装置。
【請求項７】
任意の色で表示手段に表示される始点座標と、該始点座標と異なる座標に前記始点座標とは異なる色で表示される終点座標との間を結ぶ直線を描画する直線描画装置であって、
前記始点座標及び終点座標を結ぶ線分上の第１の座標データ及び第２の座標データを含む複数のデータを格納可能な座標データ格納部を有する座標データ記憶手段と、
前記第１の座標データ及び前記第２の座標データを加算した座標加算データを出力する座標データ加算手段と、
前記座標加算データの値を２分の１に除してなる座標除算データを出力する座標データ除算手段と、
前記第１の座標データに対応する第１の色データ及び前記第２の座標データに対応する第２の色データを含む複数のデータを格納可能な色データ格納部を有する色データ記憶手段と、
前記第１の色データ及び前記第２の色データを加算した色加算データを出力する色データ加算手段と、
前記色加算データの値を２分の１に除してなる色除算データを出力する色データ除算手段とを備え、
前記座標除算データは、前記座標データ格納部のうちの所定領域に第３の座標データとして格納され、前記色除算データは、前記色データ格納部のうちの所定領域に前記第３の座標データに対応する第３の色データとして格納されることを特徴とする直線描画装置。
【請求項８】
任意の輝度で表示手段に表示される始点座標と、該始点座標と異なる座標に前記始点座標とは異なる輝度で表示される終点座標との間を結ぶ直線を描画する直線描画装置であって、
前記始点座標及び終点座標を結ぶ線分上の第１の座標データ及び第２の座標データを含む複数のデータを格納可能な座標データ格納部を有する座標データ記憶手段と、
前記第１の座標データ及び前記第２の座標データを加算した座標加算データを出力する座標データ加算手段と、
前記座標加算データの値を２分の１に除してなる座標除算データを出力する座標データ除算手段と、
前記第１の座標データに対応する第１の輝度データ及び前記第２の座標データに対応する第２の輝度データを含む複数のデータを格納可能な色データ格納部を有する輝度データ記憶手段と、
前記第１の輝度データ及び前記第２の輝度データを加算した輝度加算データを出力する輝度データ加算手段と、
前記輝度加算データの値を２分の１に除してなる輝度除算データを出力する輝度データ除算手段とを備え、
前記座標除算データは、前記座標データ格納部のうちの所定領域に第３の座標データとして格納され、前記輝度除算データは、前記輝度データ格納部のうちの所定領域に前記第３の座標データに対応する第３の輝度データとして格納されることを特徴とする直線描画装置。
【請求項９】
表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間の直線を描画するための座標を生成する座標生成装置であって、
入力された複数の座標データのうち先に入力された座標データから順にそれぞれ一データずつ出力される第１のデータ記憶手段及び第２のデータ記憶手段と、
前記第１のデータ記憶手段及び第２のデータ記憶手段から出力される各座標データを受け、受けた座標データ同士の中点座標データを算出する中点座標生成手段とを備え、
前記第１のデータ記憶手段は、該第１のデータ記憶手段から出力される座標データと前記第２のデータ記憶手段から出力される座標データとが入力されると共に、
前記第２のデータ記憶手段は、前記中点座標生成手段から算出された中点座標データが入力され、
前記中点座標生成手段から算出された中点座標データに基づいて、前記始点座標と前記終点座標との間の直線を描画するための座標を生成する座標生成装置。
【請求項１０】
表示手段、ＦＩＦＯ式の第１のデータ記憶手段及び第２のデータ記憶手段、前記第１のデータ記憶手段及び第２のデータ記憶手段からの出力を受ける加算手段並びに該加算手段からの出力値の２分の１の値を生成する除算手段を備え、前記表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置の直線描画方法であって、
前記始点座標を表わす始点座標データ及び前記終点座標を表わす終点座標データを前記表示手段に出力する第１の工程と、
前記始点座標データを前記第１のデータ記憶手段に格納し且つ前記終点座標データを前記第２のデータ記憶手段に格納する第２の工程と、
前記第１のデータ記憶手段から出力される始点座標データを前記加算手段に出力すると共に、前記第１のデータ記憶手段に格納する第３の工程と、
前記第２のデータ記憶手段から出力される終点座標データを前記加算手段に出力すると共に、前記第１のデータ記憶手段に格納する第４の工程と、
前記加算手段から出力される前記始点座標データ及び終点座標データの和を前記除算手段に出力する第５の工程と、
前記除算手段からの出力データを前記表示手段に出力すると共に、前記出力データを前記第２のデータ記憶手段に、前記第３の工程における前記始点座標データ及び前記第４の工程における前記終点座標データとそれぞれ対応するように格納する第６の工程とを備えていることを特徴とする直線描画方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、表示装置等に直線の描画を行なう直線描画装置に関し、特に、比較的短い直線を短時間に描画できる直線描画装置に関する。
【０００２】
【従来の技術】
近年、コンピュータグラフィックス技術の進歩は目覚しく、扱えるデータ量の飛躍的な増大に伴って、より緻密な描画を要求されるようになってきている。コンピュータグラフィックス技術の代表的な応用には、ＣＡＤ、ＣＡＥ又はコンピュータゲーム等があるが、最近では、ＧＰＳ装置を用いたカーナビゲーションシステムの地図表示にも利用されている。
【０００３】
特に、カーナビゲーションシステムにおいては、地図中の道路又は区画線等のように、単純な直線（線分）ではなく、比較的短い多数の直線を組み合わせることによって地図情報を描画する必要があり、さらに、地図の表示エリアと隣接するエリアの情報探索を行なう必要性から、地図情報を描画する際の直線描画を所定時間内に表示する必要がますます増大してきている。
【０００４】
コンピュータグラフィックスにおける直線描画技術として、例えば、「入門グラフィックス」、佐藤義雄著、アスキー出版局、第４６頁〜第５６頁に示されているような技術がある。
【０００５】
以下、従来の直線描画方法について図面を参照しながら説明する。
【０００６】
図２６は従来の直線描画方法における基本動作を示している。図２６に示すように、画面上には、座標（Ｘｓ，Ｙｓ）の始点１００と座標（Ｘｅ，Ｙｅ）の終点１０１とが配置されているとする。ここで、始点１００と終点１０１との間を結ぶ直線を描画するには、各座標から直線の傾きを表わす傾き（１次）パラメータを｜Ｙｅ−Ｙｓ｜／｜Ｘｅ−Ｘｓ｜から算出すればよい。実際には、単位長さを持つ線分１０２を始点１００から終点１０１に到達するまで加算することにより直線の描画を行なう。
【０００７】
図２７は前記従来の直線描画方法を表わす処理フローを示している。図２７に示すように、直線の方向属性決定工程Ｓ１００において、始点１００の座標データ（Ｘｓ，Ｙｓ）と終点１０１の座標データ（Ｘｅ，Ｙｅ）とからＸ成分の差（Ｘｅ−Ｘｓ）とＹ成分の差（Ｙｅ−Ｙｓ）とを求め、これらの符号の正負により、直線の偏移方向を求める。次に、傾きパラメータ生成工程Ｓ１０１において、直線の傾きをＹ成分の差分の絶対値をＸ成分の差分の絶対値で除する、｜Ｙｅ−Ｙｓ｜／｜Ｘｅ−Ｘｓ｜という除算演算を行なうことによって求める。次に、描画判定工程Ｓ１０２において、描画の先端部が終点１０１に到達したか否かを判定し、判定が偽であれば、次のパラメータ加算工程Ｓ１０３において、生成された傾きパラメータを始点１００から順次加算していく。
【０００８】
【発明が解決しようとする課題】
カーナビゲーションシステムの地図情報の表示動作に代表されるように、道路等の詳細な表現には、多数本の比較的短い直線（以下、短直線と呼ぶ。）を所定時間内に描画する必要がある。しかしながら、前記従来の直線描画方法は、図２７に示したように、傾きパラメータ生成時に除算演算を必要とする。ディジタル演算における除算演算は、良く知られているように高演算コストを要する。すなわち、加算器等と比べてハードウエアコストが大きく、演算時間も数倍必要となる。そのため、短直線を用いて道路等を表わすカーナビゲーションシステムにおいては高速描画を行なうことが困難となるという問題がある。
【０００９】
本発明は、前記従来の問題を解決し、直線描画、特に短直線を簡単な構成で且つ高速に描画できるようにすることを目的とする。
【００１０】
【課題を解決するための手段】
前記の目的を達成するため、本発明は、直線描画装置を、直線の始点座標と終点座標との間に一の中点座標を生成して表示し、生成された一の中点座標と該一の中点座標と隣接する他の座標とにおける別の中点座標を順次生成して表示する構成とする。
【００１１】
具体的に、本発明に係る第１の直線描画装置は、表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置を対象とし、始点座標と終点座標とからなる線分の中点となる第１の中点座標を生成した後、始点座標と第１の中点座標とからなる線分の中点となる第２の中点座標、及び終点座標と第１の中点座標とからなる線分の中点となる第３の中点座標を生成して表示することにより、始点座標と終点座標との間を結ぶ直線を描画する。
【００１２】
第１の直線描画装置によると、まず、始点座標と終点座標とからなる線分の中点となる第１の中点座標を生成しておき、その後、互いに隣接する座標同士の中点座標を順次生成するため、直線の傾きを表わす１次パラメータの算出に、始点及び終点のＸ座標同士の差分を分母とする除算を行なう必要がなくなる。その結果、実質的に除算器が不要となるので、特に多数の短直線を描画するような場合に描画のスループットが向上する。また、中点座標を求める２分の１の演算は、２進数の場合は桁下がり方向に１ビット分のシフトを行なうだけでよく、装置構成が簡単となり、装置のコストを低減できる。
【００１３】
第１の直線描画装置において、互いに隣接する各座標同士を両端点とする線分ごとに該線分の中点座標をさらに生成することが好ましい。このようにすると、描画対象の線分の距離が比較的大きい場合であっても、該線分の描画精度を向上させることができる。
【００１４】
第１の直線描画装置において、始点座標と終点座標とを２ｎ  （但し、ｎは、ｎ≧０の整数とする）個に分割してなる座標群のうち、互いに隣接する座標同士を新たな始点座標及び終点座標として生成することが好ましい。このようにすると、始点座標と終点座標との距離が比較的長い直線であっても、描画前に該直線を複数の短直線に分割することにより、従来の１次のパラメータを用いることなく描画できるようになる。その上、本装置を再帰的に使用することができるので、装置の構成を簡単化できる。
【００１５】
第１の直線描画装置において、始点座標と終点座標とを２ｎ  （但し、ｎは、ｎ＞０の整数とする）個に分割してなる各分割座標は、それぞれが分割座標における始点座標側に隣接する座標と終点座標側に隣接する座標との中点座標であることが好ましい。
【００１６】
本発明に係る第２の直線描画装置は、表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置を対象とし、入力された複数の座標データのうち先に入力された座標データから順にそれぞれ一データずつ出力されるＦＩＦＯ式の第１のデータ記憶手段及び第２のデータ記憶手段と、第１のデータ記憶手段及び第２のデータ記憶手段から出力される各座標データを受け、受けた座標データ同士を加算して加算データを出力する加算手段と、加算データの値を２分の１に除してなる除算データを出力する除算手段とを備え、第１のデータ記憶手段は、該第１のデータ記憶手段から出力される座標データと第２のデータ記憶手段から出力される座標データとが入力されると共に、第２のデータ記憶手段は、除算手段からの除算データが入力され、除算手段からの除算データに基づいて、始点座標と終点座標との間を結ぶ直線を描画する。
【００１７】
第２の直線描画装置によると、例えば、始点及び終点の各座標の座標データを出力すると共に、それぞれを第１のデータ記憶手段及び第２のデータ記憶手段に格納する。次に、第１のデータ記憶手段及び第２のデータ記憶手段からの出力データ、すなわち始点及び終点の座標データを加算手段に出力すると共に、第１のデータ記憶手段に対して始点及び終点の座標データを格納する一方、第１の中点座標を表わす除算後の座標データを第２のデータ記憶手段に格納する。これらのデータ記憶手段はＦＩＦＯ式であるため、第１のデータ記憶手段から次に出力される座標データは始点又は終点であり、第２のデータ記憶手段から出力される座標データは第１の中点座標となる。従って、これらの座標データを加算して２で除すると第２の中点座標又は第３の中点座標が生成されるので、本発明に係る第１の直線描画装置を実現できる。
【００１８】
第２の直線描画装置において、除算手段が、配線によって桁下がり方向に１ビット分シフトするシフト演算器であることが好ましい。このようにすると、除算手段を簡単で且つ高速に動作するバレルシフター等のシフト回路により構成できるため、本発明に係る装置を加算手段が主要な構成要素となる比較的簡単なハードウェア資源のみで実現できる。
【００１９】
第２の直線描画装置は、第１のデータ記憶手段及び第２のデータ記憶手段に対して出力データのフィードバック回数を規制する繰返制御手段をさらに備え、繰返制御手段は、始点座標及び終点座標のうち、Ｘ座標同士の差の絶対値とＹ座標同士の差の絶対値とを算出し、絶対値の大きい方の値を出力する長辺演算選択部と、出力された絶対値からフィードバック回数を算出する演算回数算出部とを有していることが好ましい。このようにすると、長辺演算選択部により、始点と終点とのＸ座標成分及びＹ座標成分のうちの差が大きい方を選択するため、始点座標と終点座標とにより生成される中点座標の生成個数が、Ｘ座標成分及びＹ座標成分のうちの差分が大きい方で規制されるので、描画の精度が向上する。また、演算回数算出部により、該差分が大きい方の絶対値から必要なフィードバック回数を算出するため、描画動作を所定の時間内に終えられるようにすることができる。
【００２０】
第２の直線描画装置は、入力された複数の色情報のうち先に入力された色情報から順にそれぞれ一情報ずつ出力するＦＩＦＯ式の第１の色情報記憶手段及び第２の色情報記憶手段と、第１の色情報記憶手段及び第２の色情報記憶手段から出力される各色情報を受け、受けた色情報同士を加算して加算色情報を出力する色情報加算手段と、加算色情報の値を２分の１に除してなる除算色情報を出力する色情報除算手段とをさらに備え、第１の色情報記憶手段は、該第１の色情報記憶手段から出力され始点座標と対応する色情報と、第２の色情報記憶手段から出力され終点座標と対応する色情報とが入力されると共に、第２の色情報記憶手段は、色情報除算手段からの除算色情報が入力され、除算色情報に基づいて、始点座標と終点座標との間を結ぶ直線の描画色を決定することが好ましい。このようにすると、一般に、コンピュータ処理においては色情報も数値化されているため、始点座標と終点座標とから決定される直線の描画を行なう処理と並行して、色情報に対しても加算色情報の値を２分の１に除してなる除算色情報を用いているので、色補間されたグラデーション付き直線描画を従来の除算演算が行なわれる期間内に完了させることができる。
【００２１】
第２の直線描画装置は、入力された複数の輝度情報のうち先に入力された輝度情報から順にそれぞれ一情報ずつ出力するＦＩＦＯ式の第１の輝度情報記憶手段及び第２の輝度情報記憶手段と、第１の輝度情報記憶手段及び第２の輝度情報記憶手段から出力される各輝度情報を受け、受けた輝度情報同士を加算して加算輝度情報を出力する輝度情報加算手段と、加算輝度情報の値を２分の１に除してなる除算輝度情報を出力する輝度情報除算手段とをさらに備え、第１の輝度情報記憶手段は、該第１の輝度情報記憶手段から出力され始点座標と対応する輝度情報と、第２の輝度情報記憶手段から出力され終点座標と対応する輝度情報とが入力されると共に、第２の輝度情報記憶手段は、輝度情報除算手段からの除算輝度情報が入力され、除算輝度情報に基づいて、始点座標と終点座標との間を結ぶ直線の輝度を決定することが好ましい。このようにすると、一般に、コンピュータ処理においては輝度情報も数値化されているため、始点座標と終点座標とから決定される直線の描画を行なう処理と並行して、輝度情報に対しても加算輝度情報の値を２分の１に除してなる除算輝度情報を用いているので、輝度補間されたグラデーション付き直線描画を従来の除算演算が行なわれる期間内に完了させることができる。
【００２２】
第２の直線描画装置は、始点座標及び終点座標を含む直線の傾きを表わす１次パラメータを算出して出力する１次パラメータ算出手段と、１次パラメータと第１のデータ記憶手段からの出力データとを受け、そのうちのいずれか一方を選択して加算手段に出力する第１の切替手段と、除算データと第２のデータ記憶手段からの出力データとを受け、そのうちのいずれか一方を選択して加算手段に出力する第２の切替手段とをさらに備えていることが好ましい。始点座標及び終点座標との２点間の距離が比較的長い長直線の場合には、多数の中点による点描を行なうよりも従来の１次パラメータを算出して直線を端点まで順次加算しながら延長して描画する方が速い場合もあり得る。このような場合であっても、始点座標及び終点座標を含む直線の傾きを表わす１次パラメータを算出して出力する１次パラメータ算出手段をさらに備えているため、第１の切替手段及び第２の切替手段によってＦＩＦＯ式の各データ記憶手段を未使用状態として、１次パラメータ算出手段の出力を用いれば、加算手段を共用できる。その結果、短直線の場合には従来の除算器を用いずに高スループットを実現でき、また、短直線の描画方法ではスループットが低下するような長直線の場合には、ハードウェアの一部を共用した簡単な装置構成により長直線の描画が可能となる。
【００２３】
本発明に係る第３の直線描画装置は、表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置を対象とし、始点座標及び終点座標を結ぶ線分上の第１の座標データ及び第２の座標データを含む複数のデータを格納可能なデータ格納部を有するデータ記憶手段と、第１の座標データ及び第２の座標データを加算して加算データを出力する加算手段と、加算データの値を２分の１に除してなる除算データを出力する除算手段とを備え、除算データはデータ格納部のうちの所定領域に第３の座標データとして格納される。
【００２４】
第３の直線描画装置によると、データ記憶手段が、始点座標及び終点座標を結ぶ線分上の第１の座標データ及び第２の座標データを含む複数のデータを格納可能なデータ格納部を有しているため、このデータ格納部の個数（容量）によって生成される中点座標の個数が必然的に決定される。その結果、演算手順が単純化されるので、演算手順の制御も簡単となる。
【００２５】
第３の直線描画装置において、互いに隣接する各座標データ同士を両端点とする線分ごとに、データ格納部の個数により決定される繰り返し回数分だけ加算手段による加算演算及び除算手段による除算演算を繰り返し、演算結果がデータ格納部のうちの所定領域にそれぞれ格納されることが好ましい。このようにすると、描画対象の線分の距離が比較的大きい場合であっても、該線分の描画精度を確実に向上させることができる。
【００２６】
本発明に係る直線描画方法は、表示手段、ＦＩＦＯ式の第１のデータ記憶手段及び第２のデータ記憶手段、第１のデータ記憶手段及び第２のデータ記憶手段からの出力を受ける加算手段並びに該加算手段からの出力値の２分の１の値を生成する除算手段を備え、表示手段に表示される始点座標と該始点座標と異なる座標を持つ終点座標との間を結ぶ直線を描画する直線描画装置の直線描画方法を対象とし、始点座標を表わす始点座標データ及び終点座標を表わす終点座標データを表示手段に出力する第１の工程と、始点座標データを第１のデータ記憶手段に格納し且つ終点座標データを第２のデータ記憶手段に格納する第２の工程と、第１のデータ記憶手段から出力される始点座標データを加算手段に出力すると共に、第１のデータ記憶手段に格納する第３の工程と、第２のデータ記憶手段から出力される終点座標データを加算手段に出力すると共に、第１のデータ記憶手段に格納する第４の工程と、加算手段から出力される始点座標データ及び終点座標データの和を除算手段に出力する第５の工程と、除算手段からの出力データを表示手段に出力すると共に、出力データを第２のデータ記憶手段に、第３の工程における始点座標データ及び第４の工程における終点座標データとそれぞれ対応するように格納する第６の工程とを備えている。
【００２７】
本発明の直線描画方法によると、本発明の第２の直線描画装置を用いた短直線の描画を確実に行なえる。
【００２８】
【発明の実施の形態】
（第１の実施形態）
本発明の第１の実施形態について図面を参照しながら説明する。
【００２９】
図１は本発明の第１の実施形態に係る直線描画装置の機能構成を表わしている。図１に示すように、描画対象とする座標データを一時的に保持するパラメータレジスタ１と、座標データのうちのＸ座標を生成するＸ座標生成部２と、座標データのうちのＹ座標を生成するＹ座標生成部３と、Ｘ座標生成部２とＹ座標生成部３により生成される２次元座標データを１次元座標データに変換するアドレス変換部４とを備えている。さらに、１次元座標データに変換された座標データは、メモリインターフェース５を介して画像イメージを保持するフレームメモリ６に保持され、液晶表示板やＣＲＴ等からなる画像表示部７に表示される。メモリインターフェース５は描画終了信号を受けるとフレームメモリ６への座標データの出力動作を中止する。
【００３０】
図２は図１におけるＸ座標生成部２の詳細な機能構成を示している。なお、図示はしていないが、Ｙ座標生成部３の詳細構成もＸ座標生成部２と同様の構成を有している。図２に示すように、Ｘ座標生成部２は、パラメータレジスタ１からの、例えば始点座標データのＸ成分を受けこれを保持する第１のＦＩＦＯメモリ１１と、例えば終点座標データのＸ成分を受けこれを保持する第２のＦＩＦＯメモリ１２と、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２の各出力データを受け、受けた出力データ同士を加算し且つその２分の１の値を求めて出力するＸ座標演算部１３と、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２の繰り返し動作等を制御する繰返制御手段としてのＸ座標制御部１４と、パラメータレジスタ１からの２つの出力データとＸ座標演算部１３からの出力データを受け、Ｘ座標制御部１４からの選択信号に基づいて、受けたデータのうちのいずれか１つを選択して出力するセレクタ１５とを有している。
【００３１】
第１のＦＩＦＯメモリ１１は、例えば、パラメータレジスタ１の一方の出力データ及び第２のＦＩＦＯメモリ１２の出力データが入力される第１のメモリ要素１１ａと、第１のメモリ要素１１ａの出力データ及び第１のＦＩＦＯメモリ１１の出力データが入力される第２のメモリ要素１１ｂとを有している。
【００３２】
第２のＦＩＦＯメモリ１２は、例えば、パラメータレジスタ１の他方の出力データ及びＸ座標演算部１３からの出力データが入力される第１のメモリ要素１２ａと、第１のメモリ要素１２ａの出力データ及びＸ座標演算部１３からの出力データが入力される第２のメモリ要素１２ｂとを有している。なお、第１のＦＩＦＯメモリ１１と第２のＦＩＦＯメモリ１２との配置位置を互いに入れ替えても動作に変わりはない。
【００３３】
Ｘ座標演算部１３は、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２の各出力データを受け、受けたデータの加算演算を行なう加算器２１と加算結果の２分の１の演算を行なう除算手段としてのシフター２２とから構成されている。
【００３４】
ここで、シフター２２は図３に示す構成が好ましい。すなわち、シフター２２は、桁下がり方向（右）方向に１ビット分のシフトが行なえるように配線により１ビット分だけ右方向にずらせて接続されたバレルシフターである１ビット配線シフター２２ａと、該１ビット配線シフター２２ａの出力値をビットごとにラッチし、シリアルデータとして出力するデータラッチ回路２２ｂとから構成されていることが好ましい。このようにすると、シフター２２の回路構成が簡単になり且つ入力値の２分の１の演算を高速に行なえる。
【００３５】
図４はＸ座標制御部１４の詳細構成を示している。図４に示すように、Ｘ座標制御部１４は、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２に対して出力データをフィードバックさせる回数、すなわち中点を求める回数（演算回数）を判定する演算回数判定部２５と、該演算回数判定部２５からの指示を受け、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２のデータの入出力の制御をそれぞれ行なう第１のＦＩＦＯ制御部２６Ａ及び第２のＦＩＦＯ制御部２６Ｂとから構成されている。
【００３６】
図５は演算回数判定部２５の詳細構成を示している。図５に示すように、パラメータレジスタ１から出力される線分の始点座標（Ｘｓ，Ｙｓ）と終点座標（Ｘｅ，Ｙｅ）とから、２点間のＸ成分同士の差（｜Ｘｅ−Ｘｓ｜）とＹ成分同士の差（｜Ｙｅ−Ｙｓ｜）を求め、求めた差の絶対値が大きい方のデータ、すなわち長辺となるデータ（長辺値）を出力する長辺演算選択回路２５ａと、長辺値の大きさにより定められた演算回数を出力する演算回数判定回路２５ｂと、与えられた演算回数により、Ｘ座標演算部１３に対して所定の演算を実行させる演算回数制御回路２５ｃとから構成されている。
【００３７】
図６は演算回数判定回路２５ｂと演算回数制御回路２５ｃとの一構成例を示している。図６に示すように、演算回数判定回路２５ｂは、長辺値と該長辺値により決定される演算回数とを格納するＲＯＭテーブル２５１を含む構成である。演算回数制御回路２５ｃは、演算回数を計数するカウンタ２５２と、ＲＯＭテーブル２５１から読み出された演算回数とカウンタ２５２から出力される計数値を比較し、比較の結果、例えば、計数値が演算回数よりも小さい場合には演算実行信号を出力し、計数値が演算回数よりも大きいか等しい場合には終了判定信号を出力する比較器２５３と、後述する演算回数制御信号出力回路２５４とから構成されている。
【００３８】
演算回数制御信号出力回路２５４は、演算実行信号を受信している間はカウンタ２５２に対してその計数値を増加させるカウンタ制御信号を出力すると共に、第１のＦＩＦＯ制御部２６Ａ及び第２のＦＩＦＯ制御部２６Ｂに対して演算実行信号を出力する。また、演算回数制御信号出力回路２５４は、終了判定信号を受信した場合に、カウンタ２５２に対して計数値を０に戻す初期化信号を出力すると共に、第１のＦＩＦＯ制御部２６Ａ及び第２のＦＩＦＯ制御部２６Ｂに対して演算終了信号を出力する。
【００３９】
なお、ＲＯＭテーブル２５１はメモリ領域上のテーブルではなく、長辺値を入力値とし演算回数を出力値とする論理回路により構成してもよい。
【００４０】
本実施形態においては、各ＦＩＦＯメモリ１１、１２のメモリ要素数（以下、ＦＩＦＯ段数と呼ぶ。）を４段としている。ここで、ＦＩＦＯ段数と直線の始点及び終点を含む中点の座標の数との関係を説明する。以下、直線の始点及び終点を含む中点の座標位置を直線構成点と呼び、直線構成点の個数を長辺値と呼ぶ。
【００４１】
図７（ａ）はＦＩＦＯ段数と、長辺値及び演算回数とのそれぞれの関係を表わす演算回数決定テーブルの内容を示し、図７（ｂ）はＦＩＦＯ段数の増加により、描画される長辺値がどのように増えるかを模式的に表わしている。図８は図７（ａ）に示す演算回数決定テーブルに基づいて、ＦＩＦＯ段数が４段の場合の長辺演算選択回路２５ａにより出力される長辺値から演算回数を判定するＲＯＭテーブル２５１としての演算回数判定テーブルの一例を表わしている。図７（ａ）に示すように、ＦＩＦＯ段数（２ｉｄ＋１）の関数である長辺値又は演算回数が一般式として表わせることが分かる。
【００４２】
以下、前記のように構成された直線描画装置の動作について図面を参照しながら説明する。ここでは、Ｘ座標生成部２について説明するが、Ｙ座標生成部３についても同様である。図９（ａ）〜図９（ｄ）は始点座標及び終点座標、さらには、各中点座標が生成される様子を模式的に表わしている。図９（ａ）において、符号３０を始点座標データとし、符号３１を終点座標データとする。図９（ｂ）において、符号３２を始点座標データ３０と終点座標データ３１とからなる線分の第１の中点座標データ３２とする。図９（ｃ）において、符号３３を始点座標データ３０と第１の中点座標データ３２とからなる線分の第２の中点座標データ３３とし、符号３４を終点座標データ３１と第１の中点座標データ３２とからなる線分の第３の中点座標データ３４とする。図９（ｄ）は最終的に５ピクセルの座標データが生成されたことを表わしている。ここで、ピクセルとは直線等を構成するのに必要な描画点を表わしている。
【００４３】
図１０は第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２における、図９に示す各座標データ３０〜３４が格納される様子を模式的に表わしている。ここで、図１０において、図２に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【００４４】
図２の構成図をも参照しながら説明すると、図２において、まず、パラメータレジスタ１に、描画対象となる、座標成分が（Ｘｓ，Ｙｓ）の始点座標データ３０と座標成分が（Ｘｅ，Ｙｅ）の終点座標データ３１が入力されて保持される。
【００４５】
次に、パラメータレジスタ１から始点座標のＸ成分であるＸｓデータが第１のＦＩＦＯメモリ１１に入力されてこれを保持する。同時に、Ｘ座標制御部１４はセレクタ１５に指示してＸｓデータを図１に示すアドレス変換部４に出力させる。一方、終点座標のＸ成分であるＸｅデータが第２のＦＩＦＯメモリ１２に入力されてこれを保持すると共に、Ｘｓデータと同様に、Ｘｅデータをアドレス変換部４に出力させる。これにより、図９（ａ）に示す始点座標データ３０及び終点座標データ３１が生成される。
【００４６】
次に、第１のＦＩＦＯメモリ１１からの始点座標データ３０と第２のＦＩＦＯメモリ１２からの終点座標データ３１はＸ座標演算部１３に入力される。同時に、図１０に示すように、第１のＦＩＦＯメモリ１１には、該第１のＦＩＦＯメモリ１１から出力される始点座標データ３０が３０Ａとして再入力され、その後、第２のＦＩＦＯメモリ１２から出力される終点座標データ３１が３１Ａとして再入力されて保持される。ここで、符号３０Ａ及び３１Ａは、説明の都合上付したものであり、それぞれ始点座標データ３０及び終点座標データ３１と同一のデータ値を持つ。後述する符号３２Ａ及び３２Ｂも同様である。
【００４７】
Ｘ座標演算部１３においては、始点座標データ３０と終点座標データ３１との和が演算され、続いて和の２分の１の値が演算されてなる第１の中点座標データ３２が出力される。同時に、第１の中点座標データ３２は、第２のＦＩＦＯメモリ１２の２つのメモリ要素にそれぞれ再入力されて３２Ａ及び３２Ｂとして保持される。これにより、図９（ｂ）に示す第１の中点座標データ３２が生成される。
【００４８】
次に、図１０に示すように、第１のＦＩＦＯメモリ１１の始点座標データ３０Ａと第２のＦＩＦＯメモリ１２の第１の中点座標データ３２ＡとがＸ座標演算部１３に入力されて、図９（ｃ）に示す第２の中点座標データ３３が生成される。
【００４９】
次に、第１のＦＩＦＯメモリ１１の終点座標データ３１Ａと第２のＦＩＦＯメモリ１２の第１の中点座標データ３２ＢとがＸ座標演算部１３に入力されて、図９（ｃ）に示す第３の中点座標データ３４が生成される。このように、５直線構成点（ピクセル）の場合には、Ｘ座標演算部１３における演算は３回で終了する。
【００５０】
次に、図１に示すように、Ｘ座標生成部２から出力される各Ｘ座標とＹ座標生成部３から出力される各Ｙ座標とからなる２次元座標は、アドレス変換部４によって１次元座標に変換され、メモリインターフェース５を介してフレームメモリ６に画像イメージとして書き込まれ、画像表示部７に表示される。
【００５１】
ここで、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２の具体的な構成例及びデータの入出力方法を説明する。
【００５２】
図１１（ａ）はＦＩＦＯ段数が４段の第１のＦＩＦＯメモリ１１を模式的に表わしている。第２のＦＩＦＯメモリ１２も第１のＦＩＦＯメモリ１１と同等の構成を有している。ＦＩＦＯ段数は、直線描画装置が描画する直線の長辺値に基づいてあらかじめ決定しておく。例えば、図７（ａ）に示した演算回数決定テーブルから、長辺値を５とする場合のＦＩＦＯ段数は４段となり、長辺値を９とする場合のＦＩＦＯ段数は８段となる。
【００５３】
第１のＦＩＦＯメモリ１１は、図１１（ａ）に示す構成を採ることが好ましい。すなわち、少なくとも８ビット幅のメモリ領域を持つデータ格納部１１１と、５段目にオーバーフロー部１１３を持つ少なくとも１ビット幅のメモリ領域を持つエンドマーク格納部１１２とから構成されている。データ格納部１１１へのデータ入力は、有効データが格納されている領域に隣接する空き領域に格納され、データ格納部１１１からのデータ出力は有効データのうちの１段目から出力される。
【００５４】
図の左側のメモリ１１には、一例として、データ格納部１１１の１段目から順にデータ”０”、”８”、”４”が格納され、対応するエンドマーク格納部１１２にはいずれも”０”が格納されて、データ格納部１１１に格納されているデータが有効データであることを表わしている。また、エンドマーク格納部１１２の４段目にはエンドマークである”１”が格納されており、エンドマーク”１”が格納されているデータ格納部１１１及びこれから上の領域のデータは無効データであることを表わしている。
【００５５】
ここで、１つ分のデータ出力は、データ格納部１１１の１段目のデータが下段方向に１段分だけシフトすることにより行なわれる。例えば、図の中央のメモリに示すように、１段目のデータ”０”がメモリから出力されると、データ”８”、”４”及びエンドマークがそれぞれ下段側に１段分だけシフトする。この後、データ格納部１１１に２つのデータ”２”、”１”が入力されると、図の右側のメモリに示すように、データ格納部１１１の３段目及び４段目に順次格納されると共に、エンドマーク”１”は、入力側に２段分だけシフトして、オーバーフロー部１１３に格納される。
【００５６】
オーバーフロー部１１３にエンドマーク”１”が格納された状態で、さらに他のデータが入力される場合には、オーバーフロー部１１３のエンドマーク”１”がオーバーフロー部１１３に再度書き込まれて、データ格納部１１１には何も書き込まれない。また、この状態から、データ”８”が出力された場合には、エンドマーク”１”が４段目にシフトし、オーバフロー部１１３には”０”が書き込まれる。
【００５７】
図１１（ｂ）はこのように構成された第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２に対して、パラメータレジスタ１からＸ座標演算部１３に至るデータの流れを示している。ここでは、各ＦＩＦＯメモリ１１、１２への入力データはセレクタＭＰＸを介して入力され、その出力データはそれぞれバッファを介して出力される。
【００５８】
以下、座標データに実際の数値を用いた具体例を説明する。
【００５９】
図１２は始点座標データ（Ｘｓ，Ｙｓ）を（０，０）とし、終点座標データ（Ｘｅ，Ｙｅ）を（２，２）とした例を示している。この場合は、３ピクセルであるため演算回数は１回となり、図１２に示すように、中点座標データ（１，１）が生成されることは容易に理解できる。
【００６０】
図１３（ａ）は始点座標データ（Ｘｓ，Ｙｓ）を（０，０）とし、終点座標データ（Ｘｅ，Ｙｅ）を（２，１）とした例を示している。この場合には、小数点演算を行なうと（１，０．５）が算出され、この算出されたデータに対して切り上げ演算を行なうことにより、中点座標データ（１，１）を生成した場合を表わしている。ここで、切り上げ演算は、例えば、図３に示すシフター２２において小数点以下のビット領域を設け、小数点以下の１ビットに１を加算することにより行なえる。すなわち、シフト後の小数点以下の１ビットが０ならば、桁上がりが生じず、１ならば桁上がりが生じるため、０．５が１となる。
【００６１】
一方、図１３（ｂ）は算出されたデータ（１，０．５）に対して切り捨て演算を行なうことにより、中点座標データ（１，０）を生成した場合を表わしている。これは、シフター２２に小数点以下のビット領域を設けない場合の出力データであり、すなわち、図３に示すシフター２２の構成の場合となる。
【００６２】
図１４（ａ）は始点座標データ（Ｘｓ，Ｙｓ）を（０，０）とし、終点座標データ（Ｘｅ，Ｙｅ）を（２，３）とした例を示している。以下に、演算ステップごとに生成される中点座標データを列挙する。ここで、演算記号「＃」は一のデータと他のデータとの和の２分の１を求める演算を施すことを表わす。また、小数点データは丸め（切り上げ）演算を行なう。
【００６３】
始点座標（０，０）、終点座標（２，３）
ステップ１：（０，０）＃（２，３）→（１，１．５）→（１，２）
ステップ２：（０，０）＃（１，２）→（０．５，１）→（１，１）
ステップ３：（２，３）＃（１，２）→（１．５，２．５）→（２，３）
また、切り捨て演算を行なった場合には図１４（ｂ）に示すようになる。
【００６４】
始点座標（０，０）、終点座標（２，３）
ステップ１：（０，０）＃（２，３）→（１，１．５）→（１，１）
ステップ２：（０，０）＃（１，１）→（０．５，０．５）→（０，０）
ステップ３：（２，３）＃（１，１）→（１．５，２）→（１，２）
この場合の描画イメージは、図１４（ａ）と同等である。
【００６５】
なお、本実施形態においては、Ｘ座標生成部２とＹ座標生成部３とを分けて、座標成分ごとに演算を行なったが、Ｘ座標とＹ座標とは互いに独立したデータであるため、いずれか一方の座標生成部のみの構成とし、これを繰り返して用いてもよい。
【００６６】
以上説明したように、本実施形態によると、短直線を描画する際に、従来のような直線の１次パラメータを算出する除算演算が不要となるため、除算演算に要する多くのクロックサイクルが不要となる。このため、従来の除算サイクルを実行中に短直線の描画を開始することができるので、直線座標演算処理を高速に行なえるようになる。その結果、特に、短直線を多く描画する必要がある場合には所定時間内により多くの座標演算処理を実行できるため、描画処理のスループットを大幅に向上することができる。
【００６７】
なお、本実施形態においては、Ｘ座標演算部１３に供給するデータを保持するメモリにＦＩＦＯメモリを用いたが、保持したデータと同一のデータを供給可能なデータ保持手段であれば、ＦＩＦＯメモリに限られない。
【００６８】
（第１の実施形態の一変形例）
以下、第１の実施形態の一変形例として、ＦＩＦＯメモリ方式に代わる固定メモリ方式を説明する。
【００６９】
図１５（ａ）はＸ座標演算部１３に供給するデータを保持する固定メモリを模式的に表わしている。符号４５はデータ記憶手段としての固定メモリであって、その段数も直線描画装置が描画する直線の長辺値に基づいてあらかじめ決定されている。例えば、図１５（ａ）に示すように、長辺値が９の場合は９段分のデータ格納部が必要となる。長辺値が１７の場合は１７段の格納部が必要となり、ｍ（ｍは正の整数）段のＦＩＦＯ方式のｍ＋１の段数が必要となる。一方、固定メモリ４５は１つのブロックで済み、ＦＩＦＯ方式のように２ブロック分を必要としない。
【００７０】
次に、固定メモリ４５への座標データの格納順序を図１５（ｂ）に示す。まず、描画対象である線分の始点１及び終点９の格納領域を決定しておく。例えば、データ格納部Ａ１に始点１を格納し、データ格納部Ａ９に終点９を格納しておく。
【００７１】
次に、図２に示した加算器２１及びシフター２２を含むＸ座標演算部１３を用いて、加算及び２分の１の除算を行なって、始点１と終点９との中点である第１の中点５をデータ格納部Ａ５に格納する。続いて、図１５（ｂ）の算出順序に示すように、始点１と第１の中点５との中点となる第２の中点３をデータ格納部Ａ３に格納し、演算を順次行なう。ここで、（Ａ５）はデータ格納部Ａ５に格納されているデータを表わしている。
【００７２】
このように、長辺値が９の場合は７回の演算を繰り返すことにより、すべての中点座標、すなわち（Ａ２）〜（Ａ８）の７つの中点座標を算出できる。
【００７３】
なお、中点座標を算出する順序は、図１５（ｂ）に限られず、既に算出された座標データを用いた演算が行なわれればよい。また、固定メモリ４５のデータ格納部Ａ１〜Ａ９の配列を始点座標から終点座標に向けて、メモリ装置のアドレスの昇順又は降順に配置したが、被演算データと演算後のデータの格納先が一意に決定されていれば良く、データ格納部Ａ１〜Ａ９の配置位置は問われない。さらにはデータ格納部同士が隣接して配置されていなくてもよい。
【００７４】
本変形例に係る固定メモリ方式は、図１５（ｃ）に示すように、長辺値が５の場合であっても、制御方法を何ら変更することなく、図１５（ｂ）に示した演算を実行できる。この場合に、例えば、データ格納部Ａ９とデータ格納部Ａ８とに格納されるデータは同値となって描画時に重複してしまうものの、描画自体には支障はない。本変形例においては、長辺値が３〜９の場合の算出時間はすべて同一となる。
【００７５】
このように、本変形例によると、中点の算出手順及びメモリが固定されているため、ＦＩＦＯ方式の場合よりも装置の制御を簡単に行なうことができる。
【００７６】
（第２の実施形態）
以下、本発明の第２の実施形態について図面を参照しながら説明する。
【００７７】
図１６は本発明の第２の実施形態に係る直線描画装置の機能構成を表わしている。図１６において、図１に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。図１６に示すように、パラメータレジスタ１とメモリインターフェース５との間に、Ｘ座標生成部２及びＹ座標生成部３と同等の構成を持つ色情報生成部８を備えていることを特徴とする。
【００７８】
本実施形態に係る直線描画装置は、始点座標と終点座標との座標データごとに色情報が付与されている場合に、これら始点と終点とを結ぶ線分の色補間を行なう機能を有している。
【００７９】
前記のような構成の直線描画装置の動作を説明する。
【００８０】
図１６において、まず、パラメータレジスタ１には、それぞれに色情報が割り当てられた始点座標データ及び終点座標データがパラメータレジスタ１に保持される。
【００８１】
次に、第１の実施形態と同様に、始点座標データ及び終点座標データのＸ成分はＸ座標生成部２に入力され、そのＹ成分はＹ座標生成部３に入力されて、第１の中点座標データ、第２の中点座標データ、…と所定回数の演算が順次実行されてアドレス変換部４に出力される。これと並行して、始点座標データ及び終点座標データの色情報が、色情報生成部８に入力される。色情報生成部８において、座標の演算と同様に、始点に付加され数値化された始点色情報と終点に付加され数値化された終点色情報との和が求められ、求められた和の２分の１の値が色補間情報の一つとして出力される。従って、色情報生成部８の機能構成は、図２に示すＸ座標生成部２と同等の構成で実現できる。例えば、第１のＦＩＦＯメモリ１１が第１の色情報記憶手段として、第２のＦＩＦＯメモリ１２が第２の色情報記憶手段として、加算器２１が色情報加算手段として、シフター２２が色情報除算手段として、それぞれ機能する。
【００８２】
色情報生成部８により生成された補間情報は、フレームメモリ６内において、対応する座標データと組み合わされた後、画像表示部７に描画される。
【００８３】
図１７は色補間表示によるグラデーション色で直線を描画した例を示している。ここで、グラデーション色とは、互いに離れた位置にある複数の対象物の色が徐々に補間され変化していく様子を表わす言葉である。図１７に示すように、濃色の始点座標データ（０，０）と淡色の終点座標データ（２，２）との中点座標データ（１，１）は、両者の中間色となる色情報を持っている。
【００８４】
図１８は色情報生成部８の一変形例を示している。
【００８５】
図１８に示す色情報生成部８は、それぞれが、Ｘ座標生成部２と同等の構成を持つ赤色情報生成部８ａ、緑色情報生成部８ｂ及び青色情報生成部８ｃを有している。従って、色情報が赤色、緑色及び青色からなる三原色データで表現される場合にはさらに高精度の色補間を行なえる。
【００８６】
このように、本実施形態によると、グラデーション処理が要求されるような短直線の描画であっても、従来のような高演算コストを要する除算器を用いないので、簡単なハードウェア構成で且つ高速に描画することができる。
【００８７】
なお、ＦＩＦＯ段数が比較的少ない場合には、例えば、色情報生成部８を赤色、緑色及び青色で共用してもよい。
【００８８】
（第３の実施形態）
以下、本発明の第３の実施形態について図面を参照しながら説明する。
【００８９】
図１９は本発明の第３の実施形態に係る直線描画装置の機能構成を表わしている。図１９において、図１に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。図１９に示すように、パラメータレジスタ１とメモリインターフェース５との間に、Ｘ座標生成部２及びＹ座標生成部３と同等の構成を持つ輝度情報生成部９と、該輝度情報生成部９からの出力を受け、色情報のスケーリングを施してメモリインターフェース５に出力する色情報演算部１０とを備えていることを特徴とする。
【００９０】
本実施形態に係る直線描画装置は、始点座標と終点座標との座標データごとに照度に関する情報からなる輝度情報が付与されている場合に、これら始点と終点とを結ぶ線分の輝度補間を行う機能を有している。
【００９１】
前記のような構成の直線描画装置の動作を説明する。
【００９２】
図１９において、まず、パラメータレジスタ１には、それぞれに輝度情報が割り当てられた始点座標データ及び終点座標データがパラメータレジスタ１に保持される。
【００９３】
次に、第１の実施形態と同様に、始点座標データ及び終点座標データのＸ成分はＸ座標生成部２に入力され、そのＹ成分はＹ座標生成部３に入力されて、第１の中点座標データ、第２の中点座標データ、…と所定回数の演算が順次実行されてアドレス変換部４に出力される。これと並行して、始点座標データ及び終点座標データの輝度情報が、輝度情報生成部９に入力される。輝度情報生成部９において、座標の演算と同様に、始点に付加され数値化された始点輝度情報と終点に付加され数値化された終点輝度情報との和が求められ、求められた和の２分の１の値が輝度補間情報の一つとして出力される。従って、輝度情報生成部９の機能構成は、図２に示すＸ座標生成部２と同等の構成で実現できる。例えば、第１のＦＩＦＯメモリ１１が第１の輝度情報記憶手段として、第２のＦＩＦＯメモリ１２が第２の輝度情報記憶手段として、加算器２１が輝度情報加算手段として、シフター２２が輝度情報除算手段として、それぞれ機能する。
【００９４】
次に、生成された輝度情報は、色情報演算部１０に入力され、輝度情報に対する色情報のスケーリングを行なう。ここで、スケーリングとは、例えば、照度０が相対的に暗い情報を表わし、照度１が相対的に明るい情報を表わしているとする。従って、描画対象の直線の始点が照度０であり且つ終点が照度１である場合には、その中点の照度は０．５として算出される。この値を、色情報に積算することにより照度を付加した色情報を得ることができる。
【００９５】
次に、色情報演算部１０により生成され、輝度情報が付加された色補間情報は、フレームメモリ６内において、対応する座標データと組み合わされた後、画像表示部７に出力される。
【００９６】
このように、本実施形態によると、輝度が付加された色情報によるグラデーション処理が要求されるような短直線の描画であっても、従来のような高演算コストを要する除算器を用いないので、簡単なハードウェア構成で且つ高速に描画することができる。
【００９７】
なお、本実施形態においては、色情報は、１つの色情報に対して複数の輝度情報を与えることを前提にしたが、第２の実施形態の一変形例と同様に、三原色の原色ごとに輝度情報を付加してもよい。
【００９８】
また、第２の実施形態に係る直線描画装置に本実施形態の輝度情報生成部９及び色情報演算部１０を追加した構成としてもよい。このようにすると、直線描画時に輝度補間と色補間とを同時に行なえようになる。
【００９９】
（第４の実施形態）
以下、本発明の第４の実施形態について図面を参照しながら説明する。
【０１００】
図２０は本発明の第４の実施形態に係る直線描画装置におけるＸ座標生成部の詳細な機能構成を示している。図２０において、図２に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。
【０１０１】
前述した第３の実施形態までの直線描画装置は、所定時間に点描が可能な短直線を対象としている。第４の実施形態においては、従来の、直線の１次（傾き）パラメータを算出する方法をも取り込み、長辺値（ピクセル数）に応じて、中点を点描する方法と、従来の１次パラメータを算出する方法とを選択して動作する直線描画装置を説明する。
【０１０２】
図２０に示すように、パラメータレジスタ１の始点座標データ及び終点座標データを受け、受けた始点座標データと終点座標データとを含む直線の傾きを算出してＸ座標演算部１３に出力するパラメータ算出部４１を備えている。
【０１０３】
さらに、第１のＦＩＦＯメモリ１１からの出力値とパラメータ算出部４１からの出力値を受け、そのうちのいずれか１つを選択してＸ座標演算部１３に出力する第１の切替手段としての第１のセレクタ４２と、第２のＦＩＦＯメモリ１２からの出力値とＸ座標演算部１３からの出力値とを受け、そのうちのいずれか１つを選択してＸ座標演算部１３に出力する第２の切替手段としての第２のセレクタ４３と、パラメータレジスタ１の２つの出力値、加算器２１からの出力値及びシフター２２からの出力値を受け、そのうちのいずれか１つを選択してアドレス変換部４へ出力する第３のセレクタ４４とを備えている。
【０１０４】
図２１は本実施形態に係るＸ座標制御部１４の演算回数判定部２５の詳細構成を示している。図２１において、図４に示す構成要素と同一の構成要素には同一の符号を付すことにより説明を省略する。図２１に示すように、長辺演算選択回路２５ａの出力を受け、始点座標データと中点座標データとの距離のＸ成分又はＹ成分を判定し、所定値を超える場合には、パラメータ演算部４１の出力結果を選択する長短描画判定信号を生成して、第１のセレクタ４２及び第２のセレクタ４３に出力する長短直線描画判定回路２５ｄを有している。
【０１０５】
以下、前記のように構成された直線描画装置の動作を説明する。
【０１０６】
ここでは、短直線の場合は第１の実施形態で説明した動作による直線の描画が行なわれ、長直線の場合は公知の方法による直線の描画が行なわれるため、図２１に示す演算回数判定部２５における短直線と長直線との判定方法を中心に説明する。従って、演算回数判定部２５における短直線と長直線との判定方法の処理フローをも参照しながら説明する。
【０１０７】
図２２は本実施形態に係る演算回数判定部２５の判定方法を示すフローチャートをである。
【０１０８】
まず、描画対象となる始点座標データを（Ｘｓ，Ｙｓ）とし、終点座標データを（Ｘｅ，Ｙｅ）とする。図２１に示す長辺演算選択回路２５ａは、図２２に示す長辺演算選択処理を行なう。すなわち、始点と終点との２点間のＸ成分同士の差（｜Ｘｅ−Ｘｓ｜）とＹ成分同士の差（｜Ｙｅ−Ｙｓ｜）を求め、求めた差の絶対値が大きい方の値を出力する。
【０１０９】
次に、図２１に示す長短直線描画判定回路２５ｄは、長辺演算選択回路２５ａからのデータを判定し、例えば、９ピクセルを超える場合には、図２０に示す第１のセレクタ４２に対してパラメータ算出部４１からの信号を選択させ、第２のセレクタ４３に対してＸ座標演算部１３からの信号を選択させ、第３のセレクタ４４に対してシフター２２からの信号を選択させない長短描画判定信号を出力する。一方、９ピクセル以下の場合には、第１のセレクタ４２に対して第１のＦＩＦＯメモリ１１からの信号を選択させ、第２のセレクタ４３に対して第２のＦＩＦＯメモリ１２からの信号を選択させ、第３のセレクタ４４に対して加算器２１からの信号を選択させない長短描画判定信号を出力する。
【０１１０】
次に、図２１に示す演算回数判定回路２５ｂは、長辺演算選択回路２５ａからのデータを判定し、演算回数を決定する。ここでは、図８に示す演算回数判定テーブルの基づくとすると、図２２に示すように、３ピクセル以下の場合は演算回数を１回と決定する。同様に、５ピクセル以下の場合は演算回数を３回とし、９ピクセル以下の場合は演算回数を７回と決定する。
【０１１１】
このように、長短直線描画判定回路２５ｄ、パラメータ算出部４１及びセレクタ４２、４３、４４を設けることにより、９ピクセル以上の場合には、長直線描画を確実に行なわせることができる。
【０１１２】
ここで、図２１に示す長短直線描画判定回路２５ｄは、演算回数判定回路２５ｂの出力結果を受ける構成としてもよい。このようにすると、９ピクセル以上の場合には長直線描画を実行させるため、長辺演算選択回路２５ａの出力結果を判定する処理が不要となる。
【０１１３】
以上説明したように、本実施形態によると、短直線の描画と長直線の描画とを同一の演算手段、具体的には加算器２１を共有して直線座標の演算生成を行なわせることができるため、短直線の描画と長直線の描画との両方を行なう必要がある場合であっても、個別に加算器８を設けることなく、ハードウェア資源を共有できる。
【０１１４】
その上、短直線の場合には、長直線に必要なＸ成分の差分による除算演算を行なわなくてもすむため、従来と比べて短直線の演算を高速に行なうことができ、直線描画のスループットを全体として向上させることができる。
【０１１５】
なお、本実施形態においては、短直線を９ピクセル以下の直線としたが、この値に限定されるものではない。
【０１１６】
従って、各実施形態においては、ＦＩＦＯメモリの段数を４段としたが、４段に限られず、図７（ａ）に示すＦＩＦＯ段数と長辺値との関係から分かるように、描画対象とする直線に応じて適当な段数を選べばよい。
【０１１７】
（第５の実施形態）
以下、本発明の第５の実施形態について図面を参照しながら説明する。
【０１１８】
前述した第４の実施形態は、長直線の描画に１次パラメータを用いた従来方法を採用しているが、第５の実施形態は、描画対象の長直線を複数の短直線に分割した後、分割された各短直線を順次描画する方法を採る。
【０１１９】
図２３は本実施形態に係る直線描画装置におけるＸ座標生成部の機能構成を示している。図２３において、図２に示す第１の実施形態に係る直線描画装置のＸ座標生成部２と同一の構成要素には同一の符号を付すことにより説明を省略する。図２３に示すように、本実施形態に係るＸ座標生成部２は、図２に示す第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２を含む描画用ＦＩＦＯ５０と、該描画用ＦＩＦＯ５０と並列に接続され、第１のＦＩＦＯメモリ１１及び第２のＦＩＦＯメモリ１２と同等のメモリを含む分割用ＦＩＦＯ５１とを有している。なお、図示はしていないが、Ｙ座標生成部にも分割用ＦＩＦＯ５１を有している。
【０１２０】
次に、長直線の分割方法を説明する。
【０１２１】
図２４（ａ）は描画対象の直線であって、長辺値が９の長直線Ｌ１を示している。図７（ａ）に示したように、描画用ＦＩＦＯ５０のＦＩＦＯ段数が４段で、描画可能な長辺値が５の場合には、この長直線Ｌ１を分割用ＦＩＦＯ５１を用いて２分割することにより、図２４（ｂ）に示すように、始点が１で終点が５の第１の短直線Ｌ２ａと、始点が５で終点が９の第２の短直線Ｌ２ｂとからなる２本の短直線を生成する。
【０１２２】
また、描画用ＦＩＦＯ５０のＦＩＦＯ段数が２段で、描画可能な長辺値が３の場合には、分割用ＦＩＦＯ５１を用いて長直線Ｌ１を４分割することにより、図２４（ｃ）に示すように、始点が１で終点が３の第１の短直線Ｌ３ａ、始点が３で終点が５の第２の短直線Ｌ３ｂ、始点が５で終点が７の第３の短直線Ｌ３ｃ及び始点が７で終点が９の第４の短直線Ｌ３ｄからなる４本の短直線を生成する。
【０１２３】
一例として、より実用的な分割回数判定テーブルを図２４（ｄ）に示す。図２４（ｄ）に示す分割回数判定テーブルは、長辺値が３３までの直線、すなわち、描画用ＦＩＦＯ５０の段数が３２段の場合における長辺値と、該長辺値で決定される分割演算回数とを表わしている。これにより、長辺値が２５７の長直線にまで対応できる。
【０１２４】
図２５は分割回数判定テーブルを組み込んだ演算回数判定回路２５ｂの構成を示している。ここでは、図６に示す構成要素と同一の構成要素には同一の符号を付している。図２５に示すように、第５の実施形態に係る演算回数判定回路２５ｂは、短直線を描画する際の演算回数の判定に用いる描画用ＲＯＭテーブル２５１Ａと、長直線を短直線に分割する際の分割演算回数の判定に用いる分割用ＲＯＭテーブル２５１Ｂとを備えている。
【０１２５】
このように、本実施形態によると、あらかじめ、短直線の描画方法と同一の方法により長直線が描画可能な短直線となるまで分割し、その後、分割された短直線を順次描画する。これにより、分割用ＦＩＦＯ５１の段数により決定された長辺値を越える長直線であっても、直線の１次パラメータを用いることなく長直線を描画できる。その上、長直線Ｌ１の分割を、本発明の短直線の描画方法である中点で分割する方法を用いているため、分割用ＦＩＦＯ５１を描画用ＦＩＦＯ５０と並列に設けると共に、分割用ＲＯＭテーブル２５１Ｂを設けるだけで、他の回路やハードウエア資源を共有することができるので、描画装置の構成を簡単化できる。
【０１２６】
また、第１の実施形態に係る直線描画装置を複数用意しておき、描画対象の一長直線を直線描画装置が描画可能な複数の短直線に分割した後、分割した短直線を複数の直線描画装置で並列して描画することにより、短時間で長直線の描画を行なうことができる。
【０１２７】
なお、長辺値が２５７を越える直線に対しては、第４の実施形態のように、直線の１次パラメータを用いて描画する従来の方法を併用すればよい。
【０１２８】
【発明の効果】
本発明に係る直線描画装置及び直線描画方法によると、線分の始点及び終点の各座標の中点座標を求め、さらに、各座標の中点座標を順次生成しながら直線を描画するため、実質的に除算器が不要となる。これにより、特に多数の短直線を描画するような場合に、描画のスループットが向上すると共に装置構成が簡単となり、装置のコストを低減できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る直線描画装置を示す機能ブロック図である。
【図２】本発明の第１の実施形態に係る直線描画装置のＸ座標生成部を示す詳細な機能ブロック図である。
【図３】本発明の第１の実施形態に係る直線描画装置のシフターを示す詳細ブロック構成図である。
【図４】本発明の第１の実施形態に係る直線描画装置のＸ座標制御部を示す詳細な機能ブロック図である。
【図５】本発明の第１の実施形態に係る直線描画装置の演算回数判定部を示す詳細な機能ブロック図である。
【図６】本発明の第１の実施形態に係る直線描画装置の演算回数判定回路を示す詳細な機能ブロック図である。
【図７】（ａ）は本発明の第１の実施形態に係る直線描画装置におけるＦＩＦＯメモリの段数と、長辺値及び演算回数とのそれぞれの関係を示す演算回数決定テーブルである。（ｂ）はＦＩＦＯメモリの段数と描画される長辺値との関係を表わした模式図である。
【図８】本発明の第１の実施形態に係る直線描画装置におけるＦＩＦＯメモリの段数が２段の場合を表わした演算回数判定テーブルである。
【図９】本発明の第１の実施形態に係る直線描画装置における５ピクセルの場合の直線の座標データが生成される様子を示し、（ａ）は始点と終点の座標データを表わす模式図であり、（ｂ）は始点と終点との第１の中点座標データを表わす模式図であり、（ｃ）は第２の中点座標データ及び第３の中点座標データを表わす模式図であり、（ｄ）は５ピクセルの座標データが生成された模式図である。
【図１０】本発明の第１の実施形態に係る直線描画装置におけるＦＩＦＯメモリに座標データが格納される様子を表わす模式図である。
【図１１】（ａ）及び（ｂ）は本発明の第１の実施形態に係る直線描画装置におけるＦＩＦＯ段数が４段のＦＩＦＯメモリを示し、（ａ）は単体のＦＩＦＯメモリに対するデータの入出力の様子を示す模式図であり、（ｂ）は第１及び第２のＦＩＦＯメモリに対するデータの入出力を示す機能ブロック図である。
【図１２】本発明の第１の実施形態に係る直線描画装置における３ピクセルの描画演算の一例を示す模式図である。
【図１３】本発明の第１の実施形態に係る直線描画装置における３ピクセルの描画演算の一例を示し、（ａ）は切り上げ（丸め）処理を行なった場合の模式図であり、（ｂ）は切り捨て処理を行なった場合の模式図である。
【図１４】本発明の第１の実施形態に係る直線描画装置における４ピクセルの描画演算の一例を示し、（ａ）は切り上げ（丸め）処理を行なった場合の模式図であり、（ｂ）は切り捨て処理を行なった場合の模式図である。
【図１５】（ａ）〜（ｃ）は本発明の第１の実施形態の一変形例に係る直線描画装置における固定メモリ方式を示し、（ａ）は９ピクセルのデータを保持する固定メモリを表わす模式図であり、（ｂ）は中点算出の演算順序及び算出後のデータの格納先を表わす計算フローであり、（ｃ）は５ピクセルのデータを保持する固定メモリを表わす模式図である。
【図１６】本発明の第２の実施形態に係る直線描画装置を示す機能ブロック図である。
【図１７】本発明の第２の実施形態に係る直線描画装置における色補間表示によるグラデーション色で直線を描画した一例を示す模式図である。
【図１８】本発明の第２の実施形態に係る直線描画装置における色情報生成部の一変形例を示す機能ブロック図である。
【図１９】本発明の第３の実施形態に係る直線描画装置を示す機能ブロック図である。
【図２０】本発明の第４の実施形態に係る直線描画装置のパラメータ算出部及びＸ座標生成部を示す詳細な機能ブロック図である。
【図２１】本発明の第４の実施形態に係る直線描画装置の演算回数判定部を示す詳細な機能ブロック図である。
【図２２】本発明の第４の実施形態に係る直線描画装置における演算回数判定部の判定方法を示すフローチャートである。
【図２３】本発明の第５の実施形態に係る直線描画装置のＸ座標生成部を示す詳細な機能ブロック図である。
【図２４】（ａ）〜（ｄ）は本発明の第５の実施形態に係る直線描画装置の長直線の分割方法を示し、（ａ）は描画対象の長直線を表わす模式図であり、（ｂ）は２分割された後の単直線を表わす模式図であり、（ｃ）は４分割された後の単直線を表わす模式図である。（ｄ）は本発明の第５の実施形態に係る直線描画装置における分割回数判定テーブルである。
【図２５】本発明の第５の実施形態に係る直線描画装置の演算回数判定回路を示す詳細な機能ブロック図である。
【図２６】従来の直線描画方法を示す概念図である。
【図２７】従来の直線描画方法を示すフローチャートである。
【符号の説明】
１        パラメータレジスタ
２        Ｘ座標生成部
３        Ｙ座標生成部
４        アドレス変換部
５        メモリインターフェース
６        フレームメモリ
７        画像表示部（表示手段）
８        色情報生成部
８ａ      赤色情報生成部
８ｂ      緑色情報生成部
８ｃ      青色情報生成部
９        輝度情報生成部
１０      色情報演算部
１１      第１のＦＩＦＯメモリ（第１のデータ記憶手段）
１１ａ    第１のメモリ要素
１１ｂ    第２のメモリ要素
１１１    データ格納部
１１２    エンドマーク格納部
１１３    オーバーフロー部
１２      第２のＦＩＦＯメモリ（第２のデータ記憶手段）
１２ａ    第１のメモリ要素
１２ｂ    第２のメモリ要素
１３      Ｘ座標演算部
１４      Ｘ座標制御部（繰返制御手段）
１５      セレクタ
２１      加算器
２２      シフター（除算手段）
２２ａ    １ビット配線シフター
２２ｂ    データラッチ
２５      演算回数判定部
２５ａ    長辺演算選択回路（長辺演算選択部）
２５ｂ    演算回数判定回路（演算回数算出部）
２５ｃ    演算回数制御回路
２５ｄ    長短直線描画判定回路
２５１    ＲＯＭテーブル
２５１Ａ  描画用ＲＯＭテーブル
２５１Ｂ  分割用ＲＯＭテーブル
２５２    カウンタ
２５３    比較器
２５４    演算回数制御信号出力回路
２６Ａ    第１のＦＩＦＯ制御部
２６Ｂ    第２のＦＩＦＯ制御部
３０      始点座標データ
３０Ａ    始点座標データ
３１      終点座標データ
３１Ａ    終点座標データ
３２      第１の中点座標データ
３２Ａ    第１の中点座標データ
３２Ｂ    第１の中点座標データ
３３      第２の中点座標データ
３４      第３の中点座標データ
４１      パラメータ算出部（１次パラメータ算出手段）
４２      第１のセレクタ（第１の切替手段）
４３      第２のセレクタ（第２の切替手段）
４４      第３のセレクタ
４５      固定メモリ（データ記憶手段）
５０      描画用ＦＩＦＯ
５１      分割用ＦＩＦＯ
【図１】
0003593016.tif 000002
【図２】
0003593016.tif 000003
【図３】
0003593016.tif 000004
【図４】
0003593016.tif 000005
【図５】
0003593016.tif 000006
【図６】
0003593016.tif 000007
【図７】
0003593016.tif 000008
【図８】
0003593016.tif 000009
【図９】
0003593016.tif 000010
【図１０】
0003593016.tif 000011
【図１１】
0003593016.tif 000012
【図１２】
0003593016.tif 000013
【図１３】
0003593016.tif 000014
【図１４】
0003593016.tif 000015
【図１５】
0003593016.tif 000016
【図１６】
0003593016.tif 000017
【図１７】
0003593016.tif 000018
【図１８】
0003593016.tif 000019
【図１９】
0003593016.tif 000020
【図２０】
0003593016.tif 000021
【図２１】
0003593016.tif 000022
【図２２】
0003593016.tif 000023
【図２３】
0003593016.tif 000024
【図２４】
0003593016.tif 000025
【図２５】
0003593016.tif 000026
【図２６】
0003593016.tif 000027
【図２７】
0003593016.tif 000028