(57)【要約】【課題】  アニメーションを含んだベクタデータの描画において、アニメーション中の描画速度を高めることを目的とする。【解決手段】  ベクタデータから変換したラスタデータを記憶領域に記憶して、アニメーション中の描画に用いる。【選択図】  図１
2007018157.tif 000002
【特許請求の範囲】
【請求項１】
アニメーションを含んだベクタデータを読み込んでグラフィックを描画するための画像処理装置であって、
前記ベクタデータを描画するためにラスタデータに変換する手段と、
アニメーション中に、前後フレーム間で描画結果の変化するオブジェクトを識別する手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトについて、前記ベクタデータ内に記述されたアニメーションシナリオを識別する手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトについて、アニメーション開始時に前記ベクタデータから変換したラスタデータを記憶領域に記憶し、記憶したラスタデータをアニメーション表示中の各フレームの描画に用いるアニメーション表示手段と、
アニメーション中に、前記アニメーションシナリオに従って、前記記憶領域に記憶したラスタデータを加工して描画する手段を有することを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
一度前記ベクタデータをレンダリング処理した後に、次のレンダリング処理を行う際、前回のレンダリング処理時とレンダリング処理結果が変化しない描画領域に関しては、前記ベクタデータをラスタデータに変換することなく、前回のレンダリング処理結果を用いてレンダリング処理を行う手段を有することを特徴とする画像処理装置。
【請求項３】
アニメーションを含んだベクタデータを読み込んでグラフィックを描画するための画像処理装置であって、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトについて、アニメーション表示中の各フレームにおいて、ベクタデータをラスタデータに変換して描画する第１アニメーション表示手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトについて、アニメーション開始時にベクタデータから変換したラスタデータを記憶領域に記憶し、記憶したラスタデータをアニメーション表示中の各フレームの描画に用いる第２アニメーション表示手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトを描画する手段として、前記第１あるいは第２アニメーション表示手段のいずれか一方を選択して適用する描画方法選択手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトを描画する手段として、前記第1アニメーション表示手段から、前記第２アニメーション表示手段に切り替える手段と、
アニメーション中に、前記前後フレーム間で描画結果の変化するオブジェクトを描画する手段として、前記第２アニメーション表示手段から、前記第１アニメーション表示手段に切り替える描画方法切り替え手段とを有することを特徴とする画像処理装置。
【請求項４】
請求項３記載の画像処理装置において、
前記描画方法選択手段は、前記前後フレーム間で描画結果の変化するオブジェクトの大きさを基に選択することを特徴とする画像処理装置。
【請求項５】
請求項３記載の画像処理装置において、
前記描画方法選択手段は、アニメーションの種類を基に選択すること特徴とする画像処理装置。
【請求項６】
請求項３記載の画像処理装置において、
前記描画方法切り替え手段は、ベクタデータ等を記憶するメモリの使用可能残量を基に選択することを特徴とする画像処理装置。
【請求項７】
請求項３記載の画像処理装置において、
前記第２アニメーション表示手段は、前記前後フレーム間で描画結果の変化するオブジェクトのアニメーション開始時からの変倍率に応じて、適宜ベクタデータからラスタデータを再度記憶領域に記憶し、以後のアニメーションの描画には再度記憶したラスタデータを利用することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を表示するための画像生成装置に関する。
【背景技術】
【０００２】
ベクタデータを用いた画像はラスタデータを用いた画像と比較して、拡大、縮小、変形をしても滑らかな画像で表現できる。それは、ベクタデータは色、大きさ、形、位置など画像を構成する情報を記録しているためである。また、記録容量もラスタデータより少なくてすむという特徴がある。
【０００３】
実際に、ベクタデータを描画するには、ベクタデータから出力領域の各ピクセルについて、どの色で表示するかの計算を行っている。つまり、描画する際にはラスタデータに変換されるということになる。
【０００４】
また、ベクタデータによりアニメーションを実現することができて、その実現方法は、アニメーション中に前後フレーム間で描画結果の変化するオブジェクト（以下、アニメーションオブジェクトとする）について、アニメーション中の各フレームにおいて、ベクタデータをラスタデータに変換して描画を行う。このアニメーション表示方法を第１アニメーション表示方法とする。
【０００５】
また、アニメーションを描画する時に、アニメーションオブジェクトの描画速度を高める手法として、アニメーションオブジェクトのラスタデータを別領域に記憶しておき、アニメーション中の各フレームにおいて、記憶したラスタデータにアニメーションシナリオに従って移動、変形などの加工を施して描画することでアニメーション表示を行うものがある。この手法はスプライトベースのアニメーションである。これを第２アニメーション表示方法とする。
【０００６】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開２００１−２３０９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記第１アニメーション表示方法では、アニメーション中の各フレームにおいて、ベクタデータからラスタデータに変換して描画する必要があり、出力の解像度に応じて、また、アニメーションオブジェクトの描画領域に応じて、各ピクセルの描画に必要な情報に関する計算が増大する。
【０００８】
また、アニメーション開始時にアニメーションオブジェクトを別領域に記憶して、アニメーション中に用いる前記第２アニメーション表示方法をベクタデータで表されたアニメーションに適用できれば、アニメーションの描画速度を高めることが期待できる。しかし、一般に、前記第２アニメーション表示方法は、予めどのオブジェクトがアニメーションオブジェクトであるかや、アニメーションの内容を知っておく必要があるが、ベクタデータから、ベクタデータ中のどのオブジェクトをアニメーションオブジェクトとして抽出してラスタデータとして記憶領域に記憶するかの判断手段は持ち合わせていない。そのため、本発明のように、ベクタデータで表されたアニメーションの描画にそのまま適用することは出来ない。
【０００９】
本発明は上述の問題に鑑みてなされたもので、前記第２アニメーション表示方法をベクタデータに適用させるものである。ベクタデータ内のアニメーションオブジェクトの識別をして、アニメーションオブジェクトのアニメーション内容の識別を行い、アニメーションオブジェクトのアニメーション開始時のラスタデータを記憶領域に保存し、アニメーション中は記憶領域中のラスタデータを利用することによってベクタデータで表されたアニメーションの描画速度を高めることを目的とする。
【００１０】
さらに、基本的な描画方法である前記第１アニメーション表示方法と、高速に描画できる前記第２アニメーション表示方法を場合に応じて的確に使い分けることによって、高速かつ見た目にも違和感のないアニメーションを実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明の請求項１記載の画像処理装置は、アニメーションを含んだベクタデータを読み込んでグラフィックを描画するための画像処理装置であって、前記ベクタデータを描画するためにラスタデータにデータ変換する手段と、アニメーション中に、前記アニメーションオブジェクトを識別する手段と、アニメーション中に、前記アニメーションオブジェクトについて、前記ベクタデータ内に記述されたアニメーションシナリオを識別する手段と、アニメーション中に、前記アニメーションオブジェクトについて、アニメーション開始時に前記ベクタデータから変換したラスタデータを記憶領域に記憶し、記憶したラスタデータをアニメーション表示中の各フレームの描画に用いるアニメーション表示手段と、アニメーション中に、前記アニメーションシナリオに従って、前記記憶領域に記憶したラスタデータを加工して描画する手段を有することを特徴とする。
【００１２】
本発明の請求項２記載の画像処理装置は、請求項１において、一度前記ベクタデータをレンダリング処理した後に、次のレンダリング処理を行う際、前回のレンダリング処理時とレンダリング処理結果が変化しない描画領域に関しては、前記ベクタデータをラスタデータに変換することなく、前回のレンダリング処理結果を用いてレンダリング処理を行う手段を有することを特徴とする。
【００１３】
本発明の請求項３記載の画像処理装置は、アニメーション中に、前記アニメーションオブジェクトについて、アニメーション表示中の各フレームにおいて、ベクタデータをラスタデータに変換して描画する第１アニメーション表示手段と、アニメーション中に、前記アニメーションオブジェクトについて、アニメーション開始時にベクタデータから変換したラスタデータを記憶領域に記憶し、記憶したラスタデータをアニメーション表示中の各フレームの描画に用いる第２アニメーション表示手段と、アニメーション中に、前記アニメーションオブジェクトを描画する手段として、前記第１あるいは第２アニメーション表示手段のいずれか一方を選択して適用する描画方法選択手段と、アニメーション中に、前記アニメーションオブジェクトを描画する手段として、前記第1アニメーション表示手段から、前記第２アニメーション表示手段に切り替える手段と、アニメーション中に、前記アニメーションオブジェクトを描画する手段として、前記第２アニメーション表示手段から、前記第１アニメーション表示手段に切り替える描画方法切り替え手段とを有することを特徴とする。
【００１４】
本発明の請求項４記載の画像処理装置は、請求項３において、前記描画方法選択手段は、前記前後フレーム間で描画結果の変化するオブジェクトの大きさを基に選択することを特徴とする。
【００１５】
本発明の請求項５記載の画像処理装置は、請求項３において、前記描画方法選択手段は、アニメーションの種類を基に選択することを特徴とする。
【００１６】
本発明の請求項６記載の画像処理装置は、請求項３において、前記描画方法切り替え手段は、ベクタデータ等を記憶するメモリの使用可能残量を基に選択することを特徴とする。
【００１７】
本発明の請求項７記載の画像処理装置は、請求項３において、前記第２アニメーション表示手段は、前記前後フレーム間で描画結果の変化するオブジェクトのアニメーション開始時からの変倍率に応じて、適宜ベクタデータからラスタデータを再度記憶領域に記憶し、以後のアニメーションの描画には再度記憶したラスタデータを利用することを特徴とする。
【発明の効果】
【００１８】
本発明は、ベクタデータで表されたアニメーションを表示する際に、前述した２つのアニメーション表示方法を、条件によって使い分け、または切り替えることによって、ベクタデータのアニメーション表示時の各フレームにおける描画速度を高め、全体として見た目にも違和感のないアニメーション表示を実現することができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明の詳細を、実施形態に基づいて図面を参照しながら説明する。また、具体例として、ベクタデータであってアニメーションを実現できる図５に示すSVGファイルを取り上げて説明していく。
【００２０】
図１は本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【００２１】
同図において、ＣＰＵ１０１は、システム制御部であり、装置全体を制御する。ＲＯＭ１０２は、ＣＰＵの制御プログラムや各種固定データを格納するものである。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成され、プログラム制御変数等を格納するためのものである。また、本実施例におけるベクタデータ、ラスタデータ等もＲＡＭ１０３に格納されるものである。
【００２２】
図２は、本発明の実施形態に係るシステム全体の流れを示すフローチャートである。
【００２３】
同図において、まず、ベクタデータを読み込み（Ｓ２０１）、RAM１０２に保存する。続いて、ベクタデータを解析してアニメーションの表示方法を判定する（Ｓ２０２）。ベクタデータの解析においては、アニメーションオブジェクトの数や出現順序、出現頻度、各アニメーションオブジェクトのアニメーションの種類などが解析される。ここで、あるオブジェクトＡとオブジェクトＢがあるとき、描画処理ではオブジェクトＢよりオブジェクトＡが前面にあって、オブジェクトＡが移動などのアニメーションを行ってオブジェクトＢの上を通過するような場合、アニメーション中の前後フレームでオブジェクトＢも描画結果が異なるが、このような場合、オブジェクトＡはアニメーションオブジェクトだが、オブジェクトＢはアニメーションオブジェクトとしない。つまり、アニメーションオブジェクトの定義は、ある単一または単一グループのオブジェクトに注目し、そのオブジェクトのみを描画したと仮定したときに、前後フレームで描画結果が異なるオブジェクトとする。
【００２４】
図５のＳＶＧファイルについて、その詳細の説明をする。まず描画領域として横幅２０ｃｍ、縦幅１５ｃｍの矩形領域を確保し、その左上端を座標（０，０）、右下端を座標（２０００，１５００）となる座標系設定する。また描画開始時には、座標（３００，１００）を左上端とし、横幅３００、縦幅１００の長方形が描画される。描画開始後１秒後にアニメーションを開始して１．５秒後までの間に、長方形の左上端を固定して、横幅１５００、縦幅１３００まで拡大してアニメーションを終了する。
【００２５】
Ｓ２０２で、ベクタデータ内のすべてのアニメーションにおいて、アニメーション表示方法の判定がなされると、次のステップに進み描画処理をする（Ｓ２０３）。描画処理では、まず、ベクタデータの初期状態をラスタデータに変換して描画を行う。アニメーション開始までは描画しても描画結果に変化がないので再描画は行わない。しかし、描画を一定間隔で行わないと表示されなくなるようなシステムにおいては、アニメーション開始以前においても必要に応じて描画を行う。図５のＳＶＧファイルにおいては、初期状態として座標（３００，１００）を左上端とし、横幅３００、縦幅１００なる長方形を描画した後、１秒後までは何も処理は行われない。
【００２６】
Ｓ２０３の処理内では、アニメーションが開始される毎にアニメーション処理を行う。図２のフローチャートでは単一のアニメーション処理のループがあるが、異なるアニメーション処理は同時に起きても、時間的な重なりをもって起きてもよい。図５のＳＶＧファイルにおいては、アニメーションは長方形の拡大のみである。
【００２７】
アニメーションが開始されるとアニメーション処理のステップ（Ｓ２０５）に移る。図５のＳＶＧファイルでは、描画開始から１秒後にアニメーションが開始して（Ｓ２０４）、０．５秒間のアニメーションを行った後、描画開始から１．５秒後にアニメーションを終了する。
【００２８】
ベクタデータに記述されたすべてのアニメーション表示が終了すると、描画を終了する（Ｓ２０６）。描画を終了する条件は特に記述していないが、アニメーション終了時点で描画を終了してもよいし、アニメーション終了後、再び何らかの処理が続けられる場合などでは、外部から何らかの処理命令があるまでアニメーション終了時の描画結果を維持してもよい。
【００２９】
図３は、図２のアニメーション表示方法判定処理（Ｓ２０２）の内容を詳細に示したフローチャートである。ここでは、２つの条件によってアニメーションの表示方法を判定する。
【００３０】
一つ目の条件は、アニメーションオブジェクトの大きさが所定の範囲内にあるかどうかの判定（Ｓ３０１）である。この条件に当てはまる場合には次の条件判定のステップ（Ｓ３０２）に進む。条件に当てはまらない場合には、第１のアニメーション表示方法と判定する。この条件の判定基準は、アニメーションオブジェクトがアニメーション開始からアニメーション終了まで、一時たりともある一定の大きさを超えない場合には、所定の範囲内となる。本実施例においては、特に大きさの定義をしていないが、オブジェクトの面積や、縦幅、横幅などと定義してもよい。
【００３１】
二つ目の条件はアニメーションの種類が所定の範囲内にあるかどうかの判定（Ｓ３０２）である。この条件の当てはまる場合には第２のアニメーション表示方法と判定し、当てはまらない場合には、第１のアニメーション表示方法と判定する。この条件の判定基準として、所定の範囲内のアニメーションとは、座標系と平行方向の伸縮かその組み合わせによる形状変化を除いた形状の変化や、色、透明度の変化を伴わない、縦横比を維持した拡大、縮小、回転、平行移動、またはそれらの組み合わせのときとする。図５のＳＶＧファイルのアニメーションにおいては、ｘ軸、ｙ軸に関する拡大なので、所定の範囲内のアニメーション処理となる。
【００３２】
各々のアニメーションオブジェクトについて、判定したアニメーション表示方法に従ってアニメーション処理を行う。図４はアニメーション表示方法判定で、第２のアニメーション表示方法と判定された場合のアニメーション処理の詳細を示したフローチャート図である。以下、図４の処理について説明する。
【００３３】
アニメーションを開始すると、はじめにアニメーションオブジェクト部分のベクタデータをラスタデータに変換して描画する。このとき、アニメーション開始時点ですでに、アニメーションオブジェクトが描画されている場合には、この処理は省略してもよい。図５のＳＶＧファイルにおいては、アニメーション開始時にはすでにアニメーションオブジェクトとなる長方形は描画されている。続いて、ラスタデータを記憶するためのメモリの残量による分岐処理（Ｓ４０２）を行う。メモリの残量が所定の範囲内にある場合には、メモリ残量に応じてラスタデータの解像度を調節してメモリに記憶する。ここで、ラスタデータを描画した解像度のままで保存するときの容量よりもメモリ残量が大きい場合には、描画したままの解像度で保存し、そうでない場合には、メモリ残量に収まるようなラスタデータの解像度を計算して、メモリに収まる解像度に調節する。また、メモリ残量が所定の範囲内という条件は、アニメーションオブジェクトの現在の解像度とメモリの残量の関係から計算される。つまり、メモリ残量の条件は、アニメーションオブジェクトの解像度によって変化する。
【００３４】
メモリ残量が所定の範囲内にない場合には、ラスタデータを保存せず、次フレームもベクタデータをラスタデータに変換して描画を行う（Ｓ４０４）。そしてまたＳ４０２の条件へ戻るという流れである。
【００３５】
Ｓ４０３でラスタデータをメモリに記憶すると、Ｓ４０５の処理に移る。次フレームはメモリに記憶した保存したラスタデータをアニメーションシナリオに従って加工を施したものを描画する。
【００３６】
Ｓ４０６でアニメーションの終了を検出し、アニメーションが終了した場合にはアニメーション処理を終了する。図５のＳＶＧファイルにおいては、描画開始から１．５秒後にＳ４０６の処理を行った時には、アニメーション終了と判定し、アニメーション処理を終了する。
【００３７】
また、Ｓ４０７では変倍率による条件分岐処理を行う。変倍率は、特に拡大を伴うアニメーションのときに、メモリに保存されているラスタデータの解像度とアニメーションオブジェクトを現時点でラスタデータに変換したと仮定したときの解像度から計算される値である。変倍率がある閾値を超えた場合には、その時点でのアニメーションオブジェクトのベクタデータをラスタデータに変換して次フレームの描画を行い（Ｓ４０４）、Ｓ４０２の処理に移る。逆に、閾値を超えない場合には、Ｓ４０５に移って引き続きメモリに記憶されているラスタデータを用いて次フレームの描画を行う。
【図面の簡単な説明】
【００３８】
【図１】本発明のシステム全体図である。
【図２】本発明の実施例による全体の処理の流れを示すフローチャートである。
【図３】本発明の実施例による、アニメーション時の描画方法を決定する手順を示すフローチャートである。
【図４】本発明の実施例によるアニメーション処理の詳細を示すブロック図である。
【図５】本発明の実施例による、アニメーションを含むSVGファイルのソースである。
【符号の説明】
【００３９】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  表示部
【図１】
2007018157.tif 000003
【図２】
2007018157.tif 000004
【図３】
2007018157.tif 000005
【図４】
2007018157.tif 000006
【図５】
2007018157.tif 000007