(57)【要約】【課題】ＶＤＰ等の画像描画装置において容易にループ処理を実現し、ＣＰＵの処理負荷を軽減しうる画像描画装置を提供する。【解決手段】画像メモリ６内のアニメーション実行プログラム６ａの最初に実行すべきコマンドには特定のコマンド列を繰り返し実行するループ回数が設定され、所定のステップのコマンドには特定のコマンド列の先頭コマンドに戻ることを示すループ指示情報が設定されて記憶されている。画像描画装置４は、ＣＰＵ２から画像を描画する開始指示を受付けた場合、プログラム実行部４１により、画像メモリ６内のアニメーション実行プログラム６ａを予め定められた実行順序に従って各コマンドを順次読み出して実行し、所定のステップのコマンドを読み出した際、ループ指示情報が示すコマンドから当該コマンドまでの各コマンドを、最初に実行したコマンドに設定されているループ回数だけ繰り返し実行する。【選択図】図１
2011018291.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた実行順序に従って命令コードが配列された命令コード群を記憶する記憶手段と、
前記記憶手段に記憶されている前記命令コード群の各命令コードを当該命令コードの前記実行順序に従って１ステップずつ実行することにより描画すべき画像データを生成する画像描画手段とを備え、
前記記憶手段に記憶されている前記命令コード群のうち、最初のステップの命令コードには、前記命令コード群における特定の命令コード列を繰り返し実行するためのループ回数を示すループ回数情報を含み、予め定められたステップの命令コードには前記特定の命令コード列における先頭の命令コードに戻ることを示すループ指示情報を含み、
前記画像描画手段は、前記命令コード群の実行を開始する開始指示を受付けた場合に、前記記憶手段に記憶されている前記命令コード群を前記実行順序に従って順次読み出して実行し、前記ループ指示情報を含む命令コードを読み出した際、当該ループ指示情報が示す前記特定の命令コード列における先頭の命令コードから前記ループ指示情報が含まれている命令コードまでの命令コードを、前記最初のステップの命令コードに含まれている前記ループ回数情報が示す前記ループ回数だけ繰り返し実行するループ処理を行うこと
を特徴とする画像描画装置。
【請求項２】
予め定められた実行順序に従って命令コードが配列された命令コード群を記憶する記憶手段と、
前記記憶手段に記憶されている前記命令コード群の各命令コードを当該命令コードの前記実行順序に従って１ステップずつ実行することにより描画すべき画像データを生成する画像描画手段とを備え、
前記記憶手段に記憶されている命令コード群のうち、予め定められたステップの命令コードには、前記命令コード群における特定の命令コードに戻ることを示すループ指示情報を含み、
前記画像描画手段は、前記命令コード群の実行を開始する開始指示を受付けた場合に、前記記憶手段に記憶されている前記命令コード群を前記実行順序に従って順次読み出して実行し、前記ループ指示情報を含む命令コードを読み出した際、当該ループ指示情報で示される前記特定の命令コードから前記ループ指示情報が含まれている命令コードまでの命令コードを繰り返し実行するループ処理を行うこと
を特徴とするが画像描画装置。
【請求項３】
前記画像描画手段は、前記ループ処理を停止する停止指示を受付けたときに、前記ループ処理を停止し、前記ループ指示情報が含まれている命令コードに後続するステップの命令コードから実行を再開することを特徴とする請求項２記載の画像描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像描画装置に関する。
【背景技術】
【０００２】
アニメーション等の動画像を表示装置に表示する場合、ＣＰＵ(Central  Processing  Unit)においてアニメーションのプログラムを実行し、表示装置に表示すべき画像に関する情報をＶＤＰ(Video  Display  Processor)に送り、画像を描画する処理についてはＶＤＰに行わせることで、ＣＰＵの処理負荷を軽減する技術が種々提案されている。例えば、画面上を移動するキャラクタ等のスプライトの画像を表示装置に表示する場合、ＶＤＰ等の画像描画装置において、表示すべきスプライトの表示位置やパターン画像等の属性情報をスプライト属性テーブルに記憶し、ＣＰＵがアニメーションのシナリオの進行状況に応じてダイナミックにスプライト属性テーブルを書き換え、ＶＤＰは、スプライト属性テーブルから順次スプライト属性データを読み出し、スプライト属性データに基づいて画像データを生成してフレームバッファに書き込み、表示装置に画像データを出力して表示する。
また、下記特許文献１には、画像表示装置がＣＰＵからスプライト属性テーブルを書き換えるためのデータとコマンドを受付け、画像表示装置において、ＣＰＵから受付けたコマンドの順にスプライト属性テーブルを書き換え、スプライト属性テーブルに基づいてスプライトの画像を表示装置に表示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１２５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、スプライトの画像を繰り返し表示する等のループ処理を行う場合、上記従来技術では、ＣＰＵにおいて画像を繰り返し表示するためのプログラムをループ回数に応じて実行し、ＶＤＰに対してスプライト属性テーブルの書き換え指示を出力しなければならないため、ループ処理を行う毎にＣＰＵに処理負荷がかかってしまう。
本発明は、ＶＤＰ等の画像描画装置において容易にループ処理を実現し、ＣＰＵの処理負荷を軽減しうる画像描画装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係る画像描画装置は、予め定められた実行順序に従って命令コードが配列された命令コード群を記憶する記憶手段と、前記記憶手段に記憶されている前記命令コード群の各命令コードを当該命令コードの前記実行順序に従って１ステップずつ実行することにより描画すべき画像データを生成する画像描画手段とを備え、前記記憶手段に記憶されている前記命令コード群のうち、最初のステップの命令コードには、前記命令コード群における特定の命令コード列を繰り返し実行するためのループ回数を示すループ回数情報を含み、予め定められたステップの命令コードには前記特定の命令コード列における先頭の命令コードに戻ることを示すループ指示情報を含み、前記画像描画手段は、前記命令コード群の実行を開始する開始指示を受付けた場合に、前記記憶手段に記憶されている前記命令コード群を前記実行順序に従って順次読み出して実行し、前記ループ指示情報を含む命令コードを読み出した際、当該ループ指示情報が示す前記特定の命令コード列における先頭の命令コードから前記ループ指示情報が含まれている命令コードまでの命令コードを、前記最初のステップの命令コードに含まれている前記ループ回数情報が示す前記ループ回数だけ繰り返し実行するループ処理を行うことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、最初に実行すべき命令コードにおいてループ回数が設定され、所定のステップの命令コードにおいてループ指示情報が設定されているので、シーケンス制御により画像を描画する装置であっても、命令コードを実行順序に従って順次実行するだけで容易にループ処理を行うことができる。従って、例えば、ＣＰＵが命令コード群の実行開始を指示した場合には、画像描画装置において画像が繰り返し描画されるため、従来のようにＣＰＵがプログラムを繰り返し実行して画像描画装置に画像を描画する指示を出力する処理を行う必要がなく、ＣＰＵの画像描画処理にかかる負荷が軽減される。
【０００７】
また、本発明に係る画像描画装置は、予め定められた実行順序に従って命令コードが配列された命令コード群を記憶する記憶手段と、前記記憶手段に記憶されている前記命令コード群の各命令コードを当該命令コードの前記実行順序に従って１ステップずつ実行することにより描画すべき画像データを生成する画像描画手段とを備え、前記記憶手段に記憶されている命令コード群のうち、予め定められたステップの命令コードには、前記命令コード群における特定の命令コードに戻ることを示すループ指示情報を含み、前記画像描画手段は、前記命令コード群の実行を開始する開始指示を受付けた場合に、前記記憶手段に記憶されている前記命令コード群を前記実行順序に従って順次読み出して実行し、前記ループ指示情報を含む命令コードを読み出した際、当該ループ指示情報で示される前記特定の命令コードから前記所定のステップの命令コードまでの命令コードを繰り返し実行するループ処理を行うことを特徴とする。
この構成によれば、所定のステップの命令コードにおいてループ指示情報を設定するだけで無限ループを設定することができ、シーケンス制御により画像を描画する装置であっても、命令コードを実行順序に従って順次実行するだけで容易にループ処理を行うことができる。従って、例えば、ＣＰＵが命令コード群の実行開始を指示した場合には、画像描画装置において画像が繰り返し描画されるため、従来のようにＣＰＵがプログラムを繰り返し実行して画像描画装置に画像を描画する指示を出力する処理を行う必要がなく、ＣＰＵの画像描画処理にかかる負荷が軽減される。
【０００８】
また、前記画像描画装置において、前記画像描画手段は、前記ループ処理を停止する停止指示を受付けたときに、前記ループ処理を停止し、前記ループ指示情報が含まれている命令コードに後続するステップの命令コードから実行を再開することとしてもよい。この構成によれば、ループ処理の停止指示に応じて無限ループを停止させることができ、ループ処理の停止後は後続の命令コードの実行を再開することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る描画システムの構成例を示す図である。
【図２】実施形態におけるコマンドの構成を説明する図である。
【図３】実施形態におけるアニメーション実行プログラム例を示す図である。
【図４】アセンブラ言語でループ処理を記述した場合のプログラム例を示す図である。
【図５】実施形態におけるスプライト属性テーブルの例を示す図である。
【図６】(ａ)は、実施形態における表示装置８の表示位置を説明する図である。(ｂ)は、実施形態におけるスプライトのパターン画像データの例を示す図である。
【図７】実施形態におけるプログラム実行処理を示す動作フロー図である。
【図８】実施形態における画像描画処理を示す動作フロー図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態に係る画像描画装置について説明する。
＜構成＞
図１は、本実施形態における描画システム１の構成例を示している。描画システム１において、ＣＰＵ２は、アニメーション全体のシナリオの進行を制御するプログラムを、ＣＰＵ２とローカル接続されたＲＯＭ３から読み出して実行する。画像描画装置４は、ＣＰＵ２からの制御信号に応じて、画像メモリ６に予め記憶されているアニメーション実行プログラム６ａを実行し、アニメーションにおける各シーンの画像を生成して表示装置８に各画像を表示する。従って、ＣＰＵ２が、アニメーション全体の進行状況に応じて各シーンの画像の描画開始指示を画像描画装置４に対して出力し、画像描画装置４において画像を描画する処理を行う。
なお、本実施形態におけるアニメーション実行プログラム６ａは、マクロ命令を用いて記述されたシーケンスプログラムであり、本実施形態では、ループ処理をアニメーション実行プログラム６ａに組み込むことにより、画像描画装置４において、一連のスプライトの画像を繰り返し描画する処理を行う。以下、本実施形態における画像描画装置４の詳細について説明する。
【００１１】
画像描画装置４は、ＶＤＰで実現され、ＣＰＵＩ／Ｆ４０、プログラム実行部４１、レジスタ４２、スプライト属性テーブル４３、カラーテーブル４４、画像描画部４５、ラインバッファ４６、及び表示制御部４７を含んで構成されている。
ＣＰＵＩ／Ｆ４０は、ＣＰＵ２と画像描画装置４との間において各種データや制御情報をやりとりする機能を有している。具体的には、アニメーション実行プログラム６ａの実行開始を指示する実行開始指示や、後述するスプライト属性テーブル４３やレジスタの内容を書き換える指示などの制御情報をＣＰＵ２から受付ける機能と、画像描画装置４からＣＰＵ２に対してデータ等を引き渡す機能とを有する。
【００１２】
プログラム実行部４１は、プログラムカウンタ及びループカウンタを含んで構成されており、ＣＰＵ２からのプログラム実行開始指示に応じて、画像メモリ６に記憶されているアニメーション実行プログラム６ａのアドレスを順次プログラムカウンタに入力し、プログラムカウンタに入力されたアドレスのコマンドを画像メモリ６から読み出す。そして、読み出したコマンドを解釈して実行し、コマンドに応じた各処理を行う機能を有する。
本実施形態におけるアニメーション実行プログラム６ａは、図２に示すコマンド等を用いて記述されており、ＳｔａｒｔコマンドとＥｎｄコマンドがプログラムの最初と最後に記述され、ＳｔａｒｔコマンドとＥｎｄコマンドの間に、画像を描画するための処理を行う各コマンド(図示省略)が記述されている。
また、スプライトの画像を繰り返し描画するループ処理を行う場合には、Ｓｔａｒｔコマンドのオペランド１にループ回数が設定され、ループ処理を行うコマンド列の後ろにＬｏｏｐコマンドが記述される。また、Ｌｏｏｐコマンドのオペランド１には、戻りアドレスとして、ループ処理を行うコマンド列の先頭コマンドの画像メモリ６におけるアドレスが設定される。これにより、戻りアドレスで示されるコマンドからＬｏｏｐコマンドまでのコマンド列がループ処理対象として設定される。また、Ｌｏｏｐコマンドのオペランド２に無限ループか否かを示す無限ループフラグ(１：無限ループ、０：有限ループ)を設定することにより無限ループを設定することができる。
【００１３】
図３は、上記コマンドを用いてループ処理を組み込んだアニメーション実行プログラム６ａの例を示している。この例では、画像メモリ６に記憶されているアニメーション実行プログラム６ａの先頭アドレスに、Ｓｔａｒｔコマンドのオペコード“Ｓ”とオペランド１“１０”が記憶され、アドレス０００１９９にＥｎｄコマンドのオペコード“Ｅ”が記憶されている。また、アドレス００００２５にＬｏｏｐコマンドのオペコード“Ｌ”とオペランド１“００００１０”、オペランド２“０”が記憶され、Ｌｏｏｐコマンドの前後のアドレスには画像データを描画するコマンド等(図示略)が記憶されている。
この場合、ＳｔａｒｔコマンドからＬｏｏｐコマンドまでの各コマンドを実行した後、Ｌｏｏｐコマンドのオペランド１に設定されている戻りアドレス“００００１０”に格納されているコマンドに戻り、当該コマンドからからＬｏｏｐコマンドまでのコマンド列をループ処理対象として、Ｓｔａｒｔコマンドのオペランド１で指定されたループ回数“１０”の回数だけこのコマンド列が繰り返し実行される。本実施形態では、プログラム実行部４１によりＳｔａｒｔコマンドが実行されたときに、Ｓｔａｒｔコマンドに設定されているループ回数がループカウンタに設定され、プログラム実行部４１が上記ループ処理を行う毎に、ループカウンタの値が１ずつ減算されるので、ループカウンタの値が０になるまで上記ループ処理が繰り返される。
【００１４】
また、この例では、Ｌｏｏｐコマンドのオペランド２に“０”のフラグが設定されているので無限ループではないが、例えば、この例のようにオペランド１にループ回数を指定したＳｔａｒｔコマンドが設定されている場合であっても、Ｌｏｏｐコマンドのオペランド２に無限ループフラグ“１”が設定されていれば、Ｓｔａｒｔコマンドで設定されているループ回数よりＬｏｏｐコマンドに設定されている無限ループフラグを優先し、ＣＰＵ２からの停止指示があるまではループ処理を繰り返し行う。
なお、上記したループ処理をアセンブラ言語で記述した場合には、図４に示すようなプログラムとなる。図４に示すように、アセンブラ言語で記述する場合には、“Ｓｔａｒｔ”コマンドの他に、レジスタにループ回数を設定するための“ＬＡＤ”コマンドと、ループ回数の値を比較するための“ＣＰＡ”コマンドと、ループ回数の比較結果に応じてＬｏｏｐコマンドにジャンプする“ＪＰＬ”コマンドを記述する必要がある。従って、本実施形態における図３に示すプログラムは、図４のアセンブラ言語で記述されたプログラムと比べて３命令少なくすることができるので画像描画装置４のループ処理にかかる負荷を軽減することができ、また、シーケンス制御を行うプログラムの命令数を少なくしたループ処理を容易に実現することができる。
【００１５】
なお、スプライトの画像データの描画処理は、後述するスプライト属性テーブル４３にデータ転送を行うためのコマンドで実現され、表示装置８に表示すべきスプライトのパターン画像を示すパターン名や、パターン画像のデータ(以下、パターン画像データと言う。)が格納されているアドレス、画像の表示位置、画像データサイズ等の属性情報がコマンドのオペランドで定義される。このパターン画像データは、アニメーションのキャラクタ等の画像データであり、各画像データには画像の色を指定したカラーコードが設定されている。
【００１６】
図１に戻り、説明を続ける。レジスタ４２は、ＣＰＵ２の指示によりアニメーション実行プログラム６ａの実行状態(実行、一時停止、停止)を示すフラグや、プログラム実行部４１や後述の画像描画部４５によって書き込まれるアドレス等を格納する各種レジスタ群である。
【００１７】
スプライト属性テーブル４３は、図５に示すように、フレーム毎に描画するスプライトを構成するパターン画像データの属性情報を示すスプライト属性データを記憶する。パターン画像の属性情報には、パターン画像データを示すパターン名、パターン画像データが格納されている画像メモリ６のアドレス、表示位置(ＸＹ座標の値)、表示するパターン画像のデータサイズ、拡大縮小率の各種属性情報が対応づけられている。スプライト属性テーブル４３に記憶される内容は、プログラム実行部４１がアニメーション実行プログラム６ａを実行する際、必要に応じて書き換えられ、所定タイミングで画像描画部４５により順次読み出される。上記表示位置は、図６(ａ)に示す表示装置８の表示領域において、左上の座標位置(０，０)を基点とした場合の座標を示している。例えば、ＣＤ−ＲＯＭ(Compact  Disc−Read  Only  Memory)等の円盤が回転しているスプライトＳＰを描画する場合、図６(ｂ)に示すような、スプライトを構成するＳＰ１１からＳＰ１８の各パターン画像データのパターン属性データが、フレーム毎にスプライト属性テーブル４３に格納される。そして、表示位置(Ｘ１，Ｙ１)に、ＳＰ１１からＳＰ１８の各画像データをフレーム毎に順番に繰り返し表示させることにより円盤が回転しているスプライトが表示されることになる。
【００１８】
図５のスプライト属性テーブル４３には、フレーム毎に描画するパターン画像データの属性情報として、図６(ｂ)に例示したスプライトのパターン画像データ(ＳＰ１１)以外に、他のスプライトを構成するパターン画像データ(ＳＰ２１・・ＳＰｎ１)の属性情報が格納されている。従って、１フレームには、ＳＰ１１〜ＳＰｎ１で示されるパターン画像データが表示される。本実施形態では、ラインバッファ方式により画像データの描画を行うので、図５の例では、ＳＰ１１〜ＳＰｎ１で示される各スプライト属性データの属性情報に基づき、ｙ１を含むラインに描画する各パターン画像データ(ＳＰ１１・・ＳＰｎ１)の画像データが画像メモリ６から読み出されて表示される。
【００１９】
図１に戻り、説明を続ける。カラーテーブル４４は、パターン画像データに指定されているカラーコードに応じてパターン画像データをＲＧＢのカラーデータに変換するためのテーブルである。カラーテーブル４４は、画像描画部４５がパターン画像データを表示装置８に描画する際に参照され、パターン画像データに指定されているカラーコードに対応するＲＧＢのカラーデータが読み出される。
【００２０】
画像描画部４５は、水平同期信号のタイミングで、スプライト属性テーブル４３に記憶されているスプライト属性データを順次読み出し、読み出したスプライト属性データの格納アドレスで示される画像メモリ６の画像データ記憶領域６ｂからパターン画像データをライン単位に読み出す機能と、カラーテーブル４４を参照し、読み出したパターン画像データに指定されているカラーコードに対応するＲＧＢのカラーデータにパターン画像データを変換し、スプライト属性データの属性情報(表示位置、画像データサイズ、拡大縮小率等)に応じてパターン画像データをレンダリングして１ライン分の画像データを生成し、ラインバッファ４６へ出力する機能を有する。
ラインバッファ４６は、２つのラインバッファ(４６ａ、４６ｂ)で構成されており、表示装置８における１ラインの表示ドットに対応する記憶スロットを有するバッファメモリであり、画像描画部４５によって出力された画像データを記憶する。ラインバッファ４６ａと４６ｂは、画像描画部４５によりスプライト画像データが描画される描画用とスプライト画像データを表示装置８へ転送する表示用とに順次切替えられる。
即ち、画像描画部４５によりｎラインの画像データがラインバッファ４６ａに格納され、ｎ＋１ラインの画像データがラインバッファ４６ｂに格納された場合、ラインバッファ４６ａを表示用ラインバッファとして機能させてラインバッファ４６ａに格納されている画像データを表示装置８に転送し、その後、ラインバッファ４６ａを再び描画用ラインバッファとして機能させ、ラインバッファ４６ｂを表示用ラインバッファとして機能させる。このように、ラインバッファ４６ａ及び４６ｂは、１ラインの画像データを描画及び表示する毎に描画用及び表示用のラインバッファとして交互に切替えられる。表示制御部４７は、表示装置８が１ラインを書き換えるタイミングに応じてラインバッファ４６ａ又は４６ｂに記憶されている画像データを読み出して表示装置８に出力する機能を有する。
【００２１】
＜動作＞
以下、本実施形態における画像描画装置４の動作について説明する。図７は、画像描画装置４のプログラム実行部４１のプログラム実行処理を示す動作フロー図である。なお、以下の説明において、ＣＰＵ２の制御によりプログラムカウンタにはアニメーション実行プログラム６ａの先頭アドレスが格納されているものとして説明する。
画像描画装置４は、ＣＰＵ２からプログラムの実行を開始する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力された場合 (ステップＳ１１：ＹＥＳ)、アニメーション実行プログラム６ａが実行中であることを示すフラグがレジスタ４２に設定され、プログラム実行部４１は、プログラムカウンタに設定されている画像メモリ６のアドレスからアニメーション実行プログラム６ａのコマンドを読み出し、読み出したコマンドに応じた処理を行う(ステップＳ１２)。
プログラム実行部４１は、ステップＳ１２において読み出したコマンドを解釈し、当該コマンドがＳｔａｒｔコマンドである場合(ステップＳ１３：Ｓｔａｒｔコマンド)、オペランド１に設定されているループ回数をループカウンタに設定する(ステップＳ１４)。そして、プログラム実行部４１は、Ｓｔａｒｔコマンドのバイト数に応じてプログラムカウンタの値を増分する(ステップＳ１５)。
【００２２】
また、ステップＳ１３において、プログラム実行部４１は、ステップＳ１２において読み出したコマンドを解釈し、当該コマンドがＬｏｏｐコマンドであれば(ステップＳ１３：Ｌｏｏｐコマンド)、当該Ｌｏｏｐコマンドが無限ループであるか否かを、Ｌｏｏｐコマンドのオペランド２に無限ループを示すフラグ“１”が設定されているか否かにより判断する(ステップＳ１６)。そして、プログラム実行部４１は、無限ループフラグが０である場合、即ち、有限ループである場合には(ステップＳ１６：ＮＯ)、ループカウンタを１減算して(ステップＳ１７)、ループカウンタの値が０であれば(ステップＳ１８：ＹＥＳ)、Ｌｏｏｐコマンドのバイト数に応じてプログラムカウンタの値を増分する(ステップＳ１９)。
【００２３】
また、ステップＳ１６において、無限ループフラグが１であり無限ループである場合(ステップＳ１６：ＹＥＳ)、又は、ステップＳ１８において、ループカウンタの値が０でない場合には(ステップＳ１８：ＮＯ)、プログラム実行部４１は、ＣＰＵ２からループ処理を中断する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力されていなければ(ステップＳ２０：ＮＯ)、Ｌｏｏｐコマンドのオペランド１に設定されている戻りアドレスをプログラムカウンタに設定する(ステップＳ２１)。なお、ステップＳ２０において、ＣＰＵ２からループ処理を中断する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力された場合には(ステップＳ２０：ＹＥＳ)、プログラム実行部４１は、ループ処理を中断し、上記ステップＳ１９と同様、Ｌｏｏｐコマンドのバイト数に応じてプログラムカウンタの値を増分する処理を行う。
【００２４】
また、ステップＳ１３において、プログラム実行部４１は、ステップＳ１２において読み出したコマンドを解釈し、当該コマンドがスプライト属性テーブル４３へのデータ転送コマンドであれば(ステップＳ１３：データ転送コマンド)、当該コマンドのオペランドに設定されている各パターン画像データの属性情報をスプライト属性テーブル４３に書き込み(ステップＳ２２)、当該コマンドのバイト数に応じてプログラムカウンタの値を増分する(ステップＳ２３)。
プログラム実行部４１は、ＣＰＵ２からプログラムの実行を停止する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力されるまで、上記ステップＳ１２〜Ｓ２３の処理を繰り返し行う(ステップＳ２４：ＮＯ)。また、ＣＰＵ２からプログラムの実行を停止する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力されたとき(ステップＳ２４：ＹＥＳ)、又は、ステップＳ１３において、プログラム実行部４１がステップＳ１２で読み出したコマンドがＥｎｄコマンドである場合には(ステップＳ１３：Ｅｎｄコマンド)、プログラム実行部４１は、アニメーション実行プログラム６ａの実行処理を終了し、ＣＰＵＩ／Ｆ４０を介してプログラムの実行を終了したことをＣＰＵ２へ通知する(ステップＳ２５)。
なお、ステップＳ１１において、ＣＰＵ２からプログラムの実行を開始する制御情報がＣＰＵＩ／Ｆ４０を介してレジスタ４２に入力されなければ(ステップＳ１１：ＮＯ)、実行開始を示す制御情報がレジスタ４２に入力されるまで待機する。
【００２５】
(画像描画処理)
次に、プログラム実行部４１により書き換えられるスプライト属性テーブル４３に基づいて、スプライトの各画像を表示装置８に表示する画像描画処理の動作について図８を用いて説明する。図８は、本実施形態における画像描画処理を示す動作フロー図である。画像描画部４５は、水平同期信号のタイミングに応じて、ライン毎にスプライト属性テーブル４３からスプライト属性データを読み出す(ステップＳ３１)。画像描画部４５は、読み出したスプライト属性データにおける表示位置を参照し、１ラインに描画するパターン画像データが格納されている画像メモリ６内のアドレスを求める(ステップＳ３２)。
【００２６】
そして、画像描画部４５は、ステップＳ３２において求めたアドレスに格納されているパターン画像データのうち、読み出したスプライト属性データの画像データサイズ及び拡大縮小率に応じたパターン画像データの部分を読み出し、当該パターン画像データのカラーコードに対応するＲＧＢのカラーデータに変換しながら描画用ラインバッファとして機能しているラインバッファ４６ａ又は４６ｂに１ライン分のパターン画像データを出力する(ステップＳ３３)。
【００２７】
画像描画部４５は、描画すべき１ラインのスプライト属性テーブル４３におけるスプライト属性データを全て読み出し、１ラインに表示するパターン画像データを描画用ラインバッファに出力する処理が終了するまで(ステップＳ３４：ＮＯ)、ステップＳ３２〜Ｓ３４の処理を繰り返し行う。
【００２８】
また、画像描画部４５により１ラインの処理が終了されたときに(ステップＳ３４：ＹＥＳ)、表示制御部４７により、ステップＳ３３において画像データが入力されたラインバッファ４６ａ(又は４６ｂ)を表示用ラインバッファに切替えると共に、表示用ラインバッファとして機能している他方のラインバッファ４６ｂ(又は４６ａ)を描画用ラインバッファに切替え、表示用ラインバッファに切替えられたラインバッファ４６ａ(又は４６ｂ)に格納されているパターン画像データを表示装置８へ出力する(ステップＳ３５)。
本実施形態における画像描画装置４のアニメーション実行プログラム６ａの実行処理及び画像描画処理は以上の通りである。
【００２９】
上述したように、本実施形態では、Ｓｔａｒｔコマンドのオペランドにループ回数を設定し、Ｌｏｏｐコマンドのオペランドに戻りアドレスを指定することにより、アニメーション実行プログラム６ａにおいてループ処理を容易に実現することができる。また、本実施形態では、Ｌｏｏｐコマンドのオペランドにおいて無限ループフラグを設定することにより、ＣＰＵ２からの指示に応じてスプライトを繰り返し描画する処理を行うことができる。従って、ＣＰＵ２は、画像描画装置４に対してアニメーション実行プログラム６ａの実行開始や実行停止等の制御情報を送るだけで、アニメーションの画像を表示装置８に表示させることができる。そのため、従来のように、ＣＰＵ２が繰り返し画像を表示するためにプログラムを実行し、スプライト属性テーブルを書き換える指示を画像描画装置４に対して出力する必要がないため、ＣＰＵ２が画像表示を行うための処理負荷を軽減することができる。これにより、例えば、アニメーションの音声に関する処理やユーザ操作に応じた処理等、画像描画処理以外の複雑な処理をＣＰＵ２に行わせることができる。
【００３０】
＜変形例＞
以下、本発明の変形例について説明する。
（１）上述した実施形態におけるプログラム実行及び画像描画処理を車載システムに利用してもよい。例えば、車両に搭載されているウインカーレバーの操作に応じて、ウインカーレバーが操作された方向に応じたスプライトの画像をディスプレイに表示する場合、ウインカーレバーの操作方向毎に表示させるパターン画像データを実施形態と同様に画像メモリ６に記憶しておく。また、実施形態と同様、Ｓｔａｒｔコマンドと、ディスプレイに表示させる画像の元となるパターン画像データの属性情報をオペランドに設定したデータ転送コマンド、戻りアドレス及び無限ループフラグ“１”をオペランドに設定したＬｏｏｐコマンド、Ｅｎｄコマンドを含むウインカー表示用プログラムをウインカーレバーの操作方向毎に画像メモリ６に記憶しておく。
ＣＰＵ２はウインカーレバーの操作をユーザから受付け、ウインカーレバーの操作方向とウインカーの画像表示を開始する指示を画像描画装置４に出力する。画像描画装置４のプログラム実行部４１は、実施形態と同様、ＣＰＵ２から指示されたウインカーレバーの操作方向に対応するウインカー表示用プログラムを読み出して順次実行し、スプライト属性テーブル４３を書き換え、画像描画部４５によりスプライト属性テーブル４３のスプライト属性データをライン毎に読み出してディスプレイに出力し、スプライトの画像を表示する。画像描画装置４は、ＣＰＵ２からウインカー表示用プログラムの実行を停止する指示を受付けるまで、Ｌｏｏｐコマンドで指定された戻りアドレスのコマンドからＬｏｏｐコマンドまでの各コマンドを繰り返し実行するループ処理を行い、ディスプレイにスプライトの画像を繰り返し表示する。そして、ＣＰＵ２はウインカーレバーを停止する操作を受付けたときに画像描画装置４に対してウインカー表示用プログラムの実行を停止する実行停止指示を出力し、画像描画装置４のプログラム実行部４１はループ処理を停止すると共に、ウインカー表示用プログラムの実行を終了する。
【００３１】
（２）上述した実施形態では、アニメーション実行プログラム６ａはＳｔａｒｔコマンドにオペランドを設定可能なコマンドの例を用いて説明したが、プログラムの最初に実行すべきコマンドにループ回数を設定可能なコマンドであれば、実施例で示したコマンドに限定されない。
【００３２】
（３）上述した実施形態では、画像メモリ６に記憶されているコマンドのバイト数に応じたアドレスの順にアニメーション実行プログラム６ａを逐次実行する例について説明したが、予め定められた実行順序で１命令ずつ実行するコマンドが配列されたプログラムであれば、画像メモリ６においてコマンドのバイト数に応じたアドレス順にコマンドが記憶されていなくてもよい。
【００３３】
（４）上述した実施形態では、ラインバッファ４６を用いる例について説明したが、ラインバッファの代わりにフレームバッファを用いてもよい。この場合には、画像描画部４５は、垂直同期信号のタイミングで、スプライト属性テーブル４３に記憶されているスプライト属性データをフレーム単位に読み出し、読み出したスプライト属性データが示す画像メモリ６のアドレスからパターン画像データを読み出し、カラーテーブル４４を参照して、読み出したパターン画像データに指定されているカラーコードに対応するＲＧＢのカラーデータにパターン画像データを変換し、スプライト属性データの属性情報(表示位置、画像データサイズ、拡大縮小率等)に応じてパターン画像データをレンダリングして１フレームの画像データを生成し、フレームバッファへ出力する。そして、フレームバッファに格納された１フレームのスプライト画像データを表示制御部４７により読み出し、表示装置８が画面を書き換えるタイミングで表示装置８に出力する。
【符号の説明】
【００３４】
１・・・描画システム、２・・・ＣＰＵ、３・・・ＲＯＭ、４・・・画像描画装置、６・・・画像メモリ(記憶手段)、８・・・表示装置、４０・・・ＣＰＵＩ／Ｆ、４１・・・プログラム実行部(画像描画手段)、４２・・・レジスタ、４３・・・スプライト属性テーブル、４４・・・カラーテーブル、４５・・・画像描画部(画像描画手段)、４６，４６ａ，４６ｂ・・・ラインバッファ、４７・・・表示制御部
【図１】
2011018291.tif 000003
【図２】
2011018291.tif 000004
【図３】
2011018291.tif 000005
【図４】
2011018291.tif 000006
【図５】
2011018291.tif 000007
【図６】
2011018291.tif 000008
【図７】
2011018291.tif 000009
【図８】
2011018291.tif 000010