(57)【特許請求の範囲】
【請求項１】
ベクター図形を描画してアニメーション表示を行う図形描画装置であって、
フレームごとに定義された前記ベクター図形の描画状態に基づいて、前記ベクター図形のラスタライズ処理方法を判断する判定部と、
前記判定部が判断した前記ラスタライズ処理方法に基づいて前記ベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、
前記ビットマップイメージを所定の状態に配置して前記ベクター図形を描画する描画部とを備え、
前記判定部は、アニメーションのない第１のベクター図形がアニメーションのある第２のベクター図形の描画に影響を与えるか否かを判定し、前記第２のベクター図形の描画に影響を与える場合には、前記第１のベクター図形のうち、前記第２のベクター図形の描画に影響を与えない部分をアニメーションのない第３のベクター図形と１つにまとめたビットマップイメージを生成し、前記第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するよう前記ラスタライズ部に指示する図形描画装置。
【請求項２】
前記判定部は、第１のベクター図形の描画範囲が、前記第１のベクター図形が存在するレイヤーより下のレイヤーに存在する第２のベクター図形の描画範囲と重なる場合に、第１のベクター図形が第２のベクター図形の描画に影響を与えると判定することを特徴とする請求項１に記載の図形描画装置。
【請求項３】
前記判定部は、第１のベクター図形の描画範囲のうち、前記第１のベクター図形が存在するレイヤーより下のレイヤーに存在する第２のベクター図形の描画範囲と重ならない部分を前記第２のベクター図形の描画に影響を与えない部分、第２のベクター図形の描画範囲と重なる部分を前記第２のベクター図形の描画に影響を与える部分とすることを特徴とする請求項１に記載の図形描画装置。
【請求項４】
ベクター図形の画像を描画してアニメーション表示を行う処理をコンピュータに実行させる図形描画プログラムであって、
フレームごとに定義された前記ベクター図形の描画状態に基づいて、前記ベクター図形のラスタライズ処理方法を判断する判定ステップと、
前記ラスタライズ処理方法に基づいて前記ベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズステップと、
前記ビットマップイメージを所定の状態に配置して前記ベクター図形を描画する描画ステップと、
をコンピュータに実行させ、
前記判定ステップは、アニメーションのない第１のベクター図形がアニメーションのある第２のベクター図形の描画に影響を与えるか否かを判定し、
前記ラスタライズステップは、前記第２のベクター図形の描画に影響を与えると判定された場合、前記第１のベクター図形のうち、前記第２のベクター図形の描画に影響を与えない部分をアニメーションのない第３のベクター図形と１つにまとめたビットマップイメージを生成し、前記第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成する、
図形描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、図形画像を描画してアニメーション表示を行う図形描画装置および図形描画装置プログラムに関する。
【背景技術】
【０００２】
ベクター図形は、輪郭を構成する直線または曲線の頂点または制御点と、塗り潰し色等の属性で定義されており、ビットマップ形式のデータ（ラスタデータ）よりも小さいデータサイズで図形等を表現することができる。また、フレームごとに拡大、縮小、回転、平行移動等の座標変換を行うことによりアニメーション表示を行うことができる。ベクター図形を画面に表示する際にはラスタライズ処理を行い、ベクター図形データからビットマップイメージを生成する必要がある。ベクター図形データとは、ベクター図形を定義するためのデータである。
【０００３】
ベクター図形をアニメーション表示するには、フレームごとにラスタライズ処理を行う必要があるが、ベクター図形のラスタライズ処理は負荷の高い処理である。このため、組込み機器のようなＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）処理性能の低いシステムにおいて、１秒あたり３０フレームあるいは６０フレームなどのスムーズなアニメーション表示を実現するには、ベクター図形をラスタライズ処理する専用のハードウェアが必要となる。
【０００４】
これに対し、特許文献１は、ベクター図形をラスタライズする専用のハードウェアが無い場合に、ベクター図形のアニメーション表示を実現する方法を開示している。具体的には、事前にベクター図形データをラスタライズ処理してビットマップイメージを作成し、このビットマップイメージに加工を施して描画することにより、アニメーション表示を行う方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１８１５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１による方式では、個々のベクター図形データをそれぞれ別々のビットマップイメージにラスタライズ処理して保持することになる。そのため、ベクター図形同士の重なりが多いコンテンツでは、ビットマップイメージの保持に必要なメモリ領域が膨大となり、また、アニメーション表示する際にビットマップイメージの貼り付けに要する処理時間が増えるなどの問題があった。
【０００７】
この発明は、上記のような問題点を解決するためになされたものであり、無駄な重なり描画を省き、スムーズなアニメーション表示を実現する図形描画装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明は、ベクター図形を描画してアニメーション表示を行う図形描画装置であって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定部と、判定部が判断したラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画部とを備え、判定部は、アニメーションのない第１のベクター図形がアニメーションのある第２のベクター図形の描画に影響を与えるか否かを判定し、第２のベクター図形の描画に影響を与える場合には、第１のベクター図形のうち、第２のベクター図形の描画に影響を与えない部分をアニメーションのない第３のベクター図形と１つにまとめたビットマップイメージを生成し、第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するようラスタライズ部に指示する図形描画装置である。
【０００９】
また、本発明は、ベクター図形の画像を描画してアニメーション表示を行う処理をコンピュータに実行させる図形描画プログラムであって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定ステップと、ラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズステップと、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画ステップとをコンピュータに実行させる図形描画プログラムでもある。また、判定ステップは、アニメーションのない第１のベクター図形がアニメーションのある第２のベクター図形の描画に影響を与えるか否かを判定する。ラスタライズステップは、第２のベクター図形の描画に影響を与えると判定された場合、第１のベクター図形のうち、第２のベクター図形の描画に影響を与えない部分をアニメーションのない第３のベクター図形と１つにまとめたビットマップイメージを生成し、第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成する。
【発明の効果】
【００１０】
本発明にかかる図形描画装置によれば、上記のように構成したことにより、ビットマップイメージを保持するためのメモリ領域を削減し、スムーズなアニメーション表示を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１における図形描画装置の構成例を示すブロック図である。
【図２】本発明の実施の形態１における図形描画装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態１におけるベクター図形の一例を示す説明図である。
【図４】本発明の実施の形態１におけるアニメーションデータの一例を示す説明図である。
【図５】アニメーション表示の一例を示す説明図である。
【図６】本発明の実施の形態１におけるビットマップアニメーションデータの一例を示す説明図である。
【図７】本発明の実施の形態１における図形描画装置の処理の流れを示すフローチャートである。
【図８】本発明の実施の形態１におけるビットマップイメージの一例を示す説明図である。
【図９】本発明の実施の形態１における描画処理の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明の画像処理装置および画像処理方法の実施の形態について、図面を用いて説明する。なお、各図において、同一または相当する部分には同一の符号を示す。
【００１３】
実施の形態１．
まず、本発明の実施の形態１における図形描画装置１０の構成について説明する。図１は、本発明の実施の形態１における図形描画装置１０の構成の一例を示すブロック図である。
【００１４】
図形描画装置１０は、ベクター図形データ２２とアニメーションデータ２１とに基づいて、各ベクター図形のラスタライズ処理の方法を判定する判定部１１、判定部１１から指示される処理方法でベクター図形データをラスタライズ処理してビットマップイメージを作成するラスタライズ処理部１２、ラスタライズ処理部で作成したビットマップイメージを貼り付け（合成し）、表示画面に表示する画像を作成する描画部１３で構成される。また、図形描画装置１０は、各種データを格納するためのメモリ２０、および作成した画像を表示する表示装置（図示せず）と接続される。なお、以下では「ラスタライズ処理」のことを単に「ラスタライズ」という場合がある。
【００１５】
ここで、ベクター図形データ２２およびアニメーションデータ２１について図を用いて説明する。図３は、ベクター図形データ２２により定義されるベクター図形の一例を示す図である。図４は、アニメーションデータ２１の一例を示す図である。
【００１６】
ベクター図形データ２２とは、ベクター図形を構成する輪郭の情報や塗り潰し色等の属性を定義したデータである。ベクター図形３０，３１，３２，３３，３４，３５，３６，３７は、それぞれ個別のベクター図形データ２２により表される。なお、ベクター図形３３の右側に記載されている破線の矢印は、ベクター図形３３が右側に移動するアニメーションとして表示されることを表すものである。
【００１７】
アニメーションデータ２１とは、ベクター図形を描画してアニメーション表示を行うため、ベクター図形の識別子と、そのベクター図形を画面上に描画する位置とをフレームごとに定義したデータである。描画する位置は、座標変換行列（単に変換行列とも言う）により与えられるものとする。座標変換行列は、ベクター図形の描画位置だけでなくサイズ、回転量等、様々な描画状態を定義することができる。また、各ベクター図形の上下関係（画面に垂直な方向において、観察者に近い側を上、遠い側を下とする）を示すために、各ベクター図形を描画するレイヤーの情報も含まれる。図４の例では、レイヤー０が最も下の層、レイヤー７が最も上の層である。
【００１８】
図示したアニメーションデータ２１の１フレーム目では、レイヤー０にベクター図形３０が変換行列Ａ３０で定義した状態に描画される。レイヤー１〜７についても同様に描画される。２フレーム目では、レイヤー３にベクター図形３３が変換行列Ａ３３’で定義した状態に描画され、３フレーム目では、レイヤー３にベクター図形３３が変換行列Ａ３３’’で定義した状態に描画される。つまり、１フレーム目では、全てのレイヤー０のベクター図形が描画され、２，３フレーム目では、レイヤー３のベクター図形のみ再描画される。これにより、ベクター図形３３の描画状態がフレーム毎に変化し、アニメーション表示が実現される。
【００１９】
このように、アニメーションデータ２１では、変換行列、つまり描画状態が変化するベクター図形のみが再定義される。よって、アニメーションのあるベクター図形は、アニメーションデータ２１に複数回現れる。
【００２０】
図５は、図３，４に示したベクター図形データ２２とアニメーションデータ２１を用いてベクター図形を描画した結果を示す説明図である。図５（ａ）は１フレーム目の描画結果、図５（ｂ）は２フレーム目の描画結果、図５（ｃ）は３フレーム目の描画結果をそれぞれ示す。図より、ベクター図形３３の車が表示画面の左端から右端に向かって移動するアニメーション表示を実現していることが分かる。
【００２１】
判定部１１は、ベクター図形データ２２とアニメーションデータ２１とをメモリ２０から読み出し、アニメーションデータ２１で定義されるベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理の方法を判断する。具体的には、まず、判定部１１は、アニメーションのないベクター図形（第１のベクター図形とする）がアニメーションのあるベクター図形（第２のベクター図形とする）の描画に影響を与えるか否かを判定する。第１のベクター図形が第２のベクター図形の描画に影響を与える場合には、第１のベクター図形のうち、第２のベクター図形の描画に影響を与えない部分をアニメーションのない他のベクター図形（第３のベクター図形とする）と１つにまとめたビットマップイメージを生成し、第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成すると判定部１１は判断する。判断結果は、判定部１１からラスタライズ処理部１２へ伝えられる。また、判定部１１は、判断したラスタライズ処理の方法に応じてビットマップアニメーションデータ２４を作成する。ビットマップアニメーションデータ２４は、メモリ２０に格納される。
【００２２】
ここで、ビットマップアニメーションデータ２４について説明する。図６は、ビットマップアニメーションデータ２４の一例を示す図である。ビットマップアニメーションデータ２４とは、判定部１１で判断したラスタライズ処理の方法に応じて作成したビットマップイメージ２３を描画してアニメーション表示を行うため、描画するレイヤー、ビットマップイメージの識別子、描画する位置を与える座標変換行列をフレームごとに定義したデータである。レイヤーおよび座標変換行列はアニメーションデータ２１と同様に定義される。
【００２３】
ラスタライズ処理部１２は、判定部１１から送られてくる指示に基づき、メモリ２０から読み出したベクター図形データ２２をラスタライズ処理してビットマップイメージ２３を作成する。ビットマップイメージ２３は、メモリ２０に格納される。なお、「ラスタライズ処理部」のことを単に「ラスタライズ部」という場合がある。
【００２４】
描画部１３は、ビットマップアニメーションデータ２４の定義に基づき、それぞれのビットマップイメージ２３を変換行列で指定した所定の状態に配置し、ベクター図形を描画する。また、描画した結果を表示装置へ転送することにより、アニメーションの表示を行う。
【００２５】
次に、図形描画装置１０のハードウェア構成について説明する。図２（ａ）は実施の形態１における図形描画装置１０のハードウェア構成例を示す図である。図２（ｂ）は実施の形態１における図形描画装置１０の他のハードウェア構成例を示す図である。
【００２６】
図形描画装置１０、判定部１１、ラスタライズ処理部１２、描画部１３の機能は、処理回路（Ｐｒｏｃｅｓｓｉｎｇ  Ｃｉｒｃｕｉｔｒｙ）により実現される。処理回路は、専用のハードウェアであっても、メモリに格納されるプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、マイクロプロセッサ、マイクロコンピュータともいう）であってもよい。
【００２７】
図２（ａ）は、処理回路が専用のハードウェアである場合の構成を示す。処理回路６０ａは、表示装置６２とバスで接続される。処理回路６０ａは、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、またはこれらの組み合わせ等により実現される。図形描画装置１０、判定部１１、ラスタライズ処理部１２、描画部１３の機能をそれぞれ個別の処理回路６０ａで実現してもよいし、複数の機能をまとめて１つの処理回路６０ａで実現してもよい。例えば、描画部１３におけるビットマップイメージの描画は、２Ｄグラフィックスのハードウェアを使用してもよいし、３Ｄグラフィックス（ＯｐｅｎｇｌＥＳ）のテクスチャマッピング機能を使用して行ってもよい。
【００２８】
図２（ｂ）は、処理回路がＣＰＵである場合の構成を示す。処理回路６０ａは、メモリ６１および表示装置６２とバスで接続される。図形描画装置１０、判定部１１、ラスタライズ処理部１２、描画部１３の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせ等により実現される。ソフトウェアやファームウェアはプログラムとして記述され、判定ステップ、ラスタライズ処理ステップ、描画ステップが結果的に実行されることになるプログラムは、メモリ６１に格納される。処理回路６０ｂは、メモリ６１に記憶されたプログラムを読み出して実行することにより、判定部１１、ラスタライズ処理部１２、描画部１３の各機能を実現する。プログラムを実行して得た画像は、処理回路６０ａから表示装置６２へ転送される。
【００２９】
なお、図形描画装置１０、判定部１１、ラスタライズ処理部１２、描画部１３の機能は、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００３０】
メモリ６１は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等が該当する。表示装置６２は、液晶ディスプレイ等が該当する。メモリ６１には、アニメーションデータ２１、ベクター図形データ２２、ビットマップイメージ２３、ビットマップアニメーションデータ２４が格納される。処理回路がＣＰＵである場合には、プログラムも格納される。
【００３１】
次に、実施の形態１における図形描画装置１０の動作について説明する。図７は実施の形態１に係る図形描画装置１００において、ベクター図形をラスタライズ処理してビットマップイメージを作成する処理の動作例を示すフローチャートである。処理は、一番下のレイヤーに存在するベクター図形から順に行われる。
【００３２】
まず、判定部１１は、メモリ２０からアニメーションデータ２１を読み出し、その内容から一番下のレイヤーを選択する（ステップＳ００）。以降の説明では、判定部１１がその時点で選択しているレイヤーを選択レイヤーと言う場合がある。
【００３３】
次に、判定部１１は、アニメーションデータ２１内を走査し、選択レイヤーに存在するベクター図形がアニメーションを含むか否か、つまり、アニメーション表示されるベクター図形が選択レイヤーに存在するか否かを判定する（ステップＳ０１）。判定は、アニメーションデータ２１の形式に応じた方法で適宜行えばよい。例えば、図４に示すアニメーションデータ２１のように、描画位置を変更するベクター図形のみ再定義される場合には、アニメーションデータ２１に複数回現れるベクター図形はアニメーションを含むと判断する。一方、１回しか現れないベクター図形はアニメーションを含まないと判断する。
【００３４】
ステップＳ０１において、選択レイヤーに存在するベクター図形がアニメーションを含むと判断した場合、判定部１１は、そのベクター図形をラスタライズ処理して新しいビットマップイメージ２３を作成するよう、ラスタライズ処理部１２へ指示する。また、判定部１１は、一連のアニメーション表示を行う際にそのベクター図形の描画が及ぶ範囲を求める（ステップＳ０４）。ベクター図形の描画が及ぶ範囲とは、例えば、アニメーション表示されるベクター図形が、アニメーションの開始から終了までの間に描画される領域を全て含むような矩形領域（バウンディングボックス）で規定される。
【００３５】
ステップＳ０１において、選択レイヤーに存在するベクター図形がアニメーションを含まないと判断した場合、判定部１１は、更に、選択レイヤーより下のレイヤーにアニメーションを含むベクター図形が存在するか否かを判定する（ステップＳ０２）。
【００３６】
ステップＳ０２において、選択レイヤーより下のレイヤーにもアニメーションを含むベクター図形が存在しないと判断した場合、判定部１１は、選択レイヤーに存在するベクター図形をラスタライズ処理してビットマップイメージ２３を作成するようラスタライズ処理部１２へ指示する。また、選択レイヤーより下のレイヤーで、今回と同様の判断に至ったベクター図形をラスタライズ処理して作成したビットマップイメージ２３に、今回作成したビットマップイメージ２３を上書きするよう、ラスタライズ処理部１２へ指示する（ステップＳ０５）。なお、選択レイヤーより下のレイヤーがない場合や、選択レイヤーより下のレイヤーに同様の判断に至ったベクター図形が存在しない場合には、上書きする代わりに、新しいビットマップイメージ２３を作成する。
【００３７】
ステップＳ０２において、選択レイヤーより下のレイヤーにアニメーションを含むベクター図形が存在すると判断した場合、判定部１１は、更に、選択レイヤーに存在しアニメーションを含まないベクター図形が、選択レイヤーより下のレイヤーに存在しアニメーションを含むベクター図形の描画に影響を与えるか否かを判断する（ステップＳ０３）。影響を与えるとは、一方を描画し直したときに、他方の描画結果も変化することを意味する。よって、例えば、選択レイヤーに存在しアニメーションを含まないベクター図形の描画領域と、選択レイヤーより下のレイヤーに存在しアニメーションを含むベクター図形の描画領域との重なりの有無により、影響を与えるか否かを判断する。つまり、互いの描画領域に重なりがある場合には影響を与えると判断し、重なりがない場合には影響を与えないと判断する。なお、アニメーションを含むベクター図形の描画領域とは、１フレームのみの描画領域ではなく、ベクター図形の描画が及ぶ範囲を指す。
【００３８】
ステップＳ０３において、アニメーションを含むベクター図形の描画領域に重なりがないと判断した場合、判定部１１は、選択レイヤーに存在するベクター図形に対してステップ０５の処理を実行する。
【００３９】
ステップＳ０３において、アニメーションを含むベクター図形の描画領域に重なりがあると判断した場合、判定部１１は、選択レイヤーに存在しアニメーションを含むベクター図形をラスタライズ処理して作成したビットマップイメージ２３のうち、描画領域が重なる部分（影響を与える部分）は新しいビットマップイメージ２３として作成し、描画領域が重ならない部分（影響を与えない部分）はステップ０５と同様、選択レイヤーの下のレイヤーに存在しアニメーションを含まないベクター図形をラスタライズ処理して作成したビットマップイメージ２３に上書きするよう、ラスタライズ処理部１２へ指示する（ステップＳ０６）。
【００４０】
ラスタライズ処理部１２は、判定部１１からの指示に基づき、ベクター図形をラスタライズ処理してビットマップイメージ２３を作成し、メモリ２０に格納する。
【００４１】
その後、判定部１１は、アニメーションデータ２１に含まれる全レイヤーのベクター図形に対する処理が終わったか否かを判断する（ステップＳ０７）。具体的には、選択レイヤーが一番上のレイヤーの場合にはこの処理を終了し、そうでなければ選択レイヤーを１つ上のレイヤーに変更し（ステップＳ０８）、ステップＳ０１に戻る。
【００４２】
上記の処理により、全てのレイヤーの処理が終了したら、判定部１１は、メモリ２０上にビットマップアニメーションデータ２３を作成する。ビットマップアニメーションデータ２３は、アニメーションデータ２１に定義されているベクター図形のうち、上記の処理において、１つのビットマップイメージ２３にまとめたベクター図形の定義を１つにまとめたものである。
【００４３】
その後、描画処理部１３は、ビットマップアニメーションデータ２３に従い、フレームごとに指定されたビットマップイメージ２３を指定された位置に変形して貼り付けることにより描画を行う。また、描画結果を表示装置へ転送することによりアニメーションの表示を行う。
【００４４】
図形描画装置１０の動作について、より詳細に説明する。
【００４５】
ここでは、図５（ａ）〜（ｃ）に示すように、図３に示す８つのベクター図形３０〜３７で構成され、ベクター図形３３が左から右へ移動するアニメーション表示が行われる場合について説明する。図形描画装置１０には、アニメーション表示を行うために、図３に示すベクター図形３０〜３７を定義するベクター図形データ２２と、図４に示すアニメーションデータ２１とが与えられる。図８（ａ）〜（ｄ）は、処理中にメモリ２０上のビットマップイメージ２４が変化する様子、およびアニメーション表示した際にベクター図形の描画の及ぶ範囲を説明する説明図である。図９は、描画部１３がビットマップイメージ２４を所定の状態に配置する処理を説明する説明図である。
【００４６】
まず、判定部１１は、最初の処理対象として、レイヤー０を選択する。レイヤー０にはベクター図形３０が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３０がアニメーションを含むか否かを判定する。ベクター図形３０は１フレーム目にのみ存在することから、判定部１１は、ベクター図形３０はアニメーションを含まないと判断し、ステップＳ０２へ進む。
【００４７】
判定部１１は、更に、レイヤー０より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー０より下のレイヤーは無いので、判定部１１は、レイヤー０より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップＳ０５へ進む。
【００４８】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３０をラスタライズ処理するが、レイヤー０より下のレイヤーは存在しないので、ラスタライズ処理した結果を上書きするビットマップイメージがメモリ２０上に存在しない。よって、ラスタライズ部１２は、ベクター図形３０をラスタライズ処理し、変換行列Ａ３０で与えられる位置に配置したビットマップイメージ４０をメモリ２０上に新たに作成する。このとき、ベクター図形３０は、変換行列Ａ３０で与えられる位置に配置される。以上でレイヤー０の処理が終了する。
【００４９】
次に、判定部１１は、処理対象としてレイヤー０の１つ上のレイヤーであるレイヤー１を選択する。レイヤー１にはベクター図形３１が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３１がアニメーションを含むか否かを判定する。ベクター図形３１は１フレーム目にのみ存在することから、判定部１１は、ベクター図形３１はアニメーションを含まないと判断し、ステップＳ０２へ進む。
【００５０】
判定部１１は、更に、レイヤー１より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー１より下のレイヤー０に存在するベクター図形３０はアニメーションを含まないので、判定部１１は、レイヤー１より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップＳ０５へ進む。
【００５１】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３１をラスタライズ処理し、レイヤー０に存在するベクター図形３０をラスタライズ処理して作成したビットマップイメージ４０に上書きする。このとき、ベクター図形３１は、変換行列Ａ３１で与えられる位置に配置される。以上でレイヤー１の処理が終了する。
【００５２】
次に、判定部１１は、処理対象としてレイヤー２を選択する。レイヤー２にはベクター図形３２が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３２がアニメーションを含むか否かを判定する。ベクター図形３２は１フレーム目にのみ存在することから、判定部１１は、ベクター図形３１はアニメーションを含まないと判断し、ステップＳ０２へ進む。
【００５３】
判定部１１は、更に、レイヤー２より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー２より下のレイヤー０，１に存在するベクター図形３０，３１はアニメーションを含まないので、判定部１１は、レイヤー２より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップＳ０５へ進む。
【００５４】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３２をラスタライズ処理してビットマップイメージ４０に上書きする。このとき、ベクター図形３２は、変換行列Ａ３２で与えられる位置に配置される。以上でレイヤー２の処理が終了する。
【００５５】
図８（ａ）は、レイヤー２の処理により作成されたビットマップイメージ４０を示す図である。ビットマップイメージ４０は、レイヤー０，１，２に存在するベクター図形３０，３１，３２を１つにまとめたものである。
【００５６】
次に、判定部１１は、処理対象としてレイヤー３を選択する。レイヤー３にはベクター図形３３が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３３がアニメーションを含むか否かを判定する。ベクター図形３３は１，２，３フレーム目に存在することから、判定部１１は、ベクター図形３３はアニメーションを含むと判断し、ステップＳ０４へ進む。
【００５７】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３３をラスタライズ処理し、ステップＳ０５の処理で作成したビットマップイメージ４０とは別領域にビットマップイメージ４１を作成する。一方、判定部１１は、アニメーションデータ２１を走査し、アニメーションの開始から終了までの間に、画面上でベクター図形３３の描画が及ぶ範囲４２を求める。以上でレイヤー３の処理が終了する。
【００５８】
図８（ｂ）は、レイヤー３の処理により作成されたビットマップイメージ４１と、ベクター図形３３の描画の及ぶ範囲（描画範囲とも言う）４２を示す図である。ベクター図形３３の描画の及ぶ範囲は、例えば、アニメーション表示を行ったときにベクター図形３３が描画される領域をすべて含む矩形により規定してもよい。
【００５９】
次に、判定部１１は、処理対象としてレイヤー４を選択する。レイヤー４にはベクター図形３４が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３４がアニメーションを含むか否かを判定する。ベクター図形３４は１フレーム目にのみ存在することから、判定部１１は、ベクター図形３４はアニメーションを含まないと判断し、ステップＳ０２へ進む。
【００６０】
判定部１１は、更に、レイヤー４より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー４より下のレイヤー３に存在するベクター図形３３がアニメーションを含むので、判定部１１は、レイヤー４より下のレイヤーにアニメーションを含むベクター図形があると判断し、ステップＳ０３へ進む。
【００６１】
判定部１１は、更に、画面上でベクター図形３４の描画範囲を求め、この範囲が、ステップＳ０４で求めたベクター図形３３の描画が及ぶ範囲４２と重複するか否かを判定する。この例では、ベクター図形３４の描画範囲とベクター図形３３の描画範囲４２とは重複しない。よって、判定部１１は、ステップＳ０５へ進む。
【００６２】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３４をラスタライズ処理してビットマップイメージ４０に上書きする。このとき、ベクター図形３４は、変換行列Ａ３４で与えられる位置に配置される。以上でレイヤー４の処理が終了する。
【００６３】
次に、判定部１１は、処理対象としてレイヤー５を選択する。レイヤー５にはベクター図形３５が存在する。ベクター図形３５は、アニメーションを含まない。また、レイヤー５より下のレイヤー３にはアニメーションを含むベクター図形３３があるが、ベクター図形３５とベクター図形３３との描画範囲は重複しない。よって、ラスタライズ部１２は、レイヤー４の処理と同様、ベクター図形３５をラスタライズ処理してビットマップイメージ４０に上書きする。以上でレイヤー５の処理が終了する。
【００６４】
次に、判定部１１は、処理対象としてレイヤー６を選択する。レイヤー６にはベクター図形３６が存在する。ベクター図形３６は、アニメーションを含まない。また、レイヤー６より下のレイヤー３には、アニメーションを含むベクター図形３３があるが、ベクター図形３６とベクター図形３３との描画範囲は重複しない。よって、ラスタライズ部１２は、レイヤー４，５の処理と同様、ベクター図形３６をラスタライズ処理してビットマップイメージ４０に上書きする。以上でレイヤー６の処理が終了する。
【００６５】
図８（ｃ）は、レイヤー６の処理により作成されたビットマップイメージ４０を示す図である。ビットマップイメージ４０は、レイヤー０，１，２，４，５，６に存在するベクター図形３０，３１，３２，３４，３５，３６を１つにまとめたものである。
【００６６】
最後に、判定部１１は、処理対象として、一番下のレイヤーであるレイヤー７を選択する。レイヤー７にはベクター図形３７が存在する。判定部１１は、アニメーションデータ２１内を走査し、ベクター図形３７がアニメーションを含むか否かを判定する。ベクター図形３７は１フレーム目にのみ存在することから、判定部１１は、ベクター図形３７はアニメーションを含まないと判断し、ステップＳ０２へ進む。
【００６７】
判定部１１は、更に、レイヤー７より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー７より下のレイヤー３に存在するベクター図形３３がアニメーションを含むので、判定部１１は、レイヤー７より下のレイヤーにアニメーションを含むベクター図形があると判断し、ステップＳ０３へ進む。
【００６８】
判定部１１は、更に、画面上でベクター図形３７の描画範囲４３を求め、この範囲がベクター図形３３の描画範囲４２と重複するか否かを判定する。この例では、ベクター図形３７の描画範囲４３とベクター図形３３の描画範囲４２とは一部重複する。よって、判定部１１は、ステップＳ０６へ進む。
【００６９】
ラスタライズ部１２は、判定部１１からの指示に従い、ベクター図形３７のうち、ベクター図形３３の描画範囲４２と重複しない部分をラスタライズ処理してビットマップイメージ４０に上書きする。また、重複する部分をラスタライズ処理した結果を新たなビットマップイメージ４３としてメモリ２０上の別領域に作成する。以上で全てのレイヤーの処理が終了する。
【００７０】
図８（ｄ）は、レイヤー７の処理により作成されたビットマップイメージ４０とビットマップイメージ４３とを示す図である。ビットマップイメージ４０は、ベクター図形３０，３１，３２，３４，３５，３６とベクター図形３７の一部を１つにまとめたものである。
【００７１】
すべてのレイヤーの処理が終了すると、判定部１１は、メモリ２０上にビットマップアニメーションデータ２３を作成する。図６に示すように、ビットマップアニメーションデータ２３は、上記の処理で作成したビットマップイメージ４０，４１，４３を描画するレイヤー、および描画する位置を定義する変換行列をフレーム毎に定義する。レイヤー、変換行列は、ビットマップイメージの元となるベクター図形に基づいて設定される。例えば、ビットマップイメージ４０は、それぞれのベクター図形をアニメーションデータ２１の変換行列で定義される位置に上書きして作成したものなので、ビットマップイメージ４０の変換行列Ａ４０は、ビットマップイメージ４０を基準位置に描画するように与えられる。ビットマップイメージ４１は、ベクター図形３３のみラスタライズ処理したものなので、ビットマップイメージ４１の変換行列Ａ４１は変換行列Ａ３３と同一となる。ビットマップイメージ４３は、ベクター図形３７の一部をラスタライズ処理したものなので、ビットマップイメージ４３の変換行列Ａ４３は、ベクター図形３７からベクター図形３３を抜き出した位置に対応する分だけ、ベクター図形３７の描画位置をずらした位置にビットマップイメージ４３を描画するよう与えられる。
【００７２】
その後、図９に示すように、ビットマップアニメーションデータ２３で指定されたビットマップイメージ４０，４１，４３を変換行列Ａ４０，４１，４３で定義される位置に貼り付けて合成することにより、表示画面に表示する画像５０を描画する。画像５０は表示装置に転送される。
【００７３】
なお、上記の例では、ベクター図形３０，３１，３２，３４，３５，３６とベクター図形３７の一部を１つにまとめた場合について説明したが、必ずしも全てを１つにまとめる必要はなく、ベクター図形３７のうち、ベクター図形３３のアニメーションに影響を与えない部分をベクター図形３０，３１，３２，３４，３５，３６の少なくとも１つとまとめることで、無駄な重なり描画を削減することができるものである。つまり、アニメーションのないベクター図形がアニメーションのあるベクター図形の描画に影響を与える場合に、アニメーションのないベクター図形のうち、アニメーションのあるベクター図形の描画に影響を与えない部分をアニメーションのない他のベクター図形と１つにまとめたビットマップイメージを生成することで、無駄な重なり描画を削減することができる。
【００７４】
以上のように、本発明の実施の形態は、ベクター図形を描画してアニメーション表示を行う図形描画装置であって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定部と、判定部が判断したラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画部とを備え、判定部は、アニメーションのない第１のベクター図形がアニメーションのある第２のベクター図形の描画に影響を与えるか否かを判定し、第２のベクター図形の描画に影響を与える場合には、第１のベクター図形のうち、第２のベクター図形の描画に影響を与えない部分をアニメーションのない第３のベクター図形と１つにまとめたビットマップイメージを生成し、第２のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するようラスタライズ部に指示する図形描画装置である。
【００７５】
このように、アニメーションを含むベクター図形の描画に影響を与えるベクター図形のうち、アニメーションを含むベクター図形と重なる領域については、その領域のみでビットマップイメージを作成し、重ならない領域については、アニメーションを含まない他のベクター図形とまとめて１つのビットマップイメージを作成するように構成することで、ビットマップイメージの容量を削減するとともに、ビットマップイメージの描画処理において無駄な重なり描画を削減し、高速なアニメーション表示を実現することができる。
【００７６】
よって、ベクター図形をラスタライズする専用のハードウェアの無い組込み機器においても、無駄な重なり描画を省きスムーズなアニメーション表示を実現することができる。
【００７７】
なお、上記の処理は、アニメーションを含むベクター図形２２が１つの場合で説明したが、複数存在する場合も同様に適用することができる。
【符号の説明】
【００７８】
１０  図形描画装置、１１  判定部、１２  ラスタライズ処理部、１３  描画処理部、２０  メモリ、２１  アニメーションデータ、２２  ベクター図形データ、２３  ビットマップイメージ、２４  ビットマップアニメーションデータ、６０ａ  処理回路、６０ｂ  処理回路、６１  メモリ、６２  表示装置。
【図１】
0006478888.tif 000002
【図２】
0006478888.tif 000003
【図３】
0006478888.tif 000004
【図４】
0006478888.tif 000005
【図５】
0006478888.tif 000006
【図６】
0006478888.tif 000007
【図７】
0006478888.tif 000008
【図８】
0006478888.tif 000009
【図９】
0006478888.tif 000010