(57)【要約】【課題】資源の有効利用が可能な図形描画装置を得る。【解決手段】書込モード選択部２は、図形の描画モードと水平方向の描画範囲とを用いて、フレームバッファ１０３に対する複数の書込モードのうちのいずれかを選択し、選択した書込モードで図形の情報を格納する。また、書込モード選択部２は、書込モードとして、描画する図形の描画色をフレームバッファ１０３に書き込む特定のモードを有し、現在の走査するラインにおける図形の交差回数が予め定めた閾値を上回る場合、そのラインの各画素の描画色を算出してフレームバッファ１０３に格納し、書込モードを特定のモードとする。【選択図】図１
2014127007.tif 000002
【特許請求の範囲】
【請求項１】
描画する図形の座標と描画色とを含む設定情報に基づき、前記図形の描画範囲を算出する描画制御部と、
前記図形の描画状態を示す描画モードと、当該図形の水平方向の描画範囲とを用いて、前記図形の情報を一時格納するフレームバッファに対する複数の書込モードのうちのいずれかを選択し、当該選択した書込モードで前記図形の情報を格納する書込モード選択部と、
前記書込モードに基づいて、前記フレームバッファに格納されている情報をライン単位で読み出す読出モード選択部と、
前記読出モード選択部から出力されたデータに基づき、前記図形の表示データを生成する描画制御部とを備えたことを特徴とする図形描画装置。
【請求項２】
書込モード選択部は、書込モードとして、描画する図形の描画色をフレームバッファに書き込む特定のモードを有し、現在の走査するラインにおける図形の交差回数が予め定めた閾値を上回る場合は、当該ラインの各画素の描画色を算出して前記フレームバッファに格納すると共に、前記書込モードを前記特定のモードとすることを特徴とする請求項１記載の図形描画装置。
【請求項３】
読出モード選択部は、フレームバッファへの読出要求があった場合、当該フレームバッファから読み出した中間データか、当該中間データをフォーマット変換した描画色の表示データかを選択することを特徴とする請求項１または請求項２記載の図形描画装置。
【請求項４】
描画する図形の情報をフレームバッファに格納すると共に、当該フレームバッファから前記図形の情報を読み出して当該図形の表示データを生成するコンピュータを、
前記図形の座標と描画色とを含む設定情報に基づき、前記図形の描画範囲を算出する描画制御部と、
前記図形の描画状態を示す描画モードと、当該図形の水平方向の描画範囲とを用いて、前記フレームバッファに対する複数の書込モードのうちのいずれかを選択し、当該選択した書込モードで前記図形の情報を格納する書込モード選択部と、
前記書込モードに基づいて、前記フレームバッファに格納されている情報をライン単位で読み出す読出モード選択部と、
前記読出モード選択部から出力されたデータに基づき、前記図形の表示データを生成する描画制御部
として機能させるための図形描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、図形描画時にフレームバッファに格納するデータの構成を動的に変更し、使用するメモリ帯域を削減可能な図形描画装置及び図形描画プログラムに関するものである。
【背景技術】
【０００２】
従来、図形描画の際にフレームバッファに対し、色値をそのまま格納するのではなく、始点座標、終点座標、色値などの中間データを保存することでデータ容量を削減する手法が提案されている。例えば、特許文献１では、オブジェクト毎に異なるパラメータを使用した中間データを構成することにより、データ容量を削減する画像処理装置について開示されている。具体的には、「エッジ配列形式」という１走査ライン上に存在する複数のエッジ列によって画像を表現する形式を用いている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−４０１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特定の図形に対しては「エッジ配列形式」を用いることにより、元のデータよりもデータ容量が増大してしまう場合がある。しかしながら、従来の画像処理装置は、このような特定の図形に対しても、また、データ容量の削減効果が高い図形に対しても、フレームバッファに書き込むデータ形式は考慮されないため、資源の有効利用がなされていないという課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、資源の有効利用が可能な図形描画装置及び図形描画プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る図形描画装置は、描画する図形の座標と描画色とを含む設定情報に基づき、前記図形の描画範囲を算出する描画制御部と、図形の描画状態を示す描画モードと、図形の水平方向の描画範囲とを用いて、図形の情報を一時格納するフレームバッファに対する複数の書込モードのうちのいずれかを選択し、選択した書込モードで図形の情報を格納する書込モード選択部と、書込モードに基づいて、フレームバッファに格納されている情報をライン単位で読み出す読出モード選択部と、読出モード選択部から出力されたデータに基づき、図形の表示データを生成する描画制御部とを備えたものである。
【発明の効果】
【０００７】
この発明の図形描画装置は、フレームバッファに対する複数の書込モードのうちのいずれかを選択し、選択した書込モードで図形の情報を格納するようにしたので、資源の有効利用を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による図形描画装置を示す構成図である。
【図２】この発明の実施の形態１による図形描画装置の書込モードの説明図である。
【図３】この発明の実施の形態１による図形描画装置の処理内容を示すフローチャートである。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１による図形描画装置１００を示す構成図である。
図示のように、図形描画装置１００は、ＣＰＵバス１０１を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２に接続され、また、フレームバッファ１０３を外部に接続している。図形描画装置１００は、描画制御部１、書込モード選択部２、読出モード選択部３、表示制御部４を備えている。描画制御部１は、描画する図形の座標、描画色などの設定情報を受け取った後、ＣＰＵ１０２からの描画開始命令により動作を開始する。描画制御部１は、図形の座標を元に垂直方向の描画範囲（Ｙ座標）と水平方向の描画範囲（Ｘ座標）を算出する図形形状算出部１ａを備え、書込モード選択部２に対して、順次算出した結果を出力する。
【００１０】
書込モード選択部２は、図形の描画状態を示す描画モード（単色塗り潰し、グラデーション塗り潰し、テクスチャ貼り付け、文字描画など）と水平方向の描画範囲（Ｘ座標）を用いてフレームバッファ１０３に対する書込モードを選択する。図２に、フレームバッファ１０３に対する書込モードの選択例を示す。
１．単色・グラデーション塗り潰しの時は、書込モード（ｍｏｄｅ＝１）と塗り潰し範囲（ｘｓｔａｒｔ、ｘｅｎｄ）、カラー勾配（カラーのＲ、Ｇ、Ｂ成分の変化量）をフレームバッファ１０３に保存する。
２．テクスチャ描画時（回転を行わず、拡大・縮小の場合）は、書込モード（ｍｏｄｅ＝２）と塗り潰し範囲（ｘｓｔａｒｔ、ｘｅｎｄ）、参照先（ＵＶ）座標の勾配（変化量）をフレームバッファ１０３に保存する。
３．文字などの小さい図形を描画するような場合は、上記１、２の格納手段によるデータ量削減効果が小さいため、描画モードの設定に関係なく、書込モード（ｍｏｄｅ＝３）と描画する座標（ｘａｄｒ）と描画色（ｃｏｌｏｒ）を算出し、フレームバッファに格納する。
【００１１】
上記３．において、１つの図形の中でも、形状が複雑な部分のみカラー値をフレームバッファ１０３に保存し、圧縮可能な部分は圧縮して保存するような使い方をしてもよい。
また、テクスチャを回転させて描画するような場合は、Ｘ方向に１画素ずつテクスチャを参照すると、参照先のテクスチャアドレスが非連続となり、メモリアクセス効率が低下する問題がある。このため、参照先（ＵＶ）座標ではなく、通常通り描画色を算出してフレームバッファ１０３の該当領域に保存するような使用方法が望ましい。
上記１．〜３．におけるフレームバッファ１０３への格納データは、１つの走査線上に複数の図形が重なるような場合は、直前までの格納結果の末尾に追加する形で格納する。
【００１２】
読出モード選択部３は、フレームバッファ１０３の情報をライン単位で読み出し、表示制御部４に出力する。読出モード選択部３は、表示読み出し、αブレンド、ＣＰＵ１０２からのリードアクセスなどでフレームバッファ１０３の読み出しが発生した時点で、動作を開始する。
ＣＰＵ１０２から直接フレームバッファ１０３の読み出しを行うと、中間データが読み出されることになるが、表示画面のキャプチャを行いたいような場合も想定される。このため、読出モード選択部３は、フレームバッファ１０３に格納された中間データを直接読み出すか、このような中間データをフォーマット変換して描画色に変換するかの選択機能を有し、ＣＰＵ１０２に対して図形描画装置１００が適切なデータを返すことが可能である。
【００１３】
表示制御部４は、読出モード選択部３から出力されるデータを用いて、図形の内部に含まれる画素のカラー値、α値（透明度）などを算出する描画色算出部４ａを備える。描画色算出部４ａは、例えば、グラデーション塗り潰しの場合（図２：ｍｏｄｅ＝１）は、描画範囲の開始点のカラーに対して勾配を順次加算することで任意の位置のカラー値を算出する。テクスチャ描画時（回転を行わず、拡大・縮小の場合）は、描画範囲の開始点の参照先（ＵＶ）座標に対して勾配を順次加算することで参照先のテクスチャ座標を順次算出し、対応する描画色データを読み出す。
【００１４】
図１ではフレームバッファ１０３は、図形描画装置１００の外部に置いているが、図形描画装置１００に一部を内蔵するようにしてもよい。このような場合でも、フレームバッファ１０３の１画面分に対し、色値をそのまま格納するのではなく、図形の複雑度に応じてフレームバッファ１０３に格納するデータの構成を動的に変更するように構成しているので、フレームバッファ１０３の容量を従来よりも大幅に削減することが可能である。
【００１５】
図１の例では、図形描画装置１００の構成要素である描画制御部１、図形形状算出部１ａ、書込モード選択部２、読出モード選択部３、表示制御部４、描画色算出部４ａのそれぞれが専用のハードウェア（例えば、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を実装している半導体集積回路基板）で構成されているものを想定しているが、図形描画装置１００がコンピュータで構成される場合（コンピュータには、例えば、パソコンのほかに、後述する描画プログラムを実行することが可能な携帯電話、携帯情報端末やカーナビゲーション装置なども含まれる）、描画制御部１、図形形状算出部１ａ、書込モード選択部２、読出モード選択部３、表示制御部４、描画色算出部４ａの処理内容を記述している描画プログラムを当該コンピュータの図示しないメモリに格納し、コンピュータのＣＰＵがメモリに格納されている描画プログラムを実行するようにしてもよい。
【００１６】
次に、実施の形態１の動作について説明する。
図３はこの発明の実施の形態１による図形描画装置の処理内容を示すフローチャートである。
図形描画装置１００は、当該図形描画装置１００を搭載しているシステムのＣＰＵ１０２から描画処理開始命令を受けることにより、動作を開始する。
描画制御部１は、図形形状算出部１ａにおいて、図形の座標を元に描画する図形の垂直方向の描画範囲（Ｙ座標）を算出する（ステップＳＴ１）。次いで、描画制御部１は、ステップＳＴ１で算出した図形内の最小Ｙ座標を起点として、Ｙ座標値１ずつインクリメントしながら、Ｙ座標の最大値まで走査を繰り返す。また、走査線のＹ座標が変化する度に、ステップＳＴ１で算出した図形のＹ座標最大値よりも値が大きいが否かの比較を行う（ステップＳＴ２）。
【００１７】
ステップＳＴ２の比較結果がＮＯ（走査線のＹ座標＜＝図形のＹ座標最大値）である場合、図形形状算出部１ａは、現在の走査線Ｙ座標における水平方向の描画範囲を算出し、図形の描画モードとともに書込モード選択部２に対して出力する（ステップＳＴ３）。この際、処理の高速化のため、複数の走査線における描画範囲をまとめて出力するようにしてもよいが、ここでは、便宜上１ライン分ずつ出力するものとして以下の説明を行う。
次に、書込モード選択部２は、図形の描画モード（単色塗り潰し、グラデーション塗り潰し、テクスチャ貼り付け、文字描画など）と水平方向の描画範囲（Ｘ座標）とを用いてフレームバッファ１０３に対する書込モードを選択し（ステップＳＴ４）、ライン単位でフレームバッファ１０３への書込モードと格納データを配置する。
【００１８】
書込モードの選択は、図２に示した方法が１例であるが、１つの走査線上に複数の図形が重なるほど、フレームバッファに格納するデータの圧縮効率が低下する問題がある。対策として、現在の走査線における図形の交差回数を監視し、予めＣＰＵ１０２から設定しておいた閾値と比較する（ステップＳＴ５）。ステップＳＴ５において、閾値を超えた場合には、読出モード選択部３を介して、現時点での描画用フレームバッファ１０３の１ライン分のデータを読み出し（ステップＳＴ６）、最終的な描画色を算出してフレームバッファデータの再構築を行う（ステップＳＴ７）。すなわち、１ライン分の各画素の描画色を算出した後、フレームバッファ１０３に書き戻す（元のデータに対して上書きする）。また、この時フレームバッファ１０３の書込モードを、描画色を格納するモード（図２：ｍｏｄｅ＝３）に更新する。これにより、どのような図形であっても、フレームバッファ１０３として確保する領域（容量）が元のデータより大きくなることはない。
【００１９】
閾値を超えていない場合には、直前までの格納結果の末尾に追加する形でフレームバッファ１０３に格納する（ステップＳＴ８）。ステップＳＴ７、ＳＴ８のいずれの場合も、Ｙ座標をインクリメントして次の走査線に対して、ステップＳＴ２以降同様の処理を繰り返す（ステップＳＴ９）。
【００２０】
ステップＳＴ２において、比較結果がＹＥＳ（走査線のＹ座標＞図形のＹ座標最大値）である場合、描画する図形が１画面中の最終図形であるか否かを判定し（ステップＳＴ１０）、判定結果がＮＯである場合、ステップＳＴ１に戻り、次の図形に対して同様の処理を繰り返す。ステップＳＴ１０において、判定結果がＹＥＳである場合、描画用と表示用のフレームバッファ１０３を切り替える（ステップＳＴ１１）。
【００２１】
表示制御部４の描画色算出部４ａは、読出モード選択部３から出力されるデータを用いて、図形の内部に含まれる画素のカラー値、α値（透明度）などを算出する。さらに、描画色算出部４ａは、１ラインずつ図形の描画モードに従ってフレームバッファ１０３を展開し、最終的な描画色を算出する。
【００２２】
以上説明したように、実施の形態１の図形描画装置によれば、描画する図形の座標と描画色とを含む設定情報に基づき、前記図形の描画範囲を算出する描画制御部と、図形の描画状態を示す描画モードと、図形の水平方向の描画範囲とを用いて、図形の情報を一時格納するフレームバッファに対する複数の書込モードのうちのいずれかを選択し、選択した書込モードで図形の情報を格納する書込モード選択部と、書込モードに基づいて、フレームバッファに格納されている情報をライン単位で読み出す読出モード選択部と、読出モード選択部から出力されたデータに基づき、図形の表示データを生成する描画制御部とを備えたので、フレームバッファの容量といった資源の有効利用を図ることができる。
【００２３】
また、実施の形態１の図形描画装置によれば、書込モード選択部は、書込モードとして、描画する図形の描画色をフレームバッファに書き込む特定のモードを有し、現在の走査するラインにおける図形の交差回数が予め定めた閾値を上回る場合は、ラインの各画素の描画色を算出してフレームバッファに格納すると共に、書込モードを特定のモードとするようにしたので、１つの走査ライン上に複数の図形が重なったような場合でも、元のデータよりデータ容量が増大するといったことがなく、フレームバッファを有効活用することができる。
【００２４】
また、実施の形態１の図形描画装置によれば、読出モード選択部は、フレームバッファへの読出要求があった場合、フレームバッファから読み出した中間データか、中間データをフォーマット変換した描画色の表示データかを選択するようにしたので、例えばＣＰＵからデータ読出要求として中間データの読出や描画色の読出があった場合でも、ＣＰＵに対して適切なデータを返すことができる。
【００２５】
また、実施の形態１の図形描画プログラムによれば、描画する図形の情報をフレームバッファに格納すると共に、フレームバッファから図形の情報を読み出して図形の表示データを生成するコンピュータを、図形の座標と描画色とを含む設定情報に基づき、図形の描画範囲を算出する描画制御部と、図形の描画状態を示す描画モードと、図形の水平方向の描画範囲とを用いて、フレームバッファに対する複数の書込モードのうちのいずれかを選択し、選択した書込モードで図形の情報を格納する書込モード選択部と、書込モードに基づいて、フレームバッファに格納されている情報をライン単位で読み出す読出モード選択部と、読出モード選択部から出力されたデータに基づき、図形の表示データを生成する描画制御部として機能させるようにしたので、資源の有効利用を図ることのできる図形描画装置をコンピュータ上に実現することができる。
【００２６】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００２７】
１  描画制御部、１ａ  図形形状算出部、２  書込モード選択部、３  読出モード選択部、４  表示制御部、４ａ  描画色算出部、１００  図形描画装置、１０１  ＣＰＵバス、１０２  ＣＰＵ、１０３  フレームバッファ。
【図１】
2014127007.tif 000003
【図２】
2014127007.tif 000004
【図３】
2014127007.tif 000005