(57)【要約】【課題】図形の重なり及び近接の有無によらず、高速にアニメーションの描画を行うことができる情報処理装置及び情報処理方法等を提供する。【解決手段】図形情報を含むグラフィックスデータを読み取り、前記図形情報に対して、描画命令を生成する（Ｓ６０２）。前記グラフィックスデータに含まれる個々の図形情報について、当該図形情報が時間の経過に伴って変化する要素を含むかを判断し（Ｓ６０４）、時間の経過に伴って変化する要素を含まない図形情報に対しては、Ｓ６０２で生成した描画命令及び当該描画命令の属性値を記憶手段に記憶させる（Ｓ６０５）。前記グラフィックスデータに含まれる個々の図形情報について、前記記憶手段に前記描画命令が記憶されているかを判断し、前記描画命令が記憶されてはいないと判断された図形情報に対して、時間の経過に伴って描画命令を生成する。そして、これらの描画命令に基づいて描画を行う（Ｓ６０３）。【選択図】図６
2011022671.tif 000002
【特許請求の範囲】
【請求項１】
図形情報を含むグラフィックスデータを読み取る読み取り手段と、
前記図形情報に対して、描画命令及び当該描画命令の属性値を生成する第１の描画命令生成手段と、
前記グラフィックスデータに含まれる個々の図形情報について、当該図形情報が時間の経過に伴って変化する要素を含むかを判断し、時間の経過に伴って変化する要素を含まない図形情報に対しては、前記第１の描画命令生成手段により生成された描画命令及び当該描画命令の属性値を、当該図形情報の識別子と共に、記憶手段に記憶させる第１の判断手段と、
前記グラフィックスデータに含まれる個々の図形情報について、前記記憶手段に前記描画命令及び当該描画命令のすべての属性値が記憶されているかを判断する第２の判断手段と、
前記第２の判断手段により前記描画命令及び当該描画命令のすべての属性値が記憶されてはいないと判断された図形情報に対して、時間の経過に伴って描画命令及び当該描画命令の属性値を生成する第２の描画命令生成手段と、
前記第１の描画命令生成手段により生成された描画命令及び属性値、並びに前記第２の描画命令生成手段により生成された描画命令及び属性値に基づいて描画を行う描画処理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の判断手段は、個々の図形情報について、アニメーション情報が含まれているかを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の判断手段は、時間の経過に伴って変化する要素を含む図形情報に対しては、当該図形情報の識別子と共に、前記描画命令及び属性値の記憶が省略されることを意味する情報を前記記憶手段に記憶させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の判断手段は、所定のフレームより後のフレームに関して前記アニメーション情報が存在するか否かを判断することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記第１の判断手段は、所定時間において前記図形情報に関連した前記アニメーション情報が存在するか否かを判断することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項６】
前記第１の判断手段は、時間の経過に伴って変化する要素を含む図形情報に対しては、時間の経過に伴って変化しない要素の属性値を含み、時間の経過に伴って変化する要素の属性値を含まない描画命令を、当該図形情報の識別子と共に、前記記憶手段に記憶させ、
前記第２の描画命令生成手段は、前記第２の判断手段により前記描画命令及び当該描画命令のすべての属性値が記憶されてはいないと判断された図形情報に対して、当該図形情報の描画命令に不足している属性値を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１の判断手段は、時間の経過に伴って変化する要素を含む図形情報に対しては、前記描画命令に、当該要素についての属性値の生成が省略されることを意味する情報を含ませることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第１の判断手段は、所定のフレームより後のフレームに関して経過に伴って変化する要素を含むか否かを判断することを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
前記第１の判断手段は、所定時間において経過に伴って変化する要素を含むか否かを判断することを特徴とする請求項６又は７に記載の情報処理装置。
【請求項１０】
図形情報を含むグラフィックスデータを読み取る読み取りステップと、
前記図形情報に対して、描画命令及び当該描画命令の属性値を生成する第１の描画命令生成ステップと、
前記グラフィックスデータに含まれる個々の図形情報について、当該図形情報が時間の経過に伴って変化する要素を含むかを判断し、時間の経過に伴って変化する要素を含まない図形情報に対しては、前記第１の描画命令生成ステップにおいて生成した描画命令及び当該描画命令の属性値を、当該図形情報の識別子と共に、記憶手段に記憶させる第１の判断ステップと、
前記グラフィックスデータに含まれる個々の図形情報について、前記記憶手段に前記描画命令及び当該描画命令のすべての属性値が記憶されているかを判断する第２の判断ステップと、
前記第２の判断ステップにおいて前記描画命令及び当該描画命令のすべての属性値が記憶されてはいないと判断した図形情報に対して、時間の経過に伴って描画命令及び当該描画命令の属性値を生成する第２の描画命令生成ステップと、
前記第１の描画命令生成ステップにおいて生成した描画命令及び属性値、並びに前記第２の描画命令生成ステップにおいて生成した描画命令及び属性値に基づいて描画を行う描画処理ステップと、
を有することを特徴とする情報処理方法。
【請求項１１】
コンピュータに、
図形情報を含むグラフィックスデータを読み取る読み取りステップと、
前記図形情報に対して、描画命令及び当該描画命令の属性値を生成する第１の描画命令生成ステップと、
前記グラフィックスデータに含まれる個々の図形情報について、当該図形情報が時間の経過に伴って変化する要素を含むかを判断し、時間の経過に伴って変化する要素を含まない図形情報に対しては、前記第１の描画命令生成ステップにおいて生成した描画命令及び当該描画命令の属性値を、当該図形情報の識別子と共に、記憶手段に記憶させる第１の判断ステップと、
前記グラフィックスデータに含まれる個々の図形情報について、前記記憶手段に前記描画命令及び当該描画命令のすべての属性値が記憶されているかを判断する第２の判断ステップと、
前記第２の判断ステップにおいて前記描画命令及び当該描画命令のすべての属性値が記憶されてはいないと判断した図形情報に対して、時間の経過に伴って描画命令及び当該描画命令の属性値を生成する第２の描画命令生成ステップと、
前記第１の描画命令生成ステップにおいて生成した描画命令及び属性値、並びに前記第２の描画命令生成ステップにおいて生成した描画命令及び属性値に基づいて描画を行う描画処理ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アニメーションの描画に好適な情報処理装置及び情報処理方法等に関する。
【背景技術】
【０００２】
近年、表示機能を有する情報処理装置においては、アニメーション効果を用いたグラフィカルユーザインタフェース（ＧＵＩ）が広く用いられている。ＧＵＩで用いられるアニメーション効果は多様であり、図形及び文字の移動、拡大縮小、回転、色の変化、透明度の変化及びモーフィング等の効果が一般に用いられている。このようなアニメーション効果は二次元グラフィックスに限らず、三次元グラフィックスにおいても用いられている。
これらのアニメーション効果をスムーズに表示するためには毎秒数十フレームの描画処理が必要であり、描画処理を高速化するための工夫がなされてきた。
例えば、フレーム間で変化のある領域のみ更新を行う方法がある（特許文献１）。ユーザインタフェース等のグラフィックスの描画においては、多数の図形及び文字が配置され、それらのうちの一部がアニメーション動作をすることもある。このような場合、直前のフレームでの描画状態と比較して変化のある領域のみ描画の更新を行うことにより、描画速度の向上が可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２６５３３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、図形及び文字の形状、配置及び透明度等の状態によっては、描画速度が低くなることがある。
例えば、描画領域と同じサイズの大きな図形オブジェクトの背後に多数の図形オブジェクトが存在し、大きな図形オブジェクトの透明度が徐々に変化するアニメーションを想定する。このような場合、従来の方法では、アニメーション動作する領域が描画領域に等しくなり、処理の高速化はできない。この例に限らず、描画領域のうちの変化する領域のみを更新する方法では、図形同士が重なっていたり近接していたりする場合に、再描画の対象となる図形が増加し、十分な高速化ができない。
【０００５】
本発明は、図形の重なり及び近接の有無によらず、高速にアニメーションの描画を行うことができる情報処理装置及び情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、図形情報を含むグラフィックスデータを読み取る読み取り手段と、前記図形情報に対して、描画命令及び当該描画命令の属性値を生成する第１の描画命令生成手段と、前記グラフィックスデータに含まれる個々の図形情報について、当該図形情報が時間の経過に伴って変化する要素を含むかを判断し、時間の経過に伴って変化する要素を含まない図形情報に対しては、前記第１の描画命令生成手段により生成された描画命令及び当該描画命令の属性値を、当該図形情報の識別子と共に、記憶手段に記憶させる第１の判断手段と、前記グラフィックスデータに含まれる個々の図形情報について、前記記憶手段に前記描画命令及び当該描画命令のすべての属性値が記憶されているかを判断する第２の判断手段と、前記第２の判断手段により前記描画命令及び当該描画命令のすべての属性値が記憶されてはいないと判断された図形情報に対して、時間の経過に伴って描画命令及び当該描画命令の属性値を生成する第２の描画命令生成手段と、前記第１の描画命令生成手段により生成された描画命令及び属性値、並びに前記第２の描画命令生成手段により生成された描画命令及び属性値に基づいて描画を行う描画処理手段と、を有することを特徴とする特徴とする。
【発明の効果】
【０００７】
本発明によれば、時間の経過に伴って変化することがない要素等が記憶手段に記憶されるため、同じ描画命令の生成を省略してアニメーションの描画を高速に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】グラフィックスデータの一例を示す図である。
【図３】アニメーションの内容を示す模式図である。
【図４】状態３０１の画像を描画する際に生成される描画命令群を示す図である。
【図５】状態３０２の画像を描画する際に生成される描画命令群を示す図である。
【図６】情報処理装置の処理（最初のフレーム）を示すフローチャートである。
【図７】ＲＡＭ１０３に格納されるデータを示す模式図である。
【図８】情報処理装置の処理（２フレーム目以降）を示すフローチャートである。
【図９】情報処理装置の処理（最初のフレーム）を示すフローチャートである。
【図１０】ＲＡＭ１０３に格納されるデータを示す模式図である。
【図１１】情報処理装置の処理（２フレーム目以降）を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。
【００１０】
（第１の実施形態）
先ず、第１の実施形態について説明する。図１は、第１の実施形態に係る情報処理装置の構成を示すブロック図である。
図１に示すように、この情報処理装置には、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３（記憶手段）、表示部１０４及び操作部１０５が設けられており、これらがシステムバス１０６を介して互いに通信可能に接続されている。
ＣＰＵ１０１はシステム制御部であり、情報処理装置全体を制御する。ＲＯＭ１０２は、ＣＰＵ１０１の制御プログラム及び各種固定データを格納する読取専用のメモリである。ＲＡＭ１０３は、ＳＲＡＭ又はＤＲＡＭ等で構成された書換え可能なメモリであり、プログラム制御変数等を格納する。各種設定パラメータ及び各種ワーク用バッファ等もＲＡＭ１０３に格納される。表示部１０４は、ＬＣＤ等を用いてオペレータに表示通知する。操作部１０５は、キーボード及びポインティングデバイス等で構成され、オペレータが各種入力操作を行うために用いられる。
【００１１】
また、本実施形態の情報処理装置は、例えばＳＶＧ（Scalable Vector Graphics）形式のグラフィックスデータ（ＳＶＧデータ）の処理を行う。ＳＶＧデータは、ＸＭＬ（Extensible Markup Language）で記述されたベクトルグラフィックスデータである。図２は、第１の実施形態に係る情報処理装置が行う処理の対象とするグラフィックスデータの一例を示す図である。
図２に示した例には、図形情報として、ｒｅｃｔ要素が８個、ｃｉｒｃｌｅ要素が１個、ｅｌｌｉｐｓｅ要素が１個含まれている。これらは、夫々矩形が８個、円が１個、楕円が１個存在することを意味する。また、ｃｉｒｃｌｅ要素の子要素としてａｎｉｍａｔｅ要素が含まれており、ｃｉｒｃｌｅ要素のｃｘ属性を時刻に応じて変化させることが記述されている。これは、ｃｉｒｃｌｅ要素で示された円の中心座標を時刻に応じて移動させることを意味する。ｅｌｌｉｐｓｅ要素の子要素にあるａｎｉｍａｔｅ要素には、ｅｌｌｉｐｓｅ要素で示された楕円の不透明度（ｆｉｌｌ−ｏｐａｃｉｔｙ）を時刻に応じて変化させる旨が記述されている。これは、ｅｌｌｉｐｓｅ要素で示された楕円が時刻の変化に応じて透明になることを意味する。これら２つのアニメーション記述（アニメーション情報）は、いずれも開始時刻は０秒時であり、２秒間のアニメーションである。
【００１２】
本実施形態の情報処理装置は、図２に示すＳＶＧデータの処理に際しては、このＳＶＧデータを読み込み、内部データ化した上でＲＡＭ１０３に格納する。ここで、ＲＡＭ１０３に格納されるデータは、ＳＶＧ形式のテキストデータそのものではなく、例えばＤＯＭ（Document Object Model）形式のデータである。ＤＯＭ形式のデータは、元のＳＶＧのデータと同等の情報量を持つ。
【００１３】
図３は、図２に示すＳＶＧデータを描画した際に表示されるアニメーションの内容を示す模式図である。状態３０１は、画像の時刻が０秒時の状態である。また、状態３０２、状態３０３は、画像の夫々時刻が１秒時、２秒時の状態である。図３に示すように、時刻が変化するに従って、円の位置は右に移動し、楕円は徐々に透明になっている。状態３０２における楕円は半透明（不透明度が０．５）であるが、便宜上、半透明の状態を車線模様で表現している。図３に示すように、アニメーション表示は、複数の静止画（フレーム）を短時間に連続して描画することにより実現される。
【００１４】
次に、本実施形態の情報処理装置において状態３０１の画像を描画する際に生成される描画命令について説明する。図４は、状態３０１の画像を描画する際に生成される描画命令群を示す図である。図４には、１０個の描画命令からなる描画命令群が示されており、各描画命令の先頭に記載されている「ＤｒａｗＲｅｃｔ」、「ＤｒａｗＣｉｒｃｌｅ」及び「ＤｒａｗＥｌｌｉｐｓｅ」は、描画命令の種類を示す識別子である。また、これらの識別子の括弧内に記載されている文字列及び数値は、各描画命令のプロパティ（属性）の識別子及びその値（属性値）を示している。例えば、「ＤｒａｗＲｅｃｔ」は矩形を描画するための描画命令を意味し、括弧内に記載されている「ｘ＝−１２７」はプロパティｘが−１２７の値であることを意味している。そして、図４に示す描画命令群には、「ＤｒａｗＲｅｃｔ」、「ＤｒａｗＣｉｒｃｌｅ」及び「ＤｒａｗＥｌｌｉｐｓｅ」が、夫々８個、１個、１個含まれている。このことは、矩形を描画するための描画命令が８個、円を描画するための描画命令が１個、楕円を描画するための描画命令が１個生成されることを意味している。そして、これらの描画命令は上側に位置するものから順に読み出され、状態３０１の画像が作成される。
このような状態３０１の画像の描画に関する描画命令群は、例えば、ＣＰＵ１０１がＲＡＭ１０３に格納されているＤＯＭ形式のグラフィックスデータを解析すれば生成することができる。
【００１５】
次に、本実施形態の情報処理装置において状態３０２の画像を描画する際に生成される描画命令について説明する。図５は、状態３０２の画像を描画する際に生成される描画命令群を示す図である。図４に示す描画命令群と図５に示す描画命令群との間では、円の描画に関する描画命令「ＤｒａｗＣｉｒｃｌｅ」のプロパティｃｘの値、及び楕円の描画に関する描画命令「ＤｒａｗＥｌｌｉｐｓｅ」のプロパティｆｉｌｌ-ｏｐａｃｉｔｙの値が異なっている。これは、状態３０１及び状態３０２の間では、図３からも明らかなように、円の中心のＸ座標、及び楕円の不透明度が相違していることを意味する。
このような状態３０２の画像の描画に関する描画命令群も、例えば、ＣＰＵ１０１がＲＡＭ１０３に格納されているＤＯＭ形式のグラフィックスデータを解析すれば生成することができる。
【００１６】
但し、本実施形態では、これらの一連の処理をより効率的かつ高速に生成すべく、以下に示すように、最初のフレーム（例えば時刻０秒時のフレーム）の描画と、２フレーム目以降（例えば時刻１秒時以降のフレーム）の描画との間で異なる処理を行う。
【００１７】
先ず、最初のフレームの描画を行う際の処理について説明する。図６は、第１の実施形態に係る情報処理装置の処理を示すフローチャートである。この処理は、主としてＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムを実行することにより実現される。なお、図６に示す処理の前には、ＣＰＵ１０１がＳＶＧデータを読み取り、ＤＯＭ形式の内部データ（ＤＯＭデータ）がＲＡＭ１０３に格納されている。
【００１８】
先ず、ＣＰＵ１０１は、変数Ｎに０をセットする（ステップＳ６０１）。変数Ｎは、オブジェクトを順次描画するためのカウンタである。
次いで、ＣＰＵ１０１は、第１の描画命令生成手段として、ＲＡＭ１０３に格納されたＤＯＭデータから、Ｎ番目のオブジェクトのデータを読み取り、描画命令を生成する（ステップＳ６０２）。
その後、ＣＰＵ１０１は、ステップＳ６０２で生成した描画命令に従って描画を行う（ステップＳ６０３）。ステップＳ６０２で読み取るデータはオブジェクト１個のデータであるため、ステップＳ６０３で描画されるオブジェクトは１個である。例えば、図２に示すＳＶＧデータを処理する場合には、最初に行われるステップＳ６０２及びステップＳ６０３の処理により、矩形が１個描画されることになる。
続いて、ＣＰＵ１０１は、第１の判断手段として、ステップＳ６０２で生成した描画命令が、アニメーションを含まない不変のものであるか否かを判断する（ステップＳ６０４）。ここでは、個々の描画命令の種類及び各プロパティが時刻に応じて変化するか否かを判断する。例えば、図２に示す例では、円及び楕円にアニメーションの記述（時刻に応じて変化する旨の記述）が含まれているため、ステップＳ６０２で生成した描画命令が円又は楕円を描画するためのものの場合には、ステップＳ６０４で描画命令は不変のものではないと判断する。一方、矩形には、いずれもアニメーションの記述が含まれていないため、ＣＰＵ１０１は、ステップＳ６０２で生成した描画命令が矩形を描画するためのものである場合には、ステップＳ６０４で描画命令は不変のものであると判断する。このように、ステップＳ６０４では、ＣＰＵ１０１は、ＲＡＭ１０３に格納されているＤＯＭデータに基づいて、各オブジェクトにアニメーションの記述が存在するか否かによって不変か否かの判断を行う。
【００１９】
そして、ＣＰＵ１０１は、ステップＳ６０４において描画命令が不変のものであると判断した場合、そのオブジェクトの描画命令をメモリ（ＲＡＭ１０３）に格納する（ステップＳ６０５）。格納される情報には、描画命令の種類を示す識別子並びに各プロパティの識別子及び値が含まれる。
一方、ＣＰＵ１０１は、ステップＳ６０４において描画命令が不変のものではない、即ち経過時間に伴って変化するであると判断した場合、そのオブジェクトについて描画命令が変化することを意味するフラグをメモリ（ＲＡＭ１０３）に格納する（ステップＳ６０６）。このフラグとしては、例えば当該描画命令の記憶が省略されることを意味する情報が用いられる。このとき、対応するオブジェクト、例えば図形オブジェクトを識別するためのＩＤもフラグと共に格納する。図２に示す例では、ＩＤとして、ｉｄ属性に示される文字列を格納すればよい。ＩＤを格納するのは、後にＤＯＭデータ内のオブジェクトを参照しやすくするためである。
【００２０】
ステップＳ６０５又はＳ６０６の後、ＣＰＵ１０１は、変数Ｎに１を加える（ステップＳ６０７）。
次いで、ＣＰＵ１０１は、Ｎ番目のオブジェクトが存在するか否かを判断する（ステップＳ６０８）。即ち、未処理のオブジェクトが存在するか否かを判断する。
【００２１】
そして、ＣＰＵ１０１は、ステップＳ６０８においてＮ番目のオブジェクトが存在すると判断した場合、ステップＳ６０２へ移行し、ステップＳ６０２〜Ｓ６０７の処理を繰り返す。
一方、ＣＰＵ１０１は、ステップＳ６０８においてＮ番目のオブジェクトが存在しないと判断した場合、最初のフレームに含まれるオブジェクトはすべて描画されていることになるため、処理を終了する。
【００２２】
図７は、図６に示す処理を行った結果、ＲＡＭ１０３に格納されるデータを示す模式図である。
図７に示すように、ＲＡＭ１０３には、矩形の描画に関する８個の描画命令、及び時間と共に変化する描画命令が存在することを示す２個のフラグＮＯ＿ＣＯＭＭＡＮＤが格納される。２個のフラグＮＯ＿ＣＯＭＭＡＮＤについては、夫々に図２に示すＳＶＧデータの円及び楕円のｉｄ属性値と一致するＩＤ文字列が格納されている。なお、図７では、格納された描画命令等を、便宜上、プログラム言語の関数に似た形式で表現しているが、実際には描画命令の種類を示す識別子並びに各プロパティの値及び文字列等を格納してもよい。
【００２３】
なお、図２に示す例では、ＳＶＧデータに示された各図形オブジェクトと描画命令とが一対一で対応しているが、ひとつの図形オブジェクトから複数の描画命令が生成されることもあり得る。そのような場合には、ＣＰＵ１０１は、例えば、ステップＳ６０５で複数の描画命令をＲＡＭ１０３に格納し、また、ステップＳ６０６でフラグとＩＤとの組合せを複数格納すればよい。
【００２４】
次に、２フレーム目以降の描画を行う際の処理について説明する。図８は、第１の実施形態に係る情報処理装置の処理を示すフローチャートである。この処理も、主としてＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムを実行することにより実現される。なお、図８に示す処理の前には、図７に示すようなデータが既にＲＡＭ１０３に格納されている。
【００２５】
先ず、ＣＰＵ１０１は、変数Ｎに０をセットする（ステップＳ８０１）。変数Ｎは、オブジェクトを順次描画するためのカウンタである。
次いで、ＣＰＵ１０１は、第２の判断手段として、Ｎ番目のオブジェクトに相当する描画命令がメモリ（ＲＡＭ１０３）に存在するか否かを判断する（ステップＳ８０２）。例えば、図７に示す例では、識別子が存在せず、フラグＮＯ＿ＣＯＭＭＡＮＤがある描画命令（円、楕円）については、描画命令が存在しないと判断する。一方、識別子が存在する描画命令（矩形）については、描画命令が存在すると判断する。
【００２６】
そして、ＣＰＵ１０１は、ステップＳ８０２で描画命令が存在すると判断した場合、その描画命令に従って描画を行う（ステップＳ８０４）。
一方、ＣＰＵ１０１は、ステップＳ８０２で描画命令が存在しないと判断した場合、第２の描画命令生成手段として、図６に示すステップＳ６０１の前からＲＡＭ１０３に格納されているＤＯＭデータに基づいて、そのオブジェクトの描画命令を生成する（ステップＳ８０３）。ここでは、フラグＮＯ＿ＣＯＭＭＡＮＤと共に格納されているＩＤに基づいて、ＤＯＭデータの中の該当するオブジェクトを特定し、そのデータを読み取った上で描画命令の生成を行う。
次いで、ＣＰＵ１０１は、ステップＳ８０３で生成した描画命令に従って描画を行う（ステップＳ８０４）。
【００２７】
ステップＳ８０４の後、ＣＰＵ１０１は、変数Ｎに１を加える（ステップＳ８０５）。
次いで、ＣＰＵ１０１は、Ｎ番目のオブジェクトが存在するか否かを判断する（ステップＳ８０６）。即ち、未処理のオブジェクトが存在するか否かを判断する。
【００２８】
そして、ＣＰＵ１０１は、ステップＳ８０６においてＮ番目のオブジェクトが存在すると判断した場合、ステップＳ８０２へ移行し、ステップＳ８０２〜Ｓ８０５の処理を繰り返す。
一方、ＣＰＵ１０１は、ステップＳ８０６においてＮ番目のオブジェクトが存在しないと判断した場合、当該フレームに含まれるオブジェクトはすべて描画されていることになるため、処理を終了する。
【００２９】
このような第１の実施形態によれば、２フレーム目以降の処理では、矩形の描画に関する描画命令の生成を行う必要がない。これは、最初のフレームの処理で生成された描画命令がＲＡＭ１０３に格納されており、これをそのまま用いるからである。従って、オブジェクトの大きさと描画領域の大きさとの関係に拘わらず、描画命令を生成する処理数が少なくなるため、計算量が減少し、結果的に描画処理を高速に行うことが可能になる。
【００３０】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態でも、最初のフレーム（例えば時刻０秒時のフレーム）の描画と、２フレーム目以降（例えば時刻１秒時以降のフレーム）の描画との間で異なる処理を行うが、これらの処理の内容が第１の実施形態と相違している。他の構成は第１の実施形態と同様である。
【００３１】
先ず、最初のフレームの描画を行う際の処理について説明する。図９は、第２の実施形態に係る情報処理装置の処理を示すフローチャートである。この処理は、主としてＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムを実行することにより実現される。なお、図９に示す処理の前には、ＣＰＵ１０１がＳＶＧデータを読み取り、ＤＯＭ形式の内部データ（ＤＯＭデータ）がＲＡＭ１０３に格納されている。
【００３２】
先ず、ＣＰＵ１０１は、変数Ｎに０をセットする（ステップＳ９０１）。変数Ｎは、オブジェクトを順次描画するためのカウンタである。
次いで、ＣＰＵ１０１は、第１の描画命令生成手段として、ＲＡＭ１０３に格納されたＤＯＭデータから、Ｎ番目のオブジェクトのデータを読み取り、描画命令を生成する（ステップＳ９０２）。
その後、ＣＰＵ１０１は、ステップＳ９０２で生成した描画命令に従って描画を行う（ステップＳ９０３）。ステップＳ９０２で読み取るデータはオブジェクト１個のデータであるため、ステップＳ９０３で描画されるオブジェクトは１個である。例えば、図２に示すＳＶＧデータを処理する場合には、最初に行われるステップＳ９０２及びステップＳ９０３の処理により、矩形が１個描画されることになる。
続いて、ＣＰＵ１０１は、第１の判断手段として、ステップＳ９０２で生成した描画命令の各プロパティの値が不変か否かを判断する（ステップＳ９０４）。ここでは、ＲＡＭ１０３に格納されているＤＯＭデータを参照し、各オブジェクトのアニメーションの記述を解析することにより、個々のプロパティが不変か否かの判断を行う。
【００３３】
そして、ＣＰＵ１０１は、ステップＳ９０４において描画命令の各プロパティの値が不変であると判断した場合、各プロパティを含む描画命令をメモリ（ＲＡＭ１０３）に格納する（ステップＳ９０５）。格納される情報には、描画命令の種類を示す識別子並びに各プロパティの識別子及び値が含まれる。
一方、ＣＰＵ１０１は、ステップＳ９０４において描画命令のプロパティの少なくとも一部の値が不変でないと判断した場合、即ち時刻に応じて変化するプロパティの値が存在すると判断した場合、そのプロパティに対して変化することを意味するフラグをセットする。そして、このフラグをメモリ（ＲＡＭ１０３）に格納する（ステップＳ９０６）。例えば、図２に示す例では、円のオブジェクトについての処理において、プロパティｃｘの値が変化するため、円に対応する描画命令のプロパティｃｘにフラグをセットした上でメモリ（ＲＡＭ１０３）に格納する。また、楕円のオブジェクトについての処理においては、プロパティｆｉｌｌ−ｏｐａｃｉｔｙの値が変化するため、楕円に対応する描画命令のプロパティｆｉｌｌ−ｏｐａｃｉｔｙにフラグをセットした上でメモリ（ＲＡＭ１０３）に格納する。
【００３４】
ステップＳ９０５又はＳ９０６の後、ＣＰＵ１０１は、変数Ｎに１を加える（ステップＳ９０７）。
次いで、ＣＰＵ１０１は、Ｎ番目のオブジェクトが存在するか否かを判断する（ステップＳ９０８）。即ち、未処理のオブジェクトが存在するか否かを判断する。
【００３５】
そして、ＣＰＵ１０１は、ステップＳ９０８においてＮ番目のオブジェクトが存在すると判断した場合、ステップＳ９０２へ移行し、ステップＳ９０２〜Ｓ９０７の処理を繰り返す。
一方、ＣＰＵ１０１は、ステップＳ９０８においてＮ番目のオブジェクトが存在しないと判断した場合、最初のフレームに含まれるオブジェクトはすべて描画されていることになるため、処理を終了する。
【００３６】
図１０は、図９に示す処理を行った結果、ＲＡＭ１０３に格納されるデータを示す模式図である。
図１０に示すように、ＲＡＭ１０３には、矩形の描画に関する８個の描画命令、円の描画に関する１個の描画命令、及び楕円の描画に関する１個の描画命令が格納される。但し、円の描画に関する描画命令については、プロパティｃｘの値にはフラグＮＯ＿ＤＡＴＡが格納され、楕円の描画に関する描画命令については、プロパティｆｉｌｌ−ｏｐａｃｉｔｙの値にもフラグＮＯ＿ＤＡＴＡが格納される。これらのフラグＮＯ＿ＤＡＴＡは、当該プロパティが、時間と共に変化するプロパティであることを示す。
【００３７】
次に、２フレーム目以降の描画を行う際の処理について説明する。図１１は、第２の実施形態に係る情報処理装置の処理を示すフローチャートである。この処理も、主としてＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムを実行することにより実現される。なお、図１１に示す処理の前には、図１０に示すようなデータが既にＲＡＭ１０３に格納されている。
【００３８】
先ず、ＣＰＵ１０１は、変数Ｎに０をセットする（ステップＳ１１０１）。変数Ｎは、オブジェクトを順次描画するためのカウンタである。
次いで、ＣＰＵ１０１は、ＲＡＭ１０３からＮ番目のオブジェクトの描画命令を取得する（ステップＳ１１０２）。
その後、ＣＰＵ１０１は、第２の判断手段として、ステップＳ１１０２で取得した描画命令の各プロパティに変化することを示すフラグ（変化フラグ）が存在するか否かを判断する（ステップＳ１１０３）。例えば、図１０に示す例では、フラグＮＯ＿ＤＡＴＡが変化フラグを意味する。
【００３９】
そして、ＣＰＵ１０１は、ステップＳ１１０３で各プロパティに変化フラグが一切存在しないと判断した場合、その描画命令に従って描画を行う（ステップＳ１１０５）。
一方、ＣＰＵ１０１は、ステップＳ１１０３で少なくとも一部のプロパティに変化フラグが存在すると判断した場合、第２の描画命令生成手段として、図９に示すステップＳ９０１の前からＲＡＭ１０３に格納されているＤＯＭデータから対応するオブジェクトデータを読み取る。更に、ＣＰＵ１０１は、そのプロパティの値を計算する（ステップＳ１１０４）。複数のプロパティに変化フラグが存在する場合には、夫々のプロパティの値を計算して取得する。
このようなステップＳ１１０４の処理により、不足していた属性値が補われて描画命令が完成されるため、ＣＰＵ１０１は、その描画命令に従って描画を行う（ステップＳ１１０５）。
【００４０】
ステップＳ１１０５の後、ＣＰＵ１０１は、変数Ｎに１を加える（ステップＳ１１０６）。
次いで、ＣＰＵ１０１は、Ｎ番目のオブジェクトが存在するか否かを判断する（ステップＳ１１０７）。即ち、未処理のオブジェクトが存在するか否かを判断する。
【００４１】
そして、ＣＰＵ１０１は、ステップＳ１１０７においてＮ番目のオブジェクトが存在すると判断した場合、ステップＳ１１０３へ移行し、ステップＳ１１０３〜Ｓ１１０６の処理を繰り返す。
一方、ＣＰＵ１０１は、ステップＳ１１０７においてＮ番目のオブジェクトが存在しないと判断した場合、当該フレームに含まれるオブジェクトはすべて描画されていることになるため、処理を終了する。
【００４２】
このような第２の実施形態によれば、２フレーム目以降の処理では、矩形の描画に関する描画命令の生成を行う必要がない。また、円及び楕円についても、夫々、プロパティｃｘ、プロパティｆｉｌｌ−ｏｐａｃｉｔｙ以外の値については再計算を行う必要がない。これは、最初のフレームの処理で生成された描画命令がＲＡＭ１０３に格納されており、これをそのまま用いるからである。従って、オブジェクトの大きさと描画領域の大きさとの関係に拘わらず、描画命令を生成する処理数が少なくなるため、計算量が減少し、結果的に描画処理を高速に行うことが可能になる。
【００４３】
なお、描画命令及び描画命令のプロパティの値が２フレーム目以降で変化するか否かによって判断する必要はなく、例えば、所定のＭフレーム目の描画を図８又は図１１に示す手順で処理する際に、Ｍ＋１フレーム目以降で変化するか否かに基づいて判断してもよい。この場合には、図８又は図１１に示す手順に、メモリに格納された描画命令を更新するステップを加えればよい。また、予め２秒のアニメーションというようなことが判明している場合には、２秒の間（所定時間）に当該アニメーションに関連するプロパティ値が変化するか否かに基づいて判断してもよい。
また、ステップＳ６０４又はＳ９０４の判断をもとのＳＶＧデータに基づいて行ってもよい。
また、本発明を適用することができる情報処理装置としては、例えば、パーソナルコンピュータ、印刷装置、カメラ、複写機、スキャナ、テレビ等が挙げられる。
更に、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
【符号の説明】
【００４４】
１０１：ＣＰＵ  １０２：ＲＯＭ  １０３：ＲＡＭ  １０４、表示部  １０５：操作部
【図１】
2011022671.tif 000003
【図２】
2011022671.tif 000004
【図３】
2011022671.tif 000005
【図４】
2011022671.tif 000006
【図５】
2011022671.tif 000007
【図６】
2011022671.tif 000008
【図７】
2011022671.tif 000009
【図８】
2011022671.tif 000010
【図９】
2011022671.tif 000011
【図１０】
2011022671.tif 000012
【図１１】
2011022671.tif 000013