説明

描画処理装置、描画処理方法及びプログラム

【課題】メモリの使用量を抑えるとともに、描画処理を高速化できるようにする。
【解決手段】グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して内部データを生成し、前記生成された内部データに基づいて描画命令を生成する。一方、前記内部データに基づいて前記生成した描画命令を現在の時刻に相当する描画命令に更新する手段を備え、前記更新する手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、アニメーションを含む画面を描画するために用いて好適な描画処理装置、描画処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、表示機能を有する機器において様々なアニメーション効果を含むグラフィカルユーザインターフェース(GUI)が普及してきている。アニメーション効果としては、例えば、図形や画像、文字などに対して拡大縮小、回転、透明度を含む色情報の変化、モーフィングをさせるものなどがある。これらのアニメーション効果を機器のGUIとしてスムースに表示させるために、これまで様々な高速化の工夫がなされてきた。
【0003】
従来、アニメーション効果を含むコンテンツを描画する際には、フレーム間で属性の変更があったグラフィックスだけを包含する矩形領域を再描画する方法が一般的であった。この方法は再描画する領域を限定するので描画処理を高速化させることが期待できる。また、別の方法として、グラフィックスの一部を画像データに変換してキャッシュするスプライトと呼ばれる方法が開示されている(例えば、特許文献1参照)。この方法ではすでに描画された結果を利用するので、グラフィックスを解析して描画命令を作成する処理を省略できる。さらには、グラフィックスを解析して作成した描画命令をキャッシュし、それを適宜変更して描画を行う方法も開示されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−148134号公報
【特許文献2】特開平2−196327号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
アニメーション効果を含むコンテンツを描画する際に、毎フレームで描画命令を生成すると描画時間が多くかかり、アニメーション時にコマ落ちしてしまう可能性がある。そこで、再描画する領域を限定する方法を用いることが考えられるが、1フレーム目においては表示領域に含まれるグラフィックス全てを描画しなければならないので高速化の効果があまり得られない。また、アニメーションするタイミングによって再描画領域が一時的に大きくなる場合についても高速化の効果は期待できない。
【0006】
また、特許文献1に記載の方法では、描画結果を画像データとして保持するため大量のメモリ容量を必要とする。さらに、デバイスによって出力サイズが異なる場合には、保持している画像データを伸縮しなければならないため、画質が劣化するという問題も生じる。さらに、特許文献2に記載の方法では、全てのグラフィックスに関する描画命令を保持するため、グラフィックスの数やアニメーション時間によっては大量のメモリ容量を必要とする。
【0007】
本発明は前述の問題点に鑑み、メモリの使用量を抑えるとともに、描画処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【0008】
本発明の描画処理装置は、グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成手段と、前記内部データ生成手段により生成された内部データに基づいて描画命令を生成する描画命令生成手段と、前記描画命令生成手段により生成された描画命令を用いて描画処理を行う描画手段と、前記内部データに基づいて前記描画命令生成手段により生成された描画命令を現在の時刻に相当する描画命令に更新する更新手段とを備え、前記描画手段は、前記更新手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする。
【発明の効果】
【0009】
本発明によれば、メモリの使用量を抑えるとともに、描画処理を高速化することができる。
【図面の簡単な説明】
【0010】
【図1】実施形態に係る描画処理装置のハード構成例を示すブロック図である。
【図2】実施形態に係る描画処理装置の機能構成例を示すブロック図である。
【図3】描画処理装置で描画させる描画コンテンツの一例を示す図である。
【図4】XML形式の構造化文書からなる描画コンテンツの一例を示す図である。
【図5】描画命令を更新する前の処理手順の一例を示すフローチャートである。
【図6】内部データを表すモデルの一例を示す図である。
【図7】1フレーム目の描画命令セットの一例を示す図である。
【図8】描画処理を行う際の処理手順の一例を示すフローチャートである。
【図9】更新された描画命令セットの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態の描画処理装置100のハード構成例を示すブロック図である。
図1において、CPU101はシステム制御部であり、描画処理装置100全体を制御する。ROM102は、変更を必要としないプログラムやパラメータを格納する読み取り専用のメモリである。RAM103は、外部装置などから供給されるプログラムやデータを一時記憶する書き換え可能なメモリであり、後述する内部データや描画命令がRAM103に格納される。
【0012】
入力部104は、ユーザの操作を受け、データを入力するポインティングデバイスやキーボードなどの入力デバイス107とのインターフェイスである。出力部105は、描画処理装置100により出力されたデータを表示するためのモニタ108とのインターフェイスである。システムバス106はCPU101〜出力部105の各ユニットを通信可能に接続するバスである。
【0013】
なお、説明した構成に対して、プログラムコードを供給するための記憶媒体として、ROM102のほかに以下のものを用いてもよい。例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、メモリカード、DVDなどが本実施形態の描画処理装置100の構成に加わってもよい。
【0014】
図2は、本実施形態の描画処理装置100の機能構成例を示すブロック図である。
図2に示す描画処理装置100において、描画コンテンツ解析部202は、入力された描画コンテンツ201を解析する。そして、内部データ生成部203は、その解析結果から内部形式のデータである内部データを生成する。描画命令生成部204は、生成した内部データをもとに各グラフィックスに関する描画命令を生成する。
【0015】
現在時刻取得部205は、フレームを描画する際の時刻の情報を取得する。そして、描画命令更新判別部206は、前記内部データと現在時刻取得部205で取得した時刻とから、描画命令生成部204で生成された描画命令を更新するか否かを判別する。そして、描画命令を更新すると判別されると、描画命令更新部207は、グラフィックスの描画命令を更新する。描画処理部208は、描画命令生成部204であらかじめ生成された描画命令、または描画命令更新部207で更新された描画命令をもとに描画処理を行い、描画結果を表示部209に出力する。
【0016】
図3は、本実施形態の描画処理装置100で描画させる描画コンテンツの一例を示す図である。図3に示す描画コンテンツは図形301と図形302とで構成されており、描画開始から3秒後に図形302が4秒間かけて位置303まで移動するアニメーション情報が定義されている。図4は、前述の描画コンテンツをXML(eXtensible Markup Language)形式の構造化文書である2次元ベクトルグラフィックスフォーマットSVG(Scalable Vector Graphics)での記述例を示す図である。本実施形態では、図4に示したSVGデータを入力データとしているが、グラフィックスに関する形状情報、透明度を含む色情報、位置情報、状態情報が含まれているのであれば、SVGデータに限らず、構造化文書でなくてもよい。また、図形だけでなく、画像、文字などのグラフィックス情報が描画コンテンツに含まれていてもよい。
【0017】
図5は、本実施形態における前処理の手順の一例を示すフローチャートである。図5の説明では、図4に示すSVGデータを入力した場合を例に説明する。
はじめに、描画コンテンツ解析部202は、描画コンテンツ201として図4に示したSVGデータを解析し、内部データ生成部203は、解析結果に基づいて内部データを生成する(S501)。
【0018】
図6は、生成される内部データを表すモデルの一例を示す図である。本実施形態では、内部データをDocument Object Model(DOM)のツリー形式で表わしているが、DOMツリー形式でなくてもよい。図6に示す例は、ルートノードであるsvg要素601とその子要素であるcircle要素602とrect要素603とで構成されている。circle要素602及びrect要素603はそれぞれ、図3に示す図形301、302を表している。また、rect要素603の子要素として、animateTransform要素604があり、これは、図3の図形302が時間によってアニメーション(変化)することを表している。
【0019】
次に、描画命令生成部204は、前記生成した内部データから特定のフレームを描画するのに必要な描画命令を作成する(S502)。本実施形態では最初のフレームに関する描画命令を作成するが、必ずしも最初のフレームである必要はなく、任意のフレームに相当する描画命令を作成してもよい。また、複数のフレームに関する描画命令を作成してもよい。
【0020】
図7は、1フレーム目の描画命令セットの一例を示す図であり、図7の描画命令701、702がそれぞれ、図3の図形301、302の描画命令を表している。それぞれの描画命令は塗り方、変形、描画に関する命令で構成されているが、それら以外の命令が含まれていてもよい。また、「CIRCLE_DATA」には図形301の形状情報及び位置情報が格納され、「RECT_DATA」には、図形302の形状情報及び位置情報が格納されているものとする。
【0021】
そして、内部データ生成部203は、前記描画コンテンツを構成する図形がアニメーションを開始する時刻の情報を生成した内部データから取得して処理を終了させる(S503)。本実施形態では、図形302がアニメーションを開始する時刻である3秒後という値の情報が取得される。
【0022】
図8は、本実施形態において、実際に描画処理を行う際の処理手順の一例を示すフローチャートである。本実施形態では、図8の処理を開始する場合、図5で示した手順により生成された内部データと1フレーム目に関する描画命令セットと、アニメーションの開始時刻の情報とを予め保持しておくことを前提とする。
【0023】
はじめに、現在時刻取得部205は、現在の時刻の情報を取得する(S801)。本実施形態において時刻とは、描画処理を開始する時間を3秒としたときの相対時間をあらわし、1フレーム目の描画時である場合には、時刻0秒の情報が取得される。次に、描画命令更新判別部206は、図5のS503で取得したアニメーションの開始時刻とS801で取得した時刻とを比較する(S802)。この比較の結果、現在の時刻がアニメーションの開始時刻よりも前である場合は、描画処理部208は、図5のS502で作成した描画命令セットを用いて描画を行い(S803)、S801に戻る。
【0024】
一方、S802の比較の結果、そうでない場合は、描画命令更新部207は、予め保持している内部データをもとに、S801で取得した時刻における新たな描画命令を作成し、S502で作成した描画命令を更新する(S804)。そして、描画処理部208は、更新した描画命令を用いて描画処理を行い(S803)、S801に戻る。
【0025】
図9は、S804にて更新されたあとの描画命令セットの一例を示す図である。図9に示す例は、描画処理が始まって3秒後からアニメーションが終了する7秒後までの間におけるフレームの描画命令セットを表している。図3の図形301に関する描画命令901は図7の描画命令701と変わらないが、図形302はアニメーション中であるため、描画命令902のSetMatrix関数の第2、第3引数がそれぞれtx、tyに更新されている。このtx、tyは図形302がアニメーションを開始する直前の位置からS801で取得した時刻までに移動する座標を表している。
【0026】
本実施形態においては、前フレームから変更のあった領域だけを再描画の対象とする部分更新機能を用いても構わない。その際、1フレーム目のようにフレームの全領域を描画する必要がある場合や、アニメーションによって前フレームからの変更部分が大きい場合に特に有効である。例えば、描画命令生成部204は、内部データから前フレームからの変更部分を包含する再描画領域の情報を取得し、再描画領域の大きさによって描画命令のフレームを決定してもよい。
【0027】
また、複数のフレームに関する描画命令を作成している場合には、描画命令更新部207は、現在の時刻に最も近いフレームの描画命令を選択し、その選択した描画命令を更新するようにしてもよい。
【0028】
以上のように本実施形態によれば、描画コンテンツから内部データを生成し、生成した内部データと特定のフレームに関する描画命令とを用いて、アニメーションが開始されたフレームの描画命令を更新するようにした。これにより、フレームごとの描画命令を記憶する必要はなく、特定のフレームの描画を高速に行うことができる。
【0029】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0030】
201 描画コンテンツ
203 内部データ生成部
204 描画命令生成部
207 描画命令更新部
208 描画処理部

【特許請求の範囲】
【請求項1】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成手段と、
前記内部データ生成手段により生成された内部データに基づいて描画命令を生成する描画命令生成手段と、
前記描画命令生成手段により生成された描画命令を用いて描画処理を行う描画手段と、
前記内部データに基づいて前記描画命令生成手段により生成された描画命令を現在の時刻に相当する描画命令に更新する更新手段とを備え、
前記描画手段は、前記更新手段によって描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする描画処理装置。
【請求項2】
前記描画命令生成手段は、前記内部データに基づいて任意の時刻のフレームに関する描画命令を生成することを特徴とする請求項1に記載の描画処理装置。
【請求項3】
前記描画命令生成手段は、前記内部データをもとに前フレームからの変更部分を包含する再描画領域の情報を取得し、前記取得した再描画領域の大きさによって前記生成する描画命令のフレームを決定することを特徴とする請求項1に記載の描画処理装置。
【請求項4】
前記内部データからアニメーションの開始時刻を取得し、前記現在の時刻と前記アニメーションの開始時刻とを比較して、前記描画命令を更新するか否かを判別する判別手段をさらに備えることを特徴とする請求項1〜3の何れか1項に記載の描画処理装置。
【請求項5】
前記更新手段は、前記描画命令生成手段により複数の描画命令が作成されている場合には、前記現在の時刻に最も近いフレームに関する描画命令を選択し、前記選択した描画命令を更新することを特徴とする請求項1〜4の何れか1項に記載の描画処理装置。
【請求項6】
前記グラフィックス情報は、グラフィックスに関する形状情報、透明度を含む色情報、位置情報、及び状態情報を含むことを特徴とする請求項1〜5の何れか1項に記載の描画処理装置。
【請求項7】
前記グラフィックスは、少なくとも図形、文字、画像のいずれかであることを特徴とする請求項6に記載の描画処理装置。
【請求項8】
前記描画コンテンツは構造化文書であることを特徴とする請求項1〜7の何れか1項に記載の描画処理装置。
【請求項9】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成工程と、
前記内部データ生成工程において生成された内部データに基づいて描画命令を生成する描画命令生成工程と、
前記描画命令生成工程において生成された描画命令を用いて描画処理を行う描画工程と、
前記内部データに基づいて前記描画命令生成工程において生成された描画命令を現在の時刻に相当する描画命令に更新する更新工程とを備え、
前記描画工程においては、前記更新工程において描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とする描画処理方法。
【請求項10】
グラフィックス情報と前記グラフィックス情報の変化を示すアニメーション情報とを含む描画コンテンツを解析して、内部データを生成する内部データ生成工程と、
前記内部データ生成工程において生成された内部データに基づいて描画命令を生成する描画命令生成工程と、
前記描画命令生成工程において生成された描画命令を用いて描画処理を行う描画工程と、
前記内部データに基づいて前記描画命令生成工程において生成された描画命令を現在の時刻に相当する描画命令に更新する更新工程とをコンピュータに実行させ、
前記描画工程においては、前記更新工程において描画命令が更新された場合に、前記現在の時刻に該当するフレームに対して前記更新された描画命令を用いて描画処理を行うことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−123739(P2012−123739A)
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2010−276113(P2010−276113)
【出願日】平成22年12月10日(2010.12.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】