(57)【要約】【課題】  ラインバッファ方式の画像処理装置において大容量のワークメモリを用いることなく回転または変形されたスプライトを効率的に表示する。【解決手段】  コントローラ１０３は、各垂直走査期間において、スプライトを分割した各ブロックの画像データのＬＣＤ２０２での表示に先行して、各ブロックの画像データの生成を画像データ生成部１０５に順次指令し、画像データ生成部１０５は、指令されたブロックの圧縮符号化データを復号化して、そのブロックの画像データを生成し、仮想メモリとしてのワークメモリ１０８にＭＭＵ１０７を介して格納する。ラインバッファ描画部１１２は、このワークメモリ１０８内の画像データに基づいて、各水平走査期間において表示する１ライン分の画像データを生成する。また、ＭＭＵ１０７は、ワークメモリ１０８の各ページのうち４頂点の全てが水平走査済み領域に属することとなったブロックの画像データを記憶しているページを新たな画像データの記憶に備えて解放する。【選択図】図１
2014013278.tif 000002
【特許請求の範囲】
【請求項１】
水平走査期間内に表示器に表示される１ライン分の画像データを記憶するラインバッファと、
前記表示器の表示対象の画像データを記憶するためのワークメモリと、
各種のスプライトを複数のブロックに分割して各ブロック毎に生成した圧縮符号化データを記憶するメモリから、前記表示器の表示対象となるブロックの圧縮符号化データを読み出して復号化し、当該ブロックの画像データを生成する画像データ生成手段と、
前記ワークメモリを仮想メモリとして機能させる手段であって、前記画像データ生成手段が前記表示器の表示対象となるブロックの画像データを生成した場合に前記ワークメモリの各記憶領域の中から一部の記憶領域を選択し、この選択した記憶領域に当該ブロックの画像データを格納する一方、解放指令が供給された場合に当該解放指令により指示されたブロックの画像データを記憶している記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、
前記表示器に表示させる各スプライトの各ブロックの画像データの前記表示器での表示に先行して、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令するコントローラと、
各水平走査期間において表示対象とする１ライン分の画像データを生成するのに必要な画像データを前記ワークメモリから読み出し、読み出した画像データに基づいて１ライン分の画像データを生成して前記ラインバッファに格納する描画処理を実行する描画手段と、
水平走査期間毎に、前記描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令を前記メモリ管理ユニットに供給する解放制御手段と
を具備することを特徴とする画像処理装置。
【請求項２】
前記解放制御手段は、水平走査期間毎に、前記表示器における各ブロックの垂直走査方向の表示位置と水平走査線の位置とに基づいて、前記描画手段による描画処理に使用されなくなったブロックを判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記コントローラは、前記表示器の表示画面内における各スプライトの傾きに基づいて、各スプライトを分割した各ブロックの画像データの生成順序を決定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記コントローラは、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令する場合において、前記表示器の表示画面内において水平走査線が複数のスプライトを横切る場合に、前記複数のスプライトについて並行して、各スプライトの各ブロックの画像データの生成を順次指令することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記コントローラは、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令する場合に、前記表示器の表示画面における各ブロックの垂直走査方向の表示位置に従って各ブロックの画像データの生成を順次指令することを特徴とする請求項１〜４のいずれか１の請求項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、１ライン分の記憶容量を有するラインバッファを利用して、画像データの描画および表示器への表示を行う画像処理装置に関する。
【背景技術】
【０００２】
静止画や動画の画像データをバッファに書き込む描画処理とバッファ内の画像データを読み出して表示器に表示させる表示処理とを同時並行的に進める画像処理装置が知られている。この画像処理装置には、１フレーム分の画像データを記憶するフレームバッファを備えたフレームバッファ方式の画像処理装置と、１ライン分の画像データを記憶するラインバッファを備えたラインバッファ方式の画像処理装置がある。なお、ラインバッファ方式の画像処理装置に関する文献として例えば特許文献１がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２１５２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、フレームバッファ方式の画像処理装置では、例えば１垂直走査期間内に１フレーム分の画像データを生成してフレームバッファに格納すればよい。従って、この種のフレームバッファ方式の画像処理装置では、１垂直走査期間を利用して、例えばＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等の高圧縮符号化アルゴリズムにより得られた圧縮データを復号化して表示対象の画像データを生成することも可能であり、表示器に高解像度かつフルカラーの画像表示を行わせることが可能である。
【０００５】
しかし、この種のフレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とし、通常、このようなフレームバッファとしては、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；ダイナミックランダムアクセスメモリ）が使用される。このため、雑音の影響によりフレームバッファとしてのＤＲＡＭの記憶内容が破壊され、表示画面が乱れる場合がある。また、フレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とするので、高価になるという問題がある。
【０００６】
これに対し、ラインバッファ方式の画像処理装置では、ラインバッファは小容量のメモリであればよく、大容量のＤＲＡＭを必要としない。このため、雑音に起因した表示画面の乱れは発生し難い。また、ラインバッファ方式の画像処理装置は、大容量のフレームバッファが不要なのでコストが安価で済む。
【０００７】
しかし、ラインバッファ方式の画像処理装置では、１水平走査期間内に、例えばＪＰＥＧ等の高圧縮アルゴリズムにより得られた圧縮符号化データをＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；読み出し専用メモリ）から読み出して復号化し、その復号化結果から次の１水平走査期間内の表示対象である１ライン分の画像データを生成してラインバッファに書き込む必要がある。ここで、ＪＰＥＧ等の高圧縮アルゴリズムでは、スプライト等の画像全体を対象として圧縮符号化が行われる。このため、１水平走査期間内の表示に必要な画像データがスプライトの中の一部の領域の画像データであるにも拘わらず、スプライト全体の圧縮符号化データをＲＯＭから読み出してスプライト全体の画像データを復号化する必要があった。また、縦スクロールや横スクロールが行われる場合において、スプライトの画像が部分的に表示画面からはみ出した状態で表示される場合がある。このような場合においても、画面に表示されることのない部分をも含むスプライト全体の圧縮符号化データをＲＯＭから読み出してスプライト全体の画像データを復号化する必要があった。また、スプライトに回転や変形を施して表示を行う場合、復号化により得られたスプライト全体の画像データを記憶するメモリが必要であった。
【０００８】
このように従来のラインバッファ方式の画像処理装置は、１水平走査期間内の表示に必要な画像データの量が僅かであるにも拘わらず、１水平走査期間での表示に備えて、表示対象であるスプライト全体の圧縮符号化データをＲＯＭから読み出して復号化する必要があり、ＲＯＭの読み出し帯域が嵩むという問題があった。また、従来のラインバッファ方式の画像処理装置は、回転や変形を伴うスプライトの表示を行うために、スプライト全体の表示が終わるまでの間、復号化済みのスプライト全体の画像データをメモリに格納しておく必要があり、必要なメモリの容量が嵩むという問題があった。
【０００９】
この発明は、以上説明した事情に鑑みてなされたものであり、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済み、かつ、表示に備えてスプライトの画像データを記憶するためのメモリの容量が少なくて済むラインバッファ方式の画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
この発明は、水平走査期間内に表示器に表示される１ライン分の画像データを記憶するラインバッファと、前記表示器の表示対象の画像データを記憶するためのワークメモリと、各種のスプライトを複数のブロックに分割して各ブロック毎に生成した圧縮符号化データを記憶するメモリから、前記表示器の表示対象となるブロックの圧縮符号化データを読み出して復号化し、当該ブロックの画像データを生成する画像データ生成手段と、前記ワークメモリを仮想メモリとして機能させる手段であって、前記画像データ生成手段が前記表示器の表示対象となるブロックの画像データを生成した場合に前記ワークメモリの各記憶領域の中から一部の記憶領域を選択し、この選択した記憶領域に当該ブロックの画像データを格納する一方、解放指令が供給された場合に当該解放指令により指示されたブロックの画像データを記憶している記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、前記表示器に表示させる各スプライトの各ブロックの画像データの前記表示器での表示に先行して、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令するコントローラと、各水平走査期間において表示対象とする１ライン分の画像データを生成するのに必要な画像データを前記ワークメモリから読み出し、読み出した画像データに基づいて１ライン分の画像データを生成して前記ラインバッファに格納する描画処理を実行する描画手段と、水平走査期間毎に、前記描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令を前記メモリ管理ユニットに供給する解放制御手段とを具備することを特徴とする画像処理装置を提供する。
【００１１】
かかる発明によれば、コントローラは、表示器に表示させる各スプライトの各ブロックの画像データの表示器での表示に先行して、画像データ生成手段に各スプライトの各ブロックの画像データの生成を順次指令する。そして、画像データ生成手段は、指令されたスプライトのブロックの圧縮符号化データを復号化して、そのブロックの画像データを生成し、仮想メモリとしてのワークメモリにメモリ管理ユニットを介して格納する。描画手段は、このワークメモリ内のスプライトのブロックの画像データに基づいて、各水平走査期間において表示する１ライン分の画像データを生成する。また、解放制御手段は、水平走査期間毎に、描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令をメモリ管理ユニットに供給する。メモリ管理ユニットは、解放指令により指示されたブロックの画像データを記憶しているワークメモリ内の記憶領域を新たな画像データの記憶に備えて解放する。
【００１２】
この発明によれば、各スプライトの各ブロックが表示対象となるのに先立って、当該ブロックの圧縮符号化データを復号化し、当該ブロックの画像データを記憶させればよいので、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済む。また、解放制御手段が、水平走査期間毎に、描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令をメモリ管理ユニットに供給するので、ワークメモリの記憶容量が少なくて済む。さらにスプライトを分割したブロック単位でワークメモリへの画像データの格納とワークメモリにおける画像データの記憶領域の解放を行うので、回転や変形を伴うスプライトの表示を行う場合においても、ワークメモリの容量が少なくて済む。
【図面の簡単な説明】
【００１３】
【図１】この発明による画像処理装置の一実施形態である画像表示ＬＳＩの構成を示すブロック図である。
【図２】同実施形態においてＲＯＭに記憶されたスプライトの圧縮符号化データの構成を示す図である。
【図３】同実施形態において属性データ記憶部に記憶されるスプライト属性データの内容を示す図である。
【図４】同実施形態におけるスプライトの各ブロックについての画像データ生成指令の発生順序を例示する図である。
【図５】同実施形態において仮想メモリのＭＭＵの処理内容を示す図である。
【図６】同実施形態においてラインバッファ描画部が実行する描画処理を説明する図である。
【図７】同実施形態においてラインバッファ描画部が実行する解放制御処理を説明する図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明による画像処理装置の一実施形態である画像表示ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ；大規模集積回路）１００の構成を示すブロック図である。図１では、画像表示ＬＳＩ１００の機能の理解を容易にするため、同画像表示ＬＳＩ１００に接続されたホストＣＰＵ２０１と、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）２０２と、ＲＯＭ２０３が同画像表示ＬＳＩ１００とともに図示されている。
【００１５】
ここで、ＲＯＭ２０３には、各種のスプライトの圧縮符号化データが格納されている。図２（ａ）および（ｂ）はＲＯＭ２０３に記憶された１個のスプライトの圧縮符号化データの構成例を示す図である。本実施形態では、図２（ａ）に示すように、スプライトの画像が所定サイズ・所定形状（例えばｍ画素×ｍ画素の正方形）のブロックＢＬＫ（ｋ）（ｋ＝０〜１５）に分割され、ブロック単位で画像の圧縮符号化が行われる。この圧縮符号化のアルゴリズムは、ブロック単位で、他のブロックの復号化結果を参照することなく当該ブロックの圧縮符号化データのみから当該ブロックの画像データを復号化することが可能なものであれば任意のものでよい。図２（ｂ）にはＲＯＭ２０３におけるスプライトの圧縮符号化データの記憶状態が示されている。図２（ｂ）に示すように、ＲＯＭ２０３には、まず、ブロックＢＬＫ（ｋ）（ｋ＝０〜１５）の各々に対応した固定長のオフセットアドレスが格納され、それに続けてブロックＢＬＫ（ｋ）（ｋ＝０〜１５）の各々の圧縮符号化データが格納される。ここで、１つのブロックＢＬＫ（ｋ）に対応したオフセットアドレスは、ＲＯＭ２０３内における当該スプライトの圧縮符号化データの先頭データの格納アドレスと当該ブロックＢＬＫ（ｋ）の圧縮符号化データの先頭データの格納アドレスとの差分を示す。各ブロックＢＬＫ（ｋ）（ｋ＝０〜１５）の圧縮符号化データは、１バイトの整数倍の長さを有する可変長のデータであり、ブロック間で区々の長さを有している。
【００１６】
図１に示す画像表示ＬＳＩ１００は、ホストＣＰＵ２０１から与えられる指令に従い、このＲＯＭ２０３からスプライトの各ブロックの圧縮符号化データを読み出して復号化し、ＬＣＤ２０２に表示させる画像データを生成する装置である。
【００１７】
図１に示すように、画像表示ＬＳＩ１００は、ＣＰＵインタフェース１０１と、属性データ記憶部１０２と、コントローラ１０３と、コードバッファ１０４と、画像データ生成部１０５と、復号化部１０６と、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ；メモリ管理装置）１０７と、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；スタティックランダムアクセスメモリ）等によるワークメモリ１０８と、管理テーブル１０９と、画像出力部１１０と、ラインバッファ描画部１１２とを有している。
【００１８】
ＣＰＵインタフェース１０１は、ホストＣＰＵ２０１から供給されるコマンドやデータを受け取って、画像表示ＬＳＩ１００内の関係する各部に供給するインタフェースである。属性データ記憶部１０２は、ホストＣＰＵ２０１からＣＰＵインタフェース１０１を介して供給される属性データを記憶する回路である。ここで、属性データは、表示対象である各スプライトの表示属性を示すデータであり、ホストＣＰＵ２０１から供給され、ＣＰＵインタフェース１０１によって属性データ記憶部１０２に格納される。
【００１９】
図３はスプライトの属性データの内容を例示するものである。この属性データにおいて、Ｙ表示位置ＤＯＹＡおよびＸ表示位置ＤＯＸＡは、当該スプライトの左上頂点ＡのＬＣＤ２０２の表示画面内での垂直方向表示位置および水平方向表示位置を各々指定するデータ、Ｙ表示位置ＤＯＹＢおよびＸ表示位置ＤＯＸＢは、右上頂点Ｂの垂直方向表示位置および水平方向表示位置を各々指定するデータ、Ｙ表示位置ＤＯＹＣおよびＸ表示位置ＤＯＸＣは、右下頂点Ｃの垂直方向表示位置および水平方向表示位置を各々指定するデータ、Ｙ表示位置ＤＯＹＤおよびＸ表示位置ＤＯＸＤは、左下頂点Ｄの垂直方向表示位置および水平方向表示位置を各々指定するデータである（図２（ａ）参照）。パターンネームＰＮは、ＲＯＭ２０３内の当該スプライトの圧縮符号化データへのアクセスに用いるパターンネーム、具体的にはＲＯＭ２０３内における当該スプライトの圧縮符号化データの先頭データの格納アドレスである。ＹスプライトサイズＳＺＹおよびＸスプライトサイズＳＺＸは、当該スプライトのＹ方向の画素数およびＸ方向の画素数を示す。
【００２０】
仮想アドレスＷＡＤＲＳは、ワークメモリ１０８に格納された当該スプライトの各ブロックＢＬＫ（ｋ）（ｋ＝０〜１５）の画像データにアクセスする際に使用される仮想アドレスであり、例えば当該スプライトの左上頂点の仮想アドレスがこの仮想アドレスＷＡＲＤＳとして使用される。この仮想アドレスＷＡＤＲＳは、当該スプライトの各ブロックＢＬＫ（ｋ）（ｋ＝０〜１５）のうちいずれかのブロックの画像データが最初にワークメモリ１０８に格納されるときに属性データ記憶部１０２に格納される。
【００２１】
コントローラ１０３は、ＬＣＤ２０２の各垂直走査期間において、ＬＣＤ２０２に表示させるスプライトの画像データを生成するための制御を行う回路である。このコントローラ１０３は、垂直同期信号が発生する都度、属性データ記憶部１０２に記憶された各スプライトの属性データに従って、ＬＣＤ２０２に表示させる各スプライトの各ブロックの画像データの生成スケジュールを作成し、この生成スケジュールに従って、各スプライトの各ブロックについての画像データ生成指令を画像データ生成部１０５に供給する。この画像データ生成指令は、画像データの生成を行うスプライトのブロックを特定する情報、すなわち、当該スプライトの属性データの格納領域を示す情報と、当該ブロックＢＬＫ（ｋ）のブロック番号ｋとを含む。
【００２２】
ここで、各スプライトの各ブロックについての画像データ生成指令の発生順序は基本的に次の考え方に従って決定される。すなわち、１個のスプライトのみに着目した場合、そのスプライトを構成する各ブロックＢＬＫ（ｋ）（ｋ＝０〜１５）の垂直走査方向における表示位置に応じた順、すなわち、ＬＣＤ２０２になるべく早く表示されるものから順に各ブロックについての画像データ生成指令を発生するのである。例えばＬＣＤ２０２では表示画面の上方から下方に向けて垂直走査が進行するので、なるべく表示画面の上方にあるものから順に各ブロックについての画像データ生成指令を発生する。
【００２３】
図４（ａ）〜（ｅ）はこの考え方に従って決定されるスプライトの各ブロックについての画像データ生成指令の発生順序を例示する図である。図４（ａ）はスプライトの回転角度θが０°である場合の各ブロックについての画像データ生成指令の発生順序を例示するものである。ここで、回転角度θは、表示画面に表示されたスプライトの辺ＡＢ（左上頂点Ａと右上頂点Ｂとを結ぶ辺）が水平走査線に対してなす角度である。コントローラ１０３は、例えばスプライトの属性データにおける頂点ＡのＹ表示位置ＤＯＹＡおよびＸ表示位置ＤＯＸＡと、頂点Ｂの垂直方向表示位置ＤＯＹＢおよび水平方向表示位置ＤＯＸＢとに基づいて当該スプライトの回転角度θを算出する。
【００２４】
図４（ａ）に示すように、θ＝０°である場合、スプライトの辺ＡＢが表示画面内において最上部に位置するので、コントローラ１０３は、ブロックＢＬＫ（０）→ＢＬＫ（１）→ＢＬＫ（２）→ＢＬＫ（３）→ＢＬＫ（４）→……→ＢＬＫ（１４）→ＢＬＫ（１５）というラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
【００２５】
また、図４（ｂ）に示すように、θ＝９０°の場合、スプライトの辺ＤＡが表示画面内において最上部に位置するので、コントローラ１０３は、ブロックＢＬＫ（１２）→ＢＬＫ（８）→ＢＬＫ（４）→ＢＬＫ（０）→ＢＬＫ（１３）→……→ＢＬＫ（７）→ＢＬＫ（３）というように辺ＤＡに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
【００２６】
また、図４（ｃ）に示すように、θ＝１８０°の場合、スプライトの辺ＣＤが表示画面内において最上部に位置するので、コントローラ１０３は、ブロックＢＬＫ（１５）→ＢＬＫ（１４）→ＢＬＫ（１３）→ＢＬＫ（１２）→ＢＬＫ（１１）→……→ＢＬＫ（１）→ＢＬＫ（０）というように辺ＣＤに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
【００２７】
また、図４（ｄ）に示すように、θ＝２７０°の場合、スプライトの辺ＢＣが表示画面内において最上部に位置するので、コントローラ１０３は、ブロックＢＬＫ（３）→ＢＬＫ（７）→ＢＬＫ（１１）→ＢＬＫ（１５）→ＢＬＫ（２）→……→ＢＬＫ（８）→ＢＬＫ（１２）というように辺ＢＣに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
【００２８】
また、図４（ｅ）に示すように、θ＝４５°の場合、スプライトの頂点Ａが表示画面内において最上部に位置するので、コントローラ１０３は、ブロックＢＬＫ（０）→ＢＬＫ（１）→ＢＬＫ（４）→ＢＬＫ（８）→ＢＬＫ（５）→……→ＢＬＫ（１４）→ＢＬＫ（１５）というように頂点Ａからジグザグに各ブロックをスキャンする順に各ブロックに対する画像データ生成指令を発生する。また、図示は省略したが、θ＝１３５°の場合は頂点Ｄが、θ＝２２５°の場合は頂点Ｃが、θ＝３１５°の場合は頂点Ｂが表示画面内において最上部に位置する。そこで、これらの場合、コントローラ１０３は、最上部の頂点からジグザグに各ブロックをスキャンする順に各ブロックに対する画像データ生成指令を発生する。
【００２９】
以上、回転角度θが０°、９０°、１８０°、２７０°、４５°、１３５°、２２５°、３１５°のいずれかと一致する場合について説明したが、これらの角度のいずれとも一致しない場合には、これらの角度の中から回転角度θに最も近いものを選択し、この選択した角度について定められた方法に従ってスプライトの各ブロックの画像データ生成指令の発生順序を決定する。
【００３０】
以上が単独のスプライトにおける各ブロックの画像データ生成指令の発生順序の決定方法であるが、一般的には、ＬＣＤ２０２の表示画面上、水平走査線が複数のスプライトを横切るような表示態様、典型的には水平方向に複数のスプライトを並べて表示させるような場合が起こり得る。そのような場合、本実施形態におけるコントローラ１０３は、水平方向に並んだ複数のスプライトの各々において画像データ生成指令を発生する順番が１番目である各ブロックの画像データ生成指令を順次発生し、次いで水平方向に並んだ複数のスプライトの各々において画像データ生成指令を発生する順番が２番目の各ブロックの画像データ生成指令を順次発生し、…という具合に水平方向に並んだ複数のスプライトについて並列に各スプライトの各ブロックの画像データ生成指令を発生する。
【００３１】
図１において、画像出力部１１０は、各々１ライン分の画像データを記憶可能な容量を持ったラインバッファ１１１Ａおよび１１１Ｂを有している。これらのラインバッファ１１１Ａおよび１１１Ｂは、一方が書き込み用ラインバッファ、他方が読み出し用バッファとされ、ＬＣＤ２０２の水平同期信号に同期して、その時点までに書き込み用ラインバッファであったものが読み出し用ラインバッファとされ、読み出し用ラインバッファであったものが書き込み用ラインバッファとされる。各水平走査期間では、読み出し用ラインバッファに記憶された１ライン分の画像データが読み出され、ＬＣＤ２０２に供給されて表示される一方、１水平走査期間後に表示される１ライン（以下、表示予定ラインという）分の画像データがラインバッファ描画部１１２によって書き込み用バッファに書き込まれる。なお、ラインバッファ描画部１１２については後述する。
【００３２】
コードバッファ１０４は、ＲＯＭ２０３から読み出されるスプライトのブロックの圧縮符号化データを一時的に記憶するバッファである。
【００３３】
画像データ生成部１０５は、復号化部１０６を利用することにより、コントローラ１０３からの画像データ生成指令により指示されたスプライトのブロックの画像データを生成し、ＭＭＵ１０７を介してワークメモリ１０８に格納する画像データ生成処理を実行する回路である。
【００３４】
さらに詳述すると、あるスプライトのブロック番号ｋのブロックＢＬＫ（ｋ）についての画像データ生成指令が与えられた場合、画像データ生成処理では、属性データ記憶部１０２に記憶された当該スプライトの属性データの中のパターンネームＰＮを参照する。そして、ＲＯＭ２０３におけるアドレスＰＮ＋ｋのエリアから当該スプライトのブロックＢＬＫ（ｋ）のオフセットアドレスを読み出し、パターンネームＰＮが示すアドレスにこのオフセットアドレスを加算したアドレスに対応したエリアからブロックＢＬＫ（ｋ）の圧縮符号化データを読み出す。そして、画像データ生成処理では、このブロックＢＬＫ（ｋ）の圧縮符号化データをコードバッファ１０４に記憶させ、このコードバッファ１０４内の圧縮符号化データの復号化処理を復号化部１０６に実行させる。そして、画像データ生成処理では、このような復号化処理により得られるスプライトのブロックＢＬＫ（ｋ）の画像データについて仮想アドレスを生成する。
【００３５】
この仮想アドレスの生成方法には各種の態様が考えられる。ある好ましい態様では、復号化処理により得られたスプライトのブロックＢＬＫ（ｋ）を構成する各画素について仮想アドレスを発生する。具体的には、属性データ記憶部１０２に記憶されたスプライトの仮想アドレスＷＡＤＲＳとブロックのブロック番号ｋに基づいて、例えばそのスプライトのブロックＢＬＫ（ｋ）を構成する各画素の仮想アドレスの上位アドレスを決定し、そのスプライトのブロックＢＬＫ（ｋ）を構成する各画素のブロック内のＹアドレスおよびＸアドレスに基づいて、各画素の仮想アドレスの中位アドレスおよび下位アドレスを決定する。すなわち、スプライトのブロックＢＬＫ（ｋ）内において各画素のラスタスキャンを行った場合において、各画素の仮想アドレスがラスタスキャン順に１ＬＳＢずつ大きくなるように、各画素の仮想アドレスを定めるのである。画像データ生成処理では、このようにして生成した画像データと仮想アドレスの上位アドレスとをＭＭＵ１０７に供給し、画像データをワークメモリ１０８に格納させる。
【００３６】
ＭＭＵ１０７、ワークメモリ１０８および管理テーブル１０９は、仮想メモリシステムを構成している。図５はワークメモリ１０８と管理テーブル１０９との関係を示す図である。図５に示すように、ワークメモリ１０８の実アドレス空間は、所定容量（例えば２５６バイト）のページに区切られている。管理テーブル１０９は、ワークメモリ１０８の各ページに対応付けて、当該ページに記憶されたデータの仮想アドレス（上位アドレスのみ）と、描画処理に使用される可能性のある有効な画像データが当該ページに残存しているか否かを示すＶＡＬＩＤビットとを格納するテーブルである。ここで、各ページに対応したＶＡＬＩＤビットは当該ページ内に有効な画像データが残存しているときには“１”、残存していないときには“０”とされる。
【００３７】
ＭＭＵ１０７は、画像データ生成部１０５からあるスプライトのブロックの画像データと仮想アドレスとを受け取ったとき、ワークメモリ１０８の各ページの中から管理テーブル１０９内のＶＡＬＩＤビットが“０”になっているページを探し、そのページをそのブロックの画像データの書き込み先とする。そして、ＭＭＵ１０７は、書き込み先としたページへのスプライトのブロックの画像データの書き込みを開始し、書き込みが完了したとき書き込み先であるページに対応したＶＡＬＩＤビットを“１”とする。そして、ＭＭＵ１０７は、後述するラインバッファ描画部１１２がある仮想アドレスの指定を伴う解放指示を出力した場合に、管理テーブル１０９を参照することにより、その仮想アドレスに対応した画像データを格納しているページを判定し、そのページに対応したＶＡＬＩＤビットを“０”とし、そのページを解放する。
【００３８】
ラインバッファ描画部１１２は、各水平走査期間において、次の水平走査期間においてＬＣＤ２０２に表示させる１ライン（以下、表示予定ラインという）上の各画素の画像データを生成し、この表示予定ライン上の画像データを画像出力部１１０の書き込み用ラインバッファに書き込む描画処理を実行する手段である。
【００３９】
図６はこのラインバッファ描画部１１２により行われる描画処理の内容を例示する図である。表示予定ラインＨｉ上の各画素の画像データを生成するため、ラインバッファ描画部１１２は、属性データ記憶部１０２内の各スプライトの属性データを順次参照し、当該スプライトの各頂点のＹ表示位置およびＸ表示位置に基づき、表示画面上において表示予定ラインが当該スプライトのいずれかのブロックを横切るか否かを判定する。図示の例では、表示予定ラインＨｉがスプライトＳＰを横切っている。そこで、ラインバッファ描画部１１２は、表示予定ラインＨｉ上の各画素のうちスプライトＳＰに含まれている区間内の各画素の画像データをスプライトＳＰの画像データを用いて生成する。
【００４０】
さらに詳述すると、ラインバッファ描画部１１２は、表示予定ラインＨｉ上の例えば画素Ｑｊの画像データを生成するために、この画素Ｑｊを取り囲むスプライトＳＰの画素Ｐａ、Ｐｂ、Ｐｃ、Ｐｄを求めるとともに、各画素が属するスプライトＳＰのブロックを求める。図示の例では、画素Ｐａ、ＰｂはブロックＢＬＫ（０）に属し、画素Ｐｃ、ＰｄはブロックＢＬＫ（４）に属している。
【００４１】
次にラインバッファ描画部１１２は、属性データ記憶部１０２に記憶されたスプライトＳＰの仮想アドレスＷＡＤＲＳと画素Ｐａ、Ｐｂが属するブロックＢＬＫ（０）のブロック番号０とに基づき、ブロックＢＬＫ（０）の仮想アドレスの上位アドレスを算出し、この仮想アドレスの上位アドレスと画素Ｐａ、ＰｂのブロックＢＬＫ（０）内での各画素位置（すなわち、仮想アドレスの中位アドレスおよび下位アドレス）をＭＭＵ１０７に送り、画素Ｐａ、Ｐｂの各画像データをワークメモリ１０８から読み出す。
【００４２】
また、ラインバッファ描画部１１２は、属性データ記憶部１０２に記憶されたスプライトＳＰの仮想アドレスＷＡＤＲＳと画素Ｐｃ、Ｐｄが属するブロックＢＬＫ（４）のブロック番号４とに基づき、ブロックＢＬＫ（４）の仮想アドレスの上位アドレスを算出し、この仮想アドレスの上位アドレスと画素Ｐｃ、ＰｄのブロックＢＬＫ（４）内での各画素位置（すなわち、仮想アドレスの中位アドレスおよび下位アドレス）をＭＭＵ１０７に送り、画素Ｐｃ、Ｐｄの各画像データをワークメモリ１０８から読み出す。
【００４３】
そして、ラインバッファ描画部１１２は、このようにして読み出した画素Ｐａ、Ｐｂ、Ｐｃ、Ｐｄの画像データにバイリニアフィルタ演算等の周知の補間演算を施すことにより、それら４個の画素に取り囲まれた表示予定ラインＨｉ上の画素Ｑｊの画像データを算出する。ラインバッファ描画部１１２は、このような処理を行うことにより表示予定ラインＨｉ上の各画素の画像データを算出し、書き込み用ラインバッファに書き込むのである。
【００４４】
本実施形態におけるラインバッファ描画部１１２は、各水平走査期間において、以上のような描画処理を行いつつ、属性データ記憶部１０２に属性データが記憶された各スプライトの各ブロックについて、当該ブロックの画像データが以後の描画処理に使用される可能性があるか否かを判定し、以後の描画処理に使用される可能性がない場合に当該ブロックの画像データを記憶しているワークメモリ１０８のページを解放する解放制御処理を実行する。
【００４５】
図７はこの解放制御処理の内容を例示する図である。この例では、図６に例示するように、頂点Ａが最上部となるように傾いた姿勢でスプライトＳＰが表示される。このため、図７に示すように、画面の垂直走査に先行してスプライトＳＰの頂点Ａから頂点Ｃに掛けて各ブロックがジグザグ状に選択され、選択された各ブロックの復号化が行われる。
【００４６】
図７に示す例では、水平走査線Ｈｉが表示予定ラインとなったとき、スプライトＳＰのブロックＢＬＫ（０）、ＢＬＫ（１）、ＢＬＫ（４）、ＢＬＫ（８）は、水平走査線Ｈｉまでの発生済みの水平走査線Ｈｋ（ｋ＝ｉ−１、ｉ−２、…）が横切った水平走査済み領域に属し、バイリニアフィルタ演算に利用可能な画素を含んでいない。従って、ワークメモリ１０８に格納されたスプライトＳＰのブロックＢＬＫ（０）、ＢＬＫ（１）、ＢＬＫ（４）、ＢＬＫ（８）の画像データは、以後の描画処理に使用される可能性がない。そこで、本実施形態におけるラインバッファ描画部１１２は、表示予定ラインＨｉについての描画処理が終わる都度、以後の描画処理に使用される可能性のなくなったブロックの画像データを記憶しているページを解放する解放制御処理を実行する。
【００４７】
具体的には、ラインバッファ描画部１１２は、１本の表示予定ラインＨｉについての描画処理を終える都度、属性データ記憶部１０２に格納された各スプライトＳＰの頂点Ａ、Ｂ、Ｃ、ＤのＹ表示位置およびＸ表示位置に基づいて、各スプライトＳＰの各ブロックの４頂点の各画素およびこれらの画素の各々と上下方向、左右方向、斜め方向に隣接する当該スプライト内の他の画素の表示画面内でのＹ表示位置を算出する。そして、４頂点の各画素およびこれらの画素の各々と上下方向、左右方向、斜め方向に隣接する当該スプライト内の他の画素の表示画面内でのＹ表示位置の全てが水平走査線ＨｉのＹ表示位置よりも上にあるブロックＢＬＫ（ｋ）を見つけた場合、ラインバッファ描画部１１２は、そのブロックＢＬＫ（ｋ）を解放対象とする。そして、ラインバッファ描画部１１２は、属性データ記憶部１０２から解放対象のブロックＢＬＫ（ｋ）が属するスプライトの仮想アドレスＷＡＤＲＳを読み出し、この仮想アドレスＷＡＤＲＳと当該ブロックＢＬＫ（ｋ）のブロック番号ｋとに基づいて当該ブロックＢＬＫ（ｋ）の仮想アドレスを算出し、この仮想アドレスの指定を伴う解放指令をＭＭＵ１０７に対して出力するのである。ＭＭＵ１０７では、管理テーブル１０９を参照することにより、解放指令に含まれる仮想アドレスが示すブロックの画像データを記憶しているページを求め、そのページに対応したＶＡＬＩＤビットを“０”にする。
【００４８】
図７に示す例では、表示予定ラインＨｉについての描画処理を行う前の時点において、スプライトＳＰのブロックＢＬＫ（０）、ＢＬＫ（４）に対応したＶＡＬＩＤビットのみが“０”となっており、他のブロックＢＬＫ（１）〜ＢＬＫ（３）、ＢＬＫ（５）〜ＢＬＫ（１５）に対応したＶＡＬＩＤビットは“１”となっていた。そして、表示予定ラインＨｉについての描画処理を終えた時点において、ブロックＢＬＫ（１）、ＢＬＫ（８）の画像データが以後の描画処理に使用される可能性がなくなった。そこで、ラインバッファ描画部１１２は、表示予定ラインＨｉの描画処理を終えたとき、スプライトＳＰのブロックＢＬＫ（１）、ＢＬＫ（８）の仮想アドレスを算出し、これらの各ブロックの画像データについての解放指令をＭＭＵ１０７に対して出力する。
【００４９】
以上のようにして表示予定ラインに表示させる１ライン分の画像データが完成し、書き込み用バッファに格納される。そして、水平走査期間が切り換わると、書き込み用バッファは読み出し用バッファとなり、この読み出し用バッファに記憶された１ライン分の画像データが読み出されてＬＣＤ２０２に供給され、ＬＣＤ２０２の表示画面に表示される。
【００５０】
以上のように本実施形態によれば、コントローラ１０３は、各スプライトの各ブロックが表示対象となるのに先立って、画像データ生成部１０５に当該ブロックの圧縮符号化データを復号化させ、当該ブロックの画像データをワークメモリ１０８に記憶させればよいので、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済む。また、水平走査期間毎に、ラインバッファ描画部１１２が行う解放制御処理により、以後の描画処理に使用される可能性のなくなったブロックの画像データについての解放指令がＭＭＵ１０７に供給されるので、ワークメモリ１０８の記憶容量が少なくて済む。さらにスプライトを分割したブロック単位でワークメモリ１０８への画像データの格納とワークメモリ１０８における画像データの記憶領域の解放が行われるので、回転や変形を伴うスプライトの表示を行う場合においても、ワークメモリ１０８の容量が少なくて済む。また、スプライトを構成する各ブロックのサイズをスプライト間で同じにする場合には、各ブロックの画像データのデータ量もブロック間で同じになる。従って、ワークメモリ１０８の１ページ当たりの記憶容量を１ブロック分の画像データのデータ量に合わせることにより小容量のワークメモリ１０８を無駄なく効率的に使用することができる。
【００５１】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００５２】
（１）上記実施形態では、ラインバッファ描画部１１２が解放制御処理を実行したが、ラインバッファ描画部１１２以外の要素、例えばＭＭＵ１０７が水平走査期間毎に解放制御処理を実行するようにしてもよい。
【００５３】
（２）上記実施形態では、表示画面において１または複数の水平走査線が複数のスプライトを横切る場合（例えば複数のスプライトを水平方向に並べて表示する場合）に、複数のスプライト間で並列に、スプライト毎に決められた順序でスプライトを構成する各ブロックについての画像データ生成指令を順次発生する処理を進めた。しかし、そのようにする代わりに、各垂直走査期間において、表示対象である各スプライトの各ブロックの垂直走査方向の表示位置を調べ、各ブロックの垂直走査方向の表示位置に応じて、各ブロックについての画像データ生成指令を発生するようにしてもよい。
【００５４】
（３）上記実施形態では、１ブロック分の画像データをワークメモリ１０８の１ページに記憶させるようにした。しかし、異種のスプライトのブロック間で１ブロック分の画像データの量に大きな差が生じ、１ページの１ブロック分の画像データを記憶させることが困難な場合には、１ブロック分の画像データを複数ページに亙って記憶させるようにしてもよい。
【符号の説明】
【００５５】
１００……画像表示ＬＳＩ、１０１……ＣＰＵインタフェース、１０２……属性データ記憶部、１０３……コントローラ、１０４……コードバッファ、１０５……画像データ生成部、１０６……復号化部、１０７……ＭＭＵ、１０８……ワークメモリ、１０９……管理テーブル、１１０……画像出力部、１１１Ａ，１１１Ｂ……ラインバッファ、１１２……ラインバッファ描画部、２０１……ホストＣＰＵ、２０２……ＬＣＤ、２０３……ＲＯＭ。
【図１】
2014013278.tif 000003
【図２】
2014013278.tif 000004
【図３】
2014013278.tif 000005
【図４】
2014013278.tif 000006
【図５】
2014013278.tif 000007
【図６】
2014013278.tif 000008
【図７】
2014013278.tif 000009