(57)【要約】【課題】  ラインバッファ方式の画像処理装置においてフルカラーかつ高解像度の画像表示を実現する。【解決手段】  コントローラ１０３は、各垂直走査期間において、各表示対象の画像データのＬＣＤ２０２での表示に先行して、各表示対象の画像データの生成を画像データ生成部１０５に順次指令し、画像データ生成部１０５は、指令された表示対象の画像データを生成し、仮想メモリとしてのワークメモリ１０８にＭＭＵ１０７を介して格納する。ラインバッファ描画部１１２は、このワークメモリ１０８内の画像データに基づいて、各水平走査期間において表示する１ライン分の画像データを生成する。また、ＭＭＵ１０７は、ワークメモリ１０８において画像データを記憶しているページのうちＬＣＤ２０２での表示に使用された画像データを記憶するページを新たな画像データの記憶に備えて解放する。【選択図】図１
2012032456.tif 000002
【特許請求の範囲】
【請求項１】
水平同期信号に同期して表示器に表示される１ライン分の画像データを記憶するラインバッファと、
前記表示器の表示対象の画像データを記憶するためのワークメモリと、
各垂直走査期間において、前記表示器の表示対象となる画像データを生成する画像データ生成手段と、
前記ワークメモリを仮想メモリとして機能させる手段であって、前記表示器の表示対象となる画像データが発生した場合に当該画像データを格納するための前記ワークメモリの記憶領域を選択し、この選択した記憶領域に当該画像データを格納する一方、前記ワークメモリにおいて画像データを記憶している記憶領域のうち前記表示器での表示に使用された画像データを記憶する記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、
各水平走査期間において表示対象とする１ライン分の画像データを生成するのに必要な画像データを前記メモリ管理ユニットを介して前記ワークメモリから読み出し、読み出した画像データに基づいて１ライン分の画像データを生成して前記ラインバッファに格納する描画手段と、
各垂直走査期間内において、各表示対象の画像データの前記表示器での表示に先行して、前記画像データ生成手段に各表示対象の画像データの生成を順次指令するコントローラと
を具備することを特徴とする画像処理装置。
【請求項２】
表示対象の圧縮符号化画像データを記憶媒体から読み出して復号化し、復号結果である表示対象の画像データを前記画像データ生成手段に供給するデコーダを具備することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データ生成手段は、表示対象を所定ライン数からなるラスタブロックに分割し、ラスタブロック単位で各ラスタブロックの画像データを生成し、前記メモリ管理ユニットを介して前記ワークメモリに格納するものであり、
前記コントローラは、各表示対象を分割したラスタブロック単位で前記画像データ生成手段に画像データの生成を指令することを特徴とする請求項１または２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、１ライン分の記憶容量を有するラインバッファを利用して、画像データの描画および表示器への表示を行う画像処理装置に関する。
【背景技術】
【０００２】
周知の通り、ゲーム機等のアミューズメント機器では、描画アプリケーションに従って静止画や動画の画像データをバッファに書き込む描画処理とバッファ内の画像データを読み出して表示器に表示させる表示処理が同時並行的に進められる。このような描画処理および表示処理を行う画像処理装置として、１フレーム分の画像データを記憶するフレームバッファを備えたフレームバッファ方式の画像処理装置と、１ライン分の画像データを記憶するラインバッファを備えたラインバッファ方式の画像処理装置がある。なお、ラインバッファ方式の画像処理装置に関する文献として例えば特許文献１がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２１５２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、フレームバッファ方式の画像処理装置では、例えば１垂直走査期間内に１フレーム分の画像データを生成してフレームバッファに格納すればよい。従って、この種のフレームバッファ方式の画像処理装置では、１垂直走査期間を利用して、例えばＪＰＥＧ（Joint Photographic Experts Group）等の高圧縮符号化アルゴリズムにより得られた圧縮データを復号化して表示対象の画像データを生成することも可能であり、表示器に高解像度かつフルカラーの画像表示を行わせることが可能である。しかし、この種のフレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とし、通常、このようなフレームバッファとしては、ＤＲＡＭ（Dynamic Random Access Memory；ダイナミックランダムアクセスメモリ）が使用される。このため、雑音の影響によりフレームバッファとしてのＤＲＡＭの記憶内容が破壊され、表示画面が乱れる場合がある。また、フレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とするので、高価になるという問題がある。これに対し、ラインバッファ方式の画像処理装置では、ラインバッファは小容量のメモリであればよく、大容量のＤＲＡＭを必要としない。このため、雑音に起因した表示画面の乱れは発生し難い。また、ラインバッファ方式の画像処理装置は、大容量のフレームバッファが不要なのでコストが安価で済む。しかし、ラインバッファ方式の画像処理装置では、１水平走査期間内に、次の水平走査期間において表示する画像データを生成し、ラインバッファに書き込まねばならない。このような短時間のうちに、例えばＪＰＥＧの高圧縮アルゴリズムにより得られた圧縮データから表示対象となる１ライン分の画像データを生成してラインバッファに書き込むのは困難である。このため、従来のラインバッファ方式の画像処理装置では、非圧縮の画像データまたは差分符号化等のライン単位で復号化が可能な低圧縮のアルゴリズムにより得られた画像データをＲＯＭ（Read Only Memory；読み出し専用メモリ）に記憶させ、このＲＯＭに記憶された画像データに基づいて表示対象の１ライン分の画像データを生成し、ラインバッファに書き込むようにしていた。ここで、ＲＯＭの読み出し速度は一般的に低速度であるので、１水平走査期間内にＲＯＭから読み出すデータ量を大きくすることは困難であり、しかも、上述の理由からＲＯＭに記憶される画像データは非圧縮または低圧縮の画像データとなるので、１水平走査期間内に表示のための発生する画像データのデータ量を大きくすることは困難である。このため、従来、ラインバッファ方式の画像処理装置において、フルカラーかつ高解像度の画像表示を行うことは困難であった。
【０００５】
この発明は、以上説明した事情に鑑みてなされたものであり、ラインバッファ方式の画像処理装置においてフルカラーかつ高解像度の画像表示を実現するための技術的手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、水平同期信号に同期して表示器に表示される１ライン分の画像データを記憶するラインバッファと、前記表示器の表示対象の画像データを記憶するためのワークメモリと、各垂直走査期間において、前記表示器の表示対象となる画像データを生成する画像データ生成手段と、前記ワークメモリを仮想メモリとして機能させる手段であって、前記表示器の表示対象となる画像データが発生した場合に当該画像データを格納するための前記ワークメモリの記憶領域を選択し、この選択した記憶領域に当該画像データを格納する一方、前記ワークメモリにおいて画像データを記憶している記憶領域のうち前記表示器での表示に使用された画像データを記憶する記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、各水平走査期間において表示対象とする１ライン分の画像データを生成するのに必要な画像データを前記メモリ管理ユニットを介して前記ワークメモリから読み出し、読み出した画像データに基づいて１ライン分の画像データを生成して前記ラインバッファに格納する描画手段と、各垂直走査期間内において、各表示対象の画像データの前記表示器での表示に先行して、前記画像データ生成手段に各表示対象の画像データの生成を順次指令するコントローラとを具備することを特徴とする画像処理装置を提供する。
【０００７】
かかる発明によれば、コントローラは、各垂直走査期間において、各表示対象の画像データの表示器での表示に先行して、各表示対象の画像データの生成を画像データ生成手段に順次指令する。そして、画像データ生成手段は、指令された表示対象の画像データを生成し、仮想メモリとしてのワークメモリにメモリ管理ユニットを介して格納する。描画手段は、このワークメモリ内の画像データに基づいて、各水平走査期間において表示する１ライン分の画像データを生成する。また、メモリ管理ユニットは、ワークメモリにおいて画像データを記憶している記憶領域のうち表示器での表示に使用された画像データを記憶する記憶領域を新たな画像データの記憶に備えて解放する。従って、ワークメモリは、小容量のもので済む。また、画像データ生成手段が表示対象の画像データを生成する期間は、１水平走査期間内に限定されないので、非圧縮の画像データやライン単位での復号化が可能な低圧縮の画像データに限らず、ライン単位での復号化を行うことのできない高圧縮の画像データを用いて表示対象の画像データを生成することができるので、ラインバッファ方式の画像処理装置でありながら、高解像度かつフルカラーの表示を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明による画像処理装置の一実施形態である画像表示ＬＳＩの構成を示すブロック図である。
【図２】同実施形態において属性データ記憶部に記憶されるスプライト属性データの内容を示す図である。
【図３】同実施形態におけるワークメモリと管理テーブルとの関係を示す図である。
【図４】同実施形態において実行される各表示対象についての画像データ生成処理の実行手順を説明する図である。
【図５】同実施形態における各表示対象についての画像データ生成処理の実行スケジュールを例示する図である。
【図６】同実施形態における複数の復号化処理の並列実行の態様を示す図である。
【図７】同実施形態において行われる１ライン分の描画処理を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明による画像処理装置の一実施形態である画像表示ＬＳＩ（Large  Scale  Integrated  circuit；大規模集積回路）１００を含むアミューズメント機器の構成を示すブロック図である。図１では、画像表示ＬＳＩ１００の機能の理解を容易にするため、同画像表示ＬＳＩ１００に接続されたホストＣＰＵ２０１と、ＬＣＤ（Liquid  Crystal  Display；液晶表示器）２０２と、ＲＯＭ２０３が同画像表示ＬＳＩ１００とともに図示されている。これらのうちホストＣＰＵ２０１は、アミューズメント機器全体を制御するプロセッサであり、画像表示ＬＳＩ１００に対しては、ＬＣＤ２０２にスプライトやアウトラインフォント等の画像を表示させるためのコマンドやデータを供給する。ＲＯＭ２０３には、各種のスプライト、アウトラインフォント等の表示対象についての圧縮形式または非圧縮形式の画像データやアルファブレンディングに用いる圧縮形式または非圧縮形式のアルファデータが記憶されている。
【００１０】
図１に示すように、画像表示ＬＳＩ１００は、ＣＰＵインタフェース１０１と、属性データ記憶部１０２と、コントローラ１０３と、コードバッファ１０４と、画像データ生成部１０５と、復号化部１０６と、ＭＭＵ（Memory  Management  Unit；メモリ管理装置）１０７と、ＳＲＡＭ（Static  Random  Access  Memory；スタティックランダムアクセスメモリ）等によるワークメモリ１０８と、管理テーブル１０９と、画像出力部１１０と、ラインバッファ描画部１１２とを有している。
【００１１】
ＣＰＵインタフェース１０１は、ホストＣＰＵ２０１から供給されるコマンドやデータを受け取って、画像表示ＬＳＩ１００内の関係する各部に供給するインタフェースである。属性データ記憶部１０２は、ホストＣＰＵ２０１からＣＰＵインタフェース１０１を介して供給される属性データを記憶する回路である。ここで、属性データは、スプライト、アウトラインフォント等の各表示対象の表示属性を示すデータであり、各垂直走査期間において、ＬＣＤ２０２に表示する表示対象毎にホストＣＰＵ２０１から供給され、ＣＰＵインタフェース１０１によって属性データ記憶部１０２に格納される。
【００１２】
図２はこの種の属性データの一例としてスプライトの表示属性を示すスプライト属性データの内容を示すものである。このスプライト属性データにおいて、Ｙ表示位置ＤＯＹおよびＸ表示位置ＤＯＸは、ＬＣＤ２０２の表示画面における当該スプライトの左上頂点の垂直方向表示位置および水平方向表示位置を各々指定するデータである。パターンネームＰＮは、ＲＯＭ２０３内の当該スプライトの画像データへのアクセスに用いるパターンネーム、具体的には当該画像データのＲＯＭ２０３内における格納開始アドレスである。ＹスプライトサイズＳＺＹおよびＸスプライトサイズＳＺＸは、当該スプライトのＹ方向のドット数およびＸ方向のドット数を示す。表示色モードＣＬＭおよびパレット選択データＰＬＴＩは、当該スプライトの各構成ドットの表示色の演算に用いられるデータである。アルファブレンディングモードＭＸＳＬおよびアルファ係数ＭＸは、当該スプライトの構成ドットとその背景の構成ドットとの間で行うアルファブレンディングの態様を指定するデータである。Ｙ拡大縮小率ＭＡＧＹは、当該スプライトのＹスプライトサイズＳＺＹに対するＬＣＤ２０２の表示画面における当該スプライトのＹ方向のドット数の比率、Ｘ拡大縮小率ＭＡＧＸは、当該スプライトのＸスプライトサイズＳＺＸに対するＬＣＤ２０２の表示画面における当該スプライトのＹ方向のドット数の比率である。このＹ拡大縮小率ＭＡＧＹおよびＸ拡大縮小率ＭＡＧＸと、上述したＹスプライトサイズＳＺＹおよびＸスプライトサイズＳＺＸと、Ｙ表示位置ＤＯＹおよびＸ表示位置ＤＯＸとに基づき、ＬＣＤ２０２の表示画面における当該スプライトの各構成ドットの垂直方向および水平方向の位置を算出することができる。
【００１３】
透明色指定データＴＰは、当該スプライトの表示時に当該スプライト内に透明な表示対象として扱うドットがあるか否かを指定するデータである。圧縮非圧縮指定データＣＯＭＰＥは、ＲＯＭ２０３に記憶された当該スプライトの画像データが圧縮形式の画像データであるか非圧縮形式の画像データであるかを示すデータである。圧縮モードＣＯＭＰＭは、当該スプライトの画像データが圧縮形式の画像データである場合における圧縮アルゴリズムを指定するデータである。
【００１４】
仮想アドレスＷＡＤＲＳは、当該スプライトの画像データをワークメモリ１０８に格納する際に、当該スプライトの画像データを識別するために発生される仮想アドレスのうち最初に発生される仮想アドレスである。ＬＯＣＫビットは、当該スプライトの画像データをロックするか否か、すなわち、当該スプライトの画像データを記憶しているワークメモリ１０８内の格納領域への上書きを禁止するか否かを示すビットである。ＮＯＤＥＣビットは、当該スプライトの画像データの復号化処理が不要か否かを示すビットである。ＵＬＯＣＫビットは、当該スプライトの画像データのロックを解除するか否かを示すビットである。
【００１５】
コントローラ１０３は、各垂直走査期間において、各表示対象の画像データのＬＣＤ２０２での表示に先行して、各表示対象の画像データの生成を画像データ生成部１０５に順次指令する回路である。具体的には、コントローラ１０３は、各垂直走査期間において、属性データ記憶部１０２に記憶された各表示対象の属性データに基づき、各表示対象の画像データを生成する処理の実行スケジュールを作成し、この実行スケジュールに従って、各表示対象についての画像データ生成指示を画像データ生成部１０５に供給する。なお、このコントローラ１０３によって行われる実行スケジュールの作成については、説明の重複を避けるため、本実施形態の動作説明において詳細を明らかにする。
【００１６】
画像出力部１１０は、各々１ライン分の画像データを記憶可能な容量を持ったラインバッファ１１１Ａおよび１１１Ｂを有している。これらのラインバッファ１１１Ａおよび１１１Ｂは、一方が書き込み用ラインバッファ、他方が読み出し用バッファとされ、ＬＣＤ２０２の水平同期信号に同期して、その時点までに書き込み用ラインバッファであったものが読み出し用ラインバッファとされ、読み出し用ラインバッファであったものが書き込み用ラインバッファとされる。各水平走査期間では、読み出し用ラインバッファに記憶された１ライン分の画像データが読み出され、ＬＣＤ２０２に供給されて表示される一方、１水平走査期間後に表示される１ライン（以下、表示予定ラインという）分の画像データがラインバッファ描画部１１２によって書き込み用バッファに書き込まれる。なお、ラインバッファ描画部１１２については後述する。
【００１７】
コードバッファ１０４は、ＲＯＭ２０３から読み出される圧縮形式または非圧縮形式の画像データを一時的に記憶するバッファである。本実施形態では、後述する復号化部１０６が複数のスプライト等の圧縮データの復号化処理を時分割制御により並列実行する場合があるため、コードバッファ１０４には、スプライト等の圧縮データを一次記憶するための複数のバッファ領域が設けられている。
【００１８】
画像データ生成部１０５は、復号化部１０６を利用することにより、コントローラ１０３からの画像データ生成指示により指示された表示対象の画像データを生成し、ＭＭＵ１０７を介してワークメモリ１０８に格納する画像データ生成処理を実行する回路である。
【００１９】
さらに詳述すると、画像データ生成処理では、コントローラ１０３から表示対象（例えばスプライトとする）についての画像データ生成指示を受け取ったとき、属性データ記憶部１０２内の当該スプライトのスプライト属性データを参照し、当該スプライト属性データにおけるパターンネームＰＮを用いて、当該スプライトの画像データをＲＯＭ２０３から読み出してコードバッファ１０４に記憶させる。その際、画像データ生成部１０５は、当該スプライトの画像データが圧縮形式の画像データであることをスプライト属性データの圧縮非圧縮指定データＣＯＭＰＥが示している場合には、スプライト属性データの圧縮モードＣＯＭＰＭを復号化部１０６に通知するとともに、コードバッファ１０４内の画像データ（この場合は圧縮データ）を復号化部１０６に供給させ、その圧縮データの復号化処理を実行させる。
【００２０】
本実施形態では、復号化部１０６があるスプライトの圧縮データの復号化処理を開始した後、その復号化処理が終了する前に、別のスプライトの圧縮データの復号化処理の実行を画像データ生成部１０５から命じられる場合がある。このような要求に対応するため、復号化部１０６は、時分割制御により複数のスプライトについての復号化処理を並列実行可能な構成となっている。この場合、上述したようにコードバッファ１０４には、複数のスプライトの圧縮データが別々のバッファ領域に格納される。そして、復号化部１０６は、コードバッファ１０４の各バッファ領域から各スプライトの圧縮データを順次読み出して、復号化処理を実行する。
【００２１】
画像データ生成処理では、このような復号化処理により得られる各スプライトの画像データを後述するワークメモリ１０８の１ページの記憶容量に対応したデータ量に区切り、区切った各画像データについて仮想アドレスを生成する。
【００２２】
この仮想アドレスの生成方法には各種の態様が考えられる。ある好ましい態様では、復号化処理により得られたスプライトを構成する各ドットについて仮想アドレスを発生する。具体的には、そのスプライトのパターン名に基づいて、例えばそのスプライトを構成する各ドットの仮想アドレスの上位アドレスを決定し、そのスプライトを構成する各ドットのスプライト内のＹアドレスおよびＸアドレスに基づいて、各ドットの仮想アドレスの中位アドレスおよび下位アドレスを決定する。スプライト内において各ドットのラスタスキャンを行った場合において、各ドットの仮想アドレスがラスタスキャン順に１ＬＳＢずつ大きくなるように、各ドットの仮想アドレスを定めるのである。そして、スプライトの画像データを複数ページに区切る場合には、各ページの最初のエリアに格納するドットの仮想アドレスを各ページに対応した仮想アドレスとするのである。
【００２３】
画像データ生成処理では、このようにして生成した画像データと仮想アドレスとをＭＭＵ１０７に供給し、画像データをワークメモリ１０８に格納させる。また、画像データ生成処理では、スプライトの画像データについて生成した仮想アドレスのうち最初のもの（例えばスプライトの左上頂点のドットの仮想アドレス）を当該スプライト属性データの一部である仮想アドレスＷＡＤＲＳとして属性データ記憶部１０２に格納する。
【００２４】
ＭＭＵ１０７、ワークメモリ１０８および管理テーブル１０９は、仮想メモリシステムを構成している。図３はワークメモリ１０８と管理テーブル１０９との関係を示す図である。図３に示すように、ワークメモリ１０８の実アドレス空間は、所定容量（例えば２５６バイト）のページに区切られている。管理テーブル１０９は、ワークメモリ１０８の各ページに対応付けて、当該ページに記憶されたデータの仮想アドレスと、当該ページ内のデータをロックするか否か、すなわち、当該ページへのデータの上書きを禁止する否かを示すＰＬＯＣＫビットと、当該ページに有効な画像データが記憶されているか否かを示すＶＡＬＩＤビットとを格納するテーブルである。ここで、各ページに対応したＰＬＯＣＫビットは当該ページ内のデータをロックするときには“１”、ロックしないときには“０”とされる。また、各ページに対応したＶＡＬＩＤビットは当該ページ内のデータが有効であるときには“１”、無効であるときには“０”とされる。
【００２５】
ＭＭＵ１０７は、画像データ生成部１０５からあるスプライトの画像データと仮想アドレスとを受け取ったとき、ワークメモリ１０８の各ページの中から管理テーブル１０９内のＶＡＬＩＤビットが“０”になっているページを探し、そのページを画像データの書き込み先とする。そして、ＭＭＵ１０７は、属性データ記憶部１０２内のそのスプライトに対応した属性データのＬＯＣＫビットを参照し、そのスプライトのＬＯＣＫビットが“０”であれば、そのスプライトの画像データの書き込み先であるページに対応したＰＬＯＣＫビットを“０”とし、そのスプライトのＬＯＣＫビットが“１”であれば、そのスプライトの画像データの書き込み先であるページに対応したＰＬＯＣＫビットを“１”とする。そして、ＭＭＵ１０７は、スプライトの画像データの書き込み先であるページへの書き込みを開始し、書き込みが完了したときＶＡＬＩＤビットを“１”とする。
【００２６】
管理テーブル１０９においてＶＡＬＩＤビットが“１”となっているページ内の画像データが後述する描画処理により読み出され、表示に使用された場合、ＭＭＵ１０７は、当該ＶＡＩＬＤビットの更新を行う。すなわち、ＭＭＵ１０７は、管理テーブル１０９において当該ページに対応したＰＬＯＣＫビットが“０”になっている場合、当該ページに対応したＶＡＬＩＤビットを“０”とし、当該ページに対応したＰＬＯＣＫビットが“１”になっている場合、当該ページに対応したＶＡＬＩＤビットを“１”のままにする。
【００２７】
ラインバッファ描画部１１２は、各水平走査期間において、次の水平走査期間においてＬＣＤ２０２に表示させる１ライン分の画像データを生成し、この１ライン分の画像データを画像出力部１１０の書き込み用ラインバッファに書き込む描画処理を実行する手段である。
【００２８】
この描画処理では、属性データ記憶部１０２内の各属性データを参照することにより、表示予定ラインが横切る各表示対象（例えばスプライトとする）を探索し、その探索結果である各スプライトの画像データのうち表示予定ライン上を占める１ライン分の各スプライトの画像データをＭＭＵ１０７を介してワークメモリ１０８から読み出す。
【００２９】
ここで、表示対象がスプライトを拡大または縮小したものである場合もある。そのような場合、そのスプライトのスプライト属性データのＹ拡大縮小率ＭＡＧＹおよびＸ拡大縮小率ＭＡＧＸに従って拡大縮小処理を施した場合の画像データ、すなわち、Ｙ方向サイズがＳＺＹ＊ＭＡＧＹ（＊は乗算）、Ｘ方向サイズがＳＺＸ＊ＭＡＧＸのスプライトの画像データを想定する。そして、この画像データにおいて表示予定ライン上を占める画像データを得るためのバイリニアフィルタ演算に用いる画像データ（スプライトにおいて拡大縮小後に表示予定ラインを挟むこととなる２本のライン上の画像データ）の仮想アドレスを演算し、その仮想アドレスに対応した画像データをＭＭＵ１０７を介してワークメモリ１０８から読み出し、当該表示ライン上を占める画像データを演算する。
【００３０】
そして、描画処理では、必要に応じて各スプライト間でアルファブレンディングを行いながら、ワークメモリ１０８から読み出しデータに基づいて生成した各スプライトの１ライン分の画像データを、各スプライトのスプライト属性データの属性データ記憶部１０２内での並び順に合わせて順次重ね合わせ、表示予定ライン上の画像データを生成する。このような作業を画像出力部１１０の書き込み用バッファを使用して行うのである。
【００３１】
図４は本実施形態において実行される複数のスプライトについての画像データ生成処理の実行手順を説明する図である。また、図５は図４に示す各スプライトについての画像データ生成処理の実行スケジュールを例示する図である。図６は、本実施形態における複数の復号化処理の並列実行の態様を示す図である。以下、これらの図を参照し、本実施形態の動作を説明する。
【００３２】
ある垂直走査期間において、属性データ記憶部１０２に、図４左側に示すように、スプライトＳＰ０〜ＳＰ４のスプライト属性データが記憶されていたとする。この場合において、コントローラ１０３は、各スプライト属性データのＹ表示位置ＤＯＹおよびＸ表示位置ＤＯＸと、ＹスプライトサイズＳＺＹおよびＸスプライトサイズＳＺＸとに基づき、各スプライトＳＰ０〜ＳＰ４の画像データ（復号化処理を経ており、拡大縮小処理を経ていないもの）がそのままＬＣＤ２０２に表示された場合における表示画面内の占有領域を求める。図４右側はその結果を示すものである。
【００３３】
次にコントローラ１０３は、各スプライトを所定ライン数からなるラスタブロックに区切り、ラスタブロック単位で画像データ生成処理の実行スケジュールを生成する。さらに詳述すると、コントローラ１０３は、各ラスタブロックの表示画面内での位置を求める。図４右側に示す例では、スプライトＳＰ０はＬＣＤ２０２の表示画面の全領域を占める背景画像であり、ラスタブロックＳＰ０−０〜ＳＰ０−６に分割されている。また、スプライトＳＰ１はラスタブロックＳＰ１−０〜ＳＰ１−２に分割され、スプライトＳＰ２はラスタブロックＳＰ２−０〜ＳＰ２−１に分割され、スプライトＳＰ３はラスタブロックＳＰ３−０〜ＳＰ３−２に分割され、スプライトＳＰ４はラスタブロックＳＰ４−０〜ＳＰ４−２に分割されている。
【００３４】
次にコントローラ１０３は、表示画面の上から下に向かって、ラスタブロックを探索してゆく。この場合、表示画面を上から下に探索してゆくと、各ラスタブロックが、ＳＰ０−０→ＳＰ４−０→ＳＰ０−１→ＳＰ２−０→ＳＰ４−１→…→ＳＰ０−６→ＳＰ１−２という順に出現する。そこで、コントローラは、この表示画面を上から下へ探索していったときの各ラスタブロックの出現順に、各ラスタブロックについての画像データ生成処理の実行する旨の実行スケジュールを作成する。その結果を図５に示す。
【００３５】
図５において、ＳＥＱ＿ＮＯは、各ラスタブロックの画像データ生成処理の実行の順番である。図４によると、ラスタブロックＳＰ０−１の最上ラインとラスタブロックＳＰ２−０の最上ラインは、表示画面における垂直方向の位置が同じである。しかし、属性データ記憶部１０２において、ラスタブロックＳＰ０−１が属するスプライトＳＰ０のスプライト属性データは、ラスタブロックＳＰ２−０が属するスプライト２のスプライト属性データよりも前のアドレスに記憶されている。このため、ラインバッファ描画部１１２は、ラスタブロックＳＰ０−１およびラスタブロックＳＰ２−０を横切る表示予定ライン上の画像データを生成する際、まず、ラスタブロックＳＰ０−１における表示予定ライン上の画像データをワークメモリ１０８から読み出して画像出力部１１０の書き込み用ラインバッファに書き込み、次にラスタブロックＳＰ２−１における表示予定ライン上の画像データをワークメモリ１０８から読み出して画像出力部１１０の書き込み用ラインバッファに書き込むことになる。このように、ラスタブロックＳＰ０−１とラスタブロックＳＰ２−０とでは、ラスタブロックＳＰ０−１の画像データの方が描画処理に先に使用されるので、図５に示す実行スケジュールでは、ラスタブロックＳＰ０−１はＳＥＱ＿ＮＯ＝３、ラスタブロックＳＰ２−１はＳＥＱ＿ＮＯ＝４としている。他の同時に出現する複数のラスタブロックについても同様な取扱いをしている。
【００３６】
そして、コントローラ１０３は、このようにして得られた実行スケジュールにおいて、ＳＥＱ＿ＮＯ＝１にスケジューリングされたラスタブロックＳＰ０−０の画像データ生成処理からＳＥＱ＿ＮＯ＝１８にスケジューリングされたラスタブロックＳＰ１−２の画像データ生成処理までの各画像データ生成処理の実行指示を画像データ生成部１０５に順次送るのである。その際、コントローラ１０３は、各ラスタブロックのＬＣＤ２０２での表示に間に合うように、各ラスタブロックについての画像データ生成処理の実行指示の出力タイミングを、各ラスタブロックの表示タイミングに対して所定の余裕時間だけ先行させる。
【００３７】
画像データ生成部１０５では、このようにしてコントローラ１０３から出力される実行指示を受け取ると、実行指示により指示されたラスタブロックについての画像データ生成処理（復号化部１０６に実行させる復号化処理を含む）を実行する。この場合において、画像データ生成部１０５が、あるスプライトの最初のラスタブロックについての画像データ生成処理の実行指示を受け取ったとき、先行して開始した他のスプライトの全てのラスタブロックについての画像データ生成処理が完了していない場合がある。このような場合、画像データ生成部１０５は、複数のスプライトについての画像データ生成処理を時分割制御により並列実行する。図６はこの場合の画像データ生成処理の並列実行の態様を示すものである。
【００３８】
本実施形態では、スプライトの圧縮データのコードバッファ１０４への取り込みをスプライト単位で行い、各スプライトの画像データ生成処理（復号化処理を含む）をラスタブロック単位で切り換えて実行する。さらに詳述すると、次の通りである。
【００３９】
まず、画像データ生成部１０５は、あるスプライト（例えばスプライト１とする）の最初のラスタブロックについての画像データ生成処理の実行指示を受け取ったとき、そのスプライト１の圧縮データの取り込みをコードバッファ１０４に指示する。この指示に応じて、コードバッファ１０４は、スプライト１の圧縮データをＲＯＭ２０３から読み出し、その時点において空いているバッファ領域（例えばバッファ領域ＣＢ０とする）に格納する。そして、画像データ生成部１０５は、スプライト１の最初のラスタブロックの画像データ生成処理を立ち上げる。この画像データ生成処理において、復号化部１０６は、コードバッファ１０４のバッファ領域ＣＢ０から圧縮データを読み出して、その復号化を行い、スプライト１の最初のラスタブロックの画像データを生成する。画像データ生成部１０５は、復号化部１０６によって生成された画像データと、この画像データについて発生した仮想アドレスとをＭＭＵ１０７に送り、ワークメモリ１０８に格納させる。この場合、ＭＭＵ１０７は、画像データ生成部１０５から矩形領域（ラスタブロックをページ容量に合わせて区切ったもの）の各画素の画像データをラスタスキャン順に選択し、例えばページ内の連続した記憶領域に順次格納する。この間、コードバッファ１０４では、バッファ領域ＣＢ０に対して設けられたコードポインタＣＢ０Ｐが、バッファ領域ＣＢ０内の圧縮データのうち何番目のデータまでが復号化部１０６によって読み出され、復号化処理に使用されたかをカウントする。
【００４０】
次に、画像データ生成部１０５がスプライト１の最初のラスタブロックの画像データ生成処理を実行している間に、画像データ生成部１０５に対して、他のスプライト（例えばスプライト２とする）の最初のラスタブロックについての画像データ生成処理の実行指示が与えられたとする。この場合、画像データ生成部１０５は、そのスプライト２の圧縮データの取り込みをコードバッファ１０４に指示する。この指示に応じて、コードバッファ１０４は、スプライト２の圧縮データをＲＯＭ２０３から読み出し、その時点において空いているバッファ領域（例えばバッファ領域ＣＢ３とする）に格納する。そして、画像データ生成部１０５は、スプライト１の最初のラスタブロックの画像データ生成処理が完了するのを待って、スプライト２の最初のラスタブロックの画像データ生成処理を立ち上げる。その際、画像データ生成部１０５は、スプライト１の最初のラスタブロックの画像データ生成処理の処理結果をスタックに退避させる。この処理結果がスプライト１の後続のラスタブロックについての復号化処理等に必要になるからである。
【００４１】
そして、新たに立ち上げられた画像データ生成処理において、復号化部１０６は、コードバッファ１０４のバッファ領域ＣＢ３から圧縮データを読み出して、その復号化を行い、スプライト２の最初のラスタブロックの画像データを生成する。画像データ生成部１０５は、復号化部１０６によって生成された画像データと、その画像データについて発生した仮想アドレスとをＭＭＵ１０７に送り、ワークメモリ１０８に格納させる。この間、コードバッファ１０４では、バッファ領域ＣＢ３に対して設けられたコードポインタＣＢ３Ｐが、バッファ領域ＣＢ３内の圧縮データのうち何番目のデータまでが復号化部１０６によって読み出され、復号化処理に使用されたかをカウントする。
【００４２】
その後、画像データ生成部１０５がスプライト２の最初のラスタブロックの画像データ生成処理を実行している間に、画像データ生成部１０５に対して、スプライト１の２番目のラスタブロックについての画像データ生成処理の実行指示が与えられたとする。この場合、画像データ生成部１０５は、スプライト２の最初のラスタブロックの画像データ生成処理が完了するのを待って、スプライト１の２番目のラスタブロックの画像データ生成処理を立ち上げる。そして、画像データ生成部１０５は、スタックに退避させた上記処理結果を取り込んで、スプライト１の２番目のラスタブロックの画像データ生成処理を実行する。
【００４３】
この画像データ生成処理において、復号化部１０６は、コードバッファ１０４のバッファ領域ＣＢ０のコードポインタＣＢ０Ｐが示す位置から圧縮データの読み出しを再開し、読み出した圧縮データの復号化を行い、スプライト１の２番目のラスタブロックの画像データを生成する。画像データ生成部１０５は、復号化部１０６によって生成された画像データと、その画像データについて発生した仮想アドレスとをＭＭＵ１０７に送り、ワークメモリ１０８に格納させる。この間、コードバッファ１０４では、バッファ領域ＣＢ０に対して設けられたコードポインタＣＢ０Ｐが、バッファ領域ＣＢ０内の圧縮データのうち何番目のデータまでが復号化部１０６によって読み出され、復号化処理に使用されたかをカウントする。以後、ラスタブロックについての画像データ生成処理の実行指示が画像データ生成部１０５に与えられる都度、同様な処理が繰り返される。
【００４４】
本実施形態では、コードバッファ１０４の各バッファ領域は、当該バッファ領域に格納されたスプライトの圧縮データが全て読み出され、当該スプライトについての復号化処理が完了するまで、当該スプライトの圧縮データを保持する。従って、復号化部１０６は、最大、コードバッファ１０４内のバッファ領域と同じ個数のスプライトの圧縮データについての復号化処理を並列実行することが可能である。
【００４５】
前掲図５には、各スプライトの圧縮データを格納するのに使用されたコードバッファ１０４のバッファ領域が示されている。この図５に示す例では、スプライトＳＰ１の最初のラスタブロックＳＰ１−０についての画像データ生成処理の実行指示（ＳＥＱ＿ＮＯ＝１３）が発生するとき、コードバッファ１０４のバッファ領域ＣＢ１に格納されたスプライトＳＰ４の圧縮データは全て読み出され、スプライトＳＰ４の全ラスタブロックについての画像データ生成処理（復号化処理を含む）が完了している。このため、スプライトＳＰ１の最初のラスタブロックＳＰ１−０についての画像データ生成処理の実行指示が発生したとき、コードバッファ１０４は、その時点において空いているバッファ領域ＣＢ１にスプライトＳＰ１の圧縮データを取り込んでいる。
【００４６】
ラインバッファ描画部１１２は、上述した画像データ生成処理を繰り返す間、これと並行し、水平同期信号に同期して、１ライン分の画像データの描画処理を繰り返す。図７はこの１ライン分の描画処理の内容を例示するものである。
【００４７】
まず、図７（ａ）では、前掲図４の例において、拡大縮小処理を経たラスタブロックＳＰ４−２、ＳＰ３−０、ＳＰ０−２を横切る位置に表示予定ラインがある。ここで、各スプライトのスプライト属性データが図４左側に示すように属性データ記憶部１０２に記憶されているものとすると、ラインバッファ描画部１１２は、表示予定ラインが横切る拡大縮小後のラスタブロックＳＰ４−２、ＳＰ３−０、ＳＰ０−２のうちラスタブロックＳＰ０−２の画像データであって、表示予定ライン上に位置する１ライン分の画像データを最初の生成対象とする。何故ならばラスタブロックＳＰ４−２、ＳＰ３−０、ＳＰ０−２が各々属する各スプライトのスプライト属性データは、ＳＰ０→ＳＰ３→ＳＰ４の順に属性データ記憶部１０２に記憶されているからである（図４左側参照）。そして、ラインバッファ描画部１１２は、ラスタブロックＳＰ０−２の表示予定ライン上の１ライン分の画像データを生成するための画像データをＭＭＵ１０７を介してワークメモリ１０８から読み出し、この読み出しデータを用いて拡大縮小処理を実行し、１ライン分の画像データを生成し、画像出力部１１０の書き込み用ラインバッファに書き込む（図７（ｂ）参照）。
【００４８】
次にラインバッファ描画部１１２は、拡大縮小後のラスタブロックＳＰ３−０の画像データであって、表示予定ライン上に位置する１ライン分の画像データを生成するのに必要な画像データをＭＭＵ１０７を介してワークメモリ１０８から読み出す（図７（ｃ）参照）。そして、スプライトＳＰ３のスプライト属性データにおいてアルファブレンディングを行うべき旨の指定がされている場合には、ラスタブロックＳＰ３−０の一部である表示予定ライン上の画像データと、既に画像出力部１１０の書き込み用ラインバッファに記憶されたラスタブロックＳＰ０−２の一部である１ライン分の画像データとを用いてアルファブレンディングを実行する。これにより、アルファブレンディング後の１ライン分の画像データが書き込み用ラインバッファ内に残る（図７（ｄ）参照）。
【００４９】
次にラインバッファ描画部１１２は、拡大縮小後のラスタブロックＳＰ４−２の画像データであって、表示予定ライン上に位置する１ライン分の画像データを生成するのに必要な画像データをＭＭＵ１０７を介してワークメモリ１０８から読み出す（図７（ｅ）参照）。そして、スプライトＳＰ４のスプライト属性データにおいてアルファブレンディングを行うべき旨の指定がされている場合には、このラスタブロックＳＰ４−２の一部である表示予定ライン上の画像データと、既に画像出力部１１０の書き込み用ラインバッファに記憶された１ライン分の画像データとを用いてアルファブレンディングを実行する。これによりアルファブレンディング後の１ライン分の画像データが書き込み用ラインバッファ内に残る（図７（ｆ）参照）。
【００５０】
以上のようにして表示予定ラインにおいて表示させる１ライン分の画像データが完成し、書き込み用バッファに格納される。そして、水平走査期間が切り換わると、書き込み用バッファは読み出し用バッファとなり、この読み出し用バッファに記憶された１ライン分の画像データが読み出されてＬＣＤ２０２に供給され、ＬＣＤ２０２の表示画面に表示される。
【００５１】
ＭＭＵ１０７は、ラインバッファ描画部１１２が以上のような１ライン分の描画処理を水平同期信号に同期して繰り返す間、ワークメモリ１０８の各ページの画像データの読み出し状況を監視する。そして、あるページに記憶された最後の画像データが読み出されて１ライン分の描画処理に使用された場合、ＭＭＵ１０７は、原則として、管理テーブル１０９において、そのページに対応付けられたＶＡＬＩＤビットを“０”とし、そのページを他の画像データの格納のために解放する。このようなページの解放動作により、ワークメモリ１０８の全ページが塞がるのを回避することができる。従って、少ない容量のワークメモリ１０８により、描画処理に用いる画像データを格納することができる。
【００５２】
以上、スプライトの表示を中心に説明を行ったが、アウトラインフォント等の表示に関しても同様である。本実施形態によれば、コントローラ１０３は、各垂直走査期間において、各表示対象の画像データのＬＣＤ２０２での表示に先行して、各表示対象の画像データの生成を画像データ生成部１０５に順次指令し、画像データ生成部１０５は、指令された表示対象の画像データを生成し、仮想メモリとしてのワークメモリ１０８にＭＭＵ１０７を介して格納する。一方、ラインバッファ描画部１１２は、このワークメモリ１０８内の画像データに基づいて、各水平走査期間において表示する１ライン分の画像データを生成する。また、ＭＭＵ１０７は、ワークメモリ１０８において画像データを記憶しているページのうち表示のために使用された画像データを記憶するページを新たな画像データの記憶に備えて解放する。従って、ワークメモリ１０８は、小容量のもので済む。また、画像データ生成部１０５が表示対象の画像データを生成する期間は、１水平走査期間内に限定されないので、非圧縮の画像データやライン単位での復号化が可能な低圧縮の画像データに限らず、ライン単位での復号化を行うことのできない高圧縮の画像データを用いて表示対象の画像データを生成することができる。従って、本実施形態によれば、ラインバッファ方式の画像処理装置でありながら、高解像度かつフルカラーの表示を実現することができるという効果がある。
【００５３】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００５４】
（１）同一のスプライトについて複数の属性データが属性データ記憶部１０２に書き込まれる場合が考えられる。例えば同一のスプライト（例えばスプライトＳＰとする）を複数の表示位置（例えば表示位置Ｐ１およびＰ２とする）に表示させるような場合である。この場合の対処法に関する態様としては次の２つが考えられる。
【００５５】
第１の態様では、コントローラ１０３は、同一内容の２個のスプライトＳＰの画像データを画像データ生成部１０５に生成させ、ＭＭＵ１０７を介してワークメモリ１０８にそれらのスプライトＳＰの画像データを記憶させる。第２の態様では、コントローラ１０３は、１つのスプライトＳＰの画像データを画像データ生成部１０５に生成させ、ＭＭＵ１０７を介してワークメモリ１０８にそれらのスプライトの画像データを記憶させる。
【００５６】
第１の態様では、例えば表示位置がＰ１であるスプライトＳＰのみについて属性データのＬＯＣＫビットを“１”とした場合、表示位置がＰ１であるスプライトの画像データを記憶するページのＰＬＯＣＫビットのみが“１”とされ、表示位置がＰ２であるスプライトの画像データを記憶するページのＰＬＯＣＫビットは“０”とされる。この場合、ＰＬＯＣＫビットが“０”であるページは、記憶している画像データが表示に使用された時点で解放されるが、ＰＬＯＣＫビットが“１”であるページは、記憶している画像データが表示に使用されても解放されない。従って、一時的に２個のスプライトＳＰの画像データをワークメモリ１０８に記憶させる場合が起こりうるが、一方のスプライトＳＰの画像データが表示に使用された時点でその画像データを記憶していたページが解放されるので、ワークメモリ１０６に必要な記憶容量を節約することができる。
【００５７】
第２の態様では、例えば表示位置がＰ１であるスプライトＳＰのみについて属性データのＬＯＣＫビットを“１”とした場合、そのＬＯＣＫビットが“０”となるまで、スプライトＳＰの画像データを記憶するページのＰＬＯＣＫビットを“１”とする必要がある。従って、ＰＬＯＣＫビットの更新の制御がやや複雑になる。しかし、この第２の態様は、同一種類のスプライトＳＰの画像データを複数位置に表示させるような場合に、１個のスプライトＳＰの画像データのみをワークメモリ１０８に記憶させればよく、ワークメモリ１０８の記憶容量を節約することができる。
【００５８】
（２）仮想アドレスの生成方法は、上記実施形態のものに限定されない。例えばスプライトの画像データを複数ページに分割してワークメモリ１０８に格納する場合、同一スプライトの画像データの各部を記憶する各ページに対応付ける仮想アドレスを連続したアドレスとしてもよい。要は、ラインバッファ描画部１１２が表示対象ライン上のスプライトの画像データを生成するとき、その素材となる画像データを記憶しているページに対応付けられた仮想アドレスをラインバッファ描画部１１２が属性データ記憶部１０２内の属性データを参照することにより求めることができればよい。
【００５９】
（３）上記実施形態においてＭＭＵ１０７は、ＰＬＯＣＫビットが“０”であり、かつ、ＶＡＬＩＤビットが“１”であるページに関して、そのページ内の全ての画像データがＬＣＤ２０２での表示に使用されたとき、そのページに対応したＶＡＬＩＤビットを“０”とし、そのページを他の画像データの記憶のために解放した。しかし、このようにする代わりに、１フレーム分の表示が終わる毎に、ＰＬＯＣＫビットが“０”であるページに対応したＶＡＬＩＤビットを“０”としてもよい。
【００６０】
（４）上記実施形態では、コントローラ１０３の負担を減らすため、拡大縮小前の各ラスタブロックの表示位置に基づいて、各ラスタブロックの画像データ生成処理の実行スケジュールをコントローラ１０３に生成させた。しかし、コントローラ１０３の演算能力に余裕がある場合には、コントローラ１０３に属性データ記憶部１０２内のスプライトの拡大縮小率を参照させて、拡大縮小後の各ラスタブロックの表示位置を求めさせ、この拡大縮小後の各ラスタブロックの表示位置に基づいて、各ラスタブロックの画像データ生成処理の実行スケジュールを生成させてもよい。
【符号の説明】
【００６１】
１００……画像表示ＬＳＩ、１０１……ＣＰＵインタフェース、１０２……属性データ記憶部、１０３……コントローラ、１０４……コードバッファ、１０５……画像データ生成部、１０６……復号化部、１０７……ＭＭＵ、１０８……ワークメモリ、１０９……管理テーブル、１１０……画像出力部、１１１Ａ，１１１Ｂ……ラインバッファ、１１２……ラインバッファ描画部、２０１……ホストＣＰＵ、２０２……ＬＣＤ、２０３……ＲＯＭ。
【図１】
2012032456.tif 000003
【図２】
2012032456.tif 000004
【図３】
2012032456.tif 000005
【図４】
2012032456.tif 000006
【図５】
2012032456.tif 000007
【図６】
2012032456.tif 000008
【図７】
2012032456.tif 000009