(57)【要約】【課題】キャッシュメモリを経由してフレームメモリに画像を格納する描画装置においてフレームメモリに画像データの全てが格納されるまでの時間を短縮することを目的とする。【解決手段】描画装置は、フレームメモリに格納する画像データの部分データをキャッシュメモリに格納する際に、キャッシュメモリからフレームメモリにデータをバースト転送する画素単位でフレームメモリを区切った場合に、その１区分についてはキャッシュメモリからフレームメモリへのアクセスが１回で済むように少なくともその１区分の画素データに関してはキャッシュメモリに格納しておく。【選択図】図１４
2006268839.tif 000002
【特許請求の範囲】
【請求項１】
画像データをフレームメモリ内に記録する描画装置であって、
キャッシュメモリと、
画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、
フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる２以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、
キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備える
ことを特徴とする描画装置。
【請求項２】
前記記録手段は、前記範囲特定手段により特定された範囲と重なる１以上の区分領域について、前記部分画像を前記キャッシュメモリの連続するアドレスに対応する記録領域に記録する
ことを特徴とする請求項１記載の描画装置。
【請求項３】
前記所定量は、前記キャッシュメモリと前記フレームメモリとを接続するメモリバスの本数に基づいて決定される
ことを特徴とする請求項１記載の描画装置。
【請求項４】
前記所定量は、前記バースト転送における転送可能なデータ量に基づいて決定される
ことを特徴とする請求項１記載の描画装置。
【請求項５】
前記キャッシュメモリの記憶容量は、前記フレームメモリの前記１区分に該当する記憶容量の整数倍である
ことを特徴とする請求項１記載の描画装置。
【請求項６】
画像データをキャッシュメモリを経由してフレームメモリ内に記録する記録方法であって、
画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、
フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、
キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含む
ことを特徴とする記録方法。
【請求項７】
画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画装置のコンピュータに実行させる、画像をフレームメモリに記録する処理手順を示した記録プログラムであって、前記処理手順は、
画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、
フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、
キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含む
ことを特徴とする記録プログラム。
【請求項８】
画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画集積回路であって、
画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、
フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、
キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備える
ことを特徴とする描画集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関し、特に画像の画素データを格納するフレームメモリとキャッシュメモリの使用方法に関する。
【背景技術】
【０００２】
従来、画像処理を行う装置においては、グラフィックスエンジンの指示になる画像の画素データを一旦容量の小さいキャッシュメモリに格納し、その後にキャッシュメモリに格納されていた画素データをフレームメモリに格納するという方法がとられていた。
フレームメモリには大容量の記憶容量が要求されるが、高速かつ大容量のメモリは非常に高価なものになる。そこで描画装置においてはコストパフォーマンスの観点からフレームメモリには、低速ながらも安価なメモリ、例えばDRAM（Dynamic Random Access Memory）を用いる。フレームメモリを低速なメモリとすると描画処理の時間が長くなるので、グラフィックスエンジンとフレームメモリの間に、キャッシュメモリとして高速なメモリを介在させることでフレームメモリに書き込む時間を短縮できる。前述したように高速なメモリは高価なものであるので、キャッシュメモリについてはその記憶容量を小さくすることでコストの増大を抑える。
【０００３】
キャッシュメモリを使用しなくても画像をフレームメモリに納めることは可能であるがこの場合グラフィックスエンジンはフレームメモリへの画素データの書き込みに処理能力の多くを使用することになるので、どうしても次の描画データを作成したりなどの作業が困難になるために全体的に見て複数の描画データを格納する場合に格納速度が遅くなってしまう。キャッシュメモリを介在させることで、キャッシュメモリへのグラフィックスエンジンからの書き込みは高速で行えることから、一度キャッシュメモリに格納した後にその格納したデータがフレームメモリへ書き込まれるまでの間、グラフィックスエンジンは次の描画データを準備したりできるようになるので書き込みを高速化することができる。
【０００４】
ところで従来においては、このキャッシュメモリを利用する際においては、描画すべき描画対象の描画形状に基づいて、キャッシュメモリへのグラフィックスエンジンからの書き込みが少なくて済むように効率化して書き込んでいた。
この効率化に当たってキャッシュメモリへの書き込みの方法として、描画すべき画像の形状に基づいて描画対象が横長だった場合にキャッシュメモリの２次元配列をｘ軸方向に長くしたり、逆に描画対象が縦長だった場合には、ｙ軸方向に長くすることでキャッシュメモリへの書き込み回数を少なくする技術が特許文献１にて開示されている。
【特許文献１】特開平１−２６２５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のようにグラフィックスエンジンからキャッシュメモリへの書き込み回数を従来よりも少なくすることでグラフィックスエンジンから最終的にフレームメモリへの書き込みが終わるまでの時間の短縮を行っているが画素の高品質化に伴い転送時間が増大することが予想されるので描画装置においては更なる書き込み時間の短縮が求められている。
本発明は、上記要望に鑑みてなされたものであり、画像がフレームメモリへ書き込まれるまでの時間を従来よりも短縮することができる描画装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明の描画装置は、画像データをフレームメモリ内に記録する描画装置であって、キャッシュメモリと、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる２以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備えることを特徴とする。
【０００７】
ここで所定量とはキャッシュメモリからフレームメモリにデータをバースト転送する際に一度にアクセスしうるアドレス領域で定まる量である。例えば一度のバースト転送でキャッシュメモリからフレームメモリに１０画素分のデータが転送できるとしたら、この所定量で定まるアドレス領域は、フレームメモリにおいて１０画素分のデータを格納するアドレス領域となる。
【発明の効果】
【０００８】
この構成を備えることにより、所定量で定まるアドレス領域である１区分に対する書き込みは１回で済むようにキャッシュメモリに描画する対象の画素データを格納するのでキャッシュメモリからフレームメモリへの１区分に対するアクセスが２回以上発生することがなくなる。
というのも、特許文献１においてはグラフィックスエンジンからのキャッシュメモリへの書き込みにおいては書き込み回数が少なくなるように効率化されてはいるものの、キャッシュメモリからフレームメモリへの書き込みに関しては考慮されておらずこの書き込みにおいて無駄が発生してしまい、結果的に画像がフレームメモリに書き込まれるまでの時間が長くなるという問題がある。これは、キャッシュメモリからフレームメモリへの画素データの格納がバースト転送によって行われているがためにフレームメモリへの書き込みにおいて、キャッシュメモリへの書き込みの仕方によっては部分部分でアクセスが重複してしまうことがあるためである。１区分に対してのアクセスが重複する、即ち２回以上発生するということはグラフィックスエンジンからフレームメモリへの書き込み時間が長くなることを意味している。
【０００９】
従来のようにバースト転送でアクセスするアドレスに対して、キャッシュメモリからフレームメモリへのアクセスが２回以上発生しうるという事態がなくなるということは、キャッシュメモリからフレームメモリへのアクセス回数の低減を意味しており、当然に画像データの全てがフレームメモリに格納されるまでの時間を短縮することができる。
また、描画装置において、前記記録手段は、前記範囲特定手段により特定された範囲と重なる１以上の区分領域について、前記部分画像を前記キャッシュメモリの連続するアドレスに対応する記録領域に記録することとしてよい。
【００１０】
この構成により、１区分分の画素をキャッシュメモリの連続したアドレスに格納することによって、ランダムに１区分の画素を格納した場合よりも制御が容易になり、バースト転送で格納する各画素についてどのアドレスにある画素データをどこに格納するといった指定の処理を省けるようになるのでキャッシュメモリからフレームメモリへの全体的な書き込み時間の転送を短縮できる。
【００１１】
また、描画装置において、前記所定量は、前記キャッシュメモリと前記フレームメモリとを接続するメモリバスの本数に基づいて決定されることとしてよい。
あるいは、前記所定量は、前記バースト転送における転送可能なデータ量に基づいて決定されることとしてよい。
この構成により、１区分をバースト転送の単位、あるいはキャッシュメモリとフレームメモリとを接続するメモリバスの本数に基づいて決定することができる。バースト転送の単位によって１区分が決定されているので、フレームメモリの同じ区分への書き込み、即ちキャッシュメモリからフレームメモリへの１区分へのアクセスが２回以上発生することがなくなり、従来よりもキャッシュメモリからフレームメモリへのアクセス回数を減少させることで、フレームメモリへの全体的な書き込み時間の短縮を促す。
【００１２】
また、描画装置において、前記キャッシュメモリの記憶容量は、前記フレームメモリの前記１区分に該当する記憶容量の整数倍であることとしてよい。
キャッシュメモリをフレームメモリにバースト転送で書き込む１区分分の記憶容量の整数倍にすることで、転送の制御が容易になり、描画装置の複雑化を抑えるとともに、転送制御の容易化により僅かながらもフレームメモリへの書き込み時間全体の短縮を促すことができる。
【００１３】
また、本発明に係る記録方法は、画像データをキャッシュメモリを経由してフレームメモリ内に記録する記録方法であって、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含むことを特徴とする。
【００１４】
あるいは、本発明に係る記録プログラムは、画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画装置のコンピュータに実行させる、画像をフレームメモリに記録する処理手順を示した記録プログラムであって、前記処理手順は、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含むことを特徴とする。
【００１５】
この方法を描画装置が実行、あるいは、描画装置のコンピュータがプログラムを実行することにより、描画装置は、キャッシュメモリへの画素データの書き込みに際して、１回のバースト転送で転送する画素データは必ず書き込むようにするので、キャッシュメモリが１回のバースト転送でフレームメモリにアクセスする領域には２度アクセスすることがなくなるので、その分だけフレームメモリに描画データが格納されるまでの時間を短縮できる。
【００１６】
また、本発明に係る描画集積回路は、画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画集積回路であって、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる１以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備えることを特徴とする。
【００１７】
この集積回路を搭載することで、描画装置は、キャッシュメモリへの書き込みに際して１回のバースト転送で転送する画素データは必ず書き込むように書き込みの制御を行えるようになり、当該制御を行うことで、あるバースト転送でフレームメモリにアクセスする領域には２度アクセスすることがなくなるので、フレームメモリに描画する画素データが格納されるまでの時間を従来よりも短縮できる。
【発明を実施するための最良の形態】
【００１８】
ここより本発明に係る描画装置について、図面を用いながら説明する。
＜概要＞
従来においてはキャッシュメモリからフレームメモリに転送する際にはバースト転送で転送していたが、キャッシュメモリへのデータの格納の仕方によっては、部分画像の切れ目がバースト転送の中間に位置することがあるため、そのバースト転送でキャッシュメモリからフレームメモリへのアクセスは転送しているデータの中身は異なるものの２回発生することがあった（図８網掛け領域８０１参照。詳細は後述する）。
【００１９】
本発明では、キャッシュメモリからフレームメモリへの書き込みに際してバースト転送の単位に着目し、一回のバースト転送でキャッシュメモリからフレームメモリにアクセスするアドレスに対しては、一つの描画命令において、二回以上のアクセスが発生しないように、キャッシュメモリへのグラフィックスエンジンからの描画命令によって形成される描画データの部分データとして少なくとも１回のバースト転送で転送すべき画素データの全てを格納する。
【００２０】
こうすることで、１回のバースト転送でキャッシュメモリがアクセスしたフレームメモリ内の領域には更なるアクセスが発生しなくなる。よって、大容量が求められるフレームメモリが低速で、描画データの作成作業用の小容量高速のキャッシュメモリを用いるという条件下においてはＣＰＵから描画命令が出てフレームメモリにその描画命令に対応する画素データの全てが格納されるまでの時間を従来よりも短縮できる。
【００２１】
以下、具体的に説明する。
＜構成＞
図１は、描画装置１００の機能構成を示したブロック図である。
同図に示すように描画装置１００は、ＣＰＵ(Central Processing Unit)１０１、ＧＥ(Graphics Engine)１０２、キャッシュメモリ１０３、キャッシュメモリ制御回路１０４、フレームメモリ１０５を含んで構成される。
【００２２】
ＣＰＵ１０１は、ＧＥ１０２に対して描画命令を伝達する機能を有する。例えば、「三点Ａ（２１、３）、Ｂ（５、９）、Ｃ（２９、７）を結んで形成される三角形を赤色で描画」という旨を示し、図形種別や座標値などのパラメータを含む描画命令を伝達する。色については、ここでは各画素データはＲＧＢカラーで、各色について赤は２階調、緑は４階調、青は２階調のデータを含むとする。
【００２３】
ＧＥ１０２は、ＣＰＵ１０１から伝達された命令を受けて、実際にどの座標にどの色をおくのかといった演算を実行し、演算によって生成されたデータを逐次キャッシュメモリへと書き込むという従来のＧＥとほぼ同様の機能を有する。但し、キャッシュメモリへの書き込み方法が従来とは異なるがその詳細は、後述の＜データ＞及び＜動作＞において説明する。
【００２４】
キャッシュメモリ１０３は、ＧＥ１０２によって書き込まれる画素データを一時的に格納する機能を有するメモリであり、記憶容量は小さいもののアクセス速度が速いという特徴を有する。また、格納された画素データをフレームメモリ１０５に転送する機能も有する。
本実施の形態においては、キャッシュメモリ１０３を、分かりやすくするために図２に示すような２次元配列で考える。図２に示したように、ここではキャッシュメモリ１０３は、１６×８の座標系分の画素データを格納することが可能なメモリであり、合計１２８の画素を格納する。１マスが１の画素データに対応している。ここで示している画素を指示す数値は、各画素の座標とキャッシュメモリ１０３のアドレスを示している。例えば、“（０、０）、cad０００”は、キャッシュメモリの座標平面上において座標（０、０）はキャッシュメモリの０００番のアドレスと対応していることを示している。なおキャッシュメモリ１０２の座標は、基本的にはフレームメモリ１０５の座標と対応するものではない。
【００２５】
キャッシュメモリ制御回路１０４は、キャッシュメモリ１０３からフレームメモリ１０５への画素データの転送を制御するものであり、キャッシュメモリ１０３に格納されている画素データをＧＥ１０２の指示に基づくフレームメモリ１０５への格納位置に転送させる機能を有する。例えばＤＭＡ(Direct Memory Access) コントローラなどによって実現できる。
【００２６】
フレームメモリ１０５は、最終的な描画データを格納する機能を有するメモリである。キャッシュメモリ１０３とは反対に、記憶容量は大きいもののアクセス速度が遅いという特徴を有する。
フレームメモリ１０５は、図３に示すような２次元配列型のメモリである。図３に示したように、ここではフレームメモリ１０５は、４０×１２の配列をしたメモリであり、合計４８０の画素データを格納する。１マスが１の画素データに対応している。ここで図中において示した黒枠３０１がバースト転送単位を示しており、キャッシュメモリ１０３からフレームメモリ１０５へは８画素単位で画素データが転送される。この８画素は、キャッシュメモリ１０３とフレームメモリ１０５とを接続するメモリバスの本数と、バースト転送で１画素を転送するのに必要なメモリバスの本数に基づいて決定される。
【００２７】
なお、図中において示している“（０、０）、fad０００”に代表される数値は、その画素の座標とフレームメモリ１０５におけるアドレスを示している。例えば、“（０、０）、fad０００”は座標（０、０）の画素はフレームメモリの０００番のアドレスに対応することを意味している。図中においては代表するいくつかの画素についてのみ、座標とアドレスの対応を示している。
【００２８】
また、太線３１０、３１１、３１２、３１３はバースト転送によって、見かけ上できる境界を示しており、本発明においては、この境界がキャッシュメモリに書き込む範囲の両端に位置することを特徴としている。
＜データ＞
以下、キャッシュメモリ及びフレームメモリに格納されるデータ例について図面を用いて説明する。本発明との差異を示すためにまず、従来の場合についてを図５〜図９を用いて説明し、その後に本発明の場合のデータを図１０〜図１３を用いて説明する。
【００２９】
なお、従来の場合も本発明の場合も同様に、最終的に図４において示すように３点ＡＢＣを頂点とする三角形ＡＢＣの画素データをフレームメモリ１０５に格納するものとする。
では、従来の場合を説明していく。まず、従来においては、キャッシュメモリへ最初なるべく多くの描画範囲が含まれるように描画するデータの端点を検出し、この端点がキャッシュメモリにおいても端点となるようにキャッシュメモリに格納する。図５の場合においては一点鎖線で示される範囲５０１がその範囲になる。そしてその次に残った部分に対しても同様にキャッシュメモリに格納するがこの場合の範囲が図６の範囲６０１に示される。
【００３０】
範囲５０１及び６０１に示される範囲の画素データがキャッシュメモリに格納されている状態を示したのが図７である。図７（ａ）は、範囲５０１の画素データを格納した状態を示しており、図７（ｂ）は、範囲６０１の画素データを格納した状態を示している。
このようにデータをキャッシュメモリに格納すると、図８の網掛け領域８０１に示すようにバースト転送の単位の中で分割されてしまっているがゆえに領域８０１で示される部分においてはキャッシュメモリからフレームメモリへの書き込みの際に範囲５０１と６０１の場合とでそれぞれ１回ずつアクセスするので１回分アクセスが重複することになる。この場合だと都合６回アクセスが重複していることになる。
【００３１】
アクセス回数で換算してみると、図９（ａ）に示すように、まず図７（ａ）の場合だと、１３回のキャッシュメモリからフレームメモリへのアクセスが発生している。また、図７（ｂ）の場合だと、図９（ｂ）に示すように９回のアクセスが発生する。つまり、キャッシュメモリからフレームメモリへのアクセスは合計で２２回発生している。
フレームメモリに格納されたデータは描画装置１００に接続されたＬＣＤなどに出力されたりする。
【００３２】
一方、本発明の場合については以下のようになる。
図１０に示すように本発明の場合は、バースト転送の単位に留意して最初は範囲１００１に示す範囲の画素データをキャッシュメモリに書き込むようにする。また、その次に残った部分については、図１１に示すように、範囲１１０１に示す範囲の画素データをキャッシュメモリに書き込むようにする。
【００３３】
実際にキャッシュメモリに格納した状態を図１２に示してある。図１２（ａ）は、図１０の範囲１００１の画素データを格納している状態を示しており、図１２（ｂ）は、図１１の範囲１１０１の画素データを格納している状態を示している。ここで図１２（ａ）及び（ｂ）において、実際には画素データが無い部分、例えば図１２（ａ）で言えば座標（０、０）の画素、については、マスクデータ（転送はするもののフレームメモリ上には書き込まないデータ）を格納している。このマスクデータについてはキャッシュメモリ制御回路１０４が認識しており、キャッシュメモリ１０３からフレームメモリ１０５への転送の際にデータを書き込まないように制御する。
【００３４】
図１０〜１２に示すように、もともとキャッシュメモリにはバースト転送単位で丁度区切れるように画素データを書き込むので、キャッシュメモリからフレームメモリへの書き込みの際に重複するということがない。よってキャッシュメモリからフレームメモリへの無駄なアクセスが減る。
実際のアクセス回数を示すために図１３を設けた。図１３（ａ）は、図１２（ａ）の場合に対応しており、図１３（ｂ）は、図１２（ｂ）に対応している。
【００３５】
図１３（ａ）の場合には、キャッシュメモリ１０３からフレームメモリへ１０５のアクセス回数は、７回である。また、図１３（ｂ）の場合にはキャッシュメモリ１０３からフレームメモリ１０５へのアクセスは、９回である。つまり、三角形ＡＢＣのデータをフレームメモリ１０５に格納する際においてキャッシュメモリからフレームメモリに対するアクセスは合計１６回発生する。つまりこの場合だと本発明の場合と従来の場合とでは２２−１６＝６回のアクセス回数の差が発生することになる。より大きな画像をフレームメモリに格納する場合にはこの回数は更に増大するのでこのキャッシュメモリからフレームメモリへのアクセス回数を減らすことによって短縮される時間は更に長くなる。
【００３６】
ＧＥ１０２からキャッシュメモリ１０３への書き込みの方法については、＜動作＞において説明する。
＜動作＞
最後に本発明に係る描画装置１００のＣＰＵから命令が発せられてからフレームメモリに描画データが格納されるまでの動作について図１４のフローチャートを用いて説明する。まず、本発明の一般的な動作を図１４のフローチャートに基づいて述べた後、図１０〜１３を用いて具体的に説明する。
【００３７】
図１４に示すようにまず、描画装置１００において、ＣＰＵ１０１からＧＥ１０２に対して描画命令が伝達される（ステップＳ１４０１）。この描画命令はごくごく簡単な内容であり、例えば三角形ＡＢＣを赤色で描画せよといった命令である。
ＧＥ１０２は、ＣＰＵ１０１からの命令を解析し、その解析結果に基づいて、どの座標にどの色を載せるかを算出し、フレームメモリにおいて、どのアドレスに格納するかを算出する（ステップＳ１４０３）。
【００３８】
次に描画命令によって形成される図形の最小ｘ座標ｘ１、最小ｙ座標ｙ１、最大ｘ座標ｘ２、最大ｙ座標ｙ２を算出する。そしてｘ１が８の倍数でなかった場合にはｘ１よりも小さくかつ８の倍数になっているｘ座標ｘ３を算出する。ｘ１が８の倍数の場合にはｘ１をｘ３とする。また最大ｘ座標が８ｎ−１（ｎは１以上の整数）でない場合には、最大ｘ座標より大きくかつ最も近い８ｎ−１となるｘ座標ｘ４も算出する。最大ｘ座標が８ｎ−１（ｎは１以上の整数）であった場合には、ｘ２をｘ４とする。そしてｘ３を左端、ｘ４を右端、ｙ１を上端、ｙ２を下端とする矩形を算出する。そして当該矩形を左端からキャッシュメモリのｘ軸方向のサイズ、つまり１６画素単位で区切り、またｙ軸方向も下端からキャッシュメモリのｙ軸方向のサイズ、つまり８画素単位で区切り画像ブロックに分割する（ステップＳ１４０５）。
【００３９】
分割して生成された１の画像ブロックのうちまだフレームメモリに格納していない部分を選択し、その画像ブロックの画素データをＧＥ１０２がキャッシュメモリ１０３に記録する（ステップＳ１４０７）。
ＧＥ１０２によるキャッシュメモリ１０３への記録が終了すると、今度はキャッシュ制御回路１０４がキャッシュメモリ１０３にフレームメモリ１０５へとキャッシュメモリ１０３が格納している画素データをバースト転送させる（ステップＳ１４０９）。
【００４０】
そしてまだフレームメモリ１０５に格納していない画素データがあるかどうかを検出する（ステップＳ１４１１）。画素データが残っている場合（ステップＳ１４１１のＹＥＳ）には、ステップＳ１４０７に戻り以降の処理を実行する。画素データが残っていない場合には、もう描画するものがないので終了する。
この流れの具体例を、図４、図１０、図１１を用いながら、図１４のフローチャートに沿う形で説明する。
【００４１】
まず、ＣＰＵ１０１からはＧＥ１０２に対して、「三点Ａ（２１、３）、Ｂ（５、９）、Ｃ（２９、７）を結んで形成される三角形を赤色で描画せよ」という描画命令が伝達される（ステップＳ１４０１対応）。
伝達された描画命令を解析したＧＥ１０２は、どの座標にどの色を置き、フレームメモリ１０５のどのアドレス位置に格納するかを算出する（ステップＳ１４０３）。
【００４２】
次に、この三角形を囲う矩形を算出するべく、左端のｘ座標ｘ１、右端のｘ座標ｘ２、上端のｙ座標ｙ１、下端のｙ座標ｙ２を算出する。この場合においては、ｘ１は５、ｘ２は２９、ｙ１は３、ｙ２は９となる。
ここでｘ１は、８の倍数ではない（ｘ１を８で割った余りが０でない、つまり５％８＝５≠０）ので、５よりも小さく、８の倍数であるｘ座標ｘ３を求める。ここでｘ３は０である。またｘ２は８ｎ−１（ｎは１以上の整数）を満たさない（ｘ２に１足した値を８で割った余りが０でない、つまり（２９＋１）％８＝６≠０）ので、２９よりも大きく、かつ８ｎ−１を満たすｘ座標ｘ４を求める。ここでｘ４は３１となる。
【００４３】
そして４点（０、９）、（０、３）、（３１、９）、（３１、３）を結んで形成される矩形を、キャッシュメモリのｘ軸方向の幅とｙ軸方向の幅で区切る。つまり、ｘ軸方向だと座標で１５と１６の境目で区切る。ｙ軸方向では描画したい図形、三角形ＡＢＣは、キャッシュメモリに１回でおさまりきってしまうので区切る必要はないが、ｙ軸方向の座標で１と２の境目で区切る。ここで示した三角形ＡＢＣは、大きくないので区切りは少なくて済んだが、ここに示したものより更に大きい図形を描画する場合には、ｘ軸方向に１６加算するごとに区切り、ｙ軸方向については８減算するごとに区切り、画像ブロックを生成する（ステップＳ１４０５対応）。
【００４４】
このようにして区切って生成されるのが図１０に示す画像ブロック１００１と図１１に示す画像ブロック１１０１である。これら画像ブロックは当然にキャッシュメモリ１０２の記憶領域全体に重なるようになっている。
こうして分割してできた画像ブロックの画素データをＧＥ１０２はキャッシュメモリ１０３に書き込む（ステップＳ１４０７対応）。書き込む画素データは、ＣＰＵ１０１からの描画命令に基づいて、ＧＥ１０２が線分ＡＢ、線分ＢＣ、線分ＣＡを、Ｒ：１、Ｇ：１、Ｂ：０で決定される線色で形成し、各線分で囲われる内側をＲ：１、Ｇ：１、Ｂ：０で決定される色で塗りつぶすといった演算を実行することによって決定される。ここで、格納されたデータは図１２（ａ）のようになる。ＧＥ１０２によってキャッシュメモリに書き込まれた各画素データはバースト転送により８画素単位で、キャッシュメモリ制御回路１０４の制御によりフレームメモリ１０５の対応するアドレス位置に格納される（ステップＳ１４０９対応）。
【００４５】
格納後、ＧＥ１０２はまだ画像ブロックが残っているかどうかを検出する（ステップＳ１４１１対応）。この場合、まだ画像ブロック１１０１が残っているので（ステップＳ１４１１のＹＥＳ対応）、ＧＥ１０２は、画像ブロック１１０１に含まれる画素のデータをキャッシュメモリ１０３に書き込む（ステップＳ１４０７対応）。画像ブロック１１０１の画素データが書き込まれた状態は図１２（ｂ）のようになる。
【００４６】
そして図１２（ｂ）のように格納された画素データは、バースト転送によりキャッシュメモリ制御回路１０４により、キャッシュメモリ１０３からフレームメモリ１０５に転送される。
こうしてフレームメモリ１０５には図４のような状態で画素データが格納される。
以上に述べてきたように、キャッシュメモリからフレームメモリへの転送は、バースト転送の単位を考慮しているのでフレームメモリの同じ区分へのバースト転送が重複して発生することがなくなり、その分だけＣＰＵから描画命令が発せられてからフレームメモリへ全画素データが書き込まれるまでの時間を短縮することができる。
【００４７】
なお、従来に比してキャッシュメモリの図形的な利用効率は落ちることがある。というのも従来においては図７（ａ）に示されるように、最初キャッシュメモリになるべく多くの画素データを格納しようとしているのに対し、本発明においては、図１２（ａ）に示すようにバースト転送単位を意識しているために余白が多くなることがあり、効率が落ちているといえる。これによって発生する弊害はＧＥ１０２からキャッシュメモリ１０３への書き込み回数が多くなることにある。
【００４８】
しかし、前述したようにＧＥ１０２からキャッシュメモリ１０３へのアクセスは高速に行えるため、多少の書き込み回数の増加によって増大する書き込み時間は、キャッシュメモリからフレームメモリへの書き込み回数によって減少する書き込み時間に比して微々たる物であり、実質的に全体的な書き込み時間の短縮を促すことができる。
＜補足＞
上記実施の形態に基づいて描画装置１００説明してきたが、本発明の描画装置１００の実施の形態はこれに限定されるものではないことは勿論である。以下、その変形例について説明していく。
（１）上記実施の形態では、キャッシュメモリ及びフレームメモリは、理解しやすくするために２次元配列型のメモリとしたが、これは別に２次元配列である必要はない。また、格納するデータに関しても連続アドレスに格納する必要はなく、バースト転送に必要なデータだけキャッシュメモリにあればよく、この場合、ランダムアクセスメモリであってもかまわない。ただし、座標上において連続する画素データを連続したアドレスの格納領域に格納することは転送の際においてどの画素をどこに転送するのかといった指定の手間を省くことができるので、描画装置の設計も容易になるのは確かである。
（２）上記実施の形態では、キャッシュメモリ及びフレームメモリは、それぞれ、１２８及び４８０の画素を格納することとしたが、これは別にこの数値に限る必要はなく、例えば、キャッシュメモリは１２２８８（１２８×９６）の画素データを格納し、フレームメモリは３２２５６００（１９２０×１６８０）の画素データを格納することとしてもよい。なお、キャッシュメモリは、画像の転送においてバースト転送単位の画素数の整数倍の記憶容量になっていることが望ましい。こうすることで、キャッシュメモリを無駄なく使えることができるようになる。
（３）上記実施の形態では、キャッシュメモリからフレームメモリへの転送は８画素単位で行っていたが、これは８画素に限る必要はなくメモリバスの本数が多くなればより多くの画素を転送できるようになる。しかし、メモリバスの増加は同時に製作コストの増大を招く。
【００４９】
また、転送できる画素数はメモリバスの単位時間当たりのデータ転送量を１画素のデータ量で減算することでも求めることができる。
（４）上記実施の形態では、キャッシュメモリへの格納する際に、簡単のために、描画する対象を矩形で囲って、その矩形をキャッシュメモリに格納可能な画像ブロックに分割してキャッシュメモリに格納していったが、この手法の場合矩形の中には描画する描画対象のデータがない位置も多く含む可能性がある。
【００５０】
そこで、上記実施の形態において発生しうるその無駄をなるべく抑える一例として以下に示すような方法をとってもよい。なお、キャッシュメモリの容量は図２に示したものと同様とする。
まず、ＧＥ１０２が描画対象のｘ軸座標が最も小さく、ｙ軸座標の値が最も大きい座標の画素を検出する。そして、その画素のｙ座標が同じで、ｘ座標より小さく、かつ８の倍数ｘ座標を有する座標点Ａを算出する。そして点Ａとｘ座標が同じでｙ座標が８少ない点Ｂと、ｙ座標が同じでｘ座標が１６多い点Ｃを算出する。さらに点Ｂとｙ座標が同じで点Ｃとｘ座標が同じ点Ｄを算出する。そして４点Ａ、Ｂ、Ｃ、Ｄで構成される四角形を画像ブロックとして、その部分の必要な画素データをキャッシュメモリに格納する。キャッシュメモリに記録された画素データはフレームメモリへ格納する。
【００５１】
そして次に、格納した部分を除いた残りの部分を対象にして同様の処理を実行し、描画対象のデータがなくなるまでこれを繰り返す。こうすることで、キャッシュメモリへ書き込みの無駄をなるべく抑える、即ちキャッシュメモリ上において余白の部分を少なくすることができる。
（５）上記実施の形態においては、フレームメモリに何もデータが無い状態について最初に図形を書き込む、もしくはただ単に上書きするものとして説明したが、フレームメモリに格納されている図形を利用してもよい。
【００５２】
つまりフレームメモリに格納されている図形を修正する場合などのことであるが、この場合一旦フレームメモリからデータを読み出し、修正が必要な部分だけＧＥ１０２の指示に従って修正し、修正した画素データを再度フレームメモリに格納しなおす構成にしてもよい。この場合においても抜き出す画素データは、バースト転送単位で区切るようにして読み出してキャッシュメモリに格納し、修正後キャッシュメモリの画素データをフレームメモリにバースト転送で格納しなおす。
【００５３】
こうすると部分部分の修正で済み、全データをＧＥ１０２がキャッシュメモリ１０３に書き込まなくてもよくなり、その分だけフレームメモリへの書き込みを高速化できると言える。
（６）上記実施の形態においては特に記述しなかったが、本発明においても特許文献１に示すように、キャッシュメモリの形状（縦長あるいは横長）を描画する図形の形状、即ち縦長な図形だった場合には、キャッシュメモリも縦長になるようにしてキャッシュメモリの利用効率を向上させてもよい。但し、この場合においても本発明の趣旨に沿うようにキャッシュメモリにはバースト転送でアクセスするアドレスが重複しないように書き込みを行うようにする。
（７）上記実施の形態においては一つの描画命令を実行する例を示したが、これは別に複数の描画命令であってもよい。例えば、具体例では三角形ＡＢＣを描画することとしていたが、「三角形ＡＢＣを赤色で描画し、更にその上に点Ｄ（１８、５）を中心とする半径４の円を紫で描画せよ」といった複数の命令であっても良い。この場合、ＧＥ１０２は、三角形ＡＢＣのデータを描画してフレームメモリに格納した後に、再度円を描いてフレームメモリに格納するといった手順を踏むと二度手間で描画処理の時間もより長くかかる。よって、このように複数の描画命令で描画座標系がかぶる場合においては、ＧＥ１０２はそれぞれの図形の重複部分については透過処理、あるいは塗りつぶし処理、あるいは合成処理などを描画命令に基づいて実行してキャッシュメモリへの書き込みもフレームメモリへの書き込みも一度で済むように構成するとよい。
（８）上記実施の形態においては、各色の階調を上述のようにしたが、ＲＧＢ各色は例えば、２５５階調であってもよい。
（９）本発明は、上記実施の形態に示す方法であってもよい。また、当該方法を描画装置のコンピュータに実行させるための処理手順を示したコンピュータプログラムであってもよい。当該コンピュータプログラムは、フレキシブルディスク、ハードディスク装置、ＣＤ(Compact Disc)、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blu-ray Disc)、ＭＯ（Magneto-Optical)ディスク、フラッシュメモリ、半導体メモリなどに代表される各種記録媒体に記録されていてもよい。
（１０）本発明は、描画装置に搭載され、上記実施の形態で示したようにキャッシュメモリに画像データを格納するＬＳＩ(Large Scale Integration)あるいは、ＶＬＳＩ(Very Large Scale Integration)で実現してもよく、この場合一のＬＳＩあるいは複数のＬＳＩの組み合わせによって実現してもよい。
【産業上の利用可能性】
【００５４】
画像処理において、高速性が求められる描画を実行する描画装置において有益となる発明である。
【図面の簡単な説明】
【００５５】
【図１】本発明に係る描画装置の機能構成を示したブロック図である。
【図２】画像の一部又は全部を格納するためのキャッシュメモリの概念図である。
【図３】描画装置のフレームメモリの概念図である。
【図４】グラフィックスエンジンが、フレームメモリへの書き込む画像の一例を示した図である。
【図５】フレームメモリへ書き込まれる図形を従来の方法に従ってキャッシュへの書き込む範囲を示した図である。
【図６】フレームメモリへ書き込まれる図形を従来の方法に従ってキャッシュへの書き込む範囲を示した図である。
【図７】従来の方法に従ってキャッシュメモリに格納されている状態を示した図である。図７（ａ）は、図５に示した範囲の画素データを格納した状態を示し、図７（ｂ）は、図６に示した範囲の画素データを格納した状態を示す。
【図８】従来の方法によってキャッシュメモリへの格納を行った場合に、キャッシュメモリからフレームメモリへの転送の際に重複が発生することを示す図である。
【図９】従来の場合におけるキャッシュメモリからフレームメモリへのアクセス回数を概念的に示す図である。
【図１０】本発明の方法に従ってキャッシュメモリに書き込む範囲を示した図である。
【図１１】本発明の方法に従ってキャッシュメモリに書き込む範囲を示した図である。
【図１２】（ａ）は、図１０に示した範囲の画素データをキャッシュメモリに格納した状態を示している。（ｂ）は、図１１に示した範囲の画素データをキャッシュメモリに格納した状態を示している。
【図１３】本発明の場合におけるキャッシュメモリからフレームメモリへのアクセス回数を概念的に示す図である。
【図１４】描画装置においてフレームメモリに描画データが格納されるまでの動作を示した図である。
【符号の説明】
【００５６】
１００  描画装置
１０１  ＣＰＵ
１０２  ＧＥ
１０３  キャッシュメモリ
１０４  キャッシュメモリ制御回路
１０５  フレームメモリ
【図１】
2006268839.tif 000003
【図２】
2006268839.tif 000004
【図３】
2006268839.tif 000005
【図１４】
2006268839.tif 000006
【図４】
2006268839.tif 000007
【図５】
2006268839.tif 000008
【図６】
2006268839.tif 000009
【図７】
2006268839.tif 000010
【図８】
2006268839.tif 000011
【図９】
2006268839.tif 000012
【図１０】
2006268839.tif 000013
【図１１】
2006268839.tif 000014
【図１２】
2006268839.tif 000015
【図１３】
2006268839.tif 000016