(57)【要約】【課題】メモリの使用量を抑えるとともに、描画処理を高速化できるようにする。【解決手段】グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して内部データを生成し、前記生成された内部データに基づいて描画命令を生成する。一方、前記内部データに基づいて前記生成した描画命令を現在の時刻に相当する描画命令に更新する手段を備え、前記更新する手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行う。【選択図】図２
2012123739.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成手段と、
前記内部データ生成手段により生成された内部データに基づいて描画命令を生成する描画命令生成手段と、
前記描画命令生成手段により生成された描画命令を用いて描画処理を行う描画手段と、
前記内部データに基づいて前記描画命令生成手段により生成された描画命令を現在の時刻に相当する描画命令に更新する更新手段とを備え、
前記描画手段は、前記更新手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする描画処理装置。
【請求項２】
前記描画命令生成手段は、前記内部データに基づいて任意の時刻のフレームに関する描画命令を生成することを特徴とする請求項１に記載の描画処理装置。
【請求項３】
前記描画命令生成手段は、前記内部データをもとに前フレームからの変更部分を包含する再描画領域の情報を取得し、前記取得した再描画領域の大きさによって前記生成する描画命令のフレームを決定することを特徴とする請求項１に記載の描画処理装置。
【請求項４】
前記内部データからアニメーションの開始時刻を取得し、前記現在の時刻と前記アニメーションの開始時刻とを比較して、前記描画命令を更新するか否かを判別する判別手段をさらに備えることを特徴とする請求項１〜３の何れか１項に記載の描画処理装置。
【請求項５】
前記更新手段は、前記描画命令生成手段により複数の描画命令が作成されている場合には、前記現在の時刻に最も近いフレームに関する描画命令を選択し、前記選択した描画命令を更新することを特徴とする請求項１〜４の何れか１項に記載の描画処理装置。
【請求項６】
前記グラフィックス情報は、グラフィックスに関する形状情報、透明度を含む色情報、位置情報、及び状態情報を含むことを特徴とする請求項１〜５の何れか１項に記載の描画処理装置。
【請求項７】
前記グラフィックスは、少なくとも図形、文字、画像のいずれかであることを特徴とする請求項６に記載の描画処理装置。
【請求項８】
前記描画コンテンツは構造化文書であることを特徴とする請求項１〜７の何れか１項に記載の描画処理装置。
【請求項９】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成工程と、
前記内部データ生成工程において生成された内部データに基づいて描画命令を生成する描画命令生成工程と、
前記描画命令生成工程において生成された描画命令を用いて描画処理を行う描画工程と、
前記内部データに基づいて前記描画命令生成工程において生成された描画命令を現在の時刻に相当する描画命令に更新する更新工程とを備え、
前記描画工程においては、前記更新工程において描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする描画処理方法。
【請求項１０】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成工程と、
前記内部データ生成工程において生成された内部データに基づいて描画命令を生成する描画命令生成工程と、
前記描画命令生成工程において生成された描画命令を用いて描画処理を行う描画工程と、
前記内部データに基づいて前記描画命令生成工程において生成された描画命令を現在の時刻に相当する描画命令に更新する更新工程とをコンピュータに実行させ、
前記描画工程においては、前記更新工程において描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、アニメーションを含む画面を描画するために用いて好適な描画処理装置、描画処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、表示機能を有する機器において様々なアニメーション効果を含むグラフィカルユーザインターフェース（ＧＵＩ）が普及してきている。アニメーション効果としては、例えば、図形や画像、文字などに対して拡大縮小、回転、透明度を含む色情報の変化、モーフィングをさせるものなどがある。これらのアニメーション効果を機器のＧＵＩとしてスムースに表示させるために、これまで様々な高速化の工夫がなされてきた。
【０００３】
従来、アニメーション効果を含むコンテンツを描画する際には、フレーム間で属性の変更があったグラフィックスだけを包含する矩形領域を再描画する方法が一般的であった。この方法は再描画する領域を限定するので描画処理を高速化させることが期待できる。また、別の方法として、グラフィックスの一部を画像データに変換してキャッシュするスプライトと呼ばれる方法が開示されている（例えば、特許文献１参照）。この方法ではすでに描画された結果を利用するので、グラフィックスを解析して描画命令を作成する処理を省略できる。さらには、グラフィックスを解析して作成した描画命令をキャッシュし、それを適宜変更して描画を行う方法も開示されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１４８１３４号公報
【特許文献２】特開平２−１９６３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アニメーション効果を含むコンテンツを描画する際に、毎フレームで描画命令を生成すると描画時間が多くかかり、アニメーション時にコマ落ちしてしまう可能性がある。そこで、再描画する領域を限定する方法を用いることが考えられるが、１フレーム目においては表示領域に含まれるグラフィックス全てを描画しなければならないので高速化の効果があまり得られない。また、アニメーションするタイミングによって再描画領域が一時的に大きくなる場合についても高速化の効果は期待できない。
【０００６】
また、特許文献１に記載の方法では、描画結果を画像データとして保持するため大量のメモリ容量を必要とする。さらに、デバイスによって出力サイズが異なる場合には、保持している画像データを伸縮しなければならないため、画質が劣化するという問題も生じる。さらに、特許文献２に記載の方法では、全てのグラフィックスに関する描画命令を保持するため、グラフィックスの数やアニメーション時間によっては大量のメモリ容量を必要とする。
【０００７】
本発明は前述の問題点に鑑み、メモリの使用量を抑えるとともに、描画処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の描画処理装置は、グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成手段と、前記内部データ生成手段により生成された内部データに基づいて描画命令を生成する描画命令生成手段と、前記描画命令生成手段により生成された描画命令を用いて描画処理を行う描画手段と、前記内部データに基づいて前記描画命令生成手段により生成された描画命令を現在の時刻に相当する描画命令に更新する更新手段とを備え、前記描画手段は、前記更新手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、メモリの使用量を抑えるとともに、描画処理を高速化することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る描画処理装置のハード構成例を示すブロック図である。
【図２】実施形態に係る描画処理装置の機能構成例を示すブロック図である。
【図３】描画処理装置で描画させる描画コンテンツの一例を示す図である。
【図４】ＸＭＬ形式の構造化文書からなる描画コンテンツの一例を示す図である。
【図５】描画命令を更新する前の処理手順の一例を示すフローチャートである。
【図６】内部データを表すモデルの一例を示す図である。
【図７】１フレーム目の描画命令セットの一例を示す図である。
【図８】描画処理を行う際の処理手順の一例を示すフローチャートである。
【図９】更新された描画命令セットの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら説明する。
図１は、本実施形態の描画処理装置１００のハード構成例を示すブロック図である。
図１において、ＣＰＵ１０１はシステム制御部であり、描画処理装置１００全体を制御する。ＲＯＭ１０２は、変更を必要としないプログラムやパラメータを格納する読み取り専用のメモリである。ＲＡＭ１０３は、外部装置などから供給されるプログラムやデータを一時記憶する書き換え可能なメモリであり、後述する内部データや描画命令がＲＡＭ１０３に格納される。
【００１２】
入力部１０４は、ユーザの操作を受け、データを入力するポインティングデバイスやキーボードなどの入力デバイス１０７とのインターフェイスである。出力部１０５は、描画処理装置１００により出力されたデータを表示するためのモニタ１０８とのインターフェイスである。システムバス１０６はＣＰＵ１０１〜出力部１０５の各ユニットを通信可能に接続するバスである。
【００１３】
なお、説明した構成に対して、プログラムコードを供給するための記憶媒体として、ＲＯＭ１０２のほかに以下のものを用いてもよい。例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、メモリカード、ＤＶＤなどが本実施形態の描画処理装置１００の構成に加わってもよい。
【００１４】
図２は、本実施形態の描画処理装置１００の機能構成例を示すブロック図である。
図２に示す描画処理装置１００において、描画コンテンツ解析部２０２は、入力された描画コンテンツ２０１を解析する。そして、内部データ生成部２０３は、その解析結果から内部形式のデータである内部データを生成する。描画命令生成部２０４は、生成した内部データをもとに各グラフィックスに関する描画命令を生成する。
【００１５】
現在時刻取得部２０５は、フレームを描画する際の時刻の情報を取得する。そして、描画命令更新判別部２０６は、前記内部データと現在時刻取得部２０５で取得した時刻とから、描画命令生成部２０４で生成された描画命令を更新するか否かを判別する。そして、描画命令を更新すると判別されると、描画命令更新部２０７は、グラフィックスの描画命令を更新する。描画処理部２０８は、描画命令生成部２０４であらかじめ生成された描画命令、または描画命令更新部２０７で更新された描画命令をもとに描画処理を行い、描画結果を表示部２０９に出力する。
【００１６】
図３は、本実施形態の描画処理装置１００で描画させる描画コンテンツの一例を示す図である。図３に示す描画コンテンツは図形３０１と図形３０２とで構成されており、描画開始から３秒後に図形３０２が４秒間かけて位置３０３まで移動するアニメーション情報が定義されている。図４は、前述の描画コンテンツをＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式の構造化文書である２次元ベクトルグラフィックスフォーマットＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）での記述例を示す図である。本実施形態では、図４に示したＳＶＧデータを入力データとしているが、グラフィックスに関する形状情報、透明度を含む色情報、位置情報、状態情報が含まれているのであれば、ＳＶＧデータに限らず、構造化文書でなくてもよい。また、図形だけでなく、画像、文字などのグラフィックス情報が描画コンテンツに含まれていてもよい。
【００１７】
図５は、本実施形態における前処理の手順の一例を示すフローチャートである。図５の説明では、図４に示すＳＶＧデータを入力した場合を例に説明する。
はじめに、描画コンテンツ解析部２０２は、描画コンテンツ２０１として図４に示したＳＶＧデータを解析し、内部データ生成部２０３は、解析結果に基づいて内部データを生成する（Ｓ５０１）。
【００１８】
図６は、生成される内部データを表すモデルの一例を示す図である。本実施形態では、内部データをＤｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＤＯＭ）のツリー形式で表わしているが、ＤＯＭツリー形式でなくてもよい。図６に示す例は、ルートノードであるｓｖｇ要素６０１とその子要素であるｃｉｒｃｌｅ要素６０２とｒｅｃｔ要素６０３とで構成されている。ｃｉｒｃｌｅ要素６０２及びｒｅｃｔ要素６０３はそれぞれ、図３に示す図形３０１、３０２を表している。また、ｒｅｃｔ要素６０３の子要素として、ａｎｉｍａｔｅＴｒａｎｓｆｏｒｍ要素６０４があり、これは、図３の図形３０２が時間によってアニメーション（変化）することを表している。
【００１９】
次に、描画命令生成部２０４は、前記生成した内部データから特定のフレームを描画するのに必要な描画命令を作成する（Ｓ５０２）。本実施形態では最初のフレームに関する描画命令を作成するが、必ずしも最初のフレームである必要はなく、任意のフレームに相当する描画命令を作成してもよい。また、複数のフレームに関する描画命令を作成してもよい。
【００２０】
図７は、１フレーム目の描画命令セットの一例を示す図であり、図７の描画命令７０１、７０２がそれぞれ、図３の図形３０１、３０２の描画命令を表している。それぞれの描画命令は塗り方、変形、描画に関する命令で構成されているが、それら以外の命令が含まれていてもよい。また、「ＣＩＲＣＬＥ＿ＤＡＴＡ」には図形３０１の形状情報及び位置情報が格納され、「ＲＥＣＴ＿ＤＡＴＡ」には、図形３０２の形状情報及び位置情報が格納されているものとする。
【００２１】
そして、内部データ生成部２０３は、前記描画コンテンツを構成する図形がアニメーションを開始する時刻の情報を生成した内部データから取得して処理を終了させる（Ｓ５０３）。本実施形態では、図形３０２がアニメーションを開始する時刻である３秒後という値の情報が取得される。
【００２２】
図８は、本実施形態において、実際に描画処理を行う際の処理手順の一例を示すフローチャートである。本実施形態では、図８の処理を開始する場合、図５で示した手順により生成された内部データと１フレーム目に関する描画命令セットと、アニメーションの開始時刻の情報とを予め保持しておくことを前提とする。
【００２３】
はじめに、現在時刻取得部２０５は、現在の時刻の情報を取得する（Ｓ８０１）。本実施形態において時刻とは、描画処理を開始する時間を３秒としたときの相対時間をあらわし、１フレーム目の描画時である場合には、時刻０秒の情報が取得される。次に、描画命令更新判別部２０６は、図５のＳ５０３で取得したアニメーションの開始時刻とＳ８０１で取得した時刻とを比較する（Ｓ８０２）。この比較の結果、現在の時刻がアニメーションの開始時刻よりも前である場合は、描画処理部２０８は、図５のＳ５０２で作成した描画命令セットを用いて描画を行い（Ｓ８０３）、Ｓ８０１に戻る。
【００２４】
一方、Ｓ８０２の比較の結果、そうでない場合は、描画命令更新部２０７は、予め保持している内部データをもとに、Ｓ８０１で取得した時刻における新たな描画命令を作成し、Ｓ５０２で作成した描画命令を更新する（Ｓ８０４）。そして、描画処理部２０８は、更新した描画命令を用いて描画処理を行い（Ｓ８０３）、Ｓ８０１に戻る。
【００２５】
図９は、Ｓ８０４にて更新されたあとの描画命令セットの一例を示す図である。図９に示す例は、描画処理が始まって３秒後からアニメーションが終了する７秒後までの間におけるフレームの描画命令セットを表している。図３の図形３０１に関する描画命令９０１は図７の描画命令７０１と変わらないが、図形３０２はアニメーション中であるため、描画命令９０２のＳｅｔＭａｔｒｉｘ関数の第２、第３引数がそれぞれｔｘ、ｔｙに更新されている。このｔｘ、ｔｙは図形３０２がアニメーションを開始する直前の位置からＳ８０１で取得した時刻までに移動する座標を表している。
【００２６】
本実施形態においては、前フレームから変更のあった領域だけを再描画の対象とする部分更新機能を用いても構わない。その際、１フレーム目のようにフレームの全領域を描画する必要がある場合や、アニメーションによって前フレームからの変更部分が大きい場合に特に有効である。例えば、描画命令生成部２０４は、内部データから前フレームからの変更部分を包含する再描画領域の情報を取得し、再描画領域の大きさによって描画命令のフレームを決定してもよい。
【００２７】
また、複数のフレームに関する描画命令を作成している場合には、描画命令更新部２０７は、現在の時刻に最も近いフレームの描画命令を選択し、その選択した描画命令を更新するようにしてもよい。
【００２８】
以上のように本実施形態によれば、描画コンテンツから内部データを生成し、生成した内部データと特定のフレームに関する描画命令とを用いて、アニメーションが開始されたフレームの描画命令を更新するようにした。これにより、フレームごとの描画命令を記憶する必要はなく、特定のフレームの描画を高速に行うことができる。
【００２９】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３０】
２０１  描画コンテンツ
２０３  内部データ生成部
２０４  描画命令生成部
２０７  描画命令更新部
２０８  描画処理部
【図１】
2012123739.tif 000003
【図２】
2012123739.tif 000004
【図３】
2012123739.tif 000005
【図４】
2012123739.tif 000006
【図５】
2012123739.tif 000007
【図６】
2012123739.tif 000008
【図７】
2012123739.tif 000009
【図８】
2012123739.tif 000010
【図９】
2012123739.tif 000011