アニメーション描画装置
【課題】従来のベクターグラフィックスによるアニメーション描画は、前フレームからの変更があった部品だけでなく、背面部品も描画し直す必要があり、前フレームとの相異が一部分でも、画面全てを描画し直す場合が多い。
【解決手段】ベクターグラフィックスでのアニメーション描画と、描画アニメーションの表示データとを出力するアニメーション描画装置で、外部メモリに格納された現フレーム描画リストと前フレーム描画リストの変更点を検出し、描画更新するフレームバッファの領域を描画領域判定手段で判定し、更新領域が閾値より小の時は、更新領域内のみをベクターグラフィックス描画手段で描画し表示用フレームバッファへコピーし、大の時は、同描画手段で全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替え、表示用フレームバッファを表示読出し手段で読み出し表示装置へ出力する。
【解決手段】ベクターグラフィックスでのアニメーション描画と、描画アニメーションの表示データとを出力するアニメーション描画装置で、外部メモリに格納された現フレーム描画リストと前フレーム描画リストの変更点を検出し、描画更新するフレームバッファの領域を描画領域判定手段で判定し、更新領域が閾値より小の時は、更新領域内のみをベクターグラフィックス描画手段で描画し表示用フレームバッファへコピーし、大の時は、同描画手段で全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替え、表示用フレームバッファを表示読出し手段で読み出し表示装置へ出力する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ベクターグラフィックスによるアニメーションの描画をし、その描画したアニメーションを表示装置に表示するためのデータを出力するアニメーション描画装置に関するものである。
【背景技術】
【0002】
グラフィックスの描画および画面表示の際に、描画の途中結果が画面へ表示されることを防ぐために、一旦ワーク領域に対して描画を行い、表示のためのフレームバッファへコピーを行う方法がある。
また、フレームバッファを2面分持ち、一方を描画用フレームバッファとして書込みを行い、他方を表示用フレームバッファとして読出しを行い、描画完了後に描画用フレームバッファと表示用フレームバッファを切替えるダブルバッファ方式がある。
前者のワーク領域に描画を行った後に表示用フレームバッファへコピーする方式では、描画面積が大きいほどコピー処理のための処理時間が大きくなるという問題がある。
また、後者のダブルバッファ方式では、フレームバッファ全面に描画を行い、表示と描画を切替えるため、画面の一部のみが変化する場合には前者の方式よりも効率が悪いという問題がある。
そこで、描画結果の面積により、両方式を選択的に切替える方法が提案されている。(たとえば特許文献1)
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009―009405号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ベクターグラフィックスにより画面を描画する際には、画面を構成する部品となるベクター図形を、背面に位置するものから順次上書きして描画する必要がある。このため、ベクターグラフィックスを使用したアニメーションを描画する場合、前フレームから変更のあった部品だけではなく、その背面に位置する部品から順に描画し直す必要がある。また、画面の最背面には画面サイズ分の背景となる図形が存在する場合が多く、この場合には前フレームと異なる部品が一部分であっても、画面を構成するすべての部品を描画し直すことになる。このような場合は、描画結果の面積は画面の大部分を占めることになるため、描画結果の面積により処理を切り替える従来の特許文献1による方式では効果が無いという問題点があった。
この発明は上記のような問題点を解決するためになされたもので、ベクターグラフィックスのアニメーション描画において、効率良く描画することができるアニメーション描画装置を得ることを目的とする。
【課題を解決するための手段】
【0005】
この発明に係るアニメーション描画装置は、
ベクターグラフィックスによりアニメーションの描画をし、描画したアニメーションを表示装置に表示する信号データを出力するアニメーション描画装置において、
現フレームのベクター図形部品の描画法を定義した描画リストと、1つ前のフレームのベクター図形部品の描画法を定義した前フレーム描画リストと、コマンドと制御点のXY座標値でベクター図形の輪郭を定義したベクタ図形データとが格納され、描画用と表示用の機能切り替えが可能な2フレーム分のバッファのメモリ領域を有する外部メモリに格納された現フレームの描画リストと前フレーム描画リストとを比較して変更点を検出し、描画更新すべきフレームバッファ上の領域を判定する描画領域判定手段と、
外部メモリに格納された現在のフレームの描画リストおよびベクター図形データから、フレームバッファへ1フレーム分の描画が可能なベクターグラフィックス描画手段と、
描画用フレームバッファ上の所定の矩形領域の画像を表示用フレームバッファ領域へコピーする矩形転送手段と、
表示用フレームバッファの描画結果を読み出して表示装置へと出力する表示読出し手段と、
上記描画領域判定手段、ベクターグラフィックス描画手段、矩形転送手段、表示読出し手段を制御する制御手段とを備え、
上記描画領域判定手段は、描画リストと前フレーム描画リストとの間で変更のあるベクター図形データについて、指定された変換行列により制御点座標に座標変換処理を施し、座標変換後の制御点座標の最小値および最大値から描画更新領域を求め、
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域について、上記ベクターグラフィックス描画手段に対して描画指示を出すものである。
【発明の効果】
【0006】
この発明に係るアニメーション描画装置によれば、
外部メモリに格納された現フレームの描画リストと前フレームの描画リストを比較し、変更のあった部品についてベクター図形データの制御点座標に座標変換処理を行い、座標変換後の制御点座標の最小値および最大値から描画更新領域を求めることにより、実際に各部品を描画する前に更新領域を求めることができ、描画更新領域が所定の閾値よりも小さい場合には描画更新領域内のみを描画して描画結果を表示用フレームバッファへコピーし、描画更新領域が閾値よりも大きい場合には全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替えるように制御することで、両方式の効率の良い方を動的に選択できるため、効率よくアニメーション描画を行うことができるという効果がある。
【図面の簡単な説明】
【0007】
【図1】この発明の実施の形態1によるアニメーション描画装置を示す構成図である。
【図2】この発明によるアニメーション描画装置で描画されるアニメーションの説明図である。
【図3】ベクター図形データの構造を示す説明図である。
【図4】描画リストの構造を示す説明図である。
【図5】1フレーム目における描画領域判定部の動作説明図である。
【図6】1フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図7】2フレーム目における描画領域判定部の動作説明図である。
【図8】2フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図9】3フレーム目における描画領域判定部の動作説明図である。
【図10】3フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図11】4フレーム目における描画領域判定部の動作説明図である。
【図12】4フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【発明を実施するための形態】
【0008】
実施の形態1.
図1はこの発明の実施の形態1によるアニメーション描画装置を示す構成図である。
図1において、10はアニメーション描画装置、17は各種データを保持するための外部メモリ、12は外部メモリ17上の描画リストを読出し、描画更新すべき領域を求める描画領域判定部、13は外部メモリ17上の描画リストおよびベクター図形データから、フレームバッファへ描画を行うベクターグラフィックス描画部、14はフレームバッファ上の矩形領域のイメージを別の領域へコピーする矩形転送処理部、15はフレームバッファの画像を読出して出力する表示読出し部、11はアニメーション描画装置10を構成する各ブロックの動作を制御する制御部、16はアニメーション描画装置10へ命令を出すCPU(Central Processing Unit)、18は画像を表示するための表示装置である。
【0009】
次に動作について説明する。
ここでは、例として図2に示す内容のアニメーションを描画するものとする。
図2(a)は1フレーム目を示し、ベクター図形として定義される各部品21、22、23、24、25を描画し、図2(b)の2フレーム目には部品24を回転・縮小して移動、図2(c)の3フレーム目は部品22を移動、部品23を回転、図2(d)の4フレーム目は部品22、23、25を移動させる場合の例である。
初期状態として、外部メモリ17上の2面分のフレームバッファは、フレームバッファAが描画用、フレームバッファBが表示用となっており、何れも別途指定された背景色で初期化されているものとする。
【0010】
まず、CPU16は、あらかじめベクター図形データを外部メモリ17へ格納しておく。図3はベクター図形データの構造を示したものである。ベクター図形は図形の輪郭を直線やベジェ曲線で構成したものであり、コマンド(MoveToやLineToなど)と頂点または制御点(以下両者を合わせて制御点という)のXY座標値で輪郭を定義する。また、図形の描画色を指定するデータも持つ。
また、CPU16は、1フレーム目を描画するための描画リストをあらかじめ外部メモリ17へ格納しておく。図4は描画リストの構造を示したものである。描画リストはどの部品(ベクター図形)をどのように描画するかを定義したデータである。どの部品を描画するかは、ベクター図形データへのポインタで指定し、どのように描画するかは変換行列により指定する。この例では変換行列は3×2の行列とし、ベクター図形の制御点のXY座標に対し下記の式で適用することにより、拡大、縮小、回転、平行移動などの座標変換を指示するものである。
【0011】
【数1】
【0012】
描画リストは1フレーム全ての描画内容を含むものである。例として示した1フレーム目の描画内容(図2(a))は部品21,22,23,24,25の5つの部品を描画するものであるため、この描画を行うための描画リストは、図4に示すように部品21,22,23,24,25それぞれに対するポインタと変換行列で構成される。また、各部品の描画順序は、描画リストの先頭から順に描画されるものである。
【0013】
描画に必要なベクター図形データおよび描画リストを外部メモリ17へ格納したら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
図5は1フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図5(a))と前フレーム描画リスト(図5(b))を読み出す。描画リストはCPU16が設定したものであり、前フレーム描画リストは初期状態では無効データが格納されているものとする。
【0014】
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図5の場合は前フレーム描画リストが無効データであるため、部品21,22,23,24,25の全てについて変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品21のベクター図形データの制御点のXY座標に対しは、変換行列(A1,B1,C1,D1,E1,F1)を使用して座標変換処理を行う。また、部品22のベクター図形データの制御点のXY座標に対しては、変換行列(A2,B2,C2,D2,E2,F2)を使用して座標変換処理を行う。同様に、部品23,24,25に対してもそれぞれのベクター図形データに基づき座標変換処理を行う。
【0015】
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、部品21,22,23,24,25の全てのベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域(図5(c))となる。
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部は11、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。例として閾値をフレームバッファ領域の半分の大きさとして説明する。図5(c)の例では描画更新領域の大きさが閾値よりも大きいため、制御部11は、フレームバッファ全画に描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0016】
図6は1フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11からフレームバッファ全面に描画するよう指示されているため、別途指示された背景色でフレームバッファ全面を初期化した後に、描画リストの内容に従いベクター図形データデータに座標変換処理を施し、画素データを生成して描画を行う。この際の初期化および描画は、描画用となっているフレームバッファAに対して行う(図6(a))。
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも大きいことから、描画用フレームバッファと表示用フレームバッファを切替えるよう指示を出す(図6(b))。すなわち、表示読出し部15に対し、フレームバッファAを読み出すよう指示を出す。そして、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
【0017】
その後、表示読出し部15は制御部11からの指示に従いフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、1フレーム目の描画結果が表示装置18に表示される。
CPU16は、アニメーション描画装置10における1フレーム目の描画処理が完了したら、次に2フレーム目の描画のために描画リストの更新を行う。例として示した2フレーム目の描画内容(図2(b))は、1フレーム目の描画内容から部品24を回転・縮小して移動させたものである。このため、描画リストの部品24に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0018】
図7は2フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図7(a))と前フレーム描画リスト(図7(b))を読み出す。描画リスト(図7(a))はCPU16が更新したものであり、前フレーム描画リスト(図7(b))は1フレーム目の描画リストをコピーしたものである。
【0019】
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図7の場合は部品24について変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品24のベクター図形データの制御点のXY座標に対し、描画リストで指定された変換行列(A4’,B4’,C4’,D4’,E4’,F4’)を使用して座標変換処理を行う。また同様に、部品24のベクター図形データの制御点のXY座標に対し、前フレーム描画リストで指定された変換行列(A4,B4,C4,D4,E4,F4)を使用して座標変換処理を行う。同様に、部品23,24,25に対してもそれぞれ座標変換処理を行う。
【0020】
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品24のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域となる(図7(c))。
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
【0021】
制御部11は、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図7(c)の例では描画更新領域の大きさが閾値よりも小さいため、制御部11は、描画更新領域内のみに描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0022】
図8は2フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11から描画更新領域内のみに描画するよう指示されているため、フレームバッファの初期化およびベクター図形の描画は描画更新領域内のみに対して行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図8(a))。
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも小さいことから、矩形転送処理部14に対し描画用フレームバッファの描画結果を表示用フレームバッファへコピーするよう指示を出す。矩形転送処理部14は、制御部11からの指示に従い、描画用であるフレームバッファBの描画更新領域内の画像を、表示用であるフレームバッファAへとコピーする。そして、矩形転送処理部14における処理が完了したら、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
【0023】
表示読出し部15はフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、2フレーム目の描画結果が表示装置に表示される(図8(b))。
CPU16は、アニメーション描画装置10における2フレーム目の描画処理が完了したら、次に3フレーム目の描画のために描画リストの更新を行う。例として示した3フレーム目の描画内容(図2(c))は、2フレーム目の描画内容から部品22を移動し、部品23を回転させたものである。このため、描画リストの部品22および部品23に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0024】
図9は3フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図9(a))と前フレーム描画リスト(図9(b))を読み出す。描画リスト(図9(a))はCPU16が更新したものであり、前フレーム描画リスト(図9(b))は2フレーム目の描画リストをコピーしたものである。
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図9の場合は部品22,23について変更があるものと判断する。
【0025】
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品22および部品23のベクター図形データの制御点のXY座標に対し、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品22,23のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域となる(図9(c))。
【0026】
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部は11、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図9(c)の例では描画更新領域の大きさが閾値よりも小さいため、制御部11は、描画更新領域内のみに描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0027】
図10は3フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11から描画更新領域内のみに描画するよう指示されているため、フレームバッファの初期化およびベクター図形の描画は描画更新領域内のみに対して行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図10(a))。
【0028】
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも小さいことから、矩形転送処理部14に対し描画用フレームバッファの描画結果を表示用フレームバッファへコピーするよう指示を出す。矩形転送処理部14は、制御部11からの指示に従い、描画用であるフレームバッファBの描画更新領域内の画像を、表示用であるフレームバッファAへとコピーする。そして、矩形転送処理部14における処理が完了したら、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
表示読出し部15はフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、3フレーム目の描画結果が表示装置に表示される(図10(b))。
【0029】
CPU16は、アニメーション描画装置10における3フレーム目の描画処理が完了したら、次に4フレーム目の描画のために描画リストの更新を行う。例として示した4フレーム目の描画内容(図2(d))は、3フレーム目の描画内容から部品22、23,25を移動したものである、このため、描画リストの部品22、23,25に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0030】
図11は4フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図11(a))と前フレーム描画リスト(図11(b))を読み出す。描画リスト(図11(a))はCPU16が更新したものであり、前フレーム描画リスト(図11(b))は3フレーム目の描画リストをコピーしたものである。
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図11の場合は部品22,23、25について変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品22、23、25のベクター図形データの制御点のXY座標に対し、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品22、23、25のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域(図11(c))となる。
【0031】
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部11は、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図11(c)の例では描画更新領域の大きさが閾値よりも大きいため、制御部11は、フレームバッファ全画に描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0032】
図12は4フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11からフレームバッファ全面に描画するよう指示されているため、別途指示された背景色でフレームバッファ全面を初期化した後に、描画リストの内容に従いベクター図形に座標変換処理を施し、画素データを生成して描画を行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図12(a))。
【0033】
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも大きいことから、描画用フレームバッファと表示用フレームバッファを切替えるよう指示を出す(図12(b))。すなわち、表示読出し部15に対し、フレームバッファBを読み出すよう指示を出す。そして、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
その後、表示読出し部15は制御部11からの指示に従いフレームバッファBの内容を読出し、表示装置18へ出力する。これにより、4フレーム目の描画結果が表示装置に表示される。
【0034】
以上のように、描画リストと前フレーム描画リストを比較し、変更のあった部品についてベクター図形データの制御点座標に座標変換を行い、その最小値と最大値から描画更新領域を求めることにより、実際に各部品を描画する前に更新領域を求めることができる。
また、描画更新領域が閾値よりも小さい場合には描画更新領域内のみを描画して描画結果を表示用フレームバッファへコピーし、描画更新領域が閾値よりも大きい場合には全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替えるように制御することで、両方式の効率の良い方を動的に選択できるため、効率よくアニメーション描画を行うことができるという効果がある。
【産業上の利用可能性】
【0035】
この発明は、情報端末機器への利用可能であり、特に携帯電話機や携帯情報端末機等に適用されるとその効果が大である。
【符号の説明】
【0036】
10;アニメーション描画装置、11;制御部、12;描画領域判定部、13;ベクターグラフィックス描画部、14;矩形転送処理部、15;表示読出し部、16;CPU(Central Processing Unit),17;外部メモリ、18;表示装置。
【技術分野】
【0001】
この発明は、ベクターグラフィックスによるアニメーションの描画をし、その描画したアニメーションを表示装置に表示するためのデータを出力するアニメーション描画装置に関するものである。
【背景技術】
【0002】
グラフィックスの描画および画面表示の際に、描画の途中結果が画面へ表示されることを防ぐために、一旦ワーク領域に対して描画を行い、表示のためのフレームバッファへコピーを行う方法がある。
また、フレームバッファを2面分持ち、一方を描画用フレームバッファとして書込みを行い、他方を表示用フレームバッファとして読出しを行い、描画完了後に描画用フレームバッファと表示用フレームバッファを切替えるダブルバッファ方式がある。
前者のワーク領域に描画を行った後に表示用フレームバッファへコピーする方式では、描画面積が大きいほどコピー処理のための処理時間が大きくなるという問題がある。
また、後者のダブルバッファ方式では、フレームバッファ全面に描画を行い、表示と描画を切替えるため、画面の一部のみが変化する場合には前者の方式よりも効率が悪いという問題がある。
そこで、描画結果の面積により、両方式を選択的に切替える方法が提案されている。(たとえば特許文献1)
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009―009405号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ベクターグラフィックスにより画面を描画する際には、画面を構成する部品となるベクター図形を、背面に位置するものから順次上書きして描画する必要がある。このため、ベクターグラフィックスを使用したアニメーションを描画する場合、前フレームから変更のあった部品だけではなく、その背面に位置する部品から順に描画し直す必要がある。また、画面の最背面には画面サイズ分の背景となる図形が存在する場合が多く、この場合には前フレームと異なる部品が一部分であっても、画面を構成するすべての部品を描画し直すことになる。このような場合は、描画結果の面積は画面の大部分を占めることになるため、描画結果の面積により処理を切り替える従来の特許文献1による方式では効果が無いという問題点があった。
この発明は上記のような問題点を解決するためになされたもので、ベクターグラフィックスのアニメーション描画において、効率良く描画することができるアニメーション描画装置を得ることを目的とする。
【課題を解決するための手段】
【0005】
この発明に係るアニメーション描画装置は、
ベクターグラフィックスによりアニメーションの描画をし、描画したアニメーションを表示装置に表示する信号データを出力するアニメーション描画装置において、
現フレームのベクター図形部品の描画法を定義した描画リストと、1つ前のフレームのベクター図形部品の描画法を定義した前フレーム描画リストと、コマンドと制御点のXY座標値でベクター図形の輪郭を定義したベクタ図形データとが格納され、描画用と表示用の機能切り替えが可能な2フレーム分のバッファのメモリ領域を有する外部メモリに格納された現フレームの描画リストと前フレーム描画リストとを比較して変更点を検出し、描画更新すべきフレームバッファ上の領域を判定する描画領域判定手段と、
外部メモリに格納された現在のフレームの描画リストおよびベクター図形データから、フレームバッファへ1フレーム分の描画が可能なベクターグラフィックス描画手段と、
描画用フレームバッファ上の所定の矩形領域の画像を表示用フレームバッファ領域へコピーする矩形転送手段と、
表示用フレームバッファの描画結果を読み出して表示装置へと出力する表示読出し手段と、
上記描画領域判定手段、ベクターグラフィックス描画手段、矩形転送手段、表示読出し手段を制御する制御手段とを備え、
上記描画領域判定手段は、描画リストと前フレーム描画リストとの間で変更のあるベクター図形データについて、指定された変換行列により制御点座標に座標変換処理を施し、座標変換後の制御点座標の最小値および最大値から描画更新領域を求め、
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域について、上記ベクターグラフィックス描画手段に対して描画指示を出すものである。
【発明の効果】
【0006】
この発明に係るアニメーション描画装置によれば、
外部メモリに格納された現フレームの描画リストと前フレームの描画リストを比較し、変更のあった部品についてベクター図形データの制御点座標に座標変換処理を行い、座標変換後の制御点座標の最小値および最大値から描画更新領域を求めることにより、実際に各部品を描画する前に更新領域を求めることができ、描画更新領域が所定の閾値よりも小さい場合には描画更新領域内のみを描画して描画結果を表示用フレームバッファへコピーし、描画更新領域が閾値よりも大きい場合には全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替えるように制御することで、両方式の効率の良い方を動的に選択できるため、効率よくアニメーション描画を行うことができるという効果がある。
【図面の簡単な説明】
【0007】
【図1】この発明の実施の形態1によるアニメーション描画装置を示す構成図である。
【図2】この発明によるアニメーション描画装置で描画されるアニメーションの説明図である。
【図3】ベクター図形データの構造を示す説明図である。
【図4】描画リストの構造を示す説明図である。
【図5】1フレーム目における描画領域判定部の動作説明図である。
【図6】1フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図7】2フレーム目における描画領域判定部の動作説明図である。
【図8】2フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図9】3フレーム目における描画領域判定部の動作説明図である。
【図10】3フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【図11】4フレーム目における描画領域判定部の動作説明図である。
【図12】4フレーム目におけるベクターグラフィックス描画部の描画内容および画面表示用の説明図である。
【発明を実施するための形態】
【0008】
実施の形態1.
図1はこの発明の実施の形態1によるアニメーション描画装置を示す構成図である。
図1において、10はアニメーション描画装置、17は各種データを保持するための外部メモリ、12は外部メモリ17上の描画リストを読出し、描画更新すべき領域を求める描画領域判定部、13は外部メモリ17上の描画リストおよびベクター図形データから、フレームバッファへ描画を行うベクターグラフィックス描画部、14はフレームバッファ上の矩形領域のイメージを別の領域へコピーする矩形転送処理部、15はフレームバッファの画像を読出して出力する表示読出し部、11はアニメーション描画装置10を構成する各ブロックの動作を制御する制御部、16はアニメーション描画装置10へ命令を出すCPU(Central Processing Unit)、18は画像を表示するための表示装置である。
【0009】
次に動作について説明する。
ここでは、例として図2に示す内容のアニメーションを描画するものとする。
図2(a)は1フレーム目を示し、ベクター図形として定義される各部品21、22、23、24、25を描画し、図2(b)の2フレーム目には部品24を回転・縮小して移動、図2(c)の3フレーム目は部品22を移動、部品23を回転、図2(d)の4フレーム目は部品22、23、25を移動させる場合の例である。
初期状態として、外部メモリ17上の2面分のフレームバッファは、フレームバッファAが描画用、フレームバッファBが表示用となっており、何れも別途指定された背景色で初期化されているものとする。
【0010】
まず、CPU16は、あらかじめベクター図形データを外部メモリ17へ格納しておく。図3はベクター図形データの構造を示したものである。ベクター図形は図形の輪郭を直線やベジェ曲線で構成したものであり、コマンド(MoveToやLineToなど)と頂点または制御点(以下両者を合わせて制御点という)のXY座標値で輪郭を定義する。また、図形の描画色を指定するデータも持つ。
また、CPU16は、1フレーム目を描画するための描画リストをあらかじめ外部メモリ17へ格納しておく。図4は描画リストの構造を示したものである。描画リストはどの部品(ベクター図形)をどのように描画するかを定義したデータである。どの部品を描画するかは、ベクター図形データへのポインタで指定し、どのように描画するかは変換行列により指定する。この例では変換行列は3×2の行列とし、ベクター図形の制御点のXY座標に対し下記の式で適用することにより、拡大、縮小、回転、平行移動などの座標変換を指示するものである。
【0011】
【数1】
【0012】
描画リストは1フレーム全ての描画内容を含むものである。例として示した1フレーム目の描画内容(図2(a))は部品21,22,23,24,25の5つの部品を描画するものであるため、この描画を行うための描画リストは、図4に示すように部品21,22,23,24,25それぞれに対するポインタと変換行列で構成される。また、各部品の描画順序は、描画リストの先頭から順に描画されるものである。
【0013】
描画に必要なベクター図形データおよび描画リストを外部メモリ17へ格納したら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
図5は1フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図5(a))と前フレーム描画リスト(図5(b))を読み出す。描画リストはCPU16が設定したものであり、前フレーム描画リストは初期状態では無効データが格納されているものとする。
【0014】
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図5の場合は前フレーム描画リストが無効データであるため、部品21,22,23,24,25の全てについて変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品21のベクター図形データの制御点のXY座標に対しは、変換行列(A1,B1,C1,D1,E1,F1)を使用して座標変換処理を行う。また、部品22のベクター図形データの制御点のXY座標に対しては、変換行列(A2,B2,C2,D2,E2,F2)を使用して座標変換処理を行う。同様に、部品23,24,25に対してもそれぞれのベクター図形データに基づき座標変換処理を行う。
【0015】
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、部品21,22,23,24,25の全てのベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域(図5(c))となる。
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部は11、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。例として閾値をフレームバッファ領域の半分の大きさとして説明する。図5(c)の例では描画更新領域の大きさが閾値よりも大きいため、制御部11は、フレームバッファ全画に描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0016】
図6は1フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11からフレームバッファ全面に描画するよう指示されているため、別途指示された背景色でフレームバッファ全面を初期化した後に、描画リストの内容に従いベクター図形データデータに座標変換処理を施し、画素データを生成して描画を行う。この際の初期化および描画は、描画用となっているフレームバッファAに対して行う(図6(a))。
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも大きいことから、描画用フレームバッファと表示用フレームバッファを切替えるよう指示を出す(図6(b))。すなわち、表示読出し部15に対し、フレームバッファAを読み出すよう指示を出す。そして、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
【0017】
その後、表示読出し部15は制御部11からの指示に従いフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、1フレーム目の描画結果が表示装置18に表示される。
CPU16は、アニメーション描画装置10における1フレーム目の描画処理が完了したら、次に2フレーム目の描画のために描画リストの更新を行う。例として示した2フレーム目の描画内容(図2(b))は、1フレーム目の描画内容から部品24を回転・縮小して移動させたものである。このため、描画リストの部品24に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0018】
図7は2フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図7(a))と前フレーム描画リスト(図7(b))を読み出す。描画リスト(図7(a))はCPU16が更新したものであり、前フレーム描画リスト(図7(b))は1フレーム目の描画リストをコピーしたものである。
【0019】
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図7の場合は部品24について変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品24のベクター図形データの制御点のXY座標に対し、描画リストで指定された変換行列(A4’,B4’,C4’,D4’,E4’,F4’)を使用して座標変換処理を行う。また同様に、部品24のベクター図形データの制御点のXY座標に対し、前フレーム描画リストで指定された変換行列(A4,B4,C4,D4,E4,F4)を使用して座標変換処理を行う。同様に、部品23,24,25に対してもそれぞれ座標変換処理を行う。
【0020】
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品24のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域となる(図7(c))。
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
【0021】
制御部11は、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図7(c)の例では描画更新領域の大きさが閾値よりも小さいため、制御部11は、描画更新領域内のみに描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0022】
図8は2フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11から描画更新領域内のみに描画するよう指示されているため、フレームバッファの初期化およびベクター図形の描画は描画更新領域内のみに対して行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図8(a))。
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも小さいことから、矩形転送処理部14に対し描画用フレームバッファの描画結果を表示用フレームバッファへコピーするよう指示を出す。矩形転送処理部14は、制御部11からの指示に従い、描画用であるフレームバッファBの描画更新領域内の画像を、表示用であるフレームバッファAへとコピーする。そして、矩形転送処理部14における処理が完了したら、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
【0023】
表示読出し部15はフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、2フレーム目の描画結果が表示装置に表示される(図8(b))。
CPU16は、アニメーション描画装置10における2フレーム目の描画処理が完了したら、次に3フレーム目の描画のために描画リストの更新を行う。例として示した3フレーム目の描画内容(図2(c))は、2フレーム目の描画内容から部品22を移動し、部品23を回転させたものである。このため、描画リストの部品22および部品23に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0024】
図9は3フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図9(a))と前フレーム描画リスト(図9(b))を読み出す。描画リスト(図9(a))はCPU16が更新したものであり、前フレーム描画リスト(図9(b))は2フレーム目の描画リストをコピーしたものである。
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図9の場合は部品22,23について変更があるものと判断する。
【0025】
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品22および部品23のベクター図形データの制御点のXY座標に対し、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品22,23のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域となる(図9(c))。
【0026】
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部は11、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図9(c)の例では描画更新領域の大きさが閾値よりも小さいため、制御部11は、描画更新領域内のみに描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0027】
図10は3フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11から描画更新領域内のみに描画するよう指示されているため、フレームバッファの初期化およびベクター図形の描画は描画更新領域内のみに対して行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図10(a))。
【0028】
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも小さいことから、矩形転送処理部14に対し描画用フレームバッファの描画結果を表示用フレームバッファへコピーするよう指示を出す。矩形転送処理部14は、制御部11からの指示に従い、描画用であるフレームバッファBの描画更新領域内の画像を、表示用であるフレームバッファAへとコピーする。そして、矩形転送処理部14における処理が完了したら、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
表示読出し部15はフレームバッファAの内容を読出し、表示装置18へ出力する。これにより、3フレーム目の描画結果が表示装置に表示される(図10(b))。
【0029】
CPU16は、アニメーション描画装置10における3フレーム目の描画処理が完了したら、次に4フレーム目の描画のために描画リストの更新を行う。例として示した4フレーム目の描画内容(図2(d))は、3フレーム目の描画内容から部品22、23,25を移動したものである、このため、描画リストの部品22、23,25に対応する変換行列の値を更新する。
描画リストの更新が終わったら、CPU16はアニメーション描画装置10に対して描画開始を指示する。これにより、アニメーション描画装置10は、1フレーム分の描画処理を開始する。
【0030】
図11は4フレーム目における描画領域判定部12の動作を説明するための図である。制御部11はまず、描画領域判定部12に対して処理を開始するよう指示を出す。描画領域判定部12は、制御部11から処理開始の指示を受けると、外部メモリ17から描画リスト(図11(a))と前フレーム描画リスト(図11(b))を読み出す。描画リスト(図11(a))はCPU16が更新したものであり、前フレーム描画リスト(図11(b))は3フレーム目の描画リストをコピーしたものである。
次に、描画領域判定部12は、描画リストと前フレーム描画リストの内容を比較し、変更箇所を検出する。図11の場合は部品22,23、25について変更があるものと判断する。
次に、描画領域判定部12は、変更のある部品についてベクター図形データを読み出し、制御点のXY座標に対して、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。すなわち、部品22、23、25のベクター図形データの制御点のXY座標に対し、描画リストや前フレーム描画リストで指定された変換行列を使用して座標変換処理を行う。
この際に、描画領域判定部12は、座標変換後の制御点のXY座標の最小値および最大値を判定し、保持しておく。これにより、変更のあった部品22、23、25のベクター図形の座標変換処理を完了した時点で保持している制御点のXY座標の最小値と最大値で構成される矩形領域が、描画を更新すべき領域(図11(c))となる。
【0031】
描画領域判定部12は、描画更新領域を求めたら、描画リストの内容を前フレーム描画リストの領域へとコピーする。その後、制御部11に対して描画更新領域の情報を出力し、動作を終了する。
制御部11は、描画領域判定部12から描画更新領域の情報を受け取ったら、その領域の大きさが閾値よりも大きいか否を判定する。図11(c)の例では描画更新領域の大きさが閾値よりも大きいため、制御部11は、フレームバッファ全画に描画を行うようベクターグラフィックス描画部13に対して指示を出す。
【0032】
図12は4フレーム目におけるベクターグラフィックス描画部13の描画内容、および画面表示を説明するための図である。
ベクターグラフィックス描画部13は、制御部11からの指示により1フレーム分の描画を開始する。この際に、制御部11からフレームバッファ全面に描画するよう指示されているため、別途指示された背景色でフレームバッファ全面を初期化した後に、描画リストの内容に従いベクター図形に座標変換処理を施し、画素データを生成して描画を行う。この際の初期化および描画は、描画用となっているフレームバッファBに対して行う(図12(a))。
【0033】
ベクターグラフィックス描画部13における1フレーム分の描画が完了したら、制御部11は、描画更新領域が閾値よりも大きいことから、描画用フレームバッファと表示用フレームバッファを切替えるよう指示を出す(図12(b))。すなわち、表示読出し部15に対し、フレームバッファBを読み出すよう指示を出す。そして、アニメーション描画装置10は、1フレーム分の描画処理を完了とする。
その後、表示読出し部15は制御部11からの指示に従いフレームバッファBの内容を読出し、表示装置18へ出力する。これにより、4フレーム目の描画結果が表示装置に表示される。
【0034】
以上のように、描画リストと前フレーム描画リストを比較し、変更のあった部品についてベクター図形データの制御点座標に座標変換を行い、その最小値と最大値から描画更新領域を求めることにより、実際に各部品を描画する前に更新領域を求めることができる。
また、描画更新領域が閾値よりも小さい場合には描画更新領域内のみを描画して描画結果を表示用フレームバッファへコピーし、描画更新領域が閾値よりも大きい場合には全画面を描画して描画用フレームバッファと表示用フレームバッファを切り替えるように制御することで、両方式の効率の良い方を動的に選択できるため、効率よくアニメーション描画を行うことができるという効果がある。
【産業上の利用可能性】
【0035】
この発明は、情報端末機器への利用可能であり、特に携帯電話機や携帯情報端末機等に適用されるとその効果が大である。
【符号の説明】
【0036】
10;アニメーション描画装置、11;制御部、12;描画領域判定部、13;ベクターグラフィックス描画部、14;矩形転送処理部、15;表示読出し部、16;CPU(Central Processing Unit),17;外部メモリ、18;表示装置。
【特許請求の範囲】
【請求項1】
ベクターグラフィックスによりアニメーションの描画をし、描画したアニメーションを表示装置に表示するためのデータを出力するアニメーション描画装置において、
現フレームのベクター図形部品の描画法を定義した描画リストと、1つ前のフレームのベクター図形部品の描画法を定義した前フレーム描画リストと、コマンドと制御点のXY座標値でベクター図形の輪郭を定義したベクタ図形データとが格納され、描画用と表示用の機能切り替えが可能な2フレーム分のバッファのメモリ領域を有する外部メモリに格納された現フレームの描画リストと前フレーム描画リストとを比較してその変更点を検出し、描画更新すべきフレームバッファ上の領域を判定する描画領域判定手段と、
外部メモリに格納された現在のフレームの描画リストおよびベクター図形データから、フレームバッファへ1フレーム分の描画が可能なベクターグラフィックス描画手段と、
描画用フレームバッファ上の所定の矩形領域の画像を表示用フレームバッファ領域へコピーする矩形転送手段と、
表示用フレームバッファの描画結果を読み出して表示装置へと出力する表示読出し手段と、
上記描画領域判定手段、ベクターグラフィックス描画手段、矩形転送手段、表示読出し手段を制御する制御手段とを備え、
上記描画領域判定手段は、描画リストと前フレーム描画リストとの間で変更のあるベクター図形データについて、指定された変換行列により制御点座標に座標変換処理を施し、座標変換後の制御点座標の最小値および最大値から描画更新領域を求め、
上記制御手段は、上記ベクターグラフィックス描画手段に対して上記描画領域判定手段にて求めた描画更新領域について描画を行う指示を出す、
ことを特徴とするアニメーション描画装置。
【請求項2】
上記描画領域判定手段は、描画更新領域を求めた後に、現在のフレームの描画リストを、次のフレームにおいて前フレーム描画リストとして使用するため外部メモリの前フレーム描画リストの領域へコピーすることを特徴とする請求項1記載のアニメーション描画装置。
【請求項3】
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域が予め定められた閾値よりも小さい場合には、上記ベクターグラフィックス描画手段に対して描画用フレームバッファの描画更新領域内のみ描画を行うよう指示し、描画完了後に描画用フレームバッファの描画更新領域内の描画像を表示用フレームバッファへコピーするよう上記矩形転送手段へ指示することを特徴とする請求項1または2に記載のアニメーション描画装置。
【請求項4】
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域が予め定められた閾値よりも大きい場合には、上記ベクターグラフィックス描画手段に対して描画用フレームバッファ全面に対して描画を行う用指示し、描画完了後に描画用フレームバッファと表示用フレームバッファを切替えることを特徴とする請求項1または2に記載のアニメーション描画装置。
【請求項1】
ベクターグラフィックスによりアニメーションの描画をし、描画したアニメーションを表示装置に表示するためのデータを出力するアニメーション描画装置において、
現フレームのベクター図形部品の描画法を定義した描画リストと、1つ前のフレームのベクター図形部品の描画法を定義した前フレーム描画リストと、コマンドと制御点のXY座標値でベクター図形の輪郭を定義したベクタ図形データとが格納され、描画用と表示用の機能切り替えが可能な2フレーム分のバッファのメモリ領域を有する外部メモリに格納された現フレームの描画リストと前フレーム描画リストとを比較してその変更点を検出し、描画更新すべきフレームバッファ上の領域を判定する描画領域判定手段と、
外部メモリに格納された現在のフレームの描画リストおよびベクター図形データから、フレームバッファへ1フレーム分の描画が可能なベクターグラフィックス描画手段と、
描画用フレームバッファ上の所定の矩形領域の画像を表示用フレームバッファ領域へコピーする矩形転送手段と、
表示用フレームバッファの描画結果を読み出して表示装置へと出力する表示読出し手段と、
上記描画領域判定手段、ベクターグラフィックス描画手段、矩形転送手段、表示読出し手段を制御する制御手段とを備え、
上記描画領域判定手段は、描画リストと前フレーム描画リストとの間で変更のあるベクター図形データについて、指定された変換行列により制御点座標に座標変換処理を施し、座標変換後の制御点座標の最小値および最大値から描画更新領域を求め、
上記制御手段は、上記ベクターグラフィックス描画手段に対して上記描画領域判定手段にて求めた描画更新領域について描画を行う指示を出す、
ことを特徴とするアニメーション描画装置。
【請求項2】
上記描画領域判定手段は、描画更新領域を求めた後に、現在のフレームの描画リストを、次のフレームにおいて前フレーム描画リストとして使用するため外部メモリの前フレーム描画リストの領域へコピーすることを特徴とする請求項1記載のアニメーション描画装置。
【請求項3】
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域が予め定められた閾値よりも小さい場合には、上記ベクターグラフィックス描画手段に対して描画用フレームバッファの描画更新領域内のみ描画を行うよう指示し、描画完了後に描画用フレームバッファの描画更新領域内の描画像を表示用フレームバッファへコピーするよう上記矩形転送手段へ指示することを特徴とする請求項1または2に記載のアニメーション描画装置。
【請求項4】
上記制御手段は、上記描画領域判定手段にて求めた描画更新領域が予め定められた閾値よりも大きい場合には、上記ベクターグラフィックス描画手段に対して描画用フレームバッファ全面に対して描画を行う用指示し、描画完了後に描画用フレームバッファと表示用フレームバッファを切替えることを特徴とする請求項1または2に記載のアニメーション描画装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2013−45401(P2013−45401A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−184770(P2011−184770)
【出願日】平成23年8月26日(2011.8.26)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願日】平成23年8月26日(2011.8.26)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]