(57)【特許請求の範囲】
【請求項１】
描画処理に必要な制御情報を記憶するレジスタであって、一方が描画用となるときに他方が更新用となるように切り換えられる２つのバンクを有するレジスタと、
描画用のバンクに記憶された制御情報に従って描画処理を実行する描画手段と、
複数のコマンドからなるコマンドリストを記憶するコマンドリスト記憶手段からコマンドリストを構成する各コマンドを読み出して解釈実行する手段であって、各々所定のコマンドに従って更新用のバンクへの制御情報の格納と、描画用のバンクの更新用への切り換えおよび更新用のバンクの描画用への切り換えを実行するコマンド解釈部と、
前記描画用のバンクの更新用への切り換えおよび更新用のバンクの描画用への切り換えが行われるとき、切り換え前の更新用のバンクに記憶された制御情報を切り換え後の更新用のバンクに格納する手段と
を具備することを特徴とする画像プロセッサ。
【請求項２】
前記コマンド解釈部の解釈結果に従ってコマンドが指令する制御情報を更新用のバンクに記憶させる際、既に更新用のバンクに記憶された制御情報に対して前記コマンドが指令する制御情報を加えた内容が更新用のバンクに記憶されるように記憶内容の更新を行うことを特徴とする請求項１に記載の画像プロセッサ。
【請求項３】
前記コマンドリスト記憶手段は、各々コマンドリストを記憶する複数のコマンドリスト記憶部を有し、
前記コマンド解釈部は、コマンドの読み出し先となっている１つのコマンドリスト記憶部から読み出されたコマンドが他のコマンドリスト記憶部を新たな読み出し先として指定するものである場合に、当該コマンドにより指定されたコマンドリスト記憶部からコマンドを読み出すことを特徴とする請求項１または２に記載の画像プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、遊技機、情報表示機器等に好適な画像プロセッサに関する。
【背景技術】
【０００２】
遊技機、情報表示機器等では、機器全体を制御するホストＣＰＵからの指令に従って、機器の表示装置に表示させる画像を生成する画像プロセッサが設けられることが多い。この種の画像プロセッサの中には、ホストＣＰＵの負担を軽減するためにインテリジェント性を高めたもの、具体的には、ホストＣＰＵから随時供給されるコマンドリストまたは予め記憶したコマンドリストに従って、表示画像を生成するための描画処理を実行するものがある。ここで、コマンドリストは、描画処理に必要な制御情報の設定等を指令する一連のコマンドの列である。なお、この種の画像プロセッサは例えば特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３２３７５９号公報
【特許文献２】特開２００１−２９１０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、最近では、画像プロセッサを搭載した各種の機器に関して、動画表示等を含む多彩な画像表示を行う能力が求められるようになってきている。そのような多様な画像表示を実現しようとすると、短時間のうちに大きなデータ量のコマンドリストを解釈実行しなければならない事態が起こりうる。しかし、ホストＣＰＵが短時間のうちに大きなデータ量のコマンドリストを画像プロセッサに供給するとなると、ホストＣＰＵの負担が重くなり、機器全体の制御に支障が生じる。また、画像プロセッサが予め記憶したコマンドリストを解釈実行する場合でも、短時間のうちに大きなデータ量のコマンドリストを解釈実行するとなると、そのための画像プロセッサ自体の処理負担が重くなり、正常な機能を営むのが困難になる場合がある。
【０００５】
この発明は、以上説明した事情に鑑みてなされたものであり、多様な画像表示を行う場合でもそのためのコマンドリストの量が少なくて済む画像プロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、描画処理に必要な制御情報を記憶するレジスタと、前記レジスタに記憶された制御情報に従って描画処理を実行する描画手段と、複数のコマンドからなるコマンドリストを記憶するコマンドリスト記憶手段からコマンドリストを構成する各コマンドを読み出して解釈し、当該コマンドが前記レジスタに対する制御情報の格納を指令するコマンドである場合に当該コマンドに従って前記レジスタに制御情報を格納するコマンド解釈部とを具備し、前記レジスタに描画処理のための制御情報が格納された場合に、当該描画処理に当該制御情報が使用されても当該制御情報を消去せず、その後、前記コマンド解釈部がコマンドに従って当該制御情報に他の制御情報を上書きし、または当該制御情報を消去しない限り、当該制御情報を前記レジスタに残存させるように構成したことを特徴とする画像プロセッサを提供する。
【０００７】
かかる発明によれば、複数回の描画処理を描画手段に実行させる際、連続した２つの描画処理のうち先発の描画処理に必要な制御情報と後発の描画処理に必要な制御情報に共通部分がある場合、後発の描画処理を実行させるために、その共通部分以外の制御情報をレジスタに格納させるコマンドのみをコマンドリストに含めればよく、共通部分の制御情報をレジスタに格納させるコマンドをコマンドリストに含める必要はない。従って、コマンドリストのデータ量またはコマンド数を減らすことができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の第１実施形態による画像プロセッサ１００を用いたアミューズメント機器５００の構成を示すブロック図である。
【図２】同実施形態におけるレジスタ部１２０の構成を示すブロック図である。
【図３】同実施形態においてコマンドリストを構成する各種のコマンドの構成を示す図である。
【図４】この発明の第２実施形態による画像プロセッサ１００Ａの一部の構成を示すブロック図である。
【図５】同実施形態においてコマンド解釈部１３０によって行われる制御情報の更新処理の内容を例示する図である。
【図６】この発明の第３実施形態による画像プロセッサ１００Ｂの一部の構成を示すブロック図である。
【図７】同実施形態の動作例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施の形態を説明する。
＜第１実施形態＞
図１は、この発明の第１実施形態による画像プロセッサ１００を含むアミューズメント機器５００の構成を示すブロック図である。本実施形態による画像プロセッサ１００は、アミューズメント機器５００全体を制御するホストＣＰＵ５０１からの指令に従い、ＬＣＤ（Liquid Crystal Display：液晶表示器）などの表示器５０２に表示させる静止画や動画を生成するプロセッサである。
【００１０】
画像プロセッサ１００において、ホストインタフェース１０１は、ホストＣＰＵ５０１から各種の指令、データおよび制御情報を受け取って画像プロセッサ１００内の関係する各部に供給する装置である。ＲＡＭインタフェース１０２は、画像プロセッサ１００に外付けされたＲＡＭ５０３に対するデータの書き込み、同ＲＡＭ５０３からのデータの読み出しを行うインタフェースである。また、ＲＯＭインタフェース１０３は、画像プロセッサ１００に外付けされたＲＯＭ５０４からのデータの読み出しを行うインタフェースである。
【００１１】
表示メモリ１０４Ａおよび１０４Ｂは、表示器５０２に表示させる画像データを記憶するためのメモリである。これらの表示メモリは、各々１フレーム（１表示画面）分の画素の画像データを記憶するフレームメモリであってもよく、各々１ライン（１水平走査線）分の画素の画像データを記憶するラインメモリであってもよい。表示メモリ１０４Ａおよび１０４Ｂをフレームメモリとする態様では、表示メモリ１０４Ａおよび１０４Ｂは、各垂直走査周期において一方が描画用、他方が表示用となり、垂直走査周期が切り換わる毎に描画用であった表示メモリが表示用に、表示用であった表示メモリが描画用に切り換えられる。表示メモリ１０４Ａおよび１０４Ｂをラインメモリとする態様では、水平走査周期の切り換わりに同期して、表示用の表示メモリが描画用に、描画用の表示メモリが表示用に切り換えられる。
【００１２】
表示制御部１０５は、垂直同期信号や水平同期信号等、表示器５０２の表示制御のための同期信号を出力するとともに、各水平走査周期において表示用となっている表示メモリから１ライン分の各画素の画像データを読み出して表示器５０２に供給する。さらに表示制御部１０５は、垂直走査周期の切り換わりタイミングに同期したバンクフリップパルスを出力する。
【００１３】
描画部１１１およびデコーダ１１２は、圧縮符号化された画像データのデコードをも含む広義の描画処理を実行する描画手段を構成している。レジスタ１２０は、描画処理に必要な各種の制御情報を記憶する記憶回路である。
【００１４】
本実施形態においてレジスタ１２０は、図２に示すように、２つのバンク１２０Ａおよびバンク１２０Ｂに分かれている。ここで、バンク１２０Ａおよびバンク１２０Ｂは、一方が更新用、他方は描画用とされる。そして、バンクフリップパルスが発生する都度、更新用のバンクを描画用のバンクとし、描画用のバンクを更新用のバンクとするバンクフリップ切り換えが行われる。
【００１５】
バンク１２０Ａおよび１２０Ｂの各々は、連続したアドレスを持った複数のエリアを有している。そして、バンク１２０Ａおよび１２０Ｂでは、例えば、あるエリアは描画対象である画像の生成に用いる圧縮符号化データの格納先アドレス、あるエリアは描画対象であるスプライトの表示画面における占有領域の左上頂点のＸ座標値、あるエリアは同頂点のＹ座標値、また、あるエリアはスプライトの描画に伴ってアルファブレンディングを行う際のアルファデータ（スプライトの透過率）、といった具合に、エリア毎にそこに格納する制御情報の種類が定まっている。
【００１６】
描画部１１１およびデコーダ１１２は、各垂直走査周期において、バンク１２０Ａおよび１２０Ｂのうち描画用のバンクに記憶された制御情報に従って描画処理を実行する。さらに詳述すると、描画部１１１は、描画用のバンクに記憶された各種の制御情報のうち描画対象を特定する制御情報を参照して、描画対象の画像データを生成し、描画対象の表示画面中内での位置を指定する制御情報を参照して、同描画対象の画像データを表示メモリ１０４Ａおよび１０４Ｂのうち描画用の表示メモリに格納する描画処理を実行する。また、デコーダ１１２は、描画対象の画像データが圧縮符号化データから生成されるべきものである場合に、描画用のバンクに記憶された同圧縮符号化データの格納先アドレスを用いて、同圧縮符号化データを取得し、そのデコードを行う。
【００１７】
本実施形態では、このように描画用のバンク内の制御情報を参照して描画処理が行われる間、これと並行して更新用のバンクに制御情報の書き込みを行うことが可能である。この制御情報の書き込みを行うのがコマンド解釈部１３０である。
【００１８】
コマンド解釈部１３０は、コマンドリスト記憶手段からコマンドリストを読み出し、このコマンドリストを構成する各コマンドを解釈実行する回路である。ここで、コマンドリストとは、例えば１画面分の静止画、ある時間長を持った動画等、１つのまとまった描画処理を描画手段に実行させるためのコマンドの列である。本実施形態では、画像プロセッサ１００内に設けられたＦＩＦＯ（First In First Out；先入れ先出し）メモリ１４１およびＲＡＭ等によるコマンドメモリ１４２と、画像プロセッサ１００に外付けされたＲＡＭ５０３およびＲＯＭ５０４が各々コマンドリストを記憶するコマンドリスト記憶部としての役割を果たし、全体としてコマンドリスト記憶手段を構成している。ＲＯＭ５０４は、コマンドリストの他、同コマンドリストに従って行う描画処理において描画対象である画像データを得るのに用いる圧縮符号化データを記憶している。また、ＲＡＭ５０３は、コマンドリストを記憶するためのエリアの他、コマンド解釈部１３０のワークエリア、ホストＣＰＵ５０１とコマンド解釈部１３０との間で授受されるコマンドリスト以外のデータの一時記憶のためのエリアを有している。
【００１９】
４個のコマンドリスト記憶部のうちＦＩＦＯメモリ１４１、コマンドメモリ１４２およびＲＡＭ５０３は、コマンドリストの書き換えが可能である。従って、ホストＣＰＵ５０１は、ホストインタフェース１０１を介してＦＩＦＯメモリ１４１またはコマンドメモリ１４２にコマンドリストを格納することができ、また、ホストインタフェース１０１およびＲＡＭインタフェース１０２を介してＲＡＭ５０３にコマンドリストを格納することができる。
【００２０】
本実施形態においてホストＣＰＵ５０１は、ＲＡＭ５０３、ＲＯＭ５０４、コマンドメモリ１４２内の各コマンドリストを構成する各コマンドのうち任意のコマンドを最初に解釈実行するコマンドとしてコマンド解釈部１３０に指示し、そのコマンドから始まる一連のコマンド列の解釈実行をコマンド解釈部１３０に開始させることができる。
【００２１】
また、ホストＣＰＵ５０１は、コマンドリストをＦＩＦＯメモリ１４１を介してコマンド解釈部１３０に供給することができる。この場合、コマンド解釈部１３０は、ＦＩＦＯメモリ１４１内の読み出し未了の各コマンドを古いものから順に読み出す。そして、コマンドの読み出しによりＦＩＦＯメモリ１４１が空になった場合、コマンド解釈部１３０は、新たなコマンドがホストＣＰＵ５０１によってＦＩＦＯメモリ１４１に格納されるのを待つ。また、ＦＩＦＯメモリ１４１が読み出し未了のコマンドにより満杯になった場合、ホストインタフェース１０１は、ＦＩＦＯメモリ１４１に一定量の空きが生じるまでホストＣＰＵ５０１にコマンドの書き込みを待たせる。解釈実行の対象となるコマンドは、このようにホストＣＰＵ５０１からの指示により決定される他、コマンド解釈部１３０が解釈実行するコマンドに従って切り換えられる場合もある。
【００２２】
図３は、コマンドリストを構成する各コマンドの種類と構成を示している。図示のように、コマンドリストを構成する各コマンドには、コマンド制御命令と、描画制御命令と、デコーダ制御命令とがある。
【００２３】
ここで、コマンド制御命令は、コマンドリストの解釈実行の流れの制御に関わる命令であり、ＪＵＭＰ命令、ＣＡＬＬ命令、ＥＮＤ命令、バンクフリップ待ち命令等がある。コマンド制御命令は、ヘッダのみからなる。このコマンド制御命令のヘッダは、コマンドの種別を示すコードを含む。また、ＪＵＭＰ命令やＣＡＬＬ命令のヘッダは、コードの他にアドレス情報を含む。
【００２４】
ＪＵＭＰ命令は、他のコマンドへの移行を指令する命令であり、そのアドレス情報は、移行先であるコマンドの所在を示す。ＪＵＭＰ命令では、アドレス情報において、特定のコマンドの他、ＦＩＦＯメモリ１４１を移行先として指定することができる。この種のＪＵＭＰ命令を読み出した場合、コマンド解釈部１３０は、ＦＩＦＯメモリ１４１内の読み出し未了のコマンドのうち最も古いコマンドを読み出して解釈実行の対象とする。ＦＩＦＯメモリ１４１以外を移行先とするＪＵＭＰ命令では、例えばＲＡＭ５０３のＸＸ番地という具合に移行先のコマンドの所在がアドレス情報により特定される。
【００２５】
ＣＡＬＬ命令は、他のコマンドリストの呼び出しを指令する命令であり、そのアドレス情報は、呼び出し先のコマンドリストの先頭のコマンドの所在を示す。コマンド解釈部１３０は、あるコマンドリスト中のＣＡＬＬ命令を読み出し、このＣＡＬＬ命令に従って、あるコマンドリストを呼び出した場合、そのコマンドリストのＲＥＴＵＲＮコマンドを解釈実行した後は、元のコマンドリストにおけるＣＡＬＬ命令の後のコマンドに移行する。
【００２６】
ＥＮＤ命令は、コマンドの読み出しの終了を指令する命令である。コマンド解釈部１３０は、このＥＮＤ命令を読み出した場合、コマンドの読み出しを終了し、以後、ホストＣＰＵ５０１から新たなコマンドリストの解釈実行開始の指示を受け取るまで待機する。
【００２７】
バンクフリップ待ち命令は、バンクフリップパルスが発生するのを待つことを指令する命令である。コマンド解釈部１３０は、このバンクフリップ待ち命令をコマンドリスト記憶部から読み出した場合、バンクフリップ命令においてバンクフリップパルスが発生するのを待って次のコマンドの解釈に進む。コマンドリストが複数のバンクフリップ待ち命令により区切られている場合、２つのバンクフリップ待ち命令により挟まれた区間のコマンド列に基づいて発生される制御情報は一緒にレジスタ１２０の更新用のバンクに書き込まれ、バンクフリップ切り換えによりその更新用のバンクが描画用のバンクとされたとき、この描画用のバンク内の制御情報に基づいて一画面分の表示画面を生成するための一描画単位分の描画処理が実行される。このようにバンクフリップ待ち命令は、コマンドリストに従って行われる描画処理を一描画単位分の処理に区切り、かつ、一描画単位分の各処理の実行タイミングを制御する役割を果たす。
【００２８】
描画制御命令およびデコーダ制御命令は、描画部１１１の制御に必要な制御情報またはデコーダ１１２の制御に必要な制御情報をレジスタ１２０の更新用のバンクに格納すべき旨を指令する命令であり、ヘッダと、更新用のバンクへの格納対象であるデータとからなる。描画制御命令およびデコーダ制御命令の形式には、更新用のバンク内の１つのエリアに１つのデータを格納することを指示する単数指定と、更新用のバンク内の連続した複数のエリアに複数のデータを格納することを指示する複数指定とがある。このため、描画制御命令およびデコーダ制御命令のヘッダは、コードの他に、ヘッダに続くデータの長さを示すデータ長情報を含む。ここで、単数指定の場合、描画制御命令やデコーダ制御命令のヘッダのコードは、ヘッダに続く１個のデータのレジスタ１２０内における格納先エリアのアドレスを示す。また、複数指定の場合、描画制御命令やデコーダ制御命令のヘッダのコードは、ヘッダに続く複数のデータを格納するレジスタ１２０内の一連の格納先エリアのうち先頭のもののアドレスを示す。
【００２９】
本実施形態では、描画制御命令およびデコーダ制御命令をコマンドリストに設ける場合に、可能な限り複数指定を利用することにより、コマンドリスト全体のデータ量を小さくすることができる。また、コマンド解釈部１３０は、単数指定の描画制御命令等を例えばＮ回解釈実行するよりも、複数指定（この場合、Ｎ個のデータを指定）の描画制御命令等を１回解釈実行する方が、より短い所要時間で全命令の解釈実行を終えることができる。従って、描画制御命令等をコマンドリストに設ける場合には、可能な限り複数指定を利用することにより、コマンド解釈部１３０の処理負担またはオーバヘッドを減らすことができる。
【００３０】
本実施形態において、描画部１１１は、描画対象である画像の各画素の表示画面内における座標値の演算処理等のための演算機能として、固定小数点演算機能と浮動小数点演算機能の両方を備えている。従って、描画制御命令では、固定小数点方式のデータ、浮動小数点方式のデータのうち所望のものをヘッダの後に配置することが可能である。ホストＣＰＵ５０１が例えばＦＩＦＯメモリ１４１を介してコマンドリストをコマンド解釈部１３０に供給するような態様では、ホストＣＰＵ５０１の処理能力に合わせて、描画制御命令におけるデータを固定小数点方式とするか浮動小数点方式とするかを決定すればよい。
【００３１】
さらに本実施形態による画像プロセッサ１００では、コマンドリストのデータ量を少なくすることを可能にするために次のような構成が採用されている。すなわち、画像プロセッサ１００は、レジスタ１２０に格納された制御情報が描画処理に使用された後、コマンド解釈部１３０がコマンドに従って当該制御情報に他の制御情報を上書きし、または当該制御情報を消去しない限り、当該制御情報をレジスタ１２０に残存させる構成となっている。
【００３２】
具体的には、本実施形態では、図２に示すように、レジスタ１２０において、描画用のバンクを更新用のバンクとし、更新用のバンクを描画用のバンクとするバンクフリップ切り換えを行う場合に、切り換え前における更新用のバンクに記憶された制御情報のコピーを切り換え後における更新用のバンクに格納するようにしている。
【００３３】
仮にこのようなコピーの格納を行わないとした場合、バンクフリップ切り換えの際には、更新用のバンクの内容を全てクリアし、この更新用のバンクに１描画単位分の描画処理に必要な全ての制御情報を格納する必要がある。そのためには、１描画単位分の制御情報の全てを更新用のバンクに格納させる大量のコマンドをコマンドリストに含める必要がある。ここで、更新用のバンクの内容を全てクリアするのは、この更新用のバンクに格納されている制御情報（クリアされる制御情報）は、バンクフリップ切り換え直前の一描画単位分の描画処理のための制御情報（この制御情報はバンクフリップ切り換え直前の描画用のバンク内にある）ではなく、さらに１回前のバンクフリップ切り換え直前の一描画単位分の描画処理のための制御情報だからである。
【００３４】
しかしながら、本実施形態では、上述のように、バンクフリップ切り換えの際には、切り換え前における更新用のバンクに記憶された制御情報のコピーを切り換え後における更新用のバンクに格納する。従って、バンクフリップ切り換え後、新たな１描画単位分の描画処理に必要な制御情報を更新用のバンクに格納する際には、その全ての制御情報の格納を行う必要はなく、切り換え前の更新用のバンクに記憶された制御情報と異なる制御情報のみを更新用のバンクに格納すればよい。
以上が本実施形態の詳細である。
【００３５】
以上説明したように、本実施形態において、画像プロセッサ１００は、レジスタ１２０に格納された制御情報は、その後、コマンド解釈部１３０がコマンドに従って当該制御情報に他の制御情報を上書きし、または当該制御情報を消去しない限り、レジスタ１２０に残されるようになっている。従って、表示器５０２の表示画面を画面１から画面２に変化させるような場合、画面２を表示させるための１描画単位分のコマンド列としては、画面１と画面２とで内容が変化する制御情報のみについて描画制御命令やデコーダ制御命令を作成してコマンドリストに含めておけばよく、画面１と画面２とで内容が変化しない制御情報についてはコマンドリストに含める必要がない。従って、コマンドリストのデータ量およびコマンド数を減らすことができる。
【００３６】
この効果が顕著に現れるのは、一部の制御情報のみが異なった複数回の描画処理を繰り返し実行するような場合である。典型例として、スプライトをスクロール表示する場合が挙げられる。例えば２次元空間にスプライトが置かれた状態を表示する場合において、スプライトのＸ、Ｙ座標値のうちＸ座標値のみを変化させて複数回の描画処理を繰り返せば、Ｘ方向にスプライトをスクロール表示させることができる。
【００３７】
従来技術の下では、このような場合、複数回の描画処理の各々のためにスプライトのＸ座標値とＹ座標値の両方を更新用のバンクに格納する必要があった。そして、複数回の描画処理の各々のためのコマンドとして、Ｘ座標値およびＹ座標値の両方の格納を指令するコマンドをコマンドリストに設ける必要があった。
【００３８】
しかしながら、本実施形態では、複数回の描画処理のうち最初の描画処理については、Ｘ座標値とＹ座標値の両方を更新用のバンクへ格納させるコマンドが必要だが、２回目以降の各描画処理については、Ｘ座標値を更新用のバンクへ格納させるコマンドのみがあればよい。従って、コマンドリストのデータ量を減らすことができる。
【００３９】
また、本実施形態では、４個のコマンドリスト記憶部を備え、コマンド解釈部１３０が解釈実行するコマンドに従って、４個のコマンドリスト記憶部に記憶された任意のコマンドリストが解釈実行対象として選択されるようになっているので、適切なコマンドリストを各コマンドリスト記憶部に予め記憶させておくことで、ホストＣＰＵ５０１の負担を増やすことなく多彩の画像表示を実現することができる。
【００４０】
例えば終点にＦＩＦＯメモリ１４１へのＪＵＭＰ命令を配置した１または複数のコマンドリストをＲＯＭ５０４に予め記憶させておく態様が考えられる。この態様において、ホストＣＰＵ５０１は、ＲＯＭ５０４内の所望のコマンドリストの先頭へのＪＵＭＰ命令をＦＩＦＯメモリ１４１に随時書き込むことにより、ＲＯＭ５０４内の所望のコマンドリストに基づく描画処理を実行させることができる。従って、ホストＣＰＵ５０１の負担を増加させることなく、多彩な画像表示を実現することができる。
【００４１】
また、別の態様として、複数のコマンド記憶手段内に分散配置された各コマンドリストの終点に他のコマンドリストの先頭へのＪＵＭＰ命令を配置し、複数のコマンドリストを例えばエンドレステープ状に繋ぐ態様が考えられる。この態様によれば、ホストＣＰＵ５０１は、このエンドレステープ状のコマンドリスト群の中の１つのコマンドの解釈実行をコマンド解釈部１３０に指示することにより、永続的な画像表示を自動的に実行させることができる。
【００４２】
＜第２実施形態＞
上記実施形態では、レジスタ１２０を２つのバンク１２０Ａおよび１２０Ｂに分け、一方のバンクを描画用、他方のバンクを更新用とし、描画用のバンク内の制御情報に基づく描画処理を行いつつ、これと並行して、更新用のバンクへの制御情報の書き込みを行うようにした。しかし、この発明の第２実施形態では、このようにレジスタ１２０を２つのバンクには分けず、レジスタ１２０内の制御情報を常に描画に使用する。そして、例えば１垂直走査期間を互いに重複しない描画時間帯と更新時間帯とに分け、描画時間帯ではレジスタ１２０内の制御情報に基づいて描画処理を行い、更新時間帯では次の描画時間帯での描画処理に必要な制御情報をレジスタ１２０に書き込む。さらに詳述すると、コマンド解釈部１２０は、各更新時間帯においてコマンドリスト記憶部から１描画単位分のコマンド列（バンクフリップ待ちコマンドにより区切られた区間内のコマンド列）を読み出して解釈実行し、その際に、直前の更新時間帯における最終的なレジスタ１２０内の制御情報を消去せずにそのまま残し、これに対して、当該更新時間帯においてコマンドリスト記憶部から読み出した１描画単位分のコマンド列により指示された各制御情報を加えた内容の制御情報をレジスタ１２０に記憶させる。
【００４３】
図４は、本実施形態による画像プロセッサ５００Ａの一部の構成例を示すブロック図である。この例では、コマンドメモリ１４２として、コマンドメモリ１４２Ａおよび１４２Ｂが設けられている。これらのコマンドメモリ１４２Ａおよび１４２Ｂは、一方が描画用となるとき他方が更新用となる。そして、上述したバンクフリップパルスが発生する都度、更新用のコマンドメモリが描画用に、描画用のコマンドメモリが更新用に切り換えられる。ホストインタフェース１０１は、ホストＣＰＵ５０１から１描画単位分ずつコマンドリストを受け取り、受け取った１描画単位分のコマンドリストを更新用のコマンドメモリに書き込む。このようにコマンドメモリをコマンドメモリ１４２Ａおよび１４２Ｂに分けたのは、描画単位毎にコマンド列の格納先を変えることで、以下説明するコマンド解釈部１３０によるレジスタ１２０内の制御情報の更新処理を簡単化するためである。
【００４４】
コマンド解釈部１３０は、新たな更新時間帯が開始される都度、描画用のコマンドメモリから１描画単位分のコマンド列を読み出し、そのコマンド列に基づいてレジスタ１２０内の制御情報の更新を行う。この場合、コマンド解釈部１３０は、既にレジスタ１２０内に記憶されている制御情報に対して、描画用のコマンドメモリから読み出した１描画単位分のコマンド列が指示する制御情報を加えた内容となるように、レジスタ１２０内の制御情報を更新する。
【００４５】
以下、図５を参照し、この制御情報の更新処理の具体例を説明する。この例では、レジスタ１２０には、描画対象であるスプライト等の描画条件（表示位置等）を示す制御情報がレジスタ１２０の先頭番地から各描画対象の描画順に記憶され、描画部１１１は各垂直走査周期においてレジスタ１２０の先頭番地から順に制御情報を順次読み出して描画処理を実行することを前提としている。そして、この例では表示器５０２の表示画面を図５（ａ）→図５（ｂ）→図５（ｃ）のように変化させる。なお、この例において、Ａ、Ｂ、Ｃはスプライトであり、例えばＡ（１）、Ｂ（２）等における１、２等の数字は描画の順番を示している。
【００４６】
初期状態においてレジスタ１２０に何も記憶されていないものとする。そして、この例では、まず、図５（ａ）に示すようにスプライトＡを表示器５０２に表示させるための動作が行われる。この動作では、スプライトＡの描画指示のコマンドと、スプライトＡの描画条件を示す制御情報の設定を指示するコマンドが１描画単位分のコマンド列として描画用のコマンドメモリからコマンド解釈部１３０に与えられる。そして、１描画単位分のコマンド列を受け取ったコマンド解釈部１３０は、図５（ａ）’に示すように、スプライトＡの描画条件を示す制御情報をレジスタ１２０に書き込む。この結果、スプライトＡの描画が行われ、図５（ａ）に示すようにスプライトＡが表示器５０２に表示される。
【００４７】
次に、図５（ｂ）に示すようにスプライトＡおよびＢを表示器５０２に表示させるための動作が行われる。この動作では、スプライトＡの描画指示のコマンドと、スプライトＢの描画指示のコマンドと、スプライトＢの描画条件を示す制御情報の設定を指示するコマンドが１描画単位分のコマンド列として描画用のコマンドメモリからコマンド解釈部１３０に与えられる。スプライトＡの描画条件を示す制御情報は既にレジスタ１２０に記憶されているので、スプライトＡの描画条件を示す制御情報の設定を指示するコマンドは不要である。そして、１描画単位分のコマンド列を受け取ったコマンド解釈部１３０は、図５（ｂ）’に示すように、レジスタ１２０内においてスプライトＡの描画条件を示す制御情報の書き込まれたエリアの後のエリアにスプライトＢの描画条件を示す制御情報を書き込む。この結果、スプライトＡおよびＢの描画が行われ、図５（ｂ）に示すようにスプライトＡおよびＢが表示器５０２に表示される。
【００４８】
次に、図５（ｃ）に示すようにスプライトＣ、Ａ、Ｂを表示器５０２に表示させるための動作が行われる。ここでは、各スプライトをＣ→Ａ→Ｂの順に描画する。この動作では、スプライトＣの描画指示のコマンドと、スプライトＣの描画条件を示す制御情報の設定を指示するコマンドと、スプライトＡの描画指示のコマンドと、スプライトＢの描画指示のコマンドが１描画単位分のコマンド列として描画用のコマンドメモリからコマンド解釈部１３０に与えられる。ここで、スプライトＡおよびＢの各描画条件を示す制御情報は既にレジスタ１２０に記憶されているので、スプライトＡおよびＢの描画条件を示す制御情報の設定を指示する各コマンドは不要である。この場合、１描画単位分のコマンド列において各スプライトの描画順序はＣ→Ａ→Ｂの順であるので、コマンド解釈部１３０は、各スプライトの描画条件を示す制御情報をＣ→Ａ→Ｂの順にレジスタ１２０に記憶させる。その際、図５（ｃ）’に示すように、スプライトＡ、Ｂの描画条件を示す制御情報はレジスタ１２０内に既に記憶されているものをコピーし、レジスタ１２０の先頭のスプライトＣ用のエリアの後のスプライトＡ、Ｂ用の各エリアに書き込む。また、スプライトＣに関しては、描画用のコマンドメモリから与えられたコマンド列において指定された制御情報をレジスタ１２０の先頭のスプライトＣ用のエリアに書き込む。この結果、スプライトＣ、Ａ、Ｂの描画が順次行われ、図５（ｃ）に示すようにスプライトＡおよびＢが表示器５０２に表示される。
【００４９】
本実施形態においても上記第１実施形態と同様な効果が得られる。なお、以上の例では、複数のコマンドリスト記憶部のうちコマンドメモリのみを２重化したが、他のコマンドリスト記憶部をコマンドメモリと同様に２重化してもよい。
【００５０】
＜第３実施形態＞
図６は、この発明の第３実施形態による画像プロセッサ１００Ｂの一部の構成を示すブロック図である。また、図７は、同実施形態の動作例を示す図である。上記第１および第２実施形態において、レジスタ１２０は、一画面分の描画処理に必要な制御情報を記憶し、描画部１１１は、各垂直走査周期において、レジスタ１２０に記憶された制御情報に従って、一画面分の描画処理を実行した。これに対し、本実施形態において、レジスタ１２０は、上記第１および第２実施形態よりは小規模な１描画単位、より具体的には１個の画像の描画処理に必要な制御情報を記憶し、コマンド解釈部１３０（図１参照）は、描画指示コマンドをコマンドリスト記憶手段から読み出したとき描画部１１１に描画指示を与え、描画部１１１は、コマンド解釈部１３０から描画指示が与えられたとき、レジスタ１２０に記憶された制御情報に従って１個の画像の描画処理を実行する。なお、図６では、図面が煩雑になるのを防ぐため、描画処理に必要な制御情報のうちＸ座標、Ｙ座標のみが図示されている。このような構成を採用したため、複数の描画処理を描画部１１１に順次実行させる場合において、連続した２つの描画処理間において描画処理に必要な制御情報に共通部分がある場合、後発の描画処理に必要な制御情報のうちこの共通部分をについては、レジスタ１２０に書き込む必要がない。従って、コマンドリストのデータ量を削減することができる。
【００５１】
図６に示す例では、コマンドリスト記憶手段として、コマンドメモリ１４２が図示されている。上記第２実施形態と同様、コマンドメモリ１４２は２つのバッファ領域に区分されており、一方のバッファ領域が描画用となるとき他方のバッファ領域が更新用となる。図６に示す例では、一方のバッファ領域には一画面分の描画処理のためのＮｏ．１〜Ｎｏ．１１までのコマンドが記憶されており、他方のバッファ領域には一画面分の描画処理のためのＮｏ．１２〜Ｎｏ．２２までのコマンドが記憶されている。
【００５２】
図７において、描画面＃１は、Ｎｏ．１〜Ｎｏ．１１までのコマンドに従って行われた一画面分の描画結果を例示するものであり、描画面＃２は、Ｎｏ．１２〜Ｎｏ．２２までのコマンドに従って行われた一画面分の描画結果を例示するものである。
【００５３】
以下、図６および図７に示す例について本実施形態の動作を説明する。ある垂直走査期間において、Ｎｏ．１〜Ｎｏ．１１までのコマンドの格納されたバッファ領域が描画用のバッファ領域である場合、コマンド解釈部１３０は、まず、Ｎｏ．１の「画像Ａ指定」コマンドをコマンドメモリ１４２から読み出し、描画する画像Ａを特定する制御情報（例えばＲＯＭ５０４における画像Ａの画像データの格納アドレス等）をレジスタ１２０に書き込む。次にコマンド解釈部１３０は、Ｎｏ．２の「Ｘ座標指定」コマンドを読み出し、描画する画像Ａの中心座標のＸ座標値をレジスタ１２０に書き込む。次にコマンド解釈部１３０は、Ｎｏ．３の「Ｙ座標指定」コマンドを読み出し、描画する画像Ａの中心座標のＹ座標値をレジスタ１２０に書き込む。次にコマンド解釈部１３０は、Ｎｏ．４の「描画指示」コマンドを読み出すと、描画指示を描画部１１１に与える。これにより、描画部１１１は、その時点においてレジスタ１２０に記憶された制御情報に従い、画像Ａの描画処理を実行する。
【００５４】
次にコマンド解釈部１３０は、Ｎｏ．５の「画像Ｂ指定」コマンドを読み出し、描画する画像Ｂを特定する制御情報をレジスタ１２０に書き込む。次にコマンド解釈部１３０は、Ｎｏ．６の「Ｘ座標指定」コマンドを読み出し、描画する画像Ｂの中心座標のＹ座標値をレジスタ１２０に書き込む。この例では、画像ＢのＸ座標値は、既にレジスタ１２０に設定されている画像ＡのＸ座標値と同じである。このため、「Ｘ座標指定」コマンドは不要であり、コマンドリストから省略されている。次にコマンド解釈部１３０は、Ｎｏ．７の「描画指示」コマンドを読み出し、描画指示を描画部１１１に与える。これにより、描画部１１１は、その時点においてレジスタ１２０に記憶された制御情報に従い、画像Ｂの描画処理を実行する。
【００５５】
Ｎｏ．８〜Ｎｏ．１０については、Ｎｏ．５〜Ｎｏ．７と同様である。これらのコマンドに従って画像Ｃの描画処理が実行される。そして、コマンド解釈部１３０がＮｏ．１１の「フレーム終了」コマンドを読み出すと、一画面分の描画処理が終了となる。
【００５６】
垂直走査期間が切り換わり、Ｎｏ．１２〜Ｎｏ．２２のコマンドの記憶されたバッファ領域が描画用のバッファ領域になると、この描画用のバッファ領域内のＮｏ．１２〜Ｎｏ．２２のコマンドに従って次の一画面分の描画処理が行われる。ここで、画像Ａ、Ｂ、Ｃに関しては、描画面＃１と描画面＃２とで、Ｘ座標値が変化していいる（図７参照）。このため、Ｎｏ．１２〜Ｎｏ．２２のコマンドのうちＮｏ．１３のコマンドでは、最初に描画する画像ＡのＸ座標値の更新を行っている。この点を除けば、Ｎｏ．１２〜Ｎｏ．２２のコマンドの内容は、Ｎｏ．１〜Ｎｏ．１１のコマンドの内容と同様である。
【００５７】
以上説明したように、本実施形態によれば、ある描画処理のためのコマンド列を作成する際、その描画処理に必要な制御情報のうち直前の描画処理に必要な制御情報と共通する部分については、その共通部分の制御情報のレジスタ１２０への書き込みを指令するコマンドをコマンド列に含める必要がない。従って、コマンドリストのデータ量を削減することができ、また、コマンド解釈部１３０の処理負担を減らすことができる。
【００５８】
＜他の実施形態＞
以上、この発明の第１〜第３実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００５９】
（１）複合的な処理を指令するマクロコマンドを解釈実行する機能をコマンド解釈部１３０に追加してもよい。具体的には、マクロコマンドをそれと等価な複数のコマンドの列に変換するコンパイラを例えば外付けのＲＯＭに記憶させ、コマンド解釈部１３０がこのＲＯＭにアクセスしてコンパイラを実行することができる構成とする。この態様では、コマンド解釈部１３０がＲＯＭ内のコンパイラに従って、ＦＩＦＯメモリ１４１等のコマンドリスト記憶部から供給されるマクロコマンドを複数のコマンドに変換し、それらのコマンドを解釈実行することができる。従って、コマンドリスト記憶部に記憶させるコマンドリストのデータ量をさらに小さくすることができる。また、マクロコマンドから複数のコマンドへの変換ルールを自由に定めることができるので、使い勝手の良い画像プロセッサ１００を実現することができる。
【００６０】
（２）ホストＣＰＵ５０１からの指示に従って例えばＲＯＭ５０４からＲＡＭ５０３へのＤＭＡ（Direct
Memory Access）転送等を行うＤＭＡコントローラを画像プロセッサ１００内に設けてもよい。この態様によれば、ＲＯＭ５０４内のコマンドリストを高速アクセス可能なＲＡＭ５０３に移し、描画処理に使用することができる。
【００６１】
（３）上記第３実施形態では、１描画単位を１個の画像としたが、１個以外の所定個数の画像を１描画単位としてもよい。
【符号の説明】
【００６２】
１００，１００Ａ，１００Ｂ……画像プロセッサ、５０１……ホストＣＰＵ、５０２……表示器、５０３……ＲＡＭ、５０４……ＲＯＭ、１０１……ホストインタフェース、１０２……ＲＡＭインタフェース、１０３……ＲＯＭインタフェース、１０４Ａ，１０４Ｂ……表示メモリ、１０５……表示制御部、１１１……描画部、１１２……デコーダ、１２０……レジスタ、１２０Ａ，１２０Ｂ……バンク、１３０……コマンド解釈部、１４１……ＦＩＦＯメモリ、１４２，１４２Ａ，１４２Ｂ……コマンドメモリ。
【図１】
0005418078.tif 000002
【図２】
0005418078.tif 000003
【図３】
0005418078.tif 000004
【図４】
0005418078.tif 000005
【図５】
0005418078.tif 000006
【図６】
0005418078.tif 000007
【図７】
0005418078.tif 000008