(57)【要約】【課題】１シーンの描画時間が十分に確保できない場合であっても、表示結果に及ぼす影響を極力少なくすることを目的とする。【解決手段】矩形領域を描画する描画手段と、前記矩形領域のうち優先的に描画する他の矩形領域を判断する判断手段と、前記他の矩形領域のみを描画する他の描画手段と、一つのシーンを描画する際に、前記描画手段を用いて描画処理を完了できるか否かを判断する時間判断手段と、前記時間判断手段において、描画処理を完了できると判断した場合、前記描画手段を用いて描画を行い、描画処理を完了できないと判断した場合、前記他の描画手段を用いて描画を行う選択手段とを有することを特徴とする。【選択図】図４
2009205537.tif 000002
【特許請求の範囲】
【請求項１】
矩形領域を描画する描画手段と、
前記矩形領域のうち優先的に描画する他の矩形領域を判断する判断手段と、
前記他の矩形領域のみを描画する他の描画手段と、
一つのシーンを描画する際に、前記描画手段を用いて描画処理を完了できるか否かを判断する時間判断手段と、
前記時間判断手段において、描画処理を完了できると判断した場合、前記描画手段を用いて描画を行い、描画処理を完了できないと判断した場合、前記他の描画手段を用いて描画を行う選択手段とを有することを特徴とする表示装置。
【請求項２】
前記判断手段は、あらかじめシーンごとに指定された領域を優先的に描画する矩形領域として判断することを特徴とする請求項１に記載の表示装置。
【請求項３】
描画オブジェクトの種類に基づいて、優先的に描画する描画オブジェクトを判断する判断手段を有し、
前記判断手段が優先的に描画するオブジェクトと判断した描画オブジェクトをすべて含む最小の矩形領域を、優先的に描画する矩形領域として判断することを特徴とする請求項１に記載の表示装置。
【請求項４】
矩形領域を描画する描画ステップと、
前記矩形領域のうち優先的に描画する他の矩形領域を判断する判断ステップと、
前記他の矩形領域のみを描画する他の描画ステップと、
一つのシーンを描画する際に、前記描画ステップにおいて描画処理を完了できるか否かを判断する時間判断ステップと、
前記時間判断ステップにおいて、描画処理を完了できると判断した場合、前記描画ステップにおいて描画を行い、描画処理を完了できないと判断した場合、前記他の描画ステップにおいて描画を行う選択ステップとを有することを特徴とする表示装置における表示方法。
【請求項５】
矩形領域を描画する描画ステップと、
前記矩形領域のうち優先的に描画する他の矩形領域を判断する判断ステップと、
前記他の矩形領域のみを描画する他の描画ステップと、
一つのシーンを描画する際に、前記描画ステップにおいて描画処理を完了できるか否かを判断する時間判断ステップと、
前記時間判断ステップにおいて、描画処理を完了できると判断した場合、前記描画ステップにおいて描画を行い、描画処理を完了できないと判断した場合、前記他の描画ステップにおいて描画を行う選択ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の画面表示を連続的に作成しアニメーション表示を行う表示装置、表示方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータグラフィックス等の表示においては、図形の位置や形状、色等を少しずつ変化させた画面を連続的に表示することにより、アニメーション表示を実現させている。例えば１秒間に３０回の画面表示を行うためには、各シーンは１／３０秒以下で描画が行われなければならない。ＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）等の描画オブジェクトからなるデータ形式を用いたアニメーションでは、各シーンの描画時間は、そのシーンに含まれる描画オブジェクトの個数や大きさ、複雑さ、色の塗り方等によって変化する。
【０００３】
従来、各シーンを所定時間以内に描画するために、あらかじめ各シーンに含まれる描画オブジェクトの個数等を調整したコンテンツを用意しておく方法がある。
また、描画オブジェクトに優先順位を付けた上で優先度の高いオブジェクトから順に描画し、１シーンを描画する際に所定時間が経過した場合にはそのシーンの描画を中止する方法があった（例えば、特許文献１及び特許文献２参照）。この方法では、優先度の高いオブジェクトから描画を行うため、１シーンの描画途中で中止された場合の影響を減らすことが可能とされている。
【０００４】
【特許文献１】特開平８−１６８１０号公報
【特許文献２】特開平１１−２９６１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、あらかじめ各シーンに含まれる描画オブジェクトの個数等を調整したコンテンツを用意しておく方法を採った場合、描画処理能力は表示装置によって異なるため、最も処理能力の低い表示装置に合わせる必要がある。このため、比較的単純なアニメーション表示になってしまう場合があった。
【０００６】
また、複数の描画オブジェクトが重なり合うコンテンツにおいては、描画順序を変更すると描画結果が所望のものと大きく異なる場合がある。そのため、描画オブジェクトに優先順位を付けた上で優先度の高いオブジェクトから順に描画するという方法は十分ではないという問題があった。例えばＳＶＧでは、ＳＶＧデータの上位に記述されたオブジェクトから順に描画を行う必要があるので、１シーンの描画途中で処理を中止した場合には背景オブジェクトしか表示されない場合があった。
【０００７】
本発明は上述した問題点に鑑みてなされたものであり、１シーンの描画時間が十分に確保できない場合であっても、表示結果に及ぼす影響を極力少なくすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、矩形領域を描画する描画手段と、前記矩形領域のうち優先的に描画する他の矩形領域を判断する判断手段と、前記他の矩形領域のみを描画する他の描画手段と、一つのシーンを描画する際に、前記描画手段を用いて描画処理を完了できるか否かを判断する時間判断手段と、前記時間判断手段において、描画処理を完了できると判断した場合、前記描画手段を用いて描画を行い、描画処理を完了できないと判断した場合、前記他の描画手段を用いて描画を行う選択手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数の描画オブジェクトを有するコンテンツにおいて１シーンの描画時間が十分に確保できない場合であっても、表示結果に及ぼす影響を極力少なくすることが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明に係る表示装置の実施形態について説明する。本実施形態においては、本発明に係る表示装置としてコンピュータ装置を例にして説明する。
本実施形態のコンピュータ装置の構成について、図１のブロック図を参照して説明する。
図１において、ＣＰＵ１０１は、システム制御部であり、コンピュータ装置全体を制御する。ＲＯＭ１０２は、ＣＰＵの制御プログラムや各種固定データを格納するものである。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成され、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もＲＡＭ１０３に格納される。また、表示に用いられるＶＲＡＭもＲＡＭ１０３に含まれる。
【００１１】
ハードディスク１０４は、ページ記述データ等の各種ファイルを格納するためのものである。表示部１０５は、ＬＣＤ等を用いてオペレータに表示通知するためのものである。操作部１０６は、ハードキーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。システムバス１０７は、各ユニット１０１〜１０６を通信可能に接続するバスである。
【００１２】
図２は、本実施形態で使用されるＳＶＧデータの記述の一例を示す図である。本実施形態のコンピュータ装置はＳＶＧデータを解釈し、表示する機能を有する。図２に示したＳＶＧはアニメーション表示を含んでいる。
【００１３】
図３は、図２に示したＳＶＧデータの表示の状態を示した模式図である。図３（ａ）〜（ｆ）は、０ミリ秒〜２５００ミリ秒までの表示の状態を５００ミリ秒単位で示したものである。本発明においては、ＳＶＧデータの表示開始からの経過時間を「時刻」と称し、各時刻における表示を「シーン」と称する。
【００１４】
図２及び図３に示したとおり、このＳＶＧデータには４つのグループオブジェクトが含まれ、それぞれ「家」、「風見鶏」、「自動車」、「樹木」の絵を表している。各グループオブジェクトは、さらに細かい複数のオブジェクトから成るが、本実施形態においてはグループオブジェクトをオブジェクトの最小単位と考える。そして、４つのグループオブジェクトのうち、風見鶏のオブジェクトは左向きから右向きに変わるアニメーション表示が行われ、自動車のオブジェクトは左から右へ直線的に移動するアニメーション表示が行われる。
【００１５】
その他のグループオブジェクトはアニメーション表示が行われず、静止画として表示される。図２に示したＳＶＧにおいては、グループオブジェクトにａｎｉｍａｔｅＴｒａｎｓｆｏｒｍ要素が存在するか否かにより、アニメーション表示が行われるオブジェクトを認識することが可能である。
本実施形態においては、５００ミリ秒ごとに画面が更新されるものとする。アニメーション表示の場合は毎秒１０シーン以上表示されることが一般的であるが、本実施形態においては説明を容易にするために毎秒２シーンのアニメーションを想定している。
【００１６】
図４は、本実施形態に係るコンピュータ装置における処理の流れを示したフローチャートである。以下、図４に示したフローチャートを参照して、図２に示したＳＶＧを処理する場合を例に、処理の流れを説明する。以下は上述したＣＰＵ１０１が実行するものとする。
【００１７】
まず、０番目のシーン、すなわち、時刻が０ミリ秒のときのシーンを描画する（ステップＳ４０１）。その際に、図２のＳＶＧに示した各グループオブジェクトの描画時間の完了までの時間を計測し、ＲＡＭ１０３に保持しておく。図４のフローチャートには示していないが、ステップＳ４０１の処理の前に図２に示したＳＶＧの読み込みは既に行われている。本実施形態のコンピュータ装置では、不図示のタイマー装置があり、各グループオブジェクトの描画時間の計測に用いられる。すなわち、各オブジェクトの描画開始時刻と描画終了時刻の差が描画時間となり、描画に要した時間が所定時間内か否か判断する。また、不図示のタイマー装置は、０番目のシーンが描画された時点で時刻を０ミリ秒にリセットしステップＳ４０１以降の計時を行う。
【００１８】
次に、シーンのカウンタを表す変数Ｎに１をセットし（ステップＳ４０２）、Ｎ番目のシーンで描画する矩形領域を取得する（ステップＳ４０３）。ステップＳ４０３では、直前のシーンと、これから描画しようとするシーンで表示状態が変化しているオブジェクトをすべて含む最小の矩形領域を計算により取得する。最初の時点ではＮは１であるから、ここでは、０番目のシーン（時刻が０ミリ秒のときのシーン）と１番目のシーン（時刻が５００ミリ秒のときのシーン）で各オブジェクトの状態を判断し、矩形領域の左上頂点のＸ座標、Ｙ座標と、幅と高さを計算する。
【００１９】
図５は、図２のＳＶＧの５００ミリ秒時（１番目のシーン）に描画する矩形領域を示した模式図である。Ｓ４０３で取得した領域は破線５０１で示している。図２のＳＶＧは、０ミリ秒時と５００ミリ秒時の間で描画状態が変化しているオブジェクトは、風見鶏のオブジェクトと自動車のオブジェクトの２つである。
【００２０】
０ミリ秒時の風見鶏オブジェクトの描画範囲、０ミリ秒時の自動車オブジェクトの描画範囲、５００ミリ秒時の風見鶏オブジェクトの描画範囲、５００ミリ秒時の自動車オブジェクトの描画範囲、をそれぞれ求める。そして、すべての描画範囲を含む最小の矩形領域を求めることにより、破線５０１で示した矩形領域のＸ座標、Ｙ座標、幅、高さを取得することができる。
【００２１】
ステップＳ４０３で矩形領域を取得したら、Ｎ番目のシーンは所定時間内に描画可能かどうかを判断する（ステップＳ４０４）。ここでは、ステップＳ４０１でＲＡＭ１０３に保持した各グループオブジェクトの描画時間や矩形領域の面積等をもとに矩形領域の描画時間を推測し、時刻が５００ミリ秒になるまでに描画が可能かどうかを判断する。例えば、あるオブジェクトの面積が１００であり、ステップＳ４０１で測定されたそのオブジェクトの描画時間が５０ミリ秒であり、そのオブジェクトのうちＳ４０３で取得した矩形領域に含まれる部分の面積が７０であった場合を仮定する。この場合、そのオブジェクトの描画時間は５０×７０／１００＝３５（ミリ秒）と推測される。また、そのときの状況に応じて、例えば他のタスクが動いていてＣＰＵ１０１の処理を占有できないような場合には、この値に所定の係数を掛けて推測描画時間を補正する。このようにして求めた各オブジェクトの描画時間から矩形領域全体の描画時間を推測することができる。図４のフローチャート中には示していないが、ステップＳ４０４では、その時点の経過時刻を知るためにタイマーを監視しながら残り時間内に描画できるかどうかの時間判断を行っている。
【００２２】
ステップＳ４０４において、所定時間内に描画が可能と判断されれば、Ｎ番目のシーンを描画する（ステップＳ４０５）。ここでは、既に表示用のＶＲＡＭ上に０ミリ秒時の表示データが存在するため、読み込んだＳＶＧデータからステップＳ４０３で取得した矩形領域のみの描画結果を取得し、ＶＲＡＭ上の矩形領域相当部分を上書きする。図５で示した例の場合、破線５０１で示した矩形領域をＶＲＡＭ上に描画する。破線５０１で示した領域には樹木オブジェクトの一部や家オブジェクトの一部も含まれるため、これらも描画する。また、５００ミリ秒時に表示できるよう必要に応じて処理待ちを行う。すなわち、１番目のシーンの描画時間が５００ミリ秒に満たない場合には、ｗａｉｔ処理を入れて５００ミリ秒時に表示できるよう時間調整をする。
【００２３】
ステップＳ４０５の後は、Ｎに１を加え（ステップＳ４０６）、Ｎ番目のシーンがあるかどうかを判断する（ステップＳ４０７）。最初Ｎは１であるから、ここでは２番目のシーンがあるかどうかを判断する。Ｎ番目のシーンがあると判断されれば、ステップＳ４０３へ戻り、以降の処理を繰り返す。
【００２４】
ステップＳ４０４において、Ｎ番目のシーンが所定時間内に描画できないと判断されれば、描画しようとしている矩形領域に複数のオブジェクトがあるかどうかを判断する（ステップＳ４０８）。ここで、矩形領域に複数のオブジェクトがあると判断されれば、複数のオブジェクトのうち最も奥側に位置するオブジェクトを除外して、再度矩形領域を取得する（ステップＳ４０９）。最も奥側に位置するオブジェクトとは、表示画面の表面から見て最も深い位置に描画されるオブジェクトのことであり、ＳＶＧにおいては一般にＳＶＧデータの上位に記述されているオブジェクトのことである。ステップＳ４０９において再度矩形領域を取得した後はステップＳ４０４の処理に戻り、その矩形領域部分のみを更新したＮ番目のシーンが所定時間内に描画可能かどうかを判断する。
【００２５】
ステップＳ４０９では、最も奥側に位置するオブジェクトを除外しているが、例えば最も描画面積の小さいオブジェクトやアニメーションの変化量が最も小さいオブジェクトを除外するようにしても良い。変化量が最も小さいオブジェクトとは、アニメーション表示が行われるオブジェクトの中心点の移動量や、変化する面積、色の変化等をもとに判断する。または、最も画面の中央から離れたオブジェクトや、最も色の薄いオブジェクトを除外領域として選択するようにしても良い。
【００２６】
図６はステップＳ４０９において取得した、１番目（５００ミリ秒時）のシーンの矩形領域を示した模式図である。５００ミリ秒時においては、アニメーション表示を行うグループオブジェクトのうち最も奥側に位置するものは風見鶏オブジェクトである。そのため、ここでは風見鶏オブジェクトを除外して、自動車オブジェクトのみを考える。０ミリ秒時で自動車オブジェクトが描画される領域と、５００ミリ秒時で自動車オブジェクトが描画される領域とを含む最小の矩形領域が、図６の破線６０１で示した矩形領域である。図２に示したＳＶＧの場合は、アニメーション表示されるオブジェクト同士が重なり合っていないが、アニメーション表示されるオブジェクトが重なりあっている場合には、最も奥側のオブジェクトを除外すれば影響を小さく抑えることが可能な場合がある。
【００２７】
ステップＳ４０４において、破線６０１で示した矩形領域が所定時間内に描画可能と判断された場合は、破線６０１の矩形領域部分のみを更新した形で５００ミリ秒時のシーンが表示される。その結果、風見鶏オブジェクトはアニメーション表示が行われないことになるが、自動車オブジェクトはアニメーション表示が行われるため、時間内に描画できない場合の影響を最小限に抑えることができる。
【００２８】
ステップＳ４０４において、破線６０１で示した矩形領域が所定時間内に描画できないと判断されれば、再びステップＳ４０８の判断が行われる。図２のＳＶＧの場合、この時点で矩形領域に含まれるオブジェクトは自動車オブジェクトのみであるから、ステップＳ４０８では矩形領域には複数のオブジェクトはないと判断される。
【００２９】
その場合は、ステップＳ４１０において、矩形領域の面積を１／２にした矩形領域を取得する処理が行われる。本実施形態では、Ｘ軸とＹ軸のうちオブジェクトが動く方向のベクトルに近い軸に垂直な直線で２分割し、オブジェクトが動く方向に近い側の矩形を取得する。なお、ＳＶＧの描画処理においては、面積を１／２にした場合に、描画時間が１／２になるとは限らない。ＳＶＧの描画時間は、描画するオブジェクトの個数や種類、大きさ、複雑さ、色の塗り方等に依存する。本実施形態では、描画面積を１／２にしているが必ずしも１／２でなくても良いし、矩形領域を２分割するのではなく一回り小さくするといった処理でも良い。また、ステップＳ４０８の処理は行わずに、複数のオブジェクトを含んだ矩形領域の面積を１／２にする処理を行っても良い。
【００３０】
図７は、ステップＳ４１０において取得した矩形領域を示した模式図である。図７の破線７０１が、新たに取得した矩形領域である。すなわち、ここでは自動車オブジェクトはＹ軸に平行な直線に沿ってＹ軸の正の方向に移動しているものであるから、図６の破線６０１で示した矩形領域をＸ軸に垂直な直線で２分割し、Ｙ軸の正の方向にある矩形領域を取得している。
【００３１】
ステップＳ４１０で新たに矩形領域を取得した後は、その矩形領域の面積が所定値より大きいかどうかを判断する（ステップＳ４１１）。この判断は、画面上で認識できないほど小さい面積を更新しても実質的な意味がないため、それを防ぐ目的で行うものである。ステップＳ４１１で矩形領域の面積が所定値より大きいと判断されれば、ステップＳ４０４に戻り、以降の処理を繰り返す。Ｓ４１１で所定値より大きくないと判断されれば、そのシーンの描画は行わずステップＳ４０６の処理へ移行する。
【００３２】
ステップＳ４１０の処理を行った後で、ステップＳ４０５においてシーンの描画が行われた場合には、アニメーション表示をさせたいオブジェクトの一部の領域しか更新されないため、本来描画すべきシーンとは異なる描画結果となる。しかし、一部とはいえオブジェクトの移動が表現されるため、時間内に描画できない場合の影響を最小限に抑えることができる。
【００３３】
図８は、５００ミリ秒時において、図７の破線７０１の領域のみを更新した際のシーンの描画結果である。同図に示したとおり、０ミリ秒時に描画した自動車オブジェクトの一部が残っているため描画結果としては不十分であるが、オブジェクトが移動している状況は表現できている。
【００３４】
最終的にステップＳ４０７において、Ｎ番目のシーンがないと判断されれば、アニメーション表示のすべてのシーンを描画したことになるため処理を終了する。
なお、ステップＳ４０３やステップＳ４０９において、描画するための矩形領域の取得を行っているが、この矩形領域は、前述したようにＳＶＧを解析した上で計算をしても良い。また、あらかじめ各時刻での描画領域を指定したテーブルをＲＯＭ１０２に持っておき取得時にそれを参照するようにしても良い。
【００３５】
図９は、各時刻における優先的に描画すべき矩形領域を示したテーブルの一例である。図９に示したようなテーブルをＲＯＭ１０２に複数保持し、それぞれ第一優先領域、第二優先領域等としても良い。
【００３６】
本発明は上述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、コンピュータ等が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ等を用いることができる。
また、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００３８】
さらに、プログラムコードが、機能拡張ユニットのメモリに書きこまれた後、これに基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した機能が実現される場合も含まれる。
【図面の簡単な説明】
【００３９】
【図１】コンピュータ装置の構成を示すブロック図である。
【図２】コンピュータ装置が処理するＳＶＧの記述例を示した図である。
【図３】ＳＶＧを描画したときの描画結果を示した図である。
【図４】コンピュータ装置の動作を示すフローチャートである。
【図５】コンピュータ装置が５００ミリ秒時に描画する際に取得する矩形領域を示した一例を示す図である。
【図６】コンピュータ装置が５００ミリ秒時に描画する際に取得する矩形領域を示した一例を示す図である。
【図７】コンピュータ装置が５００ミリ秒時に描画する際に取得する矩形領域を示した一例を示す図である。
【図８】コンピュータ装置が５００ミリ秒時に描画する際に、矩形領域のみを更新した場合の表示の一例を示す図である。
【図９】コンピュータ装置において使用するテーブルの一例を示す図である。
【符号の説明】
【００４０】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ハードディスク
１０５  表示部
１０６  操作部
１０７  システムバス
【図１】
2009205537.tif 000003
【図２】
2009205537.tif 000004
【図３】
2009205537.tif 000005
【図４】
2009205537.tif 000006
【図５】
2009205537.tif 000007
【図６】
2009205537.tif 000008
【図７】
2009205537.tif 000009
【図８】
2009205537.tif 000010
【図９】
2009205537.tif 000011