JP4596678B2 - 線分描画装置 - Google Patents
線分描画装置 Download PDFInfo
- Publication number
- JP4596678B2 JP4596678B2 JP2001144041A JP2001144041A JP4596678B2 JP 4596678 B2 JP4596678 B2 JP 4596678B2 JP 2001144041 A JP2001144041 A JP 2001144041A JP 2001144041 A JP2001144041 A JP 2001144041A JP 4596678 B2 JP4596678 B2 JP 4596678B2
- Authority
- JP
- Japan
- Prior art keywords
- line segment
- pixels
- displacement
- data
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ・グラフィックスの分野において、ディジタル微分解析を用いて線分を描画する線分描画装置に関するものである。
【0002】
【従来の技術】
従来から、コンピュータ・グラフィックスの分野において、線分描画装置により線分を描画する際には、佐藤義雄著「入門グラフィックス」に開示されているディジタル微分解析(以下、DDAと称す)が広く用いられている。なお、DDAについては、前著に開示され公知の事実となっているため、その詳細な説明はここでは省略する。
【0003】
この線分描画装置では、線分を描画する場合、まず、線分を構成する各ピクセルについて、その線分の始点から終点までの区間を、DDAによりx,y座標を求める。次に、線分に対して半透明処理を行う場合は、DDAにより求めた各ピクセルのx,y座標に対応した背景色データをフレームメモリからリードし、半透明処理して新たに生成した色データをフレームメモリにライトする。
【0004】
以上のように、線分描画装置により、DDAを用いて、図6に示す線分を半透明処理で描画する場合について、その詳細を以下に説明する。
図7は図6に示す線分を半透明処理で描画する際の時間軸に沿った処理の流れを示すタイムチャートであり、以下、図7中の各期間について説明する。
【0005】
ステップS10は、リードアクセスオーバーヘッド処理期間であり、線分描画装置がフレームメモリに対してデータリードを要求し、アドレス設定等のリードコマンドを送るまでの期間である。フレームメモリに表示回路等、他の回路が共通バスで接続されている場合は、フレームメモリ使用権を獲得するための期間がさらに追加される。
【0006】
ステップS11は、背景色リード処理期間であり、フレームメモリから背景色データがリードされ、データバッファに格納されるまでの期間である。
ステップS12は、色データ生成処理期間であり、背景色データと線分の色データとで半透明処理を行い、新しい色データを生成する期間である。
【0007】
ステップS13は、ライトアクセスオーバーヘッド処理期間であり、線分描画装置がフレームメモリに対してデータライトを要求し、アドレス設定等のライトコマンドを送るまでの期間である。フレームメモリに表示回路等、他の回路が共通バスで接続されている場合、フレームメモリ使用権を獲得するための期間がさらに追加される。
【0008】
ステップS14は、色データライト処理期間であり、データバッファから半透明処理された色データをフレームメモリにライトする期間である。
以上のステップS10〜ステップS14までの処理期間は、ピクセル▲1▼に対する処理であり、ピクセル▲2▼以降においても、同様の処理が繰り返し実行される。
【0009】
【発明が解決しようとする課題】
しかしながら上記のような従来の線分描画装置による描画処理においては、線分に対して半透明処理を行う場合、その線分を構成する全ピクセルに渡って1ピクセル毎に、線分描画の際のフレームメモリに対するリード/ライト処理を繰り返し実行しており、その度にアクセスオーバーヘッド処理期間が存在するとともに、このリード/ライト処理を、線分を構成する全ピクセルについて実行する際に、その処理中のフレームメモリに対するアクセス回数が多くなり、線分描画処理中のフレームメモリに対するアクセス期間が増え、これらの要因が、線分描画における全体の処理時間を増大し、市場からの要求が増々強くなっている線分の高速描画に対して、その妨げになるという問題点を有していた。
【0010】
本発明は、上記従来の問題点を解決するもので、線分を描画する場合、その際にフレームメモリに対してアクセスすることにより生じるアクセス期間を削減することができ、従来に比べて、回路規模の増加を防ぎつつ、線分をその描画品位を低下させることなく高速に描画することができる線分描画装置を提供する。
【0011】
上記の課題を解決するために本発明の線分描画装置は、ディジタル微分解析により得られた線分を描画する線分描画装置であって、描画画面に対応するアドレス構造を有するフレームメモリに対して複数ピクセル分を連続してリード/ライトするメモリインターフェース部と、前記線分を構成する複数ピクセル分のデータが格納されるデータバッファと、前記データバッファに格納されている複数ピクセル分のデータに対して半透明処理を行う半透明処理部とを備え、前記線分を半透明処理を行って描画する際に、前記線分の始点から終点まで、前記メモリインターフェース部を介して、前記線分中に存在するx軸方向に平行な部分のピクセルの最大数を上限に、前記データバッファに格納可能な数のピクセルのデータをまとめて前記フレームメモリに対してリードし、前記半透明処理部で半透明処理を行ったピクセルのデータをまとめて前記フレームメモリに対してライトすることを特徴とする。
【0012】
以上により、線分描画の際には、線分を構成するピクセルの内からx軸方向に平行なピクセル数をあらかじめ求め、それら平行な複数ピクセルをまとめて処理してフレームメモリに対しアクセスすることにより、線分描画の際のフレームメモリに対するアクセス回数を減らすことができる。
【0022】
以下、本発明の実施の形態を示す線分描画装置について、図面を参照しながら具体的に説明する。
(実施の形態1)
本発明の実施の形態1の線分描画装置について詳しく説明する。
【0023】
図1は本実施の形態1の線分描画装置の構成を示すブロック図である。図1に示すように、描画パラメータ生成部1は、線分を描画する際に必要な線分の特性を表す各種パラメータを線分描画部2に与える。ここで用いるパラメータとしては、線分における始点のx,y座標および終点のx,y座標、線分の傾きを表すx変位およびy変位、線分に対する半透明処理で用いるα値である。
【0024】
ここで、x変位、y変位の求め方を詳しく説明する。
線分の終点と始点間で、xの差分をdxとしyの差分dyとすると、x変位およびy変位は以下のようにして求められる。
【0025】
|dx|≦|dy|の場合、x変位は、dx/|dy|となり、y変位は、dyが正の時は1、dyが負の時は−1となる。また、|dx|>|dy|の場合、x変位は、dxが正の時は1、dxが負の時は−1となり、y変位は、dy/|dx|となる。例えば、始点座標(0,0)、終点座標(8,2)の場合だと、dx=8、dy=2で|dx|>|dy|となるので、x変位は1となり、y変位は2/8=0.25となる。
【0026】
線分描画部2は、描画パラメータ生成部1より与えられた上記各種パラメータを基に、描画対象の線分を構成する各ピクセルの座標に対応するピクセルデータをフレームメモリ3に対してリード/ライトし、例えば、フレームメモリ3からリードした線分に半透明処理を施し、その線分をフレームメモリ3にライトすることにより、半透明処理を施した当該線分を描画する。
【0027】
フレームメモリ3は、32ビット/ピクセルのピクセルデータが格納されている。x軸方向に平行なピクセルデータは、フレームメモリ3上で連続したアドレスに格納されている。ピクセルデータの構成内容は、ダミー用のビット、Rに対応するビット、Gに対応するビット、Bに対応するビットの順で8ビットづつである。ダミーの部分は使用されることがなく、R、G、Bの部分が半透明処理やディスプレイ表示に使用される。上記のようにフレームメモリ3に格納されているピクセルデータは、D/Aコンバータ(図示せず)を介して液晶やCRTなどのディスプレイ(図示せず)上に線分として描画表示される。
【0028】
ここで、本実施の形態1の線分描画装置において、本発明の特徴である線分描画部2についてさらに詳しく説明する。
線分描画部2は、線分描画部2の動作を制御する制御部4と、DDAにより線分を構成する各ピクセルのx,y座標を始点から順に出力する線分座標生成部5と、線分中に存在するx軸方向に平行なピクセルの最大数を出力する水平ピクセル数テーブル6と、フレームメモリ3に対してピクセルデータのリード/ライトを行うメモリインターフェース部7と、メモリインターフェース部7によりフレームメモリ3からリードしたピクセルデータを格納したり、半透明処理部9で半透明処理してメモリインターフェース部7によりフレームメモリ3にライトするためのピクセルデータを格納するデータバッファ8と、メモリインターフェース部7によりフレームメモリ3からリードしてデータバッファ8に格納されているピクセルデータに対して、半透明処理を行う半透明処理部9とを備えている。
【0029】
線分座標生成部5は、描画パラメータ生成部1からパラメータとして始点座標、x変位、y変位を受け取り、それらのパラメータに基づいて、線分を構成する各ピクセル毎に始点座標からx変位、y変位を加算していき、整数部を切り出しピクセルのx,y座標を出力する。なお、始点座標には四捨五入のための0.5をあらかじめ加算しておいても構わない。図2に始点座標(0,0)、終点座標(8,2)の場合の線分座標生成部5が出力するx,y座標を示す。
【0030】
水平ピクセル数テーブル6は、描画パラメータ生成部1からパラメータとしてy変位を受け取り、線分を構成するピクセルの内、x軸に平行な方向で連なったピクセル数の最大値である水平ピクセル数を出力する。水平ピクセル数の算出方法は次のようになる。
【0031】
y変位の絶対値が1の場合、水平ピクセル数は1となる。y変位の絶対値が1より小さい場合で、y変位の絶対値の逆数が小数値を持つ時は1を加算した値を水平ピクセル数とし、y変位の絶対値の逆数として得られる小数値が0の時はy変位の絶対値の逆数の値を水平ピクセル数とする。ここで、y変位の小数部のビット幅が3ビットの場合のテーブルを図3に示す。
【0032】
また、水平ピクセル数の他の算出方法としては、y変位の絶対値を2進数で表した時、小数部で1になっている最も大きな桁の逆数を水平ピクセル数とする方法がある。例えば、y変位が2進数で0.011の場合、小数部で1になっている最も大きな桁は2-2であるため、水平ピクセル数は2-2の逆数をとって、22=4ピクセルとなる。
【0033】
また、水平ピクセル数の他の算出方法としては、0からy変位の絶対値を加算していき、1以上となるまでの回数を水平ピクセル数とする方法がある。例えば、y変位が0.25の場合、0から0.25を加算していき、1以上となるまで4回加算するため水平ピクセル数は4ピクセルとなる。なお、水平ピクセル数テーブル6はROMまたは論理回路で構成される。
【0034】
ところで、y変位の絶対値が0の場合は、線分全体がx軸に平行な方向である。この線分に対しては、制御部4が終点x座標から始点x座標を減算し、1加算した値を求め、水平直線ピクセル数として出力する。
【0035】
メモリインターフェース部7は、線分座標生成部5からx,y座標を受け取り、フレームメモリ3に対して、対応するアドレスから複数ピクセル分を連続してリード/ライトするバーストリード/バーストライトを行う。前記の複数ピクセルとは、水平ピクセル数テーブル6から出力される水平ピクセル数、あるいは制御部4から出力される水平直線ピクセル数のことであり、メモリインターフェース部7は、y変位の絶対値が0の線分の場合は制御部4からの水平直線ピクセル数を選択し、それ以外の線分の場合は水平ピクセル数テーブル6からの水平ピクセル数を選択する。
【0036】
また、メモリインターフェース部7は、フレームメモリ3からピクセルデータをリードする際のアドレスを保持するレジスタを有し、フレームメモリ3にピクセルデータをライトする際にレジスタに保持されているアドレスを使用する。
【0037】
データバッファ8は、メモリインターフェース部7を介してフレームメモリ3からリードされたピクセルデータを保持するためのレジスタと、メモリインターフェース部7を介してフレームメモリ3へライトするために半透明処理部9が生成したピクセルデータを保持するためのレジスタとを有している。
【0038】
半透明処理部9は、描画パラメータ生成部1から不透明度を示すα値(0.0〜1.0)を受け取り、データバッファ8に保持されている背景色を意味するピクセルデータと線分自身のピクセルデータとで半透明処理を行う。線分自身のピクセルデータのR,G,B成分をLr,Lg,Lb、背景色のピクセルデータ(色データ)のR,G,B成分をBr,Bg,Bb、半透明処理後のピクセルデータ(色データ)のR,G,B成分をPr,Pg,Pbとすると、半透明処理は以下の数式で処理される。
【0039】
【数1】
次に、本実施の形態1の線分描画装置において、始点座標(0,0)、終点座標(8,2)の線分を描画する場合の動作について説明する。
【0040】
まず、描画パラメータ生成部1は、線分描画部2に対して、始点座標として(0,0)、終点座標として(8,2)、x変位として1、y変位として0.25、α値を与える。線分描画部2において、線分座標生成部5は、x座標として0、y座標として0を出力する。水平ピクセル数テーブル6は、y変位が0.25であることから、水平ピクセル数として4を出力する。
【0041】
メモリインターフェース部7は、フレームメモリ3に対して、座標(x,y)=(0,0)からx軸正方向に4ピクセル分のデータをリードし、データバッファ8に格納する。なお、この時の座標(0,0)に対応するアドレスはレジスタに保持される。
【0042】
その後、線分座標生成部5は、(0,0)、(1,0)、(2,0)、(3,0)と、y座標が変化する前まで線分を構成するピクセルの座標を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0043】
その後、メモリインターフェース部7は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(0,0)からx軸正方向に4ピクセル分のデータをライトする。
【0044】
続いて、線分座標生成部5は、ピクセルの座標として、x座標として4、y座標として1を出力し、これを基にして、メモリインターフェース部7は、フレームメモリ3に対して、座標(x,y)=(4,1)からx軸正方向に4ピクセル分のデータをリードし、データバッファ8に格納する。なお、この時の座標(4,1)に対応するアドレスはレジスタに保持される。
【0045】
それから線分座標生成部5は、(4,1)、(5,1)、(6,1)、(7,1)と、y座標が変化する前まで線分を構成するピクセルの座標を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0046】
その後、メモリインターフェース部7は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(4,1)からx軸正方向に4ピクセル分のデータをライトする。
【0047】
続いて、線分座標生成部5は、ピクセルの座標として、x座標として8、y座標として2を出力し、これを基にして、メモリインターフェース部7は、フレームメモリ3に対して、座標(x,y)=(8,2)からx軸正方向に4ピクセル分のデータをリードし、データバッファ8に格納する。なお、この時の座標(8,2)に対応するアドレスはレジスタに保持される。
【0048】
ここで、座標(8,2)は終点座標であるため、線分座標生成部5は、x,y座標の更新を行わず、半透明処理部9は、座標(8,2)に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0049】
その後、メモリインターフェース部7は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(8,2)からx軸正方向に4ピクセル分のデータをライトする。
【0050】
このようにして終点まで描画処理が完了したことを受けて、制御部4は、線分描画を終了する。
ここで、本実施の形態1の線分描画装置により、図6に示す線分を半透明処理で描画する場合について、時間軸に沿った処理の流れを図8に示す。以下、図8中の各期間について説明する。
【0051】
ステップS20は、リードアクセスオーバーヘッド処理期間であり、線分描画装置がフレームメモリ3に対して4ピクセル分のデータリードを要求し、アドレス設定等のリードコマンドを送るまでの期間である。フレームメモリ3に表示回路等、他の回路が共通バスで接続されている場合、フレームメモリ使用権を獲得するための期間がさらに追加される。
【0052】
ステップS21は、背景色リード処理期間であり、フレームメモリ3から背景色データが4ピクセル分リードされ、データバッファ8に格納されるまでの期間である。
【0053】
ステップS22は、色データ生成処理期間であり、背景色データと線分の色データとで半透明処理を行い、新しい色データを4ピクセル分生成する期間である。
【0054】
ステップS23は、ライトアクセスオーバーヘッド処理期間であり、線分描画装置がフレームメモリ3に対して4ピクセル分のデータライトを要求し、アドレス設定等のライトコマンドを送るまでの期間である。フレームメモリ3に表示回路等、他の回路が共通バスで接続されている場合、フレームメモリ3の使用権を獲得するための期間がさらに追加される。
【0055】
ステップS24は、色データライト処理期間であり、データバッファ8から半透明処理された4ピクセル分の色データをフレームメモリ3にライトする期間である。
【0056】
ステップS20〜ステップS24までは、ピクセル▲1▼、▲2▼、▲3▼、▲4▼に対する処理であり、ピクセル▲5▼、▲6▼、▲7▼、▲8▼においても、同様の処理が行われる。
図7に示す従来の処理の流れでは、ピクセル▲1▼、▲2▼、▲3▼、▲4▼を処理するのにリードアクセスオーバーヘッドが4回、ライトアクセスオーバーヘッドが4回発生するのに対して、図8に示す本実施の形態の処理の流れでは、ピクセル▲1▼、▲2▼、▲3▼、▲4▼を処理するのにリードアクセスオーバーヘッドが1回、ライトアクセスオーバーヘッドが1回でよい。
【0057】
背景色リードや色データ生成、色データライトの期間は同じであるので、リードアクセスオーバーヘッドとライトアクセスオーバーヘッドの期間が削減されている分、本実施の形態の線分描画装置は、従来に比べてより高速に描画することができる。
【0058】
以上のように、線分のx軸方向に平行なピクセル数をあらかじめ求め、複数ピクセルまとめて処理することにより、フレームメモリ3に対するアクセス回数を減らすことにより、1ピクセル毎にフレームメモリ3にアクセスするよりも高速に描画することができる。
(実施の形態2)
本発明の実施の形態2の線分描画装置について詳しく説明する。
【0059】
図4は本実施の形態2の線分描画装置の構成を示すブロック図である。図4に示すように、描画パラメータ生成部10は、線分描画に必要なパラメータを線分描画部11に与える。パラメータとしては、線分における始点のx,y座標および終点のx,y座標、線分の傾きを表すx変位およびy変位、半透明処理で用いるα値、そして線分を構成するピクセルのうち、x軸に平行な方向で連なったピクセル数の最大値である水平ピクセル数である。
【0060】
線分描画部11が実施の形態1の線分描画部2と異なる点は、水平ピクセル数を求める手段が、水平ピクセル数テーブル6ではなく、描画パラメータ生成部10で求めた水平ピクセル数を水平ピクセル数レジスタ12に格納することである。なお、描画パラメータ生成部10での水平ピクセル数の求め方は、実施の形態1で述べた水平ピクセル数テーブル6が出力する水平ピクセル数の求め方と同じでよく、そのため、ここでの説明は省略する。
【0061】
実施の形態1のように、水平ピクセル数を求めるのにテーブルを用いると、入力できるy変位に上限があるため、描画する線分の長さに制限がある。また、線分の制限を広げるとテーブルが大きくなり、回路規模が増加する。
【0062】
そこで実施の形態2のように、水平ピクセル数を描画パラメータ生成部10で求め、水平ピクセル数レジスタ12に格納することにより、回路規模の増加を防ぎつつ、線分の長さの制限を広げることができる。
(実施の形態3)
本発明の実施の形態3の線分描画装置について詳しく説明する。
【0063】
図5は本実施の形態3の線分描画装置の構成を示すブロック図である。図5に示すように、線分描画部13が実施の形態1の線分描画部2と異なる点は、水平ピクセル数テーブル6から出力される水平ピクセル数を、そのままメモリインターフェース部15に送るのではなく、水平ピクセル数分割部14で水平ピクセル数をデータバッファ8に格納できる限界のピクセル数に分割し、分割ピクセル数としてメモリインターフェース部15に送ることである。
【0064】
また、y変位の絶対値が0の場合は線分全体がx軸に平行な方向であるため、水平ピクセル数分割部14は水平ピクセル数の代わりに、制御部4から出力される水平直線ピクセル数を用いて分割ピクセル数を求める。
【0065】
メモリインターフェース部15は、水平ピクセル数分割部14からの分割ピクセル数分のピクセルデータを、フレームメモリ3に対してリード/ライトする。
ここで本実施の形態3の線分描画装置において、始点座標(0,0)、終点座標(8,2)の線分を描画する場合の動作について説明する。なお、データバッファ8に格納できる限界のピクセル数は2ピクセルとする。
【0066】
まず、描画パラメータ生成部1は、線分描画部13に対して、始点座標として(0,0)、終点座標として(8,2)、x変位として1、y変位として0.25、α値を与える。線分座標生成部5は、x座標として0、y座標として0を出力する。水平ピクセル数テーブル6は、y変位が0.25であることから、水平ピクセル数として4を出力する。
【0067】
この時、水平ピクセル数がデータバッファ8に格納できる限界のピクセル数を越えているため、水平ピクセル数分割部14は、データバッファ8に格納できる限界のピクセル数である2ピクセルを分割ピクセル数として、メモリインターフェース部15に送る。また、水平ピクセル数である4ピクセルから分割ピクセル数である2ピクセルを減算した値2ピクセルをレジスタに保持する。
【0068】
メモリインターフェース部15は、フレームメモリ3に対して、座標(x,y)=(0,0)からx軸正方向に2ピクセル分リードし、データバッファ8に格納する。なお、この時の座標(0,0)に対応するアドレスはレジスタに保持される。
【0069】
それから線分座標生成部5は、座標(0,0)、(1,0)のように、線分を構成するピクセルの座標の2ピクセル分を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0070】
その後、メモリインターフェース部15は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(0,0)からx軸正方向に2ピクセル分のデータをライトする。
【0071】
続いて線分座標生成部5は、x座標として2、y座標として0を出力する。水平ピクセル数分割部14は、レジスタに保持されている2ピクセルを分割ピクセル数として、メモリインターフェース部15に送る。
【0072】
メモリインターフェース部15は、フレームメモリ3に対して、座標(x,y)=(2,0)からx軸正方向に2ピクセル分のデータをリードし、データバッファ部8に格納する。なお、この時の座標(2,0)に対応するアドレスはレジスタに保持される。
【0073】
それから線分座標生成部5は、座標(2,0)、(3,0)のように、y座標が変化する前まで線分を構成するピクセルの座標の2ピクセル分を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0074】
その後、メモリインターフェース部15は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(2,0)からx軸正方向に2ピクセル分のデータをライトする。
【0075】
続いて線分座標生成部5は、x座標として4、y座標として1を出力する。水平ピクセル数分割部14は、データバッファ8に格納できる限界のピクセル数である2ピクセルを分割ピクセル数として、メモリインターフェース部15に送る。また、水平ピクセル数である4ピクセルから分割ピクセル数である2ピクセルを減算した値2ピクセルをレジスタに保持する。
【0076】
メモリインターフェース部15は、フレームメモリ3に対して、座標(x,y)=(4,1)からx軸正方向に2ピクセル分のデータをリードし、データバッファ8に格納する。なお、この時の座標(4,1)に対応するアドレスはレジスタに保持される。
【0077】
それから線分座標生成部5は、座標(4,1)、(5,1)のように、線分を構成するピクセルの座標の2ピクセル分を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0078】
その後、メモリインターフェース部15は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(4,1)からx軸正方向に2ピクセル分のデータをライトする。
【0079】
続いて線分座標生成部5は、x座標として6、y座標として1を出力する。水平ピクセル数分割部14は、レジスタに保持されている2ピクセルを分割ピクセル数としてメモリインターフェース部15に送る。
【0080】
メモリインターフェース部15は、フレームメモリ3に対して、座標(x,y)=(6,1)からx軸正方向に2ピクセル分のデータをリードし、データバッファ8に格納する。なお、この時の座標(6,1)に対応するアドレスはレジスタに保持される。
【0081】
それから線分座標生成部5は、座標(6,1)、(7,1)のように、y座標が変化する前まで線分を構成するピクセルの座標の2ピクセル分を順に出力し、半透明処理部9は、それぞれの座標毎に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0082】
その後、メモリインターフェース部15は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(6,1)からx軸正方向に2ピクセル分のデータをライトする。
【0083】
続いて線分座標生成部5は、x座標として8、y座標として2を出力する。水平ピクセル数分割部14は、データバッファ8に格納できる限界のピクセル数である2ピクセルを分割ピクセル数として、メモリインターフェース部15に送る。また、水平ピクセル数である4ピクセルから分割ピクセル数である2ピクセルを減算した値2ピクセルをレジスタに保持する。
【0084】
メモリインターフェース部15は、フレームメモリ3に対して、座標(x,y)=(8,2)からx軸正方向に2ピクセル分リードし、データバッファ部8に格納する。なお、この時の座標(8,2)に対応するアドレスはレジスタに保持される。
【0085】
しかし座標(8,2)は終点座標であるため、線分座標生成部5はx,y座標の更新を行わず、半透明処理部9は、座標(8,2)に対応したピクセルについて、描画パラメータ生成部1からのα値と、データバッファ8に保持されている背景色を意味するピクセルデータおよび線分自身のピクセルデータとで半透明処理を行い、新たに生成したピクセルデータをデータバッファ8に格納する。
【0086】
その後、メモリインターフェース部15は、レジスタに保持されているアドレスを利用して、フレームメモリ3に対して、座標(x,y)=(8,2)からx軸正方向に2ピクセル分ライトする。このようにして終点まで描画処理が完了したことを受けて、制御部4は線分描画を終了する。
【0087】
以上のように、データバッファ8が格納できる限界のピクセル数によって描画する線分の長さに制限がかからないため、データバッファ8の回路規模を小さく抑えることができ、このようにデータバッファ8の回路規模を小さく抑えても、線分の描画品位を低下させることなく高速に描画することができる。
【0088】
なお、実施の形態2のように、水平ピクセル数を求める手段が水平ピクセル数テーブル6ではなく、描画パラメータ生成部10で求めた水平ピクセル数を水平ピクセル数レジスタ12に格納する場合においても、水平ピクセル数をデータバッファ8に格納できる限界のピクセル数に分割する手段を適用することができ、同様の効果を得ることができる。
【0089】
【発明の効果】
以上のように本発明によれば、線分描画の際には、線分を構成するピクセルの内からx軸方向に平行なピクセル数をあらかじめ求め、それら平行な複数ピクセルをまとめて処理してフレームメモリに対しアクセスすることにより、線分描画の際のフレームメモリに対するアクセス回数を減らすとともに、フレームメモリに対するアクセスの際に使用するデータバッファが格納可能な最大ピクセル数によって描画する線分の長さに制限がかからないため、データバッファの回路規模を小さく抑えることができる。
【0090】
そのため、線分を描画する場合、その際にフレームメモリに対してアクセスすることにより生じるアクセス期間を削減することができ、従来に比べて、回路規模の増加を防ぎつつ、線分をその描画品位を低下させることなく高速に描画することができる。
【0091】
また、例えば、カーナビゲーションシステムで頻繁に用いられる鳥瞰図の場合には、x軸に平行なピクセルを多く含む線分の出現率が高くなるため、上記の効果が顕著に得られ、特に有効的である。
【図面の簡単な説明】
【図1】本発明の実施の形態1の線分描画装置の構成を示すブロック図
【図2】同実施の形態1における線分座標生成部の動作を示すx,y座標例の説明図
【図3】同実施の形態1における水平ピクセル数テーブルのデータ例の説明図
【図4】本発明の実施の形態2の線分描画装置の構成を示すブロック図
【図5】本発明の実施の形態3の線分描画装置の構成を示すブロック図
【図6】本発明の各実施の形態の線分描画装置により描画される線分例の説明図
【図7】従来の線分描画装置による描画処理の流れを示すタイムチャート
【図8】本発明の各実施の形態の線分描画装置による描画処理の流れを示すタイムチャート
【符号の説明】
1、10 描画パラメータ生成部
2、11、13 線分描画部
3 フレームメモリ
4 制御部
5 線分座標生成部
6 水平ピクセル数テーブル
7、15 メモリインターフェース部
8 データバッファ
9 半透明処理部
12 水平ピクセル数レジスタ
14 水平ピクセル数分割部
Claims (4)
- ディジタル微分解析により得られた線分を描画する線分描画装置であって、
描画画面に対応するアドレス構造を有するフレームメモリに対して複数ピクセル分を連続してリード/ライトするメモリインターフェース部と、
前記線分を構成する複数ピクセル分のデータが格納されるデータバッファと、
前記データバッファに格納されている複数ピクセル分のデータに対して半透明処理を行う半透明処理部とを備え、
前記線分を半透明処理を行って描画する際に、前記線分の始点から終点まで、前記メモリインターフェース部を介して、前記線分中に存在するx軸方向に平行な部分のピクセルの最大数を上限に、前記データバッファに格納可能な数のピクセルのデータをまとめて前記フレームメモリに対してリードし、前記半透明処理部で半透明処理を行ったピクセルのデータをまとめて前記フレームメモリに対してライトする
ことを特徴とする線分描画装置。 - 前記線分の始点と終点座標、x方向の変位、y方向の変位、および不透明度を示す各種パラメータを生成する描画パラメータ生成部と、
前記y方向の変位に基づいて、x軸方向に平行な線分部分の最大ピクセル数を出力する最大ピクセル数テーブルと、
前記線分の始点と終点座標、x方向の変位、y方向の変位に基づいて、前記線分を構成する各ピクセルのx、y座標を生成する線分座標生成部とを備え、
前記メモリインターフェース部が、前記x、y座標、前記最大ピクセル数に基づいて、前記フレームメモリに対してまとめてリード/ライトし、
前記半透明処理部が、前記不透明度に基づいて、半透明処理を行う
ことを特徴とする請求項1に記載の線分描画装置。 - 前記線分の始点と終点座標、x方向の変位、y方向の変位、x軸方向に平行な線分部分の最大ピクセル数、および不透明度を示す各種パラメータを生成する描画パラメータ生成部と、
前記線分の始点および終点座標、x方向の変位、y方向の変位に基づいて、前記線分を構成する各ピクセルのx、y座標を生成する線分座標生成部とを備え、
前記メモリインターフェース部が、前記x、y座標、前記最大ピクセル数に基づいて、前記フレームメモリに対してまとめてリード/ライトし、
前記半透明処理部が、前記不透明度に基づいて、半透明処理を行う
ことを特徴とする請求項1に記載の線分描画装置。 - 前記メモリインターフェース部が、前記最大ピクセル数の代わりに、前記データバッファに格納可能なピクセルの最大数に基づいて、前記フレームメモリに対してまとめてリード/ライトする
ことを特徴とする請求項2または請求項3に記載の線分描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001144041A JP4596678B2 (ja) | 2001-05-15 | 2001-05-15 | 線分描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001144041A JP4596678B2 (ja) | 2001-05-15 | 2001-05-15 | 線分描画装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002342763A JP2002342763A (ja) | 2002-11-29 |
JP4596678B2 true JP4596678B2 (ja) | 2010-12-08 |
Family
ID=18990059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001144041A Expired - Fee Related JP4596678B2 (ja) | 2001-05-15 | 2001-05-15 | 線分描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4596678B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4704348B2 (ja) * | 2004-09-06 | 2011-06-15 | パナソニック株式会社 | 画像生成装置および画像生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63158668A (ja) * | 1986-12-23 | 1988-07-01 | Matsushita Electric Ind Co Ltd | デイジタル微分解析装置 |
JPH0322183A (ja) * | 1989-06-20 | 1991-01-30 | Fujitsu Ltd | 直線描画制御方法 |
JPH03144867A (ja) * | 1989-10-31 | 1991-06-20 | Nippon Steel Corp | 直線描画方法及び装置 |
JPH03248282A (ja) * | 1990-02-26 | 1991-11-06 | Ricoh Co Ltd | 直線描画方式 |
-
2001
- 2001-05-15 JP JP2001144041A patent/JP4596678B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63158668A (ja) * | 1986-12-23 | 1988-07-01 | Matsushita Electric Ind Co Ltd | デイジタル微分解析装置 |
JPH0322183A (ja) * | 1989-06-20 | 1991-01-30 | Fujitsu Ltd | 直線描画制御方法 |
JPH03144867A (ja) * | 1989-10-31 | 1991-06-20 | Nippon Steel Corp | 直線描画方法及び装置 |
JPH03248282A (ja) * | 1990-02-26 | 1991-11-06 | Ricoh Co Ltd | 直線描画方式 |
Also Published As
Publication number | Publication date |
---|---|
JP2002342763A (ja) | 2002-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3586991B2 (ja) | テクスチャ・データ読出装置およびレンダリング装置 | |
JPS63198174A (ja) | 図形処理装置 | |
KR0136591B1 (ko) | 패턴묘화시스템 | |
JP4596678B2 (ja) | 線分描画装置 | |
JP2017016511A (ja) | 歪み補正画像処理装置及びプログラム | |
US6460063B1 (en) | Division circuit and graphic display processing apparatus | |
JP4466234B2 (ja) | 画像処理方法および装置 | |
KR20000057716A (ko) | 다각형 묘화 방법, 및 다각형 묘화 장치 | |
JP2903514B2 (ja) | 高速描画方法 | |
JP4188463B2 (ja) | 画像生成装置、画像生成方法および記憶媒体 | |
JP3899977B2 (ja) | 描画装置、方法及びプログラム | |
JP3214389B2 (ja) | データ変換装置 | |
JP2003187260A (ja) | 描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法 | |
JP2980079B2 (ja) | 三次元画像処理装置及び方法 | |
JPH10214352A (ja) | 画像生成装置及び画像生成方法 | |
JPH10187124A (ja) | 描画装置および描画方法 | |
JP2002258827A (ja) | 画像表示装置 | |
JP2606176B2 (ja) | 図形処理装置 | |
JPH0417082A (ja) | グラフィック表示装置における画素情報蓄積方式 | |
JPH0336676A (ja) | ピクセル描画装置 | |
JPS62219083A (ja) | 画像メモリ制御装置 | |
JPH04329482A (ja) | 画像回転処理方法およびその処理装置 | |
JPH09251531A (ja) | 描画装置 | |
JP2001274975A (ja) | 画像形成装置 | |
WO2009107168A1 (ja) | 文字描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100716 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100824 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100921 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |