JP5338520B2 - 画像表示装置 - Google Patents

画像表示装置 Download PDF

Info

Publication number
JP5338520B2
JP5338520B2 JP2009153875A JP2009153875A JP5338520B2 JP 5338520 B2 JP5338520 B2 JP 5338520B2 JP 2009153875 A JP2009153875 A JP 2009153875A JP 2009153875 A JP2009153875 A JP 2009153875A JP 5338520 B2 JP5338520 B2 JP 5338520B2
Authority
JP
Japan
Prior art keywords
sprite
area
attribute
command
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009153875A
Other languages
English (en)
Other versions
JP2011008181A (ja
Inventor
光弘 本目
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2009153875A priority Critical patent/JP5338520B2/ja
Priority to US12/821,680 priority patent/US8493392B2/en
Priority to CN2010102205544A priority patent/CN101937666B/zh
Publication of JP2011008181A publication Critical patent/JP2011008181A/ja
Application granted granted Critical
Publication of JP5338520B2 publication Critical patent/JP5338520B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)

Description

この発明は、情報表示機器等に好適な画像表示装置に関する。
この種の画像表示装置として、表示対象であるスプライトの表示位置、倍率等の表示属性を示す属性データを格納したスプライト属性テーブルを備え、このスプライト属性テーブル内の属性データに従ってスプライトの画像を表示器に表示する画像表示装置が各種提案されている(例えば特許文献1参照)。
この種の画像表示装置において、スプライトの表示位置を変化させることにより表示器にアニメーション表示を行わせる場合がある。図5は、このようなアニメーション表示機能を備えた従来の画像表示装置10の一部の構成を示すブロック図である。
図5において、表示メモリ3は、図示しない表示器に表示させる画像データを記憶するメモリである。この表示メモリ3は、フレーム単位(一画面単位)で画像データを記憶するフレームメモリであってもよく、ライン単位(一水平走査線単位)で画像データを記憶するラインメモリであってもよい。スプライト属性テーブル1Aおよび1Bは、上述したようにスプライトの表示属性を示す属性データを格納するテーブルである。このスプライト属性テーブル1Aおよび1Bは交互に一方が描画用のスプライト属性テーブルとして、他方が更新用のスプライト属性テーブルとして選択される。スプライトレンダリングプロセッサ2は、図示しないパターンメモリに記憶されたスプライトのパターンデータを読み出して、表示メモリ3に格納することにより表示器の表示画面にスプライトの画像を反映させる描画処理を実行する。その際に、スプライトレンダリングプロセッサ2は、スプライト属性テーブル1Aまたは1Bのうち描画用になっている方のスプライト属性テーブルを参照し、例えば属性データが示す表示位置にスプライトが表示されるように表示メモリ3におけるスプライトのパターンデータの格納アドレスを決定する等の処理を行う。
このような画像表示装置10にアニメーション表示を行わせる場合、画像表示装置10を制御するCPUは、スプライト属性テーブル1Aまたは1Bのうち更新用になっている方のスプライト属性テーブル内の属性データを書き換え、この属性データの書き換えを行った更新用のスプライト属性テーブルを描画用のスプライト属性テーブルに切り換える、という処理を繰り返す。
図6はこのようなアニメーション表示の動作例を示すタイムチャートである。この図6に示す例において、VSYNC_Nは、表示器に与えられる垂直同期信号であり、この垂直同期信号VSYNC_Nの立ち下がりから次の立ち下がりまでの期間が1フレーム分の画像表示を行う1垂直走査期間(1フレーム)である。また、表示メモリ3は、2フレーム分の画像データを記憶可能なフレームメモリである。
図6に示す例において、フレーム1では、スプライト属性テーブル1Aが更新用、スプライト属性テーブル1Bが描画用となっている。そこで、CPUは、更新用のスプライト属性テーブル1Aに属性データ1を書き込む。次にフレーム2になると、スプライト属性テーブル1Aが描画用、スプライト属性テーブル1Bが更新用となる。そこで、スプライトレンダリングプロセッサ2は、描画用のスプライト属性テーブル1A内の属性データ1に従って、スプライトのパターンデータを表示メモリ3に格納する描画処理を実行する。一方、CPUは、更新用のスプライト属性テーブル1Bに属性データ2を書き込む。
次にフレーム3になると、スプライト属性テーブル1Aが更新用、スプライト属性テーブル1Bが描画用となる。そこで、スプライトレンダリングプロセッサ2は、描画用のスプライト属性テーブル1B内の属性データ2に従って、スプライトのパターンデータを表示メモリ3に格納する描画処理を実行する。一方、CPUは、更新用のスプライト属性テーブル1Aに属性データ3を書き込む。これらの動作と並行し、フレーム3では、フレーム2において表示メモリ3に格納された画像データ、すなわち、属性データ1に従って描画されたスプライトのパターンデータが表示メモリ3から読み出され、表示器に表示される。
次にフレーム4になると、スプライト属性テーブル1Aが描画用、スプライト属性テーブル1Bが更新用となる。そこで、スプライトレンダリングプロセッサ2は、描画用のスプライト属性テーブル1A内の属性データ3に従って、スプライトのパターンデータを表示メモリ3に格納する描画処理を実行する。一方、CPUは更新用のスプライト属性テーブル1Bに属性データ4を書き込む。これらの動作と並行し、フレーム4では、フレーム3において表示メモリ3に格納された画像データ、すなわち、属性データ2に従って描画されたスプライトのパターンデータが表示メモリ3から読み出され、表示器に表示される。
以上のように、スプライトの描画に用いられる属性データが属性データ1→属性データ2→属性データ3→属性データ4→…という具合に切り換えられる。これにより表示器におけるスプライトの表示態様が変化し、アニメーションが表示される。
特開2000−35781号公報
ところで、上述した従来の画像表示装置は、アニメーション表示を行うためにCPUがスプライト属性テーブルに属性データを頻繁に書き込まねばならず、アニメーション表示のためのCPUの負担が重いという問題があった。この問題を解決するための手段として、予め記憶されたプログラムに従ってスプライト属性テーブルの内容を更新する機能を画像表示装置に持たせ、この機能によりアニメーション表示させるスプライト全体のうち一部のスプライトのアニメーション表示を行わせる方法が考えられる。しかしながら、この方法を採った場合において、CPUからスプライト属性テーブルに書き込まれる属性データが描画処理に使用されるタイミングと、画像表示装置側でのプログラムの実行によりスプライト属性テーブルに書き込まれる属性データが描画処理に使用されるタイミングは同期しない。従って、CPUからの制御により実現されるスプライトの動きとプログラムの実行により実現されるスプライトの動きに時間ずれが生じ、不自然なアニメーション表示になるという問題が発生する。
この発明は、以上説明した事情に鑑みてなされたものであり、CPUに大きな負担を与えることなく自然なアニメーション表示を行うことができる画像表示装置を提供することを目的とする。
この発明は、表示装置の表示対象となる画像データを記憶する表示メモリと、前記画像データの構成単位となるスプライトの表示属性を示す属性データを記憶するスプライト属性記憶手段と、前記スプライト属性記憶手段に記憶されたスプライトの属性データに従って、スプライトの画像データを前記表示メモリ内の画像データに反映させる描画処理を実行するスプライトレンダリングプロセッサと、前記スプライト属性記憶手段に記憶されたスプライトの属性データを書き換えるコマンドを含むアニメーション実行プログラムを外部メモリから読み出して実行するアニメーション実行エンジンとを具備し、前記アニメーション実行エンジンの他、CPUが前記スプライト属性記憶手段における属性データの書き換えが可能であり、前記アニメーション実行エンジンは、前記アニメーション実行プログラムの一部をなすコマンドとして所定のコマンドをフェッチしたとき、少なくとも前記CPUから同期信号が受信されることを条件として前記所定のコマンドを実行することを特徴とする画像表示装置を提供する。
かかる発明によれば、CPUがスプライト属性記憶手段に記憶されたスプライトの属性データを書き換えることにより表示装置にアニメーション表示を行わせるのと並行し、アニメーション実行エンジンがアニメーション実行プログラムに従ってスプライト属性記憶手段に記憶されたスプライトの属性データを書き換えることにより表示装置にアニメーション表示を行わせることが可能である。その際、CPUが同期信号を出力するタイミングを制御することにより、アニメーション実行プログラムの各コマンドの実行タイミングを制御することができる。従って、CPUによる制御の下で行われるアニメーション表示にアニメーション実行プログラムによる制御の下で行われるアニメーション表示を同期化させることができる。
この発明の一実施形態による画像表示装置の構成を示すブロック図である。 同実施形態においてアニメーション実行プログラムを構成する各種のコマンドの構成を示す図である。 同実施形態の第1の動作例を示すタイムチャートである。 同実施形態の第2の動作例を示すタイムチャートである。 従来の画像表示装置の一部の構成を示すブロック図である。 同画像表示装置がアニメーション表示を行う場合の動作例を示すタイムチャートである。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態による画像表示装置100の構成を示すブロック図である。この画像表示装置100は、CPU201からの指示に従い、ROM(Read Only Memory;読み出し専用メモリ)等による外部メモリであるパターンメモリ202からスプライトのパターンデータを読み出して、表示対象の画像データを生成し、LCD(Liquid Crystal Display;液晶表示器)203に表示させる装置である。ここで、パターンメモリ202には、圧縮符号化されたスプライトのパターンデータの他、アニメーション実行プログラムが記憶されている。このアニメーション実行プログラムは、アニメーション表示のための各種の制御を指示するコマンドの集合体である。
次に画像表示装置100の構成について説明する。レジスタ101は、画像表示装置100内の各部の制御に用いられる制御情報を記憶する手段である。本実施形態では、CPU201と、画像表示装置100内に設けられたアニメーション実行エンジン120がこのレジスタ101への制御情報の書き込みを行う。
スプライト属性テーブル102Aおよび102Bは、表示対象であるスプライト毎にその表示属性を示す属性データを記憶するスプライト属性記憶手段であり、例えばRAM(Random Access Memory)により構成されている。なお、スプライト属性テーブル102Aおよび102Bは、別個のRAMにより実現されるものであってもよく、共通のRAMの異なるエリアにより実現されるものであってもよい。スプライトレンダリングプロセッサ110は、このスプライト属性テーブル102Aおよび102Bに記憶されたスプライトの属性データに従って描画処理を行うプロセッサである。なお、この描画処理の詳細については後述する。そして、アニメーション実行エンジン120は、パターンメモリ202内のアニメーション実行プログラムを実行し、スプライト属性テーブル102Aおよび102Bの属性データの書き換え等を行う手段である。
本実施形態では、CPU201とアニメーション実行エンジン120の両方がスプライト属性テーブル102Aおよび102Bの属性データの書き換えを行う。さらに詳述すると、本実施形態においてスプライト属性テーブル102Aおよび102Bの各々は、CPU201によって属性データの書き換えが行われるCPU制御エリアと、アニメーション実行プログラムに基づき、アニメーション実行エンジン120により属性データの書き換えが行われるプログラム制御エリアとに区分されて使用される。そして、本実施形態においてスプライト属性テーブル102Aおよび102Bの各CPU制御エリアは、一方が属性データの書き換えを受け付ける更新用エリアとなる場合に他方が描画処理において参照される描画用エリアとなるように切り換え制御が行われる。また、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアは、各CPU制御エリアとは独立に、一方が属性データの書き換えを受け付ける更新用エリアとなる場合に他方が描画処理において参照される描画用エリアとなるように切り換え制御が行われる。
パターンデータデコーダ103は、表示対象であるスプライトのパターンデータをパターンメモリ202から読み出して復号化を行い、スプライトを構成する各画素の色を示す画像データを出力する装置である。
カラーパレット104は、表示対象であるスプライトの画像データが画素の色をカラーコードにより表現したものである場合に、その画像データを表示に用いることが可能なR、G、BあるいはY、U、V等の画素の色成分の強さを示す画像データに変換する変換テーブルであり、RAM等により構成されている。本実施形態では、CPU201とアニメーション実行エンジン120がカラーパレット104の内容の更新を行うことが可能である。
表示メモリ105は、LCD203に表示させる画像データを記憶するメモリである。この表示メモリ105は、フレーム単位で画像データを記憶するフレームメモリであってもよく、ライン単位で画像データを記憶するラインメモリであってもよい。
スプライトレンダリングプロセッサ110は、LCD203の垂直走査周期毎に、スプライト属性テーブル102Aおよび102Bの各CPU制御エリアおよび各プログラム制御エリアのうち描画用エリアとなっているエリア内の属性データに従って、スプライトの画像データを表示メモリ105内の画像データに反映させる描画処理を実行する。さらに詳述すると、スプライトレンダリングプロセッサ110は、1垂直走査周期の垂直ブランク期間の終了タイミングにおいて、スプライト属性テーブル102Aおよび102Bの各CPU制御エリアおよび各プログラム制御エリアのうち描画用エリアとなっている各エリアを検知し、この描画用エリア内の属性データが示すスプライトのパターンデータの復号化をパターンデータデコーダ103に実行させ、パターンデータデコーダ103により得られるスプライトの画像データを表示メモリ105に格納する。その際、パターンデータデコーダ103により得られるスプライトの画像データがカラーコードにより表現されたものである場合にその画像データのR、G、B形式あるいはY、U、V形式等の画像データへの変換をカラーパレット104に行わせる。また、スプライトの画像データを表示メモリ105に格納するに当たっては、描画用エリア内の属性データが示す各スプライトの表示位置等の表示属性に従って、表示メモリ105における画像データの格納先のアドレスや格納タイミングの制御等を行う。
表示スキャン制御部106は、垂直同期信号VSYNC_Nや水平同期信号HSYNC_N等、LCD203の表示制御の同期信号を発生し、LCD203と読み出し制御部107に供給する回路である。読み出し制御部107は、表示スキャン制御部106が出力する同期信号に従って、表示メモリ105から画像データを読み出し、LCD203に供給する。
スプライトレンダリングプロセッサ110による表示メモリ105への画像データの書き込み(描画)と読み出し制御部107による表示メモリ105からの画像データの読み出しの態様は、表示メモリ105がフレームメモリである場合とラインメモリである場合とで異なったものとなる。
前者の場合、例えば2つのフレームメモリが表示メモリ105として用いられる。これらの2つのフレームメモリは、各垂直走査周期において一方が描画用、他方が表示用となり、垂直走査周期が切り換わる毎に描画用であったフレームメモリが表示用に、表示用であったフレームメモリが描画用に切り換わる。そして、各垂直走査周期において、スプライトレンダリングプロセッサ110は、1フレーム分の画像データを描画用のフレームメモリに書き込み、読み出し制御部107は、表示用のフレームメモリから画像データを読み出してLCD203に供給する。
後者の場合、例えば2ライン分のラインメモリが表示メモリ105として用いられる。これらの2つのラインメモリは、各水平走査周期において一方が描画用、他方が表示用となり、水平走査周期が切り換わる毎に描画用であったラインメモリが表示用に、表示用であったラインメモリメモリが描画用に切り換わる。そして、各水平走査周期において、スプライトレンダリングプロセッサ110は、1ライン分の画像データを描画用のラインメモリに書き込み、読み出し制御部107は、水平同期信号HSYNC_Nに同期して、表示用のラインメモリから画像データを読み出してLCD203に供給する。
アニメーション実行エンジン120は、レジスタ101を介して与えられるCPU201からの指示に従い、パターンメモリ202からアニメーション実行プログラムを読み出して実行する。そして、アニメーション実行エンジン120は、アニメーション実行プログラムに従い、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアを更新用エリアとするか描画用エリアとするかの切り換え制御を行いつつ、更新用のエリア内の属性データの書き換えを行う。
図2は、本実施形態においてアニメーション実行プログラムを構成する各種のコマンドの構成を示す図である。各コマンドは、エンドコマンドを除き、1バイトのオペコードと1または複数バイトのオペランドとにより構成されている。図2では、各コマンドのオペコードの欄に、そのオペコードがASCIIコード体系において示す文字が示されている(例えばスタートコマンドのオペコードはASCIIコード体系において文字“S”を示す)。
スタートコマンドは、アニメーション実行プログラムの先頭に配置されるコマンドであり、オペランドとしてループ回数を伴う。このループ回数は、アニメーション実行プログラムがループ区間を含む場合において、そのループ区間の終点から始点に戻る回数、すなわち、ループ区間の繰り返し回数よりも1だけ少ない数値を示す。エンドコマンドは、アニメーション実行プログラムの最後に配置されるコマンドであり、オペコードのみからなる。
ループコマンドは、上述したループ区間を指定するコマンドであり、アニメーション実行プログラムにおいてループ区間の終点となる位置に配置される。また、ループコマンドは、オペランドとして戻りアドレスと繰り返しモード値を伴う。ここで、戻りアドレスは、ループ区間の始点がループコマンドの格納されているアドレス(ループ区間の終点)から何個前のアドレスかを指示するデータである。また、繰り返しモード値は、ループ区間の終点から始点への戻り回数を指定するものであり、「0」と「1」の2通りの値をとり得る。繰り返しモード値「0」は、スタートコマンドのオペランドであるループ回数だけループ区間の始点に戻ることを指示するものである。また、繰り返しモード値「1」は、スタートコマンドのオペランドであるループ回数に拘束されず、ループ区間の始点に戻る動作を無限に繰り返すことを指示するものである。
インターバルコマンドは、待機を指示するコマンドである。このインターバルコマンドは、垂直ブランク待ち回数、すなわち、待機すべき垂直ブランク期間の終了点の個数を指定するオペランドを有する。アニメーション実行エンジン120は、このインターバルコマンドを実行した場合、オペランドが示す垂直ブランク待ち回数分の垂直ブランク期間が発生するのを待ち、最後の垂直ブランク期間が終了したとき、後続のコマンドを実行する。このインターバルコマンドは、テーブルライトコマンドの実行タイミングの調整手段等として有用である。
フリップコマンドは、スプライト属性テーブル102Aおよび102Bに記憶されたスプライトの属性データを描画処理に使用させるための制御を指示するコマンドである。より具体的には、このフリップコマンドは、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアを描画用エリアとするか更新用エリアとするかの切り換えを行うフリップ動作を指示するコマンドであり、必須のオペランドとしてフリップモード値を、任意的なオペランドとしてレイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMを伴う。
フリップモード値は、フリップ動作の種類を指定するオペランドであり、実行条件フラグCSYと、アドレス書き換えフラグLYAと、テーブル切り換え制御データLYBSELとを含む。ここで、実行条件フラグCSYは、フリップコマンドの実行条件を指定するフラグである。アニメーション実行エンジン120は、CSY=“0”であるフリップコマンドをフェッチした場合、そのフリップコマンドを即時実行する。CSY=“1”であるフリップコマンドは、少なくともCPU201から同期信号が受信されることを実行の条件する実行条件付きコマンドである。アニメーション実行エンジン120は、このCSY=“1”であるフリップコマンドをフェッチした場合、同期信号としてのイネーブル信号ENがCPU201から受信されるまで待機し、このイネーブル信号ENを受信した次の垂直ブランク期間の開始タイミングにおいて、このフリップコマンドを実行する。
アドレス書き換えフラグLYAは、スプライト属性テーブル102Aおよび102Bの各々において、当該アニメーション実行プログラムに対応したプログラム制御エリアの開始点を示すレイヤ開始アドレスLYSAMと終了点を示すレイヤ終了アドレスLYEAMを書き換えるか否かを指示するフラグである。レイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMの書き換えを行わない場合にはLYA=“0”、書き換えを行う場合にはLYA=“1”とされる。
テーブル切り換え制御データLYBSELは、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアを描画用エリアとするか更新用エリアとするかの切り換え態様を指示する2ビットのデータである。さらに詳述すると、LYBSEL=1Xb(bはバイナリ、Xは不定)であるフリップコマンドは、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアのうち更新用エリアとなっているものを描画用エリアに、描画用エリアとなっているものを更新用エリアに切り換えることを指示するものである。また、LYBSEL=00bであるフリップコマンドは、スプライト属性テーブル102Aのプログラム制御エリアを描画用エリアに、スプライト属性テーブル102Bのプログラム制御エリアを更新用エリアに切り換えることを指示するものである。また、LYBSEL=01bであるフリップコマンドは、スプライト属性テーブル102Bのプログラム制御エリアを描画用エリアに、スプライト属性テーブル102Aのプログラム制御エリアを更新用エリアに切り換えることを指示するものである。
レイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMは、LYA=“1”である場合にフリップコマンドに付加されるオペランドである。このLYA=“1”であるフリップコマンドが実行されると、プログラム制御エリアの開始アドレスおよび終了アドレスがオペランドにより指定されたレイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMに変更される。
本実施形態において、フリップコマンドの実行の効果は、フリップコマンドの実行タイミングの次の垂直ブランク終了タイミングにおいて発生する。すなわち、例えばLYBSEL=1Xbであるフリップコマンドが実行された場合、各垂直走査期間の垂直ブランク期間の終了タイミングのうちそのフリップコマンドの実行タイミングの次に現れる終了タイミングにおいて、それまで更新用エリアとなっていたプログラム制御エリアが描画用エリアに、描画用エリアとなっていたプログラム制御エリアが更新用エリアに切り換えられる。
テーブルライトコマンドは、スプライト属性テーブル102Aまたは102Bの各プログラム制御エリアのうち更新用エリアとなっているプログラム制御エリア内において、オペランドにより指定されたエリアに、オペランドにより指定されたデータを書き込むことを指示するコマンドである。このテーブルライトコマンドは、オペランドとして、更新用エリアであるプログラム制御エリアに対する書き込みバイト数と、更新用エリアであるプログラム制御エリアにおいてデータの書き込み先となるエリアの開始点である書き込み開始アドレス(スプライト属性テーブル内における相対アドレス)と、上記書き込みバイト数と同じバイト数の書き込みデータとを有している。
テーブルサイクルライトコマンドは、スプライト属性テーブル102Aまたは102Bの各プログラム制御エリアのうち更新用エリアとなっているプログラム制御エリア内において、オペランドにより指定されたエリアに、オペランドにより指定されたデータを繰り返し書き込むことを指示するコマンドである。このテーブルサイクルライトコマンドは、オペランドとして、更新用エリアであるプログラム制御エリアに対して繰り返し書き込むデータのバイト数である繰り返しバイト数と、更新用エリアであるプログラム制御エリアにおいてデータの書き込み先となるエリアの開始点である書き込み開始アドレスと、同エリアの終点である書き込み終了アドレスと、上記繰り返しバイト数と同じバイト数の書き込みデータとを有している。
このテーブルサイクルライトコマンドは、スプライト属性テーブル102Aおよび102Bの初期化に用いられるコマンドである。本実施形態において、スプライト属性テーブル102Aおよび102Bは、1アドレス当たりのデータ幅が12バイトである。従って、12バイトの初期化データを書きこみデータとするテーブルサイクルライトコマンドを繰り返し実行することにより、スプライト属性テーブル102Aおよび102Bの全エリアを初期化することが可能である。スプライト属性テーブル102Aおよび102Bの初期化は、アニメーションの切り替え時等に行われる。
パレットライトコマンドは、カラーパレット104において、オペランドにより指定されたエリアに、オペランドにより指定されたデータを書き込むことを指示するコマンドである。このパレットライトコマンドは、オペランドとして、カラーパレット104に対する書き込みバイト数と、カラーパレット104においてデータの書き込み先となるエリアの開始点である書き込み開始アドレスと、上記書き込みバイト数と同じバイト数の書き込みデータとを有している。
レジスタライトコマンドは、レジスタ101において、オペランドにより指定されたエリアに、オペランドにより指定されたデータを書き込むことを指示するコマンドである。このレジスタライトコマンドは、オペランドとして、レジスタ101に対する書き込みバイト数と、レジスタ101においてデータの書き込み先となるエリアの開始点である書き込み開始アドレスと、上記書き込みバイト数と同じバイト数の書き込みデータとを有している。
以上がアニメーション実行プログラムを構成する各コマンドの構成である。アニメーション実行エンジン120は、これらの各コマンドを解釈して実行する機能を備えている。
本実施形態において、アニメーション実行エンジン120は、時分割制御により複数のアニメーション実行プログラムを同時に並列実行することが可能である。レジスタ101には、アニメーション実行エンジン120が同時に並列実行することが可能なアニメーション実行プログラムと同数の実行制御情報記憶エリアが設けられている。各実行制御情報記憶エリアには、実行対象であるアニメーション実行プログラムのパターンメモリ202内における格納開始アドレスと、3種類の実行制御フラグPLAY、PAUSE、STOPとが記憶される。
1個のアニメーション実行プログラムの実行制御の態様は次の通りである。まず、アニメーション実行エンジン120は、CPU201によって、ある実行制御情報記憶エリアのフラグPLAYが“1”、フラグPAUSEが“0”、フラグSTOPが“0”とされたとき、パターンメモリ202内において同実行制御情報記憶エリアに記憶された格納開始アドレスから始まるエリア内のアニメーション実行プログラムの実行を開始する。
また、アニメーション実行エンジン120は、同実行制御情報記憶エリアにおいて実行制御フラグの状態がPLAY=“1”、PAUSE=“0”、STOP=“0”の状態からPLAY=“0”、PAUSE=“1”、STOP=“0”の状態になったとき、アニメーション実行プログラムの実行を一時停止する。
また、アニメーション実行エンジン120は、同実行制御情報記憶エリアにおいて実行制御フラグの状態がPLAY=“0”、PAUSE=“1”、STOP=“0”の状態からPLAY=“1”、PAUSE=“0”、STOP=“0”の状態に戻ったとき、一時停止したアドレスからアニメーション実行プログラムの実行を再開する。
また、アニメーション実行エンジン120は、同実行制御情報記憶エリアにおいて実行制御フラグの状態がPLAY=“0”、PAUSE=“0”、STOP=“1”とされたとき、パターンメモリ202内において同実行制御情報記憶エリアに記憶された格納開始アドレスから始まるエリア内のアニメーション実行プログラムの実行を終了する。
以上、1個のアニメーション実行プログラムの実行制御の態様を説明したが、複数のアニメーション実行プログラムが並列実行される場合の実行制御の態様も同様である。
また、以上説明した情報の他、各アニメーション実行プログラムに対応した各実行制御情報記憶エリアには、スプライト属性テーブル102Aおよび102Bにおける当該アニメーション実行プログラムに対応したプログラム制御エリアの範囲を示すレイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMが記憶される。さらに各アニメーション実行プログラムに対応した各実行制御情報記憶エリアには、スプライト属性テーブル102Aおよび102Bにおける当該アニメーション実行プログラムに対応した各プログラム制御エリアのうちいずれが描画用エリアで、いずれが更新用エリアであるかを示すテーブル状態フラグLYBSELMが記憶される。
あるアニメーション実行プログラムに対応したプログラム制御エリア内のテーブル状態フラグLYBSELMが“0”である場合、そのアニメーション実行プログラムに対応した各プログラム制御エリアのうちスプライト属性テーブル102A内のプログラム制御エリアが描画用エリアであり、スプライト属性テーブル102B内のプログラム制御エリアが更新用エリアである。これに対し、状態フラグLYBSELMが“1”である場合、スプライト属性テーブル102B内のプログラム制御エリアが描画用エリアであり、スプライト属性テーブル102A内のプログラム制御エリアが更新用エリアである。
各アニメーション実行プログラムに対応したプログラム制御エリア内のテーブル状態フラグLYBSELMは、アニメーション実行エンジン120が当該アニメーション実行プログラム内のフリップコマンドに従って書き換える。当該アニメーション実行プログラムに対応したプログラム制御エリアの範囲を示すレイヤ開始アドレスLYSAMおよびレイヤ終了アドレスLYEAMも同様であり、アニメーション実行エンジン120が当該アニメーション実行プログラム内のフリップコマンドに従って書き換える。
以上説明した各アニメーション実行プログラムに対応した各実行制御情報記憶エリアの他、レジスタ101には、CPU201によるアニメーション表示の実行を制御するための制御情報を記憶する実行制御情報記憶エリアが設けられている。このCPU201によるアニメーション表示用の実行制御情報記憶エリアには、スプライト属性テーブル102Aおよび102Bにおける各CPU制御エリアのうちいずれが描画用エリアで、いずれが更新用エリアであるかを示すテーブル状態フラグLYBSELCが記憶される。このテーブル状態フラグLYBSELCが“0”である場合、スプライト属性テーブル102A内のCPU制御エリアは描画用エリアであり、スプライト属性テーブル102B内のCPU制御エリアは更新用エリアである。これに対し、テーブル状態フラグLYBSELCが“1”である場合、スプライト属性テーブル102B内のCPU制御エリアが描画用エリアであり、スプライト属性テーブル102A内のCPU制御エリアが更新用エリアである。テーブル状態フラグLYBSELCの内容は、CPU201が更新用エリアであるCPU制御エリアに属性データを書き込んだ後に出力するイネーブル信号ENおよび表示スキャン制御部106が出力する垂直同期信号VSYNC_Nに基づき、アニメーション実行エンジン120が書き換える。さらに詳述すると、アニメーション実行エンジン120は、イネーブル信号ENが受信された後の垂直走査周期の開始点に対して所定の位相を持った基準タイミング、具体的にはその垂直走査周期の垂直ブランク期間の終了タイミングにおいてテーブル状態フラグLYBSELCを反転させる。なお、このようなテーブル状態フラグLYBSELCの切り換えは、アニメーション実行エンジン120以外の装置に行わせるようにしてもよい。
図3は、本実施形態の第1の動作例を示すタイムチャートである。この図において、Sはスタートコマンド、Tはテーブルライトコマンド、Fはフリップコマンド、Iはインターバルコマンドを示す。また、フリップコマンドFは、全てCSY=“0”、LYA=“0”、LYBSEL=1Xbのフリップコマンドである。この第1の動作例では、スプライト属性テーブル102Aおよび102Bの各CPU制御エリアの属性データの書き換えは行われない。従って、CPU201によるイネーブル信号ENの出力も行われず、テーブル状態フラグLYBSELCは“0”を維持している。この第1の動作例では、アニメーション実行エンジン120のみがスプライト属性テーブル102Aおよび102Bの各プログラム制御エリアの属性データの書き換えを行い、LCD203にアニメーション表示を行わせている。
第1の動作例において、フレーム1では、CPU201がレジスタ101のあるアニメーション実行プログラムに対応した実行制御記憶エリアに実行制御フラグとしてPLAY=“1”、PAUSE=“0”、STOP=“0”を書き込んでいる。そして、フレーム1において、アニメーション実行エンジン120は、パターンメモリ202内の各アニメーション実行プログラムのうちその実行制御記憶エリア内の格納開始アドレスにより特定されるアニメーション実行プログラムの実行を開始している。
まず、アニメーション実行エンジン120は、アニメーション実行プログラムの先頭のスタートコマンドSを実行する。次にアニメーション実行エンジン120は、2番目のコマンドであるテーブルライトコマンドTを実行する。この例では、この時点において、当該アニメーション実行プログラムに対応した実行制御記憶エリア内のテーブル状態フラグLYBSELMが“0”であり、スプライト属性テーブル102Aのプログラム制御エリアが描画用エリア、スプライト属性テーブル102Bのプログラム制御エリアが更新用エリアとなっている。このため、アニメーション実行エンジン120は、スプライト属性テーブル102Bのプログラム制御エリア内において、テーブルライトコマンドTのオペランド(書き込み開始アドレス)により指定されたエリアに、オペランドにより指定されたデータ(書き込みデータ)を転送する。次にアニメーション実行エンジン120は、3番目のコマンドであるフリップコマンドFをフェッチする。このフリップコマンドFは、CSY=“0”であるフリップコマンドであるため、アニメーション実行エンジン120は、このフリップコマンドFを即時実行する。ただし、フリップコマンドFの実行の効果は、この時点では発生せず、次の垂直ブランク期間の終了タイミングにおいて発生することとなる。
次にアニメーション実行エンジン120は、4番目のコマンドであるインターバルコマンドIを実行する。この例において、インターバルコマンドのオペランドが示す垂直ブランク待ち回数は「1」となっている。このため、アニメーション実行エンジン120は、フレーム2において垂直ブランク期間が終了するまで5番目のコマンドの実行を待つ。
フレーム2の垂直ブランク期間が終了すると、上述したフリップコマンドFの実行の効果が発生する。すなわち、当該アニメーション実行プログラムに対応した実行制御記憶エリア内のテーブル状態フラグLYBSELMが“0”から“1”に反転し、スプライト属性テーブル102Aのプログラム制御エリアが更新用エリア、スプライト属性テーブル102Bのプログラム制御エリアが描画用エリアとなる。この結果、フレーム2における垂直ブランク期間の後の表示期間では、フレーム1においてテーブルライトコマンドTによりスプライト属性テーブル102Bのプログラム制御エリア(フレーム1では更新用エリア)に書き込まれた属性データが描画処理に使用される。また、フレーム2の垂直ブランク期間が終了すると、4番目のインターバルコマンドIのオペランドにより指定された垂直ブランク待ち回数に関する条件が満たされるため、アニメーション実行エンジン120は、5番目のコマンドであるテーブルライトコマンドTを実行する。この場合、アニメーション実行エンジン120は、スプライト属性テーブル102Aのプログラム制御エリアにおいて、テーブルライトコマンドTのオペランド(書き込み開始アドレス)により指定されたエリアに、オペランドにより指定されたデータ(書き込みデータ)を転送する。次にアニメーション実行エンジン120は、6番目のコマンドであるフリップコマンドFをフェッチして直ちに実行する。この場合も、フリップコマンドFの実行の効果は、この時点では発生せず、次のフレーム3の垂直ブランク期間の終了タイミングにおいて発生することとなる。
次にアニメーション実行エンジン120は、7番目のコマンドであるインターバルコマンドIを実行する。この例において、インターバルコマンドIのオペランドが示す垂直ブランク待ち回数は「1」となっている。このため、アニメーション実行エンジン120は、フレーム3において垂直ブランク期間が終了するまで8番目のコマンドの実行を待つ。
以下、同様であり、図示の例では、フレーム3では、8〜10番目のコマンドであるテーブルライトコマンドT、フリップコマンドFおよびインターバルコマンドIが順次実行された後、インターバルコマンドIの作用によりフレーム4の垂直ブランク期間の終了までの待ち時間が発生し、フレーム4では、11〜13番目のコマンドであるテーブルライトコマンドT、フリップコマンドFおよびインターバルコマンドIが順次実行される。
このように、図3に示す例では、アニメーション実行プログラムを構成する各コマンドに従って、1フレーム毎にスプライト属性テーブル102Aおよび102Bの各プログラム制御エリアのうち更新用エリアへの属性データの転送が行われ、スプライトの表示位置等の表示属性の更新が行われるとともに、テーブル状態フラグLYBSELMの反転、すなわち、更新用エリアの描画用エリアへの切り換え、描画用エリアの更新用エリアへの切り換えが行われる。一方、スプライトレンダリングプロセッサ110は、各フレームにおいて、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアのうち描画用エリアとなっているエリア内の属性データに従ってスプライトの表示メモリ105への描画を行う。従って、本実施形態によれば、CPU201の負担を招くことなく、LCD203にアニメーション表示を行わせることができる。
また、本実施形態によれば、アニメーション実行プログラムにおいてインターバルコマンドを用いることができるので、図3に示すように、インターバルコマンドIとテーブルライトコマンドTを組み合わせて使用することによりテーブルライトコマンドTの実行タイミング(より具体的には前後したテーブルライトコマンドTの実行間隔)を調整し、かつ、垂直走査周期に同期させることができる。従って、アニメーション実行プログラムのプログラミングにおいて、アニメーションにおけるスプライトの動きのタイミング制御を容易に行うことができる。
なお、図3に示す例では、各インターバルコマンドIのオペランドである垂直ブランク待ち回数を「1」としたため、1フレーム毎にテーブルライトコマンドTが実行され、スプライト属性テーブル102Aおよび102Bの各プログラム制御エリアのうち更新用エリアへの属性データの転送が行われた。しかし、各インターバルコマンドIのオペランドである垂直ブランク待ち回数を例えば「2」とすれば、2フレームに1回の割合でテーブルライトコマンドTが実行され、更新用エリアであるプログラム制御エリアへの属性データの転送が行われることとなる。このように本実施形態によれば、インターバルコマンドIのオペランドである垂直ブランク待ち回数を調整することにより、スプライトの動きの速さを決定するフレームレートを調整することができる。
また、本実施形態によれば、アニメーション実行プログラムにおいて、図3に示すように、フリップコマンドF(CSY=“0”、LYA=“0”、LYBSEL=1Xb)とテーブルライトコマンドTを組み合わせて使用することができる。このようにすることにより、テーブルライトコマンドTの実行により属性データの更新された更新用のスプライト属性テーブルを直ちに描画用に切り換え、更新された属性データを用いた描画をスプライトレンダリングプロセッサ110に行わせることができる。
また、図3に示す例ではアニメーション実行プログラムに用いられていないが、本実施形態では、アニメーション実行プログラムにおいてループコマンドを使用することができる。このループコマンドを使用した場合、アニメーション実行プログラムにおいてループ区間内のコマンドをアニメーション実行エンジン120に繰り返し実行させることができ、アニメーション実行プログラムの全体のバイト数を大きくすることなく、例えばスプライトの周期的な動きを伴うようなアニメーションを表示させることができる。
また、図3に示す例ではアニメーション実行プログラムに用いられていないが、本実施形態では、アニメーション実行プログラムにおいてパレットライトコマンドを使用することができる。このパレットライトコマンドをアニメーション実行プログラムに使用した場合、CPU201の負担を招くことなく、例えばアニメーションの途中の任意のタイミングにおいてスプライトの表示色を変更するといった演出が可能になる。
図4は、本実施形態の第2の動作例を示すタイムチャートである。この第2の動作例において、フリップコマンドFは、全てCSY=“1”、LYA=“0”、LYBSEL=1Xbの実行条件付きフリップコマンドである。この第2の動作例では、CPU201によりスプライト属性テーブル102Aおよび102Bの各CPU制御エリアの属性データの書き換えが行われている。そして、CPU201は、スプライト属性テーブル102Aおよび102Bの各CPU制御エリアのうち更新用のエリアへの属性データの転送を終える毎にイネーブル信号ENを出力している。このイネーブル信号ENの出力の効果は、イネーブル信号ENが出力された後の垂直走査周期の開始点に対して所定の位相を持った基準タイミング、具体的にはイネーブル信号ENの出力後の最初の垂直ブランク終了タイミングに発生する。すなわち、イネーブル信号ENが出力された場合、各フレームの各垂直ブランク期間の各終了タイミングのうちそのイネーブル信号ENが出力された後の最初の終了タイミングにおいて、テーブル状態フラグLYBSELCが反転する。また、第2の動作例では、このようなCPU201によるCPU制御エリア内の属性データの書き換えと並行し、アニメーション実行エンジン120がスプライト属性テーブル102Aおよび102Bの各プログラム制御エリアの属性データの書き換えを行う。
上述した第1の動作例と同様、CPU201は、フレーム1においてレジスタ101のあるアニメーション実行プログラムに対応した実行制御記憶エリアに実行制御フラグとしてPLAY=“1”、PAUSE=“0”、STOP=“0”を書き込み、そのアニメーション実行プログラムを起動している。
1番目のスタートコマンドS、2番目のテーブルライトコマンドTの実行に関しては、上記第1の動作例と同様である。アニメーション実行エンジン120は、フレーム1において1番目のスタートコマンドSの実行後、2番目のテーブルライトコマンドTを実行し、その時点において更新用エリアであるスプライト属性テーブル102Bのプログラム制御エリアにアニメーションの最初の一画面に対応した属性データを書き終える。その後、アニメーション実行エンジン120は、3番目のコマンドであるフリップコマンドFをフェッチする。このフリップコマンドFは、CSY=“1”を含む実行条件付きフリップコマンドである。このため、アニメーション実行エンジン120は、このフリップコマンドFを直ちには実行せず、CPU201がイネーブル信号ENを出力するのを待つ。
一方、フレーム1においてアニメーション実行プログラムの実行開始を指示したCPU201は、その後、CPU制御エリアに対し、アニメーションの最初の一画面に対応した属性データを書き込む。この例では、当初、テーブル状態フラグLYBSELCは“0”となっているため、CPU201から出力される最初の一画面に対応した属性データは、スプライト属性テーブル102BのCPU制御エリアに書き込まれる。そして、CPU201は、スプライト属性テーブル102BのCPU制御エリアへの最初の一画面に対応した属性データの書き込みを終えると、フレーム2において、イネーブル信号ENを出力する。
このように、フレーム2においてイネーブル信号ENが出力されると、アニメーション実行エンジン120は、待機させていたフリップコマンドFをフレーム3の垂直ブランク期間の開始タイミングにおいて実行する。このフリップコマンドFの実行の効果は、同垂直ブランク期間の終了タイミングにおいて発生することとなる。フリップコマンドFの実行を終えたアニメーション実行エンジン120は、同垂直ブランク期間内に4番目のコマンドであるインターバルコマンドIを実行する。この例において、インターバルコマンドのオペランドが示す垂直ブランク待ち回数は「1」となっている。このため、アニメーション実行エンジン120は、その時点において継続中のフレーム3の垂直ブランク期間が終了するまで5番目のコマンドの実行を待つ。
フレーム3の垂直ブランク期間が終了すると、フレーム2において行われたイネーブル信号ENの出力の効果が発生する。すなわち、テーブル状態フラグLYBSELCが“0”から“1”に反転する。これによりスプライト属性テーブル102AのCPU制御エリアが更新用エリア、スプライト属性テーブル102BのCPU制御エリアが描画用エリアとなる。この結果、フレーム3の垂直ブランク期間の後の表示期間では、CPU201がスプライト属性テーブル102BのCPU制御エリア(フレーム1では更新用エリア、フレーム3の表示期間では描画用エリア)に書き込んだ最初の一画面に対応した属性データが描画処理に用いられる。
また、フレーム3の垂直ブランク期間が終了すると、上述したフリップコマンドFの実行の効果が発生する。すなわち、実行中のアニメーション実行プログラムに対応した実行制御記憶エリア内のテーブル状態フラグLYBSELMが“0”から“1”に反転する。これにより、スプライト属性テーブル102Aのプログラム制御エリアが更新用エリア、スプライト属性テーブル102Bのプログラム制御エリアが描画用となる。この結果、フレーム3の垂直ブランク期間の後の表示期間では、フレーム1においてテーブルライトコマンドTに従ってスプライト属性テーブル102Bのプログラム制御エリア(フレーム1では更新用エリア、フレーム3の表示期間では描画用エリア)に書き込まれた最初の一画面に対応した属性データが描画処理に用いられる。
このように、本実施形態によれば、CPU201によるイネーブル信号ENの出力タイミングの次の垂直ブランク終了タイミングにおいて更新用のCPU制御エリアと描画用のCPU制御エリアとの切り換えを行わせ、かつ、その切り換えと同時に実行条件付きフリップコマンドによる更新用のプログラム制御エリアと描画用のプログラム制御エリアの切り換えを行わせることができる。従って、本実施形態によれば、アニメーション実行エンジン120がアニメーション実行プログラムに従ってプログラム制御エリアに最初の一画面に対応した属性データを書き込むタイミングと、CPU201がCPU制御エリアに最初の一画面に対応した属性データを書き込みタイミングとがずれたとしても、アニメーション実行プログラムが書き込んだ最初の一画面に対応した属性データとCPU201が書き込んだ最初の一画面に対応した属性データが同一フレームにおいて描画処理に使用され、CPU201によるアニメーション表示とアニメーション実行プログラムによるアニメーション表示とが同時に開始される。
フレーム3の垂直ブランク期間が終了すると、4番目のインターバルコマンドIのオペランドにより指定された垂直ブランク待ち回数に関する条件が満たされるため、アニメーション実行エンジン120は、5番目のコマンドであるテーブルライトコマンドTを実行する。この時点では、テーブル状態フラグLYBSELMが“1”であり、スプライト属性テーブル102Aのプログラム制御エリアが更新用エリア、スプライト属性テーブル102Bのプログラム制御エリアが描画用となっている。そこで、アニメーション実行エンジン120は、スプライト属性テーブル102Aのプログラム制御エリア内のテーブルライトコマンドTのオペランド(書き込み開始アドレス)により指定されたエリアに、オペランドにより指定されたデータ(書き込みデータ)を転送する。
次にアニメーション実行エンジン120は、6番目のコマンドであるフリップコマンドFをフェッチする。このフリップコマンドFは、CSY=“1”を含む実行条件付きフリップコマンドである。このため、アニメーション実行エンジン120は、このフリップコマンドFを直ちには実行せず、CPU201がイネーブル信号ENを出力するのを待つ。
一方、CPU201は、更新用エリアであるスプライト属性テーブル102AのCPU制御エリアに対し、アニメーションの2番目の画面に対応した属性データを書き込む。そして、この属性データの書き込みを終えると、CPU201は、フレーム4においてイネーブル信号ENを出力する。
このように、フレーム4においてイネーブル信号ENが出力されると、アニメーション実行エンジン120は、待機させていたフリップコマンドFをフレーム5の垂直ブランク期間の開始タイミングにおいて実行する。このフリップコマンドFの実行の効果は、同垂直ブランク期間の終了タイミングにおいて発生することとなる。フリップコマンドFの実行を終えたアニメーション実行エンジン120は、同垂直ブランク期間内に7番目のコマンドであるインターバルコマンドIを実行する。この例において、インターバルコマンドのオペランドが示す垂直ブランク待ち回数は「1」となっている。このため、アニメーション実行エンジン120は、その時点において継続中のフレーム5の垂直ブランク期間が終了するまで8番目のコマンドの実行を待つ。
フレーム5の垂直ブランク期間が終了すると、フレーム4において行われたイネーブル信号ENの出力の効果が発生する。すなわち、テーブル状態フラグLYBSELCが“1”から“0”に反転する。これによりスプライト属性テーブル102BのCPU制御エリアが更新用エリア、スプライト属性テーブル102AのCPU制御エリアが描画用エリアとなる。この結果、フレーム5の垂直ブランク期間の後の表示期間では、CPU201によってスプライト属性テーブル102AのCPU制御エリア(フレーム4では更新用エリア、フレーム5の表示期間では描画用エリア)に書き込まれた2番目の画面に対応した属性データが描画処理に用いられる。
また、フレーム5の垂直ブランク期間が終了すると、上述したフリップコマンドFの実行の効果が発生する。すなわち、実行中のアニメーション実行プログラムに対応した実行制御記憶エリア内のテーブル状態フラグLYBSELMが“1”から“0”に反転する。これにより、スプライト属性テーブル102Bのプログラム制御エリアが更新用エリア、スプライト属性テーブル102Aのプログラム制御エリアが描画用エリアとなる。この結果、フレーム5の垂直ブランク期間の後の表示期間では、フレーム3においてテーブルライトコマンドTに従ってスプライト属性テーブル102Aのプログラム制御エリア(フレーム3では更新用エリア、フレーム5の表示期間では描画用エリア)に書き込まれた2番目の画面に対応した属性データが描画処理に用いられる。
以下同様であり、本実施形態では、CPU201が3番目、4番目、…の各画面に対応した属性データをCPU制御エリアに書き込んでイネーブル信号ENを出力する毎に、描画用のCPU制御エリアと更新用のCPU制御エリアの切り換えが行われ、この切り換えと同期し、描画用のプログラム制御エリアと更新用のプログラム制御エリアとの切り換えが行われる。従って、CPU201により出力される3番目、4番目、…の各画面に対応した属性データが描画処理に使用されるタイミングに同期して、アニメーション実行プログラムによりプログラム制御エリアに書き込まれる3番目、4番目、…の各画面に対応した属性データが描画処理に使用される。従って、本実施形態によれば、アニメーションの表示開始以後も、CPU201によるアニメーション表示とアニメーション実行プログラムによるアニメーション表示との同期が維持される。
以上説明した第2の動作例において、アニメーション表示のフレームレートは、CPU201がイネーブル信号ENの出力を行う時間密度により決定される。図4に示す例では、CPU201が2フレームに1回の割合でイネーブル信号ENを出力しているため、アニメーションの画面も2フレームに1回の割合で切り換わる。しかし、これよりもアニメーションのフレームレートを高くする必要がある場合には、イネーブル信号ENを出力する時間密度を高くすればよく、アニメーションのフレームレートを低くする必要がある場合には、イネーブル信号ENを出力する時間密度を低くすればよい。
また、図4に示す例では、1種類のアニメーション実行プログラムしか実行されていないが、本実施形態では、CPU201によるCPU制御データの属性データの更新と並行し、複数種類のアニメーション実行プログラムを時分割制御によりアニメーション実行エンジン102に並列実行させることができる。その際、各アニメーション実行プログラムに対応したプログラム制御エリアに関して、スプライト属性テーブル102Aおよび102Bのうちいずれのプログラム制御エリアを描画用エリアとし、いずれのプログラム制御エリアを更新用エリアとするかの切り換え制御は、各アニメーション実行プログラム毎に独立して行われる。
従って、例えばフリップコマンドとして実行条件付きフリップコマンド(CSY=“1”)を使用した第1のアニメーション実行プログラムと、実行条件を伴わないフリップコマンド(CSY=“0”)を使用した第2のアニメーション実行プログラムをアニメーション実行エンジン120に並列実行させることもできる。その場合、第1のアニメーション実行プログラムにおける実行条件付きフリップコマンドは、CPU201からのイネーブル信号ENの出力を待って実行され、第2のアニメーション実行プログラムにおける実行条件を伴わないフリップコマンドは、CPU201によるイネーブル信号ENの出力を待たずに即時実行される。従って、CPU201によるアニメーション表示に同期した第1のアニメーション実行プログラムによるアニメーション表示と、CPU201によるアニメーション表示に同期しない第2のアニメーション実行プログラムによるアニメーション表示とを同時進行させることも可能である。
<他の実施形態>
以上、この発明の実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
(1)上記実施形態では、2個のスプライト属性テーブル102Aおよび102Bを設けた。そして、例えばプログラム制御エリアに関しては、スプライト属性テーブル102Aまたは102Bの一方のプログラム制御エリアを更新用エリアとして属性データの更新を行いつつ、他方のプログラム制御エリアを描画用エリアとして描画処理に用いた。しかし、例えば描画を垂直走査周期内の特定の期間のみ実行する、といった制約を設けるのであれば、それ以外の期間を利用して、属性データの更新を行うようにすればよい。従って、このような態様においては、スプライト属性テーブルを1個にしてもよい。
(2)上記実施形態では、アニメーション実行プログラムの構成として、テーブルライトコマンドが転送対象のデータをオペランドとして含む構成を採用したが、各テーブルライトコマンドの転送対象のデータをアニメーション実行プログラム内の特定の領域にまとめて配置する構成を採用してもよい。この態様によれば、アニメーション実行プログラムが同一内容を属性データの転送を指示するテーブルライトコマンドを複数含む場合に、それらのテーブルライトコマンド間で転送対象の属性データを共用し、アニメーション実行プログラム全体のデータ量を減らすことができる。
(3)上記実施形態では、フリップコマンドを実行条件付きコマンドとしたが、フリップコマンド以外のコマンド、例えば何も実行しないNOPコマンドを設け、このNOPコマンドを実行条件付きコマンドとしてもよい。
100……画像表示装置、101……レジスタ、102A,102B……スプライト属性テーブル、103……パターンデータデコーダ、104……カラーパレット、105……表示メモリ、106……表示スキャン制御部、107……読み出し制御部、110……スプライトレンダリングプロセッサ、120……アニメーション実行エンジン、201……CPU、202……パターンメモリ、203……LCD。

Claims (4)

  1. 表示装置の表示対象となる画像データを記憶する表示メモリと、
    前記画像データの構成単位となるスプライトの表示属性を示す属性データを記憶するスプライト属性記憶手段と、
    前記スプライト属性記憶手段に記憶されたスプライトの属性データに従って、スプライトの画像データを前記表示メモリ内の画像データに反映させる描画処理を実行するスプライトレンダリングプロセッサと、
    前記スプライト属性記憶手段に記憶されたスプライトの属性データを書き換えるコマンドを含むアニメーション実行プログラムを外部メモリから読み出して実行するアニメーション実行エンジンとを具備し、
    前記アニメーション実行エンジンの他、CPUが前記スプライト属性記憶手段における属性データの書き換えが可能であり、
    前記アニメーション実行エンジンは、前記アニメーション実行プログラムの一部をなすコマンドとして所定のコマンドをフェッチしたとき、少なくとも前記CPUから同期信号が受信されることを条件として前記所定のコマンドを実行することを特徴とする画像表示装置。
  2. 前記所定のコマンドが、前記スプライト属性記憶手段に記憶されたスプライトの属性データを前記描画処理に使用させるための制御を指示するコマンドであることを特徴とする請求項1に記載の画像表示装置。
  3. 前記スプライト属性記憶手段は、各々スプライトの属性データを記憶する第1および第2のスプライト属性テーブルを有し、
    前記第1および第2のスプライト属性テーブルの各々は、前記CPUによって属性データの書き換えが行われるCPU制御エリアと、前記アニメーション実行プログラムに基づき、前記アニメーション実行エンジンにより属性データの書き換えが行われるプログラム制御エリアとに区分され、前記第1および第2のスプライト属性テーブルの各CPU制御エリアは、一方が属性データの書き換えを受け付ける更新用エリアとなる場合に他方が前記描画処理において参照される描画用エリアとなるように切り換え制御が行われるものであり、前記第1および第2のスプライト属性テーブルの各プログラム制御エリアは、前記各CPU制御エリアとは独立に、一方が属性データの書き換えを受け付ける更新用エリアとなる場合に他方が前記描画処理において参照される描画用エリアとなるように切り換え制御が行われるものであり、
    前記スプライトレンダリングプロセッサは、前記第1および第2のスプライト属性テーブルの各CPU制御エリアおよび各プログラム制御エリアのうち描画用エリアとなっているエリア内の属性データに従って、スプライトの画像データを前記表示メモリ内の画像データに反映させる描画処理を実行するものであり、
    前記アニメーション実行エンジンは、前記アニメーション実行プログラムに従い、前記第1および第2のスプライト属性テーブルの各プログラム制御エリアを更新用エリアとするか描画用エリアとするかの切り換え制御を行いつつ、更新用エリア内の属性データの書き換えを行い、前記所定のコマンドとして、実行条件付きフリップコマンドをフェッチしたとき、前記同期信号としてのイネーブル信号が前記CPUから受信されるまで待機した後、前記第1および第2のスプライト属性テーブルの各プログラム制御エリアを更新用エリアとするか描画用エリアとするかの切り換え制御を実行することを特徴とする請求項2に記載の画像表示装置。
  4. 前記第1および第2のスプライト属性テーブルの各CPU制御エリアは、前記CPUから前記イネーブル信号が受信された後の垂直走査周期の開始点に対して所定の位相を持った基準タイミングにおいて、描画用エリアとするか更新用エリアとするかの切り換え制御が行われるものであり、
    前記アニメーション実行エンジンは、前記実行条件付きフリップコマンドをフェッチしたとき、前記イネーブル信号が前記CPUから受信された後の前記基準タイミングにおいて、前記第1および第2のスプライト属性テーブルの各プログラム制御エリアを更新用エリアとするか描画用エリアとするかの切り換え制御を実行することを特徴とする請求項3に記載の画像表示装置。
JP2009153875A 2009-06-29 2009-06-29 画像表示装置 Active JP5338520B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009153875A JP5338520B2 (ja) 2009-06-29 2009-06-29 画像表示装置
US12/821,680 US8493392B2 (en) 2009-06-29 2010-06-23 Image display device
CN2010102205544A CN101937666B (zh) 2009-06-29 2010-06-29 图像显示设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009153875A JP5338520B2 (ja) 2009-06-29 2009-06-29 画像表示装置

Publications (2)

Publication Number Publication Date
JP2011008181A JP2011008181A (ja) 2011-01-13
JP5338520B2 true JP5338520B2 (ja) 2013-11-13

Family

ID=43564887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009153875A Active JP5338520B2 (ja) 2009-06-29 2009-06-29 画像表示装置

Country Status (1)

Country Link
JP (1) JP5338520B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5407590B2 (ja) * 2009-06-29 2014-02-05 ヤマハ株式会社 画像表示装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004012514A (ja) * 2002-06-03 2004-01-15 Yamaha Corp 画像表示装置
JP5407590B2 (ja) * 2009-06-29 2014-02-05 ヤマハ株式会社 画像表示装置

Also Published As

Publication number Publication date
JP2011008181A (ja) 2011-01-13

Similar Documents

Publication Publication Date Title
JP5407762B2 (ja) 画像プロセッサの制御方法およびプログラム
JP5489470B2 (ja) 画像表示装置及び画像表示方法
CN101080698B (zh) 图形处理器,图形处理系统及产生图像的方法
WO2022247179A1 (zh) 图像渲染方法、装置、设备及存储介质
JP2009015248A (ja) 画像生成装置、画像生成方法および画像生成プログラム
US8493392B2 (en) Image display device
JP5338520B2 (ja) 画像表示装置
JP5407590B2 (ja) 画像表示装置
JP2011033651A (ja) 画像処理装置
JP2003236171A (ja) パチンコ機の画像表示装置とその制御方法
KR102091398B1 (ko) 화상 묘화 장치, 화상 묘화 방법, 및 화상 묘화 프로그램
JP5418078B2 (ja) 画像プロセッサ
JP2007295977A (ja) 遊技機
JP4510904B2 (ja) 遊技機
JP3729187B2 (ja) 画像表示装置
JP2004178127A (ja) 情報表示処理装置およびプログラム
JP4226386B2 (ja) 遊技機
JP2011018291A (ja) 画像描画装置
JP2006349733A (ja) 描画表示装置
JP3900973B2 (ja) 表示装置および表示装置の表示制御方法
TWI520094B (zh) Information processing device
JP2013228851A (ja) 画像描画装置
CN117095655A (zh) 图像显示控制方法、装置、电子设备及可读存储介质
JP2004012514A (ja) 画像表示装置
JPH07311567A (ja) 画像出力方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130722

R150 Certificate of patent or registration of utility model

Ref document number: 5338520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150