JP6478888B2 - 図形描画装置および図形描画プログラム - Google Patents

図形描画装置および図形描画プログラム Download PDF

Info

Publication number
JP6478888B2
JP6478888B2 JP2015191149A JP2015191149A JP6478888B2 JP 6478888 B2 JP6478888 B2 JP 6478888B2 JP 2015191149 A JP2015191149 A JP 2015191149A JP 2015191149 A JP2015191149 A JP 2015191149A JP 6478888 B2 JP6478888 B2 JP 6478888B2
Authority
JP
Japan
Prior art keywords
vector graphic
vector
animation
graphic
layer
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.)
Active
Application number
JP2015191149A
Other languages
English (en)
Other versions
JP2017068419A (ja
Inventor
鳥居 晃
晃 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2015191149A priority Critical patent/JP6478888B2/ja
Publication of JP2017068419A publication Critical patent/JP2017068419A/ja
Application granted granted Critical
Publication of JP6478888B2 publication Critical patent/JP6478888B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

この発明は、図形画像を描画してアニメーション表示を行う図形描画装置および図形描画装置プログラムに関する。
ベクター図形は、輪郭を構成する直線または曲線の頂点または制御点と、塗り潰し色等の属性で定義されており、ビットマップ形式のデータ(ラスタデータ)よりも小さいデータサイズで図形等を表現することができる。また、フレームごとに拡大、縮小、回転、平行移動等の座標変換を行うことによりアニメーション表示を行うことができる。ベクター図形を画面に表示する際にはラスタライズ処理を行い、ベクター図形データからビットマップイメージを生成する必要がある。ベクター図形データとは、ベクター図形を定義するためのデータである。
ベクター図形をアニメーション表示するには、フレームごとにラスタライズ処理を行う必要があるが、ベクター図形のラスタライズ処理は負荷の高い処理である。このため、組込み機器のようなCPU(Central Processing Unit)処理性能の低いシステムにおいて、1秒あたり30フレームあるいは60フレームなどのスムーズなアニメーション表示を実現するには、ベクター図形をラスタライズ処理する専用のハードウェアが必要となる。
これに対し、特許文献1は、ベクター図形をラスタライズする専用のハードウェアが無い場合に、ベクター図形のアニメーション表示を実現する方法を開示している。具体的には、事前にベクター図形データをラスタライズ処理してビットマップイメージを作成し、このビットマップイメージに加工を施して描画することにより、アニメーション表示を行う方法が提案されている。
特開2007−18157号公報
しかしながら、特許文献1による方式では、個々のベクター図形データをそれぞれ別々のビットマップイメージにラスタライズ処理して保持することになる。そのため、ベクター図形同士の重なりが多いコンテンツでは、ビットマップイメージの保持に必要なメモリ領域が膨大となり、また、アニメーション表示する際にビットマップイメージの貼り付けに要する処理時間が増えるなどの問題があった。
この発明は、上記のような問題点を解決するためになされたものであり、無駄な重なり描画を省き、スムーズなアニメーション表示を実現する図形描画装置を提供することを目的とするものである。
本発明は、ベクター図形を描画してアニメーション表示を行う図形描画装置であって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定部と、判定部が判断したラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画部とを備え、判定部は、アニメーションのない第1のベクター図形がアニメーションのある第2のベクター図形の描画に影響を与えるか否かを判定し、第2のベクター図形の描画に影響を与える場合には、第1のベクター図形のうち、第2のベクター図形の描画に影響を与えない部分をアニメーションのない第3のベクター図形と1つにまとめたビットマップイメージを生成し、第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するようラスタライズ部に指示する図形描画装置である。
また、本発明は、ベクター図形の画像を描画してアニメーション表示を行う処理をコンピュータに実行させる図形描画プログラムであって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定ステップと、ラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズステップと、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画ステップとをコンピュータに実行させる図形描画プログラムでもある。また、判定ステップは、アニメーションのない第1のベクター図形がアニメーションのある第2のベクター図形の描画に影響を与えるか否かを判定する。ラスタライズステップは、第2のベクター図形の描画に影響を与えると判定された場合、第1のベクター図形のうち、第2のベクター図形の描画に影響を与えない部分をアニメーションのない第3のベクター図形と1つにまとめたビットマップイメージを生成し、第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成する。
本発明にかかる図形描画装置によれば、上記のように構成したことにより、ビットマップイメージを保持するためのメモリ領域を削減し、スムーズなアニメーション表示を実現することができる。
本発明の実施の形態1における図形描画装置の構成例を示すブロック図である。 本発明の実施の形態1における図形描画装置のハードウェア構成例を示す図である。 本発明の実施の形態1におけるベクター図形の一例を示す説明図である。 本発明の実施の形態1におけるアニメーションデータの一例を示す説明図である。 アニメーション表示の一例を示す説明図である。 本発明の実施の形態1におけるビットマップアニメーションデータの一例を示す説明図である。 本発明の実施の形態1における図形描画装置の処理の流れを示すフローチャートである。 本発明の実施の形態1におけるビットマップイメージの一例を示す説明図である。 本発明の実施の形態1における描画処理の一例を示す説明図である。
以下、本発明の画像処理装置および画像処理方法の実施の形態について、図面を用いて説明する。なお、各図において、同一または相当する部分には同一の符号を示す。
実施の形態1.
まず、本発明の実施の形態1における図形描画装置10の構成について説明する。図1は、本発明の実施の形態1における図形描画装置10の構成の一例を示すブロック図である。
図形描画装置10は、ベクター図形データ22とアニメーションデータ21とに基づいて、各ベクター図形のラスタライズ処理の方法を判定する判定部11、判定部11から指示される処理方法でベクター図形データをラスタライズ処理してビットマップイメージを作成するラスタライズ処理部12、ラスタライズ処理部で作成したビットマップイメージを貼り付け(合成し)、表示画面に表示する画像を作成する描画部13で構成される。また、図形描画装置10は、各種データを格納するためのメモリ20、および作成した画像を表示する表示装置(図示せず)と接続される。なお、以下では「ラスタライズ処理」のことを単に「ラスタライズ」という場合がある。
ここで、ベクター図形データ22およびアニメーションデータ21について図を用いて説明する。図3は、ベクター図形データ22により定義されるベクター図形の一例を示す図である。図4は、アニメーションデータ21の一例を示す図である。
ベクター図形データ22とは、ベクター図形を構成する輪郭の情報や塗り潰し色等の属性を定義したデータである。ベクター図形30,31,32,33,34,35,36,37は、それぞれ個別のベクター図形データ22により表される。なお、ベクター図形33の右側に記載されている破線の矢印は、ベクター図形33が右側に移動するアニメーションとして表示されることを表すものである。
アニメーションデータ21とは、ベクター図形を描画してアニメーション表示を行うため、ベクター図形の識別子と、そのベクター図形を画面上に描画する位置とをフレームごとに定義したデータである。描画する位置は、座標変換行列(単に変換行列とも言う)により与えられるものとする。座標変換行列は、ベクター図形の描画位置だけでなくサイズ、回転量等、様々な描画状態を定義することができる。また、各ベクター図形の上下関係(画面に垂直な方向において、観察者に近い側を上、遠い側を下とする)を示すために、各ベクター図形を描画するレイヤーの情報も含まれる。図4の例では、レイヤー0が最も下の層、レイヤー7が最も上の層である。
図示したアニメーションデータ21の1フレーム目では、レイヤー0にベクター図形30が変換行列A30で定義した状態に描画される。レイヤー1〜7についても同様に描画される。2フレーム目では、レイヤー3にベクター図形33が変換行列A33’で定義した状態に描画され、3フレーム目では、レイヤー3にベクター図形33が変換行列A33’’で定義した状態に描画される。つまり、1フレーム目では、全てのレイヤー0のベクター図形が描画され、2,3フレーム目では、レイヤー3のベクター図形のみ再描画される。これにより、ベクター図形33の描画状態がフレーム毎に変化し、アニメーション表示が実現される。
このように、アニメーションデータ21では、変換行列、つまり描画状態が変化するベクター図形のみが再定義される。よって、アニメーションのあるベクター図形は、アニメーションデータ21に複数回現れる。
図5は、図3,4に示したベクター図形データ22とアニメーションデータ21を用いてベクター図形を描画した結果を示す説明図である。図5(a)は1フレーム目の描画結果、図5(b)は2フレーム目の描画結果、図5(c)は3フレーム目の描画結果をそれぞれ示す。図より、ベクター図形33の車が表示画面の左端から右端に向かって移動するアニメーション表示を実現していることが分かる。
判定部11は、ベクター図形データ22とアニメーションデータ21とをメモリ20から読み出し、アニメーションデータ21で定義されるベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理の方法を判断する。具体的には、まず、判定部11は、アニメーションのないベクター図形(第1のベクター図形とする)がアニメーションのあるベクター図形(第2のベクター図形とする)の描画に影響を与えるか否かを判定する。第1のベクター図形が第2のベクター図形の描画に影響を与える場合には、第1のベクター図形のうち、第2のベクター図形の描画に影響を与えない部分をアニメーションのない他のベクター図形(第3のベクター図形とする)と1つにまとめたビットマップイメージを生成し、第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成すると判定部11は判断する。判断結果は、判定部11からラスタライズ処理部12へ伝えられる。また、判定部11は、判断したラスタライズ処理の方法に応じてビットマップアニメーションデータ24を作成する。ビットマップアニメーションデータ24は、メモリ20に格納される。
ここで、ビットマップアニメーションデータ24について説明する。図6は、ビットマップアニメーションデータ24の一例を示す図である。ビットマップアニメーションデータ24とは、判定部11で判断したラスタライズ処理の方法に応じて作成したビットマップイメージ23を描画してアニメーション表示を行うため、描画するレイヤー、ビットマップイメージの識別子、描画する位置を与える座標変換行列をフレームごとに定義したデータである。レイヤーおよび座標変換行列はアニメーションデータ21と同様に定義される。
ラスタライズ処理部12は、判定部11から送られてくる指示に基づき、メモリ20から読み出したベクター図形データ22をラスタライズ処理してビットマップイメージ23を作成する。ビットマップイメージ23は、メモリ20に格納される。なお、「ラスタライズ処理部」のことを単に「ラスタライズ部」という場合がある。
描画部13は、ビットマップアニメーションデータ24の定義に基づき、それぞれのビットマップイメージ23を変換行列で指定した所定の状態に配置し、ベクター図形を描画する。また、描画した結果を表示装置へ転送することにより、アニメーションの表示を行う。
次に、図形描画装置10のハードウェア構成について説明する。図2(a)は実施の形態1における図形描画装置10のハードウェア構成例を示す図である。図2(b)は実施の形態1における図形描画装置10の他のハードウェア構成例を示す図である。
図形描画装置10、判定部11、ラスタライズ処理部12、描画部13の機能は、処理回路(Processing Circuitry)により実現される。処理回路は、専用のハードウェアであっても、メモリに格納されるプログラムを実行するCPU(Central Processing Unit、マイクロプロセッサ、マイクロコンピュータともいう)であってもよい。
図2(a)は、処理回路が専用のハードウェアである場合の構成を示す。処理回路60aは、表示装置62とバスで接続される。処理回路60aは、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらの組み合わせ等により実現される。図形描画装置10、判定部11、ラスタライズ処理部12、描画部13の機能をそれぞれ個別の処理回路60aで実現してもよいし、複数の機能をまとめて1つの処理回路60aで実現してもよい。例えば、描画部13におけるビットマップイメージの描画は、2Dグラフィックスのハードウェアを使用してもよいし、3Dグラフィックス(OpenglES)のテクスチャマッピング機能を使用して行ってもよい。
図2(b)は、処理回路がCPUである場合の構成を示す。処理回路60aは、メモリ61および表示装置62とバスで接続される。図形描画装置10、判定部11、ラスタライズ処理部12、描画部13の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせ等により実現される。ソフトウェアやファームウェアはプログラムとして記述され、判定ステップ、ラスタライズ処理ステップ、描画ステップが結果的に実行されることになるプログラムは、メモリ61に格納される。処理回路60bは、メモリ61に記憶されたプログラムを読み出して実行することにより、判定部11、ラスタライズ処理部12、描画部13の各機能を実現する。プログラムを実行して得た画像は、処理回路60aから表示装置62へ転送される。
なお、図形描画装置10、判定部11、ラスタライズ処理部12、描画部13の機能は、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
メモリ61は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)等が該当する。表示装置62は、液晶ディスプレイ等が該当する。メモリ61には、アニメーションデータ21、ベクター図形データ22、ビットマップイメージ23、ビットマップアニメーションデータ24が格納される。処理回路がCPUである場合には、プログラムも格納される。
次に、実施の形態1における図形描画装置10の動作について説明する。図7は実施の形態1に係る図形描画装置100において、ベクター図形をラスタライズ処理してビットマップイメージを作成する処理の動作例を示すフローチャートである。処理は、一番下のレイヤーに存在するベクター図形から順に行われる。
まず、判定部11は、メモリ20からアニメーションデータ21を読み出し、その内容から一番下のレイヤーを選択する(ステップS00)。以降の説明では、判定部11がその時点で選択しているレイヤーを選択レイヤーと言う場合がある。
次に、判定部11は、アニメーションデータ21内を走査し、選択レイヤーに存在するベクター図形がアニメーションを含むか否か、つまり、アニメーション表示されるベクター図形が選択レイヤーに存在するか否かを判定する(ステップS01)。判定は、アニメーションデータ21の形式に応じた方法で適宜行えばよい。例えば、図4に示すアニメーションデータ21のように、描画位置を変更するベクター図形のみ再定義される場合には、アニメーションデータ21に複数回現れるベクター図形はアニメーションを含むと判断する。一方、1回しか現れないベクター図形はアニメーションを含まないと判断する。
ステップS01において、選択レイヤーに存在するベクター図形がアニメーションを含むと判断した場合、判定部11は、そのベクター図形をラスタライズ処理して新しいビットマップイメージ23を作成するよう、ラスタライズ処理部12へ指示する。また、判定部11は、一連のアニメーション表示を行う際にそのベクター図形の描画が及ぶ範囲を求める(ステップS04)。ベクター図形の描画が及ぶ範囲とは、例えば、アニメーション表示されるベクター図形が、アニメーションの開始から終了までの間に描画される領域を全て含むような矩形領域(バウンディングボックス)で規定される。
ステップS01において、選択レイヤーに存在するベクター図形がアニメーションを含まないと判断した場合、判定部11は、更に、選択レイヤーより下のレイヤーにアニメーションを含むベクター図形が存在するか否かを判定する(ステップS02)。
ステップS02において、選択レイヤーより下のレイヤーにもアニメーションを含むベクター図形が存在しないと判断した場合、判定部11は、選択レイヤーに存在するベクター図形をラスタライズ処理してビットマップイメージ23を作成するようラスタライズ処理部12へ指示する。また、選択レイヤーより下のレイヤーで、今回と同様の判断に至ったベクター図形をラスタライズ処理して作成したビットマップイメージ23に、今回作成したビットマップイメージ23を上書きするよう、ラスタライズ処理部12へ指示する(ステップS05)。なお、選択レイヤーより下のレイヤーがない場合や、選択レイヤーより下のレイヤーに同様の判断に至ったベクター図形が存在しない場合には、上書きする代わりに、新しいビットマップイメージ23を作成する。
ステップS02において、選択レイヤーより下のレイヤーにアニメーションを含むベクター図形が存在すると判断した場合、判定部11は、更に、選択レイヤーに存在しアニメーションを含まないベクター図形が、選択レイヤーより下のレイヤーに存在しアニメーションを含むベクター図形の描画に影響を与えるか否かを判断する(ステップS03)。影響を与えるとは、一方を描画し直したときに、他方の描画結果も変化することを意味する。よって、例えば、選択レイヤーに存在しアニメーションを含まないベクター図形の描画領域と、選択レイヤーより下のレイヤーに存在しアニメーションを含むベクター図形の描画領域との重なりの有無により、影響を与えるか否かを判断する。つまり、互いの描画領域に重なりがある場合には影響を与えると判断し、重なりがない場合には影響を与えないと判断する。なお、アニメーションを含むベクター図形の描画領域とは、1フレームのみの描画領域ではなく、ベクター図形の描画が及ぶ範囲を指す。
ステップS03において、アニメーションを含むベクター図形の描画領域に重なりがないと判断した場合、判定部11は、選択レイヤーに存在するベクター図形に対してステップ05の処理を実行する。
ステップS03において、アニメーションを含むベクター図形の描画領域に重なりがあると判断した場合、判定部11は、選択レイヤーに存在しアニメーションを含むベクター図形をラスタライズ処理して作成したビットマップイメージ23のうち、描画領域が重なる部分(影響を与える部分)は新しいビットマップイメージ23として作成し、描画領域が重ならない部分(影響を与えない部分)はステップ05と同様、選択レイヤーの下のレイヤーに存在しアニメーションを含まないベクター図形をラスタライズ処理して作成したビットマップイメージ23に上書きするよう、ラスタライズ処理部12へ指示する(ステップS06)。
ラスタライズ処理部12は、判定部11からの指示に基づき、ベクター図形をラスタライズ処理してビットマップイメージ23を作成し、メモリ20に格納する。
その後、判定部11は、アニメーションデータ21に含まれる全レイヤーのベクター図形に対する処理が終わったか否かを判断する(ステップS07)。具体的には、選択レイヤーが一番上のレイヤーの場合にはこの処理を終了し、そうでなければ選択レイヤーを1つ上のレイヤーに変更し(ステップS08)、ステップS01に戻る。
上記の処理により、全てのレイヤーの処理が終了したら、判定部11は、メモリ20上にビットマップアニメーションデータ23を作成する。ビットマップアニメーションデータ23は、アニメーションデータ21に定義されているベクター図形のうち、上記の処理において、1つのビットマップイメージ23にまとめたベクター図形の定義を1つにまとめたものである。
その後、描画処理部13は、ビットマップアニメーションデータ23に従い、フレームごとに指定されたビットマップイメージ23を指定された位置に変形して貼り付けることにより描画を行う。また、描画結果を表示装置へ転送することによりアニメーションの表示を行う。
図形描画装置10の動作について、より詳細に説明する。
ここでは、図5(a)〜(c)に示すように、図3に示す8つのベクター図形30〜37で構成され、ベクター図形33が左から右へ移動するアニメーション表示が行われる場合について説明する。図形描画装置10には、アニメーション表示を行うために、図3に示すベクター図形30〜37を定義するベクター図形データ22と、図4に示すアニメーションデータ21とが与えられる。図8(a)〜(d)は、処理中にメモリ20上のビットマップイメージ24が変化する様子、およびアニメーション表示した際にベクター図形の描画の及ぶ範囲を説明する説明図である。図9は、描画部13がビットマップイメージ24を所定の状態に配置する処理を説明する説明図である。
まず、判定部11は、最初の処理対象として、レイヤー0を選択する。レイヤー0にはベクター図形30が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形30がアニメーションを含むか否かを判定する。ベクター図形30は1フレーム目にのみ存在することから、判定部11は、ベクター図形30はアニメーションを含まないと判断し、ステップS02へ進む。
判定部11は、更に、レイヤー0より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー0より下のレイヤーは無いので、判定部11は、レイヤー0より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップS05へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形30をラスタライズ処理するが、レイヤー0より下のレイヤーは存在しないので、ラスタライズ処理した結果を上書きするビットマップイメージがメモリ20上に存在しない。よって、ラスタライズ部12は、ベクター図形30をラスタライズ処理し、変換行列A30で与えられる位置に配置したビットマップイメージ40をメモリ20上に新たに作成する。このとき、ベクター図形30は、変換行列A30で与えられる位置に配置される。以上でレイヤー0の処理が終了する。
次に、判定部11は、処理対象としてレイヤー0の1つ上のレイヤーであるレイヤー1を選択する。レイヤー1にはベクター図形31が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形31がアニメーションを含むか否かを判定する。ベクター図形31は1フレーム目にのみ存在することから、判定部11は、ベクター図形31はアニメーションを含まないと判断し、ステップS02へ進む。
判定部11は、更に、レイヤー1より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー1より下のレイヤー0に存在するベクター図形30はアニメーションを含まないので、判定部11は、レイヤー1より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップS05へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形31をラスタライズ処理し、レイヤー0に存在するベクター図形30をラスタライズ処理して作成したビットマップイメージ40に上書きする。このとき、ベクター図形31は、変換行列A31で与えられる位置に配置される。以上でレイヤー1の処理が終了する。
次に、判定部11は、処理対象としてレイヤー2を選択する。レイヤー2にはベクター図形32が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形32がアニメーションを含むか否かを判定する。ベクター図形32は1フレーム目にのみ存在することから、判定部11は、ベクター図形31はアニメーションを含まないと判断し、ステップS02へ進む。
判定部11は、更に、レイヤー2より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー2より下のレイヤー0,1に存在するベクター図形30,31はアニメーションを含まないので、判定部11は、レイヤー2より下のレイヤーにアニメーションを含むベクター図形はないと判断し、ステップS05へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形32をラスタライズ処理してビットマップイメージ40に上書きする。このとき、ベクター図形32は、変換行列A32で与えられる位置に配置される。以上でレイヤー2の処理が終了する。
図8(a)は、レイヤー2の処理により作成されたビットマップイメージ40を示す図である。ビットマップイメージ40は、レイヤー0,1,2に存在するベクター図形30,31,32を1つにまとめたものである。
次に、判定部11は、処理対象としてレイヤー3を選択する。レイヤー3にはベクター図形33が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形33がアニメーションを含むか否かを判定する。ベクター図形33は1,2,3フレーム目に存在することから、判定部11は、ベクター図形33はアニメーションを含むと判断し、ステップS04へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形33をラスタライズ処理し、ステップS05の処理で作成したビットマップイメージ40とは別領域にビットマップイメージ41を作成する。一方、判定部11は、アニメーションデータ21を走査し、アニメーションの開始から終了までの間に、画面上でベクター図形33の描画が及ぶ範囲42を求める。以上でレイヤー3の処理が終了する。
図8(b)は、レイヤー3の処理により作成されたビットマップイメージ41と、ベクター図形33の描画の及ぶ範囲(描画範囲とも言う)42を示す図である。ベクター図形33の描画の及ぶ範囲は、例えば、アニメーション表示を行ったときにベクター図形33が描画される領域をすべて含む矩形により規定してもよい。
次に、判定部11は、処理対象としてレイヤー4を選択する。レイヤー4にはベクター図形34が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形34がアニメーションを含むか否かを判定する。ベクター図形34は1フレーム目にのみ存在することから、判定部11は、ベクター図形34はアニメーションを含まないと判断し、ステップS02へ進む。
判定部11は、更に、レイヤー4より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー4より下のレイヤー3に存在するベクター図形33がアニメーションを含むので、判定部11は、レイヤー4より下のレイヤーにアニメーションを含むベクター図形があると判断し、ステップS03へ進む。
判定部11は、更に、画面上でベクター図形34の描画範囲を求め、この範囲が、ステップS04で求めたベクター図形33の描画が及ぶ範囲42と重複するか否かを判定する。この例では、ベクター図形34の描画範囲とベクター図形33の描画範囲42とは重複しない。よって、判定部11は、ステップS05へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形34をラスタライズ処理してビットマップイメージ40に上書きする。このとき、ベクター図形34は、変換行列A34で与えられる位置に配置される。以上でレイヤー4の処理が終了する。
次に、判定部11は、処理対象としてレイヤー5を選択する。レイヤー5にはベクター図形35が存在する。ベクター図形35は、アニメーションを含まない。また、レイヤー5より下のレイヤー3にはアニメーションを含むベクター図形33があるが、ベクター図形35とベクター図形33との描画範囲は重複しない。よって、ラスタライズ部12は、レイヤー4の処理と同様、ベクター図形35をラスタライズ処理してビットマップイメージ40に上書きする。以上でレイヤー5の処理が終了する。
次に、判定部11は、処理対象としてレイヤー6を選択する。レイヤー6にはベクター図形36が存在する。ベクター図形36は、アニメーションを含まない。また、レイヤー6より下のレイヤー3には、アニメーションを含むベクター図形33があるが、ベクター図形36とベクター図形33との描画範囲は重複しない。よって、ラスタライズ部12は、レイヤー4,5の処理と同様、ベクター図形36をラスタライズ処理してビットマップイメージ40に上書きする。以上でレイヤー6の処理が終了する。
図8(c)は、レイヤー6の処理により作成されたビットマップイメージ40を示す図である。ビットマップイメージ40は、レイヤー0,1,2,4,5,6に存在するベクター図形30,31,32,34,35,36を1つにまとめたものである。
最後に、判定部11は、処理対象として、一番下のレイヤーであるレイヤー7を選択する。レイヤー7にはベクター図形37が存在する。判定部11は、アニメーションデータ21内を走査し、ベクター図形37がアニメーションを含むか否かを判定する。ベクター図形37は1フレーム目にのみ存在することから、判定部11は、ベクター図形37はアニメーションを含まないと判断し、ステップS02へ進む。
判定部11は、更に、レイヤー7より下のレイヤーにアニメーションを含むベクター図形があるか否かを判断する。レイヤー7より下のレイヤー3に存在するベクター図形33がアニメーションを含むので、判定部11は、レイヤー7より下のレイヤーにアニメーションを含むベクター図形があると判断し、ステップS03へ進む。
判定部11は、更に、画面上でベクター図形37の描画範囲43を求め、この範囲がベクター図形33の描画範囲42と重複するか否かを判定する。この例では、ベクター図形37の描画範囲43とベクター図形33の描画範囲42とは一部重複する。よって、判定部11は、ステップS06へ進む。
ラスタライズ部12は、判定部11からの指示に従い、ベクター図形37のうち、ベクター図形33の描画範囲42と重複しない部分をラスタライズ処理してビットマップイメージ40に上書きする。また、重複する部分をラスタライズ処理した結果を新たなビットマップイメージ43としてメモリ20上の別領域に作成する。以上で全てのレイヤーの処理が終了する。
図8(d)は、レイヤー7の処理により作成されたビットマップイメージ40とビットマップイメージ43とを示す図である。ビットマップイメージ40は、ベクター図形30,31,32,34,35,36とベクター図形37の一部を1つにまとめたものである。
すべてのレイヤーの処理が終了すると、判定部11は、メモリ20上にビットマップアニメーションデータ23を作成する。図6に示すように、ビットマップアニメーションデータ23は、上記の処理で作成したビットマップイメージ40,41,43を描画するレイヤー、および描画する位置を定義する変換行列をフレーム毎に定義する。レイヤー、変換行列は、ビットマップイメージの元となるベクター図形に基づいて設定される。例えば、ビットマップイメージ40は、それぞれのベクター図形をアニメーションデータ21の変換行列で定義される位置に上書きして作成したものなので、ビットマップイメージ40の変換行列A40は、ビットマップイメージ40を基準位置に描画するように与えられる。ビットマップイメージ41は、ベクター図形33のみラスタライズ処理したものなので、ビットマップイメージ41の変換行列A41は変換行列A33と同一となる。ビットマップイメージ43は、ベクター図形37の一部をラスタライズ処理したものなので、ビットマップイメージ43の変換行列A43は、ベクター図形37からベクター図形33を抜き出した位置に対応する分だけ、ベクター図形37の描画位置をずらした位置にビットマップイメージ43を描画するよう与えられる。
その後、図9に示すように、ビットマップアニメーションデータ23で指定されたビットマップイメージ40,41,43を変換行列A40,41,43で定義される位置に貼り付けて合成することにより、表示画面に表示する画像50を描画する。画像50は表示装置に転送される。
なお、上記の例では、ベクター図形30,31,32,34,35,36とベクター図形37の一部を1つにまとめた場合について説明したが、必ずしも全てを1つにまとめる必要はなく、ベクター図形37のうち、ベクター図形33のアニメーションに影響を与えない部分をベクター図形30,31,32,34,35,36の少なくとも1つとまとめることで、無駄な重なり描画を削減することができるものである。つまり、アニメーションのないベクター図形がアニメーションのあるベクター図形の描画に影響を与える場合に、アニメーションのないベクター図形のうち、アニメーションのあるベクター図形の描画に影響を与えない部分をアニメーションのない他のベクター図形と1つにまとめたビットマップイメージを生成することで、無駄な重なり描画を削減することができる。
以上のように、本発明の実施の形態は、ベクター図形を描画してアニメーション表示を行う図形描画装置であって、フレームごとに定義されたベクター図形の描画状態に基づいて、ベクター図形のラスタライズ処理方法を判断する判定部と、判定部が判断したラスタライズ処理方法に基づいてベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、ビットマップイメージを所定の状態に配置してベクター図形を描画する描画部とを備え、判定部は、アニメーションのない第1のベクター図形がアニメーションのある第2のベクター図形の描画に影響を与えるか否かを判定し、第2のベクター図形の描画に影響を与える場合には、第1のベクター図形のうち、第2のベクター図形の描画に影響を与えない部分をアニメーションのない第3のベクター図形と1つにまとめたビットマップイメージを生成し、第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するようラスタライズ部に指示する図形描画装置である。
このように、アニメーションを含むベクター図形の描画に影響を与えるベクター図形のうち、アニメーションを含むベクター図形と重なる領域については、その領域のみでビットマップイメージを作成し、重ならない領域については、アニメーションを含まない他のベクター図形とまとめて1つのビットマップイメージを作成するように構成することで、ビットマップイメージの容量を削減するとともに、ビットマップイメージの描画処理において無駄な重なり描画を削減し、高速なアニメーション表示を実現することができる。
よって、ベクター図形をラスタライズする専用のハードウェアの無い組込み機器においても、無駄な重なり描画を省きスムーズなアニメーション表示を実現することができる。
なお、上記の処理は、アニメーションを含むベクター図形22が1つの場合で説明したが、複数存在する場合も同様に適用することができる。
10 図形描画装置、11 判定部、12 ラスタライズ処理部、13 描画処理部、20 メモリ、21 アニメーションデータ、22 ベクター図形データ、23 ビットマップイメージ、24 ビットマップアニメーションデータ、60a 処理回路、60b 処理回路、61 メモリ、62 表示装置。

Claims (4)

  1. ベクター図形を描画してアニメーション表示を行う図形描画装置であって、
    フレームごとに定義された前記ベクター図形の描画状態に基づいて、前記ベクター図形のラスタライズ処理方法を判断する判定部と、
    前記判定部が判断した前記ラスタライズ処理方法に基づいて前記ベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズ部と、
    前記ビットマップイメージを所定の状態に配置して前記ベクター図形を描画する描画部とを備え、
    前記判定部は、アニメーションのない第1のベクター図形がアニメーションのある第2のベクター図形の描画に影響を与えるか否かを判定し、前記第2のベクター図形の描画に影響を与える場合には、前記第1のベクター図形のうち、前記第2のベクター図形の描画に影響を与えない部分をアニメーションのない第3のベクター図形と1つにまとめたビットマップイメージを生成し、前記第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成するよう前記ラスタライズ部に指示する図形描画装置。
  2. 前記判定部は、第1のベクター図形の描画範囲が、前記第1のベクター図形が存在するレイヤーより下のレイヤーに存在する第2のベクター図形の描画範囲と重なる場合に、第1のベクター図形が第2のベクター図形の描画に影響を与えると判定することを特徴とする請求項1に記載の図形描画装置。
  3. 前記判定部は、第1のベクター図形の描画範囲のうち、前記第1のベクター図形が存在するレイヤーより下のレイヤーに存在する第2のベクター図形の描画範囲と重ならない部分を前記第2のベクター図形の描画に影響を与えない部分、第2のベクター図形の描画範囲と重なる部分を前記第2のベクター図形の描画に影響を与える部分とすることを特徴とする請求項1に記載の図形描画装置。
  4. ベクター図形の画像を描画してアニメーション表示を行う処理をコンピュータに実行させる図形描画プログラムであって、
    フレームごとに定義された前記ベクター図形の描画状態に基づいて、前記ベクター図形のラスタライズ処理方法を判断する判定ステップと、
    記ラスタライズ処理方法に基づいて前記ベクター図形をラスタライズ処理してビットマップイメージを作成するラスタライズステップと、
    前記ビットマップイメージを所定の状態に配置して前記ベクター図形を描画する描画ステップと
    をコンピュータに実行させ
    前記判定ステップは、アニメーションのない第1のベクター図形がアニメーションのある第2のベクター図形の描画に影響を与えるか否かを判定し、
    前記ラスタライズステップは、前記第2のベクター図形の描画に影響を与えると判定された場合、前記第1のベクター図形のうち、前記第2のベクター図形の描画に影響を与えない部分をアニメーションのない第3のベクター図形と1つにまとめたビットマップイメージを生成し、前記第2のベクター図形の描画に影響を与える部分のみで別のビットマップイメージを生成する、
    図形描画プログラム。
JP2015191149A 2015-09-29 2015-09-29 図形描画装置および図形描画プログラム Active JP6478888B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015191149A JP6478888B2 (ja) 2015-09-29 2015-09-29 図形描画装置および図形描画プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015191149A JP6478888B2 (ja) 2015-09-29 2015-09-29 図形描画装置および図形描画プログラム

Publications (2)

Publication Number Publication Date
JP2017068419A JP2017068419A (ja) 2017-04-06
JP6478888B2 true JP6478888B2 (ja) 2019-03-06

Family

ID=58494914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015191149A Active JP6478888B2 (ja) 2015-09-29 2015-09-29 図形描画装置および図形描画プログラム

Country Status (1)

Country Link
JP (1) JP6478888B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018157A (ja) * 2005-07-06 2007-01-25 Canon Inc 画像処理装置
JP2011165173A (ja) * 2010-01-18 2011-08-25 Canon Inc 情報処理装置、情報処理装置の動作方法、および記憶媒体
KR101654300B1 (ko) * 2015-04-03 2016-09-22 네이버 주식회사 모션 연출이 포함된 페이지의 레이어 병합을 이용하여 컨텐츠를 제공하는 시스템 및 방법

Also Published As

Publication number Publication date
JP2017068419A (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
JP6476327B2 (ja) ラスタライズパラメータを変更することによりスクリーン位置による有効解像度の変化
US10102663B2 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US11361405B2 (en) Dynamic spread anti-aliasing
EP1833024B1 (en) Image processing apparatus, image processing method, and image processing program
JP4937359B2 (ja) 図形描画装置及び図形描画方法
US10331448B2 (en) Graphics processing apparatus and method of processing texture in graphics pipeline
US20130127858A1 (en) Interception of Graphics API Calls for Optimization of Rendering
US10332290B2 (en) Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing
US7928984B1 (en) Efficient data packaging for rendering bézier curves on a GPU
JP2015536500A5 (ja)
JP4370438B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
US20140184633A1 (en) Conservative bounding region rasterization
JP2010146255A (ja) ベクトル図形描画装置
KR101517465B1 (ko) 폴리곤의 특징에 적응된 순서로 래스터화하는 래스터화엔진 및 3차원 그래픽스 시스템
JP6478888B2 (ja) 図形描画装置および図形描画プログラム
JP2012108825A (ja) 情報処理装置、情報処理方法およびプログラム
JP5159949B2 (ja) ベクトル図形描画装置
US11217005B1 (en) Techniques for rendering 2D vector graphics on mobile devices
JP2012128580A (ja) 情報処理装置、情報処理方法及びプログラム
JP2014010572A (ja) ベクター画像描画装置及びベクター画像描画方法
JP2007264866A (ja) グラフィックシステム、破線テクスチャ画像生成装置、及び、破線テクスチャ画像生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20181121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181214

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: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190205

R150 Certificate of patent or registration of utility model

Ref document number: 6478888

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250