JP2014013278A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2014013278A JP2014013278A JP2012149998A JP2012149998A JP2014013278A JP 2014013278 A JP2014013278 A JP 2014013278A JP 2012149998 A JP2012149998 A JP 2012149998A JP 2012149998 A JP2012149998 A JP 2012149998A JP 2014013278 A JP2014013278 A JP 2014013278A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- block
- sprite
- display
- line
- 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.)
- Pending
Links
Images
Abstract
【課題】 ラインバッファ方式の画像処理装置において大容量のワークメモリを用いることなく回転または変形されたスプライトを効率的に表示する。
【解決手段】 コントローラ103は、各垂直走査期間において、スプライトを分割した各ブロックの画像データのLCD202での表示に先行して、各ブロックの画像データの生成を画像データ生成部105に順次指令し、画像データ生成部105は、指令されたブロックの圧縮符号化データを復号化して、そのブロックの画像データを生成し、仮想メモリとしてのワークメモリ108にMMU107を介して格納する。ラインバッファ描画部112は、このワークメモリ108内の画像データに基づいて、各水平走査期間において表示する1ライン分の画像データを生成する。また、MMU107は、ワークメモリ108の各ページのうち4頂点の全てが水平走査済み領域に属することとなったブロックの画像データを記憶しているページを新たな画像データの記憶に備えて解放する。
【選択図】図1
【解決手段】 コントローラ103は、各垂直走査期間において、スプライトを分割した各ブロックの画像データのLCD202での表示に先行して、各ブロックの画像データの生成を画像データ生成部105に順次指令し、画像データ生成部105は、指令されたブロックの圧縮符号化データを復号化して、そのブロックの画像データを生成し、仮想メモリとしてのワークメモリ108にMMU107を介して格納する。ラインバッファ描画部112は、このワークメモリ108内の画像データに基づいて、各水平走査期間において表示する1ライン分の画像データを生成する。また、MMU107は、ワークメモリ108の各ページのうち4頂点の全てが水平走査済み領域に属することとなったブロックの画像データを記憶しているページを新たな画像データの記憶に備えて解放する。
【選択図】図1
Description
この発明は、1ライン分の記憶容量を有するラインバッファを利用して、画像データの描画および表示器への表示を行う画像処理装置に関する。
静止画や動画の画像データをバッファに書き込む描画処理とバッファ内の画像データを読み出して表示器に表示させる表示処理とを同時並行的に進める画像処理装置が知られている。この画像処理装置には、1フレーム分の画像データを記憶するフレームバッファを備えたフレームバッファ方式の画像処理装置と、1ライン分の画像データを記憶するラインバッファを備えたラインバッファ方式の画像処理装置がある。なお、ラインバッファ方式の画像処理装置に関する文献として例えば特許文献1がある。
ところで、フレームバッファ方式の画像処理装置では、例えば1垂直走査期間内に1フレーム分の画像データを生成してフレームバッファに格納すればよい。従って、この種のフレームバッファ方式の画像処理装置では、1垂直走査期間を利用して、例えばJPEG(Joint Photographic Experts Group)等の高圧縮符号化アルゴリズムにより得られた圧縮データを復号化して表示対象の画像データを生成することも可能であり、表示器に高解像度かつフルカラーの画像表示を行わせることが可能である。
しかし、この種のフレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とし、通常、このようなフレームバッファとしては、DRAM(Dynamic Random Access Memory;ダイナミックランダムアクセスメモリ)が使用される。このため、雑音の影響によりフレームバッファとしてのDRAMの記憶内容が破壊され、表示画面が乱れる場合がある。また、フレームバッファ方式の画像処理装置は、大容量のフレームバッファを必要とするので、高価になるという問題がある。
これに対し、ラインバッファ方式の画像処理装置では、ラインバッファは小容量のメモリであればよく、大容量のDRAMを必要としない。このため、雑音に起因した表示画面の乱れは発生し難い。また、ラインバッファ方式の画像処理装置は、大容量のフレームバッファが不要なのでコストが安価で済む。
しかし、ラインバッファ方式の画像処理装置では、1水平走査期間内に、例えばJPEG等の高圧縮アルゴリズムにより得られた圧縮符号化データをROM(Read Only Memory;読み出し専用メモリ)から読み出して復号化し、その復号化結果から次の1水平走査期間内の表示対象である1ライン分の画像データを生成してラインバッファに書き込む必要がある。ここで、JPEG等の高圧縮アルゴリズムでは、スプライト等の画像全体を対象として圧縮符号化が行われる。このため、1水平走査期間内の表示に必要な画像データがスプライトの中の一部の領域の画像データであるにも拘わらず、スプライト全体の圧縮符号化データをROMから読み出してスプライト全体の画像データを復号化する必要があった。また、縦スクロールや横スクロールが行われる場合において、スプライトの画像が部分的に表示画面からはみ出した状態で表示される場合がある。このような場合においても、画面に表示されることのない部分をも含むスプライト全体の圧縮符号化データをROMから読み出してスプライト全体の画像データを復号化する必要があった。また、スプライトに回転や変形を施して表示を行う場合、復号化により得られたスプライト全体の画像データを記憶するメモリが必要であった。
このように従来のラインバッファ方式の画像処理装置は、1水平走査期間内の表示に必要な画像データの量が僅かであるにも拘わらず、1水平走査期間での表示に備えて、表示対象であるスプライト全体の圧縮符号化データをROMから読み出して復号化する必要があり、ROMの読み出し帯域が嵩むという問題があった。また、従来のラインバッファ方式の画像処理装置は、回転や変形を伴うスプライトの表示を行うために、スプライト全体の表示が終わるまでの間、復号化済みのスプライト全体の画像データをメモリに格納しておく必要があり、必要なメモリの容量が嵩むという問題があった。
この発明は、以上説明した事情に鑑みてなされたものであり、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済み、かつ、表示に備えてスプライトの画像データを記憶するためのメモリの容量が少なくて済むラインバッファ方式の画像処理装置を提供することを目的としている。
この発明は、水平走査期間内に表示器に表示される1ライン分の画像データを記憶するラインバッファと、前記表示器の表示対象の画像データを記憶するためのワークメモリと、各種のスプライトを複数のブロックに分割して各ブロック毎に生成した圧縮符号化データを記憶するメモリから、前記表示器の表示対象となるブロックの圧縮符号化データを読み出して復号化し、当該ブロックの画像データを生成する画像データ生成手段と、前記ワークメモリを仮想メモリとして機能させる手段であって、前記画像データ生成手段が前記表示器の表示対象となるブロックの画像データを生成した場合に前記ワークメモリの各記憶領域の中から一部の記憶領域を選択し、この選択した記憶領域に当該ブロックの画像データを格納する一方、解放指令が供給された場合に当該解放指令により指示されたブロックの画像データを記憶している記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、前記表示器に表示させる各スプライトの各ブロックの画像データの前記表示器での表示に先行して、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令するコントローラと、各水平走査期間において表示対象とする1ライン分の画像データを生成するのに必要な画像データを前記ワークメモリから読み出し、読み出した画像データに基づいて1ライン分の画像データを生成して前記ラインバッファに格納する描画処理を実行する描画手段と、水平走査期間毎に、前記描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令を前記メモリ管理ユニットに供給する解放制御手段とを具備することを特徴とする画像処理装置を提供する。
かかる発明によれば、コントローラは、表示器に表示させる各スプライトの各ブロックの画像データの表示器での表示に先行して、画像データ生成手段に各スプライトの各ブロックの画像データの生成を順次指令する。そして、画像データ生成手段は、指令されたスプライトのブロックの圧縮符号化データを復号化して、そのブロックの画像データを生成し、仮想メモリとしてのワークメモリにメモリ管理ユニットを介して格納する。描画手段は、このワークメモリ内のスプライトのブロックの画像データに基づいて、各水平走査期間において表示する1ライン分の画像データを生成する。また、解放制御手段は、水平走査期間毎に、描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令をメモリ管理ユニットに供給する。メモリ管理ユニットは、解放指令により指示されたブロックの画像データを記憶しているワークメモリ内の記憶領域を新たな画像データの記憶に備えて解放する。
この発明によれば、各スプライトの各ブロックが表示対象となるのに先立って、当該ブロックの圧縮符号化データを復号化し、当該ブロックの画像データを記憶させればよいので、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済む。また、解放制御手段が、水平走査期間毎に、描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令をメモリ管理ユニットに供給するので、ワークメモリの記憶容量が少なくて済む。さらにスプライトを分割したブロック単位でワークメモリへの画像データの格納とワークメモリにおける画像データの記憶領域の解放を行うので、回転や変形を伴うスプライトの表示を行う場合においても、ワークメモリの容量が少なくて済む。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明による画像処理装置の一実施形態である画像表示LSI(Large Scale Integrated circuit;大規模集積回路)100の構成を示すブロック図である。図1では、画像表示LSI100の機能の理解を容易にするため、同画像表示LSI100に接続されたホストCPU201と、LCD(Liquid Crystal Display;液晶表示器)202と、ROM203が同画像表示LSI100とともに図示されている。
図1は、この発明による画像処理装置の一実施形態である画像表示LSI(Large Scale Integrated circuit;大規模集積回路)100の構成を示すブロック図である。図1では、画像表示LSI100の機能の理解を容易にするため、同画像表示LSI100に接続されたホストCPU201と、LCD(Liquid Crystal Display;液晶表示器)202と、ROM203が同画像表示LSI100とともに図示されている。
ここで、ROM203には、各種のスプライトの圧縮符号化データが格納されている。図2(a)および(b)はROM203に記憶された1個のスプライトの圧縮符号化データの構成例を示す図である。本実施形態では、図2(a)に示すように、スプライトの画像が所定サイズ・所定形状(例えばm画素×m画素の正方形)のブロックBLK(k)(k=0〜15)に分割され、ブロック単位で画像の圧縮符号化が行われる。この圧縮符号化のアルゴリズムは、ブロック単位で、他のブロックの復号化結果を参照することなく当該ブロックの圧縮符号化データのみから当該ブロックの画像データを復号化することが可能なものであれば任意のものでよい。図2(b)にはROM203におけるスプライトの圧縮符号化データの記憶状態が示されている。図2(b)に示すように、ROM203には、まず、ブロックBLK(k)(k=0〜15)の各々に対応した固定長のオフセットアドレスが格納され、それに続けてブロックBLK(k)(k=0〜15)の各々の圧縮符号化データが格納される。ここで、1つのブロックBLK(k)に対応したオフセットアドレスは、ROM203内における当該スプライトの圧縮符号化データの先頭データの格納アドレスと当該ブロックBLK(k)の圧縮符号化データの先頭データの格納アドレスとの差分を示す。各ブロックBLK(k)(k=0〜15)の圧縮符号化データは、1バイトの整数倍の長さを有する可変長のデータであり、ブロック間で区々の長さを有している。
図1に示す画像表示LSI100は、ホストCPU201から与えられる指令に従い、このROM203からスプライトの各ブロックの圧縮符号化データを読み出して復号化し、LCD202に表示させる画像データを生成する装置である。
図1に示すように、画像表示LSI100は、CPUインタフェース101と、属性データ記憶部102と、コントローラ103と、コードバッファ104と、画像データ生成部105と、復号化部106と、MMU(Memory Management Unit;メモリ管理装置)107と、SRAM(Static Random Access Memory;スタティックランダムアクセスメモリ)等によるワークメモリ108と、管理テーブル109と、画像出力部110と、ラインバッファ描画部112とを有している。
CPUインタフェース101は、ホストCPU201から供給されるコマンドやデータを受け取って、画像表示LSI100内の関係する各部に供給するインタフェースである。属性データ記憶部102は、ホストCPU201からCPUインタフェース101を介して供給される属性データを記憶する回路である。ここで、属性データは、表示対象である各スプライトの表示属性を示すデータであり、ホストCPU201から供給され、CPUインタフェース101によって属性データ記憶部102に格納される。
図3はスプライトの属性データの内容を例示するものである。この属性データにおいて、Y表示位置DOYAおよびX表示位置DOXAは、当該スプライトの左上頂点AのLCD202の表示画面内での垂直方向表示位置および水平方向表示位置を各々指定するデータ、Y表示位置DOYBおよびX表示位置DOXBは、右上頂点Bの垂直方向表示位置および水平方向表示位置を各々指定するデータ、Y表示位置DOYCおよびX表示位置DOXCは、右下頂点Cの垂直方向表示位置および水平方向表示位置を各々指定するデータ、Y表示位置DOYDおよびX表示位置DOXDは、左下頂点Dの垂直方向表示位置および水平方向表示位置を各々指定するデータである(図2(a)参照)。パターンネームPNは、ROM203内の当該スプライトの圧縮符号化データへのアクセスに用いるパターンネーム、具体的にはROM203内における当該スプライトの圧縮符号化データの先頭データの格納アドレスである。YスプライトサイズSZYおよびXスプライトサイズSZXは、当該スプライトのY方向の画素数およびX方向の画素数を示す。
仮想アドレスWADRSは、ワークメモリ108に格納された当該スプライトの各ブロックBLK(k)(k=0〜15)の画像データにアクセスする際に使用される仮想アドレスであり、例えば当該スプライトの左上頂点の仮想アドレスがこの仮想アドレスWARDSとして使用される。この仮想アドレスWADRSは、当該スプライトの各ブロックBLK(k)(k=0〜15)のうちいずれかのブロックの画像データが最初にワークメモリ108に格納されるときに属性データ記憶部102に格納される。
コントローラ103は、LCD202の各垂直走査期間において、LCD202に表示させるスプライトの画像データを生成するための制御を行う回路である。このコントローラ103は、垂直同期信号が発生する都度、属性データ記憶部102に記憶された各スプライトの属性データに従って、LCD202に表示させる各スプライトの各ブロックの画像データの生成スケジュールを作成し、この生成スケジュールに従って、各スプライトの各ブロックについての画像データ生成指令を画像データ生成部105に供給する。この画像データ生成指令は、画像データの生成を行うスプライトのブロックを特定する情報、すなわち、当該スプライトの属性データの格納領域を示す情報と、当該ブロックBLK(k)のブロック番号kとを含む。
ここで、各スプライトの各ブロックについての画像データ生成指令の発生順序は基本的に次の考え方に従って決定される。すなわち、1個のスプライトのみに着目した場合、そのスプライトを構成する各ブロックBLK(k)(k=0〜15)の垂直走査方向における表示位置に応じた順、すなわち、LCD202になるべく早く表示されるものから順に各ブロックについての画像データ生成指令を発生するのである。例えばLCD202では表示画面の上方から下方に向けて垂直走査が進行するので、なるべく表示画面の上方にあるものから順に各ブロックについての画像データ生成指令を発生する。
図4(a)〜(e)はこの考え方に従って決定されるスプライトの各ブロックについての画像データ生成指令の発生順序を例示する図である。図4(a)はスプライトの回転角度θが0°である場合の各ブロックについての画像データ生成指令の発生順序を例示するものである。ここで、回転角度θは、表示画面に表示されたスプライトの辺AB(左上頂点Aと右上頂点Bとを結ぶ辺)が水平走査線に対してなす角度である。コントローラ103は、例えばスプライトの属性データにおける頂点AのY表示位置DOYAおよびX表示位置DOXAと、頂点Bの垂直方向表示位置DOYBおよび水平方向表示位置DOXBとに基づいて当該スプライトの回転角度θを算出する。
図4(a)に示すように、θ=0°である場合、スプライトの辺ABが表示画面内において最上部に位置するので、コントローラ103は、ブロックBLK(0)→BLK(1)→BLK(2)→BLK(3)→BLK(4)→……→BLK(14)→BLK(15)というラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
また、図4(b)に示すように、θ=90°の場合、スプライトの辺DAが表示画面内において最上部に位置するので、コントローラ103は、ブロックBLK(12)→BLK(8)→BLK(4)→BLK(0)→BLK(13)→……→BLK(7)→BLK(3)というように辺DAに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
また、図4(c)に示すように、θ=180°の場合、スプライトの辺CDが表示画面内において最上部に位置するので、コントローラ103は、ブロックBLK(15)→BLK(14)→BLK(13)→BLK(12)→BLK(11)→……→BLK(1)→BLK(0)というように辺CDに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
また、図4(d)に示すように、θ=270°の場合、スプライトの辺BCが表示画面内において最上部に位置するので、コントローラ103は、ブロックBLK(3)→BLK(7)→BLK(11)→BLK(15)→BLK(2)→……→BLK(8)→BLK(12)というように辺BCに対して平行なラスタスキャン順に各ブロックに対する画像データ生成指令を発生する。
また、図4(e)に示すように、θ=45°の場合、スプライトの頂点Aが表示画面内において最上部に位置するので、コントローラ103は、ブロックBLK(0)→BLK(1)→BLK(4)→BLK(8)→BLK(5)→……→BLK(14)→BLK(15)というように頂点Aからジグザグに各ブロックをスキャンする順に各ブロックに対する画像データ生成指令を発生する。また、図示は省略したが、θ=135°の場合は頂点Dが、θ=225°の場合は頂点Cが、θ=315°の場合は頂点Bが表示画面内において最上部に位置する。そこで、これらの場合、コントローラ103は、最上部の頂点からジグザグに各ブロックをスキャンする順に各ブロックに対する画像データ生成指令を発生する。
以上、回転角度θが0°、90°、180°、270°、45°、135°、225°、315°のいずれかと一致する場合について説明したが、これらの角度のいずれとも一致しない場合には、これらの角度の中から回転角度θに最も近いものを選択し、この選択した角度について定められた方法に従ってスプライトの各ブロックの画像データ生成指令の発生順序を決定する。
以上が単独のスプライトにおける各ブロックの画像データ生成指令の発生順序の決定方法であるが、一般的には、LCD202の表示画面上、水平走査線が複数のスプライトを横切るような表示態様、典型的には水平方向に複数のスプライトを並べて表示させるような場合が起こり得る。そのような場合、本実施形態におけるコントローラ103は、水平方向に並んだ複数のスプライトの各々において画像データ生成指令を発生する順番が1番目である各ブロックの画像データ生成指令を順次発生し、次いで水平方向に並んだ複数のスプライトの各々において画像データ生成指令を発生する順番が2番目の各ブロックの画像データ生成指令を順次発生し、…という具合に水平方向に並んだ複数のスプライトについて並列に各スプライトの各ブロックの画像データ生成指令を発生する。
図1において、画像出力部110は、各々1ライン分の画像データを記憶可能な容量を持ったラインバッファ111Aおよび111Bを有している。これらのラインバッファ111Aおよび111Bは、一方が書き込み用ラインバッファ、他方が読み出し用バッファとされ、LCD202の水平同期信号に同期して、その時点までに書き込み用ラインバッファであったものが読み出し用ラインバッファとされ、読み出し用ラインバッファであったものが書き込み用ラインバッファとされる。各水平走査期間では、読み出し用ラインバッファに記憶された1ライン分の画像データが読み出され、LCD202に供給されて表示される一方、1水平走査期間後に表示される1ライン(以下、表示予定ラインという)分の画像データがラインバッファ描画部112によって書き込み用バッファに書き込まれる。なお、ラインバッファ描画部112については後述する。
コードバッファ104は、ROM203から読み出されるスプライトのブロックの圧縮符号化データを一時的に記憶するバッファである。
画像データ生成部105は、復号化部106を利用することにより、コントローラ103からの画像データ生成指令により指示されたスプライトのブロックの画像データを生成し、MMU107を介してワークメモリ108に格納する画像データ生成処理を実行する回路である。
さらに詳述すると、あるスプライトのブロック番号kのブロックBLK(k)についての画像データ生成指令が与えられた場合、画像データ生成処理では、属性データ記憶部102に記憶された当該スプライトの属性データの中のパターンネームPNを参照する。そして、ROM203におけるアドレスPN+kのエリアから当該スプライトのブロックBLK(k)のオフセットアドレスを読み出し、パターンネームPNが示すアドレスにこのオフセットアドレスを加算したアドレスに対応したエリアからブロックBLK(k)の圧縮符号化データを読み出す。そして、画像データ生成処理では、このブロックBLK(k)の圧縮符号化データをコードバッファ104に記憶させ、このコードバッファ104内の圧縮符号化データの復号化処理を復号化部106に実行させる。そして、画像データ生成処理では、このような復号化処理により得られるスプライトのブロックBLK(k)の画像データについて仮想アドレスを生成する。
この仮想アドレスの生成方法には各種の態様が考えられる。ある好ましい態様では、復号化処理により得られたスプライトのブロックBLK(k)を構成する各画素について仮想アドレスを発生する。具体的には、属性データ記憶部102に記憶されたスプライトの仮想アドレスWADRSとブロックのブロック番号kに基づいて、例えばそのスプライトのブロックBLK(k)を構成する各画素の仮想アドレスの上位アドレスを決定し、そのスプライトのブロックBLK(k)を構成する各画素のブロック内のYアドレスおよびXアドレスに基づいて、各画素の仮想アドレスの中位アドレスおよび下位アドレスを決定する。すなわち、スプライトのブロックBLK(k)内において各画素のラスタスキャンを行った場合において、各画素の仮想アドレスがラスタスキャン順に1LSBずつ大きくなるように、各画素の仮想アドレスを定めるのである。画像データ生成処理では、このようにして生成した画像データと仮想アドレスの上位アドレスとをMMU107に供給し、画像データをワークメモリ108に格納させる。
MMU107、ワークメモリ108および管理テーブル109は、仮想メモリシステムを構成している。図5はワークメモリ108と管理テーブル109との関係を示す図である。図5に示すように、ワークメモリ108の実アドレス空間は、所定容量(例えば256バイト)のページに区切られている。管理テーブル109は、ワークメモリ108の各ページに対応付けて、当該ページに記憶されたデータの仮想アドレス(上位アドレスのみ)と、描画処理に使用される可能性のある有効な画像データが当該ページに残存しているか否かを示すVALIDビットとを格納するテーブルである。ここで、各ページに対応したVALIDビットは当該ページ内に有効な画像データが残存しているときには“1”、残存していないときには“0”とされる。
MMU107は、画像データ生成部105からあるスプライトのブロックの画像データと仮想アドレスとを受け取ったとき、ワークメモリ108の各ページの中から管理テーブル109内のVALIDビットが“0”になっているページを探し、そのページをそのブロックの画像データの書き込み先とする。そして、MMU107は、書き込み先としたページへのスプライトのブロックの画像データの書き込みを開始し、書き込みが完了したとき書き込み先であるページに対応したVALIDビットを“1”とする。そして、MMU107は、後述するラインバッファ描画部112がある仮想アドレスの指定を伴う解放指示を出力した場合に、管理テーブル109を参照することにより、その仮想アドレスに対応した画像データを格納しているページを判定し、そのページに対応したVALIDビットを“0”とし、そのページを解放する。
ラインバッファ描画部112は、各水平走査期間において、次の水平走査期間においてLCD202に表示させる1ライン(以下、表示予定ラインという)上の各画素の画像データを生成し、この表示予定ライン上の画像データを画像出力部110の書き込み用ラインバッファに書き込む描画処理を実行する手段である。
図6はこのラインバッファ描画部112により行われる描画処理の内容を例示する図である。表示予定ラインHi上の各画素の画像データを生成するため、ラインバッファ描画部112は、属性データ記憶部102内の各スプライトの属性データを順次参照し、当該スプライトの各頂点のY表示位置およびX表示位置に基づき、表示画面上において表示予定ラインが当該スプライトのいずれかのブロックを横切るか否かを判定する。図示の例では、表示予定ラインHiがスプライトSPを横切っている。そこで、ラインバッファ描画部112は、表示予定ラインHi上の各画素のうちスプライトSPに含まれている区間内の各画素の画像データをスプライトSPの画像データを用いて生成する。
さらに詳述すると、ラインバッファ描画部112は、表示予定ラインHi上の例えば画素Qjの画像データを生成するために、この画素Qjを取り囲むスプライトSPの画素Pa、Pb、Pc、Pdを求めるとともに、各画素が属するスプライトSPのブロックを求める。図示の例では、画素Pa、PbはブロックBLK(0)に属し、画素Pc、PdはブロックBLK(4)に属している。
次にラインバッファ描画部112は、属性データ記憶部102に記憶されたスプライトSPの仮想アドレスWADRSと画素Pa、Pbが属するブロックBLK(0)のブロック番号0とに基づき、ブロックBLK(0)の仮想アドレスの上位アドレスを算出し、この仮想アドレスの上位アドレスと画素Pa、PbのブロックBLK(0)内での各画素位置(すなわち、仮想アドレスの中位アドレスおよび下位アドレス)をMMU107に送り、画素Pa、Pbの各画像データをワークメモリ108から読み出す。
また、ラインバッファ描画部112は、属性データ記憶部102に記憶されたスプライトSPの仮想アドレスWADRSと画素Pc、Pdが属するブロックBLK(4)のブロック番号4とに基づき、ブロックBLK(4)の仮想アドレスの上位アドレスを算出し、この仮想アドレスの上位アドレスと画素Pc、PdのブロックBLK(4)内での各画素位置(すなわち、仮想アドレスの中位アドレスおよび下位アドレス)をMMU107に送り、画素Pc、Pdの各画像データをワークメモリ108から読み出す。
そして、ラインバッファ描画部112は、このようにして読み出した画素Pa、Pb、Pc、Pdの画像データにバイリニアフィルタ演算等の周知の補間演算を施すことにより、それら4個の画素に取り囲まれた表示予定ラインHi上の画素Qjの画像データを算出する。ラインバッファ描画部112は、このような処理を行うことにより表示予定ラインHi上の各画素の画像データを算出し、書き込み用ラインバッファに書き込むのである。
本実施形態におけるラインバッファ描画部112は、各水平走査期間において、以上のような描画処理を行いつつ、属性データ記憶部102に属性データが記憶された各スプライトの各ブロックについて、当該ブロックの画像データが以後の描画処理に使用される可能性があるか否かを判定し、以後の描画処理に使用される可能性がない場合に当該ブロックの画像データを記憶しているワークメモリ108のページを解放する解放制御処理を実行する。
図7はこの解放制御処理の内容を例示する図である。この例では、図6に例示するように、頂点Aが最上部となるように傾いた姿勢でスプライトSPが表示される。このため、図7に示すように、画面の垂直走査に先行してスプライトSPの頂点Aから頂点Cに掛けて各ブロックがジグザグ状に選択され、選択された各ブロックの復号化が行われる。
図7に示す例では、水平走査線Hiが表示予定ラインとなったとき、スプライトSPのブロックBLK(0)、BLK(1)、BLK(4)、BLK(8)は、水平走査線Hiまでの発生済みの水平走査線Hk(k=i−1、i−2、…)が横切った水平走査済み領域に属し、バイリニアフィルタ演算に利用可能な画素を含んでいない。従って、ワークメモリ108に格納されたスプライトSPのブロックBLK(0)、BLK(1)、BLK(4)、BLK(8)の画像データは、以後の描画処理に使用される可能性がない。そこで、本実施形態におけるラインバッファ描画部112は、表示予定ラインHiについての描画処理が終わる都度、以後の描画処理に使用される可能性のなくなったブロックの画像データを記憶しているページを解放する解放制御処理を実行する。
具体的には、ラインバッファ描画部112は、1本の表示予定ラインHiについての描画処理を終える都度、属性データ記憶部102に格納された各スプライトSPの頂点A、B、C、DのY表示位置およびX表示位置に基づいて、各スプライトSPの各ブロックの4頂点の各画素およびこれらの画素の各々と上下方向、左右方向、斜め方向に隣接する当該スプライト内の他の画素の表示画面内でのY表示位置を算出する。そして、4頂点の各画素およびこれらの画素の各々と上下方向、左右方向、斜め方向に隣接する当該スプライト内の他の画素の表示画面内でのY表示位置の全てが水平走査線HiのY表示位置よりも上にあるブロックBLK(k)を見つけた場合、ラインバッファ描画部112は、そのブロックBLK(k)を解放対象とする。そして、ラインバッファ描画部112は、属性データ記憶部102から解放対象のブロックBLK(k)が属するスプライトの仮想アドレスWADRSを読み出し、この仮想アドレスWADRSと当該ブロックBLK(k)のブロック番号kとに基づいて当該ブロックBLK(k)の仮想アドレスを算出し、この仮想アドレスの指定を伴う解放指令をMMU107に対して出力するのである。MMU107では、管理テーブル109を参照することにより、解放指令に含まれる仮想アドレスが示すブロックの画像データを記憶しているページを求め、そのページに対応したVALIDビットを“0”にする。
図7に示す例では、表示予定ラインHiについての描画処理を行う前の時点において、スプライトSPのブロックBLK(0)、BLK(4)に対応したVALIDビットのみが“0”となっており、他のブロックBLK(1)〜BLK(3)、BLK(5)〜BLK(15)に対応したVALIDビットは“1”となっていた。そして、表示予定ラインHiについての描画処理を終えた時点において、ブロックBLK(1)、BLK(8)の画像データが以後の描画処理に使用される可能性がなくなった。そこで、ラインバッファ描画部112は、表示予定ラインHiの描画処理を終えたとき、スプライトSPのブロックBLK(1)、BLK(8)の仮想アドレスを算出し、これらの各ブロックの画像データについての解放指令をMMU107に対して出力する。
以上のようにして表示予定ラインに表示させる1ライン分の画像データが完成し、書き込み用バッファに格納される。そして、水平走査期間が切り換わると、書き込み用バッファは読み出し用バッファとなり、この読み出し用バッファに記憶された1ライン分の画像データが読み出されてLCD202に供給され、LCD202の表示画面に表示される。
以上のように本実施形態によれば、コントローラ103は、各スプライトの各ブロックが表示対象となるのに先立って、画像データ生成部105に当該ブロックの圧縮符号化データを復号化させ、当該ブロックの画像データをワークメモリ108に記憶させればよいので、スプライトの圧縮符号化データの読み出しに必要な帯域が小さくて済む。また、水平走査期間毎に、ラインバッファ描画部112が行う解放制御処理により、以後の描画処理に使用される可能性のなくなったブロックの画像データについての解放指令がMMU107に供給されるので、ワークメモリ108の記憶容量が少なくて済む。さらにスプライトを分割したブロック単位でワークメモリ108への画像データの格納とワークメモリ108における画像データの記憶領域の解放が行われるので、回転や変形を伴うスプライトの表示を行う場合においても、ワークメモリ108の容量が少なくて済む。また、スプライトを構成する各ブロックのサイズをスプライト間で同じにする場合には、各ブロックの画像データのデータ量もブロック間で同じになる。従って、ワークメモリ108の1ページ当たりの記憶容量を1ブロック分の画像データのデータ量に合わせることにより小容量のワークメモリ108を無駄なく効率的に使用することができる。
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記実施形態では、ラインバッファ描画部112が解放制御処理を実行したが、ラインバッファ描画部112以外の要素、例えばMMU107が水平走査期間毎に解放制御処理を実行するようにしてもよい。
(2)上記実施形態では、表示画面において1または複数の水平走査線が複数のスプライトを横切る場合(例えば複数のスプライトを水平方向に並べて表示する場合)に、複数のスプライト間で並列に、スプライト毎に決められた順序でスプライトを構成する各ブロックについての画像データ生成指令を順次発生する処理を進めた。しかし、そのようにする代わりに、各垂直走査期間において、表示対象である各スプライトの各ブロックの垂直走査方向の表示位置を調べ、各ブロックの垂直走査方向の表示位置に応じて、各ブロックについての画像データ生成指令を発生するようにしてもよい。
(3)上記実施形態では、1ブロック分の画像データをワークメモリ108の1ページに記憶させるようにした。しかし、異種のスプライトのブロック間で1ブロック分の画像データの量に大きな差が生じ、1ページの1ブロック分の画像データを記憶させることが困難な場合には、1ブロック分の画像データを複数ページに亙って記憶させるようにしてもよい。
100……画像表示LSI、101……CPUインタフェース、102……属性データ記憶部、103……コントローラ、104……コードバッファ、105……画像データ生成部、106……復号化部、107……MMU、108……ワークメモリ、109……管理テーブル、110……画像出力部、111A,111B……ラインバッファ、112……ラインバッファ描画部、201……ホストCPU、202……LCD、203……ROM。
Claims (5)
- 水平走査期間内に表示器に表示される1ライン分の画像データを記憶するラインバッファと、
前記表示器の表示対象の画像データを記憶するためのワークメモリと、
各種のスプライトを複数のブロックに分割して各ブロック毎に生成した圧縮符号化データを記憶するメモリから、前記表示器の表示対象となるブロックの圧縮符号化データを読み出して復号化し、当該ブロックの画像データを生成する画像データ生成手段と、
前記ワークメモリを仮想メモリとして機能させる手段であって、前記画像データ生成手段が前記表示器の表示対象となるブロックの画像データを生成した場合に前記ワークメモリの各記憶領域の中から一部の記憶領域を選択し、この選択した記憶領域に当該ブロックの画像データを格納する一方、解放指令が供給された場合に当該解放指令により指示されたブロックの画像データを記憶している記憶領域を新たな画像データの記憶に備えて解放するメモリ管理ユニットと、
前記表示器に表示させる各スプライトの各ブロックの画像データの前記表示器での表示に先行して、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令するコントローラと、
各水平走査期間において表示対象とする1ライン分の画像データを生成するのに必要な画像データを前記ワークメモリから読み出し、読み出した画像データに基づいて1ライン分の画像データを生成して前記ラインバッファに格納する描画処理を実行する描画手段と、
水平走査期間毎に、前記描画手段による描画処理に使用されなくなったブロックの画像データについての解放指令を前記メモリ管理ユニットに供給する解放制御手段と
を具備することを特徴とする画像処理装置。 - 前記解放制御手段は、水平走査期間毎に、前記表示器における各ブロックの垂直走査方向の表示位置と水平走査線の位置とに基づいて、前記描画手段による描画処理に使用されなくなったブロックを判定することを特徴とする請求項1に記載の画像処理装置。
- 前記コントローラは、前記表示器の表示画面内における各スプライトの傾きに基づいて、各スプライトを分割した各ブロックの画像データの生成順序を決定することを特徴とする請求項1または2に記載の画像処理装置。
- 前記コントローラは、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令する場合において、前記表示器の表示画面内において水平走査線が複数のスプライトを横切る場合に、前記複数のスプライトについて並行して、各スプライトの各ブロックの画像データの生成を順次指令することを特徴とする請求項3に記載の画像処理装置。
- 前記コントローラは、前記各スプライトの各ブロックの画像データの生成を前記画像データ生成手段に順次指令する場合に、前記表示器の表示画面における各ブロックの垂直走査方向の表示位置に従って各ブロックの画像データの生成を順次指令することを特徴とする請求項1〜4のいずれか1の請求項に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012149998A JP2014013278A (ja) | 2012-07-03 | 2012-07-03 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012149998A JP2014013278A (ja) | 2012-07-03 | 2012-07-03 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014013278A true JP2014013278A (ja) | 2014-01-23 |
Family
ID=50108999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012149998A Pending JP2014013278A (ja) | 2012-07-03 | 2012-07-03 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014013278A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019512905A (ja) * | 2016-03-29 | 2019-05-16 | グァンドン オッポ モバイル テレコミュニケーションズ コーポレーション リミテッドGuangdong Oppo Mobile Telecommunications Corp., Ltd. | デバイスツーデバイス通信の伝送リソースを確定するための方法及び装置 |
-
2012
- 2012-07-03 JP JP2012149998A patent/JP2014013278A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019512905A (ja) * | 2016-03-29 | 2019-05-16 | グァンドン オッポ モバイル テレコミュニケーションズ コーポレーション リミテッドGuangdong Oppo Mobile Telecommunications Corp., Ltd. | デバイスツーデバイス通信の伝送リソースを確定するための方法及び装置 |
US10764897B2 (en) | 2016-03-29 | 2020-09-01 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method and device for determining transmission resource for device-to-device communications |
US11160085B2 (en) | 2016-03-29 | 2021-10-26 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method and device for determining transmission resource for device-to-device communications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8878869B2 (en) | Image processing device and image processing method | |
JPH0863608A (ja) | コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法 | |
CN108492243B (zh) | 一种基于块处理的图像旋转装置、系统和方法 | |
WO2011062205A1 (ja) | 画像描画装置、画像描画方法および記録媒体 | |
JP5368254B2 (ja) | 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造 | |
JPH09212680A (ja) | 描画装置及び描画方法 | |
WO2017222633A1 (en) | Image rotation method and apparatus | |
JP2009099098A (ja) | コンピュータグラフィックス描画装置及び描画方法 | |
US6392643B1 (en) | Image generation apparatus | |
JP5296656B2 (ja) | 画像処理装置および画像処理方法 | |
JP4487959B2 (ja) | 画像処理装置および画像処理方法、並びにプログラム | |
JP2012032456A (ja) | 画像処理装置 | |
JP2014013278A (ja) | 画像処理装置 | |
JP5331432B2 (ja) | 画像処理装置および画像処理方法 | |
JP4809412B2 (ja) | 画像処理装置および画像処理方法 | |
JP3548648B2 (ja) | 描画装置及び描画方法 | |
CN103546159A (zh) | 模板数据压缩系统和方法和包含其的图形处理单元 | |
JP2004328178A (ja) | 画像処理装置 | |
JPH08110952A (ja) | テクスチャマッピング装置 | |
KR101663023B1 (ko) | 그래픽 처리 장치 및 방법 | |
JP4390822B2 (ja) | 画像処理装置 | |
JP5467083B2 (ja) | 画像処理装置、画像処理方法、および画像のデータ構造 | |
JP2003196674A (ja) | 画像処理方法、画像処理装置及びコンピュータ読み取り可能記憶媒体 | |
JP2001054112A (ja) | 画像生成方法、画像生成装置、画像閲覧方法、画像閲覧装置、及び、記録媒体 | |
JP2007026473A (ja) | 描画装置及び描画方法 |