JP4877118B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP4877118B2
JP4877118B2 JP2007187687A JP2007187687A JP4877118B2 JP 4877118 B2 JP4877118 B2 JP 4877118B2 JP 2007187687 A JP2007187687 A JP 2007187687A JP 2007187687 A JP2007187687 A JP 2007187687A JP 4877118 B2 JP4877118 B2 JP 4877118B2
Authority
JP
Japan
Prior art keywords
boundary
image data
buffer
sprite
bfs
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.)
Active
Application number
JP2007187687A
Other languages
English (en)
Other versions
JP2009027391A (ja
Inventor
英樹 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2007187687A priority Critical patent/JP4877118B2/ja
Publication of JP2009027391A publication Critical patent/JP2009027391A/ja
Application granted granted Critical
Publication of JP4877118B2 publication Critical patent/JP4877118B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

この発明は、バイリニアフィルタ処理などの補間処理を伴う描画処理機能を備えた画像処理装置に関する。
ゲーム機等においては、スプライトの描画処理機能を備えた画像処理装置が一般に用いられている。この種の画像処理装置は、ゲームのキャラクタ等の各種のスプライトの画像を記憶したスプライトメモリと描画処理部を備えている。そして、描画処理部は、ホストCPUから指令に従って、スプライトの画像データをスプライトメモリから読み出し、フレームメモリ内の表示対象の画像データに反映させる描画処理を実行する。この描画処理の際、スプライトの画像を本来のものから拡大し、縮小し、あるいは回転(以下、拡大等という)させた画像データを生成し、この画像データをフレームメモリ内の画像データに反映させる場合がある。ここで、画像を拡大等して表示装置に表示する場合、画像を構成する画素の位置は表示装置の画素位置からずれる。しかし、画素位置の固定された表示装置に表示させる以上、表示装置の画素位置に対応した画像データが必要である。そこで、拡大等のなされた画像を構成する各画素を用いて表示装置の各画素位置に対応した画像データを求める補間処理が行われる。
この補間処理の例として、バイリニアフィルタ処理がある。ここで、図8を参照し、このバイリニアフィルタ処理の処理内容を説明する。このバイリニアフィルタ処理では、拡大等のなされた画像を構成する各画素のうち表示装置の画素位置PP(x、y)を囲む周囲4画素A、B、C、Dの画像データを用いて、次式に示す演算を行い、表示装置の画素位置PP(x、y)に対応した画像データRGB(x、y)を算出する。なお、以下では、図8における画素Aに相当するものを基準画素という。
RGB(x、y)
=(1−p)(1−q)A+p(1−q)B+(1−p)qC+pqD ……(1)
ただし、上記式(1)において、pおよびqは、画素位置間隔A−B、C−D、A−C、B−Dを1とした場合における座標値xおよびyの小数部である。
なお、バイリニアフィルタを用いた描画処理に関する文献としては、例えば特許文献1がある。
さて、以上のようなバイリニアフィルタ処理を実行するために、描画処理部は、描画対象である1つの画素位置PP(x、y)当たり4個の画素(図8では画素A、B、C、D)の画像データをスプライトメモリから読み出す必要がある。しかし、1つの画素位置PP(x、y)毎にその周囲4個の画素の画像データをスプライトメモリから読み出したのでは、スプライトメモリへのアクセス頻度が高くなり、処理の効率が悪化する。そこで、従来の画像処理装置では、次のようにして、スプライトメモリへのアクセスおよびバイリニアフィルタ処理を実行していた。
まず、図9(a)および(b)は、スプライトメモリにおける画像データの記憶状態を各々示すものである。図示の例において、スプライトメモリは、スプライトの画像を水平方向に連続して並んだ8画素の集まりに分割して記憶し、8画素単位で画像データの読み出しが可能な構成となっている。図9(a)および(b)において、B0〜B5は、各々1回のアクセスで読み出すことが可能な8画素分の画像データであり、以下、バウンダリと呼ぶ。
図9(a)に示す例では、描画処理部は、4個のバウンダリB0、B1、B3、B4をスプライトメモリから読み出し、内蔵のレジスタに取り込んでいる。この状態において、描画処理部は、バウンダリB0の画素0〜7を各々基準画素とし、各基準画素と、その右側、その下側および右下の各画素の画像データを用いて、最大8画素位置分のバイリニアフィルタ処理を実行する。さらに詳述すると、描画処理部は、レジスタに取り込んだバウンダリB0およびその下側のバウンダリB3を参照することにより、バウンダリB0の画素0〜6を各々基準画素とする各バイリニアフィルタ処理を実行する。また、描画処理部は、レジスタに取り込んだバウンダリB0の画素7、バウンダリB1の画素0、バウンダリB3の画素7およびバウンダリB4の画素0を参照することにより、バウンダリB0の画素7を基準画素とする各バイリニアフィルタ処理を実行する。
以上のようにしてバウンダリB0の画素0〜7を各々基準画素とするバイリニアフィルタ処理を実行した後、右隣のバウンダリB1の画素0〜7を各々基準画素とするバイリニアフィルタ処理を実行する場合、描画処理部は、図9(b)に示すように4個のバウンダリB1、B2、B4、B5をスプライトメモリから読み出して、内蔵のレジスタに取り込む。そして、上述と同様、最大8画素位置分のバイリニアフィルタ処理を実行する。
特開2006−18382号公報
ところで、上述した従来の画像処理装置では、描画処理部は、バイリニアフィルタ処理における基準画素があるバウンダリから隣のバウンダリに移動するときに、その都度、新たな基準画素を含むバウンダリと、その周囲の3個のバウンダリからなる合計4個のバウンダリの画像データをスプライトメモリから読み出していた。しかし、基準画素が隣のバウンダリに移動した後、スプライトメモリから読み出されるバウンダリには、基準画素が移動する前に既にスプライトメモリから読み出されたバウンダリと重複する部分がある。例えば、図9(a)および(b)におけるバウンダリB1およびB4である。従来の画像処理装置では、このように描画処理部がバイリニアフィルタ処理のためにスプライトメモリから画像データを読み出す場合において、直前のバイリニアフィルタ処理のために読み出した画像データと一部重複する画像データを読み出しており、このため、スプライトメモリへのアクセス回数が増え、描画処理の効率が低下するという問題があった。
この発明は、以上説明した事情に鑑みてなされたものであり、スプライトメモリにおける重複した画像データの読み出しを回避し、効率的な描画処理を実行することができる画像処理装置を提供することを目的としている。
この発明は、スプライトの画像データを記憶するスプライトメモリと、表示装置に表示する画像データを記憶するフレームメモリと、スプライトの画像データを前記フレームメモリ内の画像データに反映させる描画処理であって、複数画素の画像データを用いた補間処理を含む描画処理を実行する描画処理部と、前記スプライトメモリから読み出された画像データを記憶し、前記描画処理部に提供する描画用バッファ部と、前記補間処理に使用される可能性があり、かつ、前記描画用バッファ部に格納されていない画像データを前記スプライトメモリから読み出し、前記描画用バッファ部に格納するバッファリング制御部とを具備することを特徴とする画像処理装置を提供する。
かかる発明によれば、補間処理に使用される可能性があり、かつ、描画用バッファ部に格納されていない画像データがバッファリング制御部によってスプライトメモリから読み出され、描画用バッファ部に格納され、この描画用バッファ部内の画像データが補間処理に使用される。従って、スプライトメモリにおける重複した画像データの読み出しを回避し、描画処理を効率的に進めることができる。
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態である画像処理装置の構成を示すブロック図である。この画像処理装置は、パチンコなどのゲーム機における画像処理を行う装置である。本実施形態の特徴は、この画像処理のうち各種のキャラクタを示すスプライト画像の描画処理のための画像データの読み出し制御にある。このため、図1では、描画処理に関連した部分のみが図示され、描画処理との関連性の薄い部分の図示は省略されている。
図1に示すように、本実施形態における画像処理装置は、スプライトメモリ1と、描画用バッファ部2と、バッファリング制御部3と、描画処理部4と、フレームメモリ5と、表示制御部6と、表示装置7とを有している。ここで、フレームメモリ5は、表示装置7に表示する画像データを記憶するメモリであり、RAM等により構成されている。表示制御部6は、一定時間長の垂直走査周期毎にフレームメモリ5に記憶された画像データを表示装置7に表示する制御を繰り返す。表示装置7は、例えば液晶パネルとその駆動装置により構成されている。
スプライトメモリ1は、ゲームのキャラクタ等のスプライトの画像データを記憶するメモリであり、例えばROMにより構成されている。図2は、このスプライトメモリ1における画像データの記憶状態を示すものである。上述した従来の画像処理装置におけるスプライトメモリと同様、本実施形態におけるスプライトメモリも、スプライトの画像データを水平方向に連続して並んだ8画素からなるバウンダリに分割して、各バウンダリの画像データを記憶しており、バウンダリ単位で画像データの読み出しが可能な構成となっている。また、スプライトメモリ1内において、各バウンダリは、水平方向のアドレスBXと垂直方向のアドレスBYの組により特定される。
図1において、描画処理部4は、図示しないホストCPUからの指示に従い、描画用バッファ部2およびバッファリング制御部3を介してスプライトメモリ1からスプライトの画像データを取得し、フレームメモリ5内の画像データに反映させる描画処理を実行する装置である。ここで、描画処理は、スプライトの画像の拡大、縮小、回転等を含む場合がある。その場合、描画処理部4は、バイリニアフィルタ処理を実行し、スプライトメモリ1から取得した画像データから描画対象の画素位置(表示装置7の画素位置)に対応した画像データを生成する。このバイリニアフィルタ処理を実行するために、描画処理部4は、基準バウンダリB0のアドレスBX、BYを管理する。ここで、基準バウンダリB0は、バイリニア処理が必要とする4画素のうちの基準画素、すなわち、描画対象の画素位置の左上の画素(前掲図8の画素Aに相当する画素)が属するバウンダリである。この基準バウンダリB0が変化したとき、描画処理部4は、変化後の基準バウンダリB0のアドレスBX、BYをバッファリング制御部3に送信する。
描画用バッファ部2は、スプライトメモリ1から読み出された画像データを記憶し、描画処理部4に提供する装置である。また、バッファリング制御部3は、バイリニアフィルタ処理に使用される可能性があり、かつ、描画用バッファ部2に格納されていない画像データが発生した場合に、その画像データをスプライトメモリ1から読み出し、描画用バッファ部2に格納する装置である。
本実施形態における描画用バッファ部2は、各々1バウンダリ(8画素)分の画像データを記憶可能な容量を有する4個のバッファBUFn(n=0〜3)を有している。ここで、4個のバッファBUFn(n=0〜3)が描画用バッファ部2に設けられているのは、描画処理部4がバイリニアフィルタ処理に使用する4画素の画像データが、互いに異なる4個のバウンダリに属する場合があるからである。
バッファリング制御部3は、バッファBUFn(n=0〜3)がバイリニアフィルタ処理に使用される可能性のある4個のバウンダリの画像データを格納した状態になるように、バッファBUFn(n=0〜3)の書き換え制御を行う。本実施形態においてバッファリング制御部3は、図3に示すように、基準バウンダリB0(アドレス=BX、BY)と、基準バウンダリB0の右のバウンダリB1(アドレス=BX+1、BY)と、基準バウンダリB0の下のバウンダリB2(アドレス=BX、BY+1)と、基準バウンダリB0の右下のバウンダリB3(アドレス=BX+1、BY+1)を、バイリニアフィルタ処理に画像データが使用される可能性のあるバウンダリとして取り扱う。これらの4個のバウンダリは、描画処理部4により基準バウンダリB0のアドレスBX、BYが指定された時点において定まる。バッファリング制御部3は、描画処理部4から基準バウンダリB0のアドレスBX、BYを受け取ったとき、アドレスBX、BYの前回からの変化分ΔBX、ΔBYに基づき、これらの4個のバウンダリのうちアクセスバウンダリであるものと非アクセスバウンダリであるものを判定する。ここで、アクセスバウンダリとは、4個のバッファBUFn(n=0〜3)のいずれにも画像データが記憶されておらず、そのバウンダリの画像データをスプライトメモリ1から読み出して4個のバッファBUFn(n=1〜n)のいずれかに格納しなければならないバウンダリである。また、非アクセスバウンダリは、既にそのバウンダリの画像データが4個のバッファBUFn(n=1〜n)のいずれかに格納されており、スプライトメモリ1から画像データを読み出す必要がないバウンダリである。
また、バッファリング制御部3は、バッファ状態情報BFSを管理している。このバッファ状態情報BFSは、4個のバッファBUFn(n=0〜3)の記憶状態、すなわち、各バッファBUFn(n=0〜3)が基準バウンダリB0、基準バウンダリB0の右のバウンダリB1、基準バウンダリB0の下のバウンダリB2、基準バウンダリB0の右下のバウンダリB3のいずれのバウンダリの画像データを記憶しているかを示す情報である。そして、バッファリング制御部3は、このバッファ状態情報BFSを参照することにより、4個のバッファBUFn(n=0〜3)のうち非アクセスバウンダリの画像データを記憶しているバッファ以外のバッファを求め、このバッファを空きバッファとし、アクセスバウンダリの画像データをスプライトメモリ1から読み出して空きバッファに格納する。
また、バッファリング制御部3は、アクセスバウンダリの画像データをスプライトメモリ1から読み出して、描画用バッファ部2の空きバッファに格納するときに、描画用バッファ部2におけるバッファBUFn(n=0〜3)の新たな記憶状態に合わせてバッファ状態情報BFSを更新し、このバッファ状態情報BFSを描画処理部4に送信する。描画処理部4は、このようにしてバッファリング制御部3から与えられるバッファ状態情報BFSに基づいて、バイリニアフィルタ処理に用いる4画素の画像データを各々記憶しているバッファを判定し、そのバッファから画像データを読み出す。
以上が本実施形態における画像処理装置の構成の詳細である。
次に、描画処理部4がバイリニアフィルタ処理を実行しているときのバッファリング制御部3の動作を中心に、本実施形態の動作を説明する。描画処理部4は、バイリニアフィルタ処理の実行中に、基準画素を含む基準バウンダリB0のアドレスBX、BYを監視し、アドレスBX、BYが変化した場合に、この変化後のアドレスBX、BYをバッファリング制御部3に送信する。バッファリング制御部3は、この基準バウンダリB0のアドレスBX、BYを受信すると、図4にフローを示すルーチンを実行する。すなわち、バッファリング制御部3は、基準バウンダリB0のアドレスBX、BYを受信する毎に、バウンダリ判定処理S1と、バウンダリ読み出し処理S2と、BFS送信処理S3を順次実行する。
バウンダリ判定処理S1では、新たに受信した基準バウンダリのアドレスBX、BYと現在におけるバッファ状態情報BFSとに基づき、アクセスバウンダリと非アクセスバウンダリを判定する。また、バウンダリ判定処理S1では、バッファBUFn(n=0〜3)のうちアクセスバウンダリの画像データの格納先となる空きバッファを判定する。以下、前掲図3および図5〜図7を参照し、このバウンダリ判定処理S1の内容について説明する。ここで、図5は、描画用バッファ部2の4個のバッファBUFn(n=0〜3)がとりうる記憶状態とバッファ状態情報BFSとの関係を示す図、図6は基準バウンダリB0の移動に伴って発生するアクセスバウンダリと非アクセスバウンダリを示す図、図7は基準バウンダリB0の移動に伴うバッファBUFn(n=0〜3)の記憶状態の変化を示す図である。
既に図3を参照して説明したように、バイリニアフィルタ処理では、4個のバウンダリB0〜B3の画像データが使用される可能性がある。これらの4個のバウンダリB0〜B3のいずれがアクセスバウンダリであり、いずれが非アクセスバウンダリであるかは基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYにより定まる。
基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYのうち少なくとも一方の絶対値が2以上である場合、基準バウンダリB0(アドレス=BX、BY)、バウンダリB1(アドレス=BX+1、BY)、バウンダリB2(アドレス=BX、BY+1)、バウンダリB3(アドレス=BX+1、BY+1)の全てがアクセスバウンダリである。この場合、バッファリング制御部3は、バッファBUFn(n=0〜3)の全てを空きバッファと判定し、アクセスバウンダリBk(k=0〜3)の画像データの格納先を各々バッファBUFn(n=0〜3)とする。
一方、基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYの両方の絶対値が1以下である場合、いずれがアクセスバウンダリであり、いずれが非アクセスバウンダリであるかは、図6に示すように基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYの内容により定まる。この図6において、バウンダリの名称(B0等)が記入され、ハッチングの施されている部分がアクセスバウンダリであり、バウンダリの名称が記入され、ハッチングの施されていない部分が非アクセスバウンダリである。また、図6において、非アクセスバウンダリについてはその非アクセスバウンダリが移動前においてバウンダリB0〜B3のいずれのバウンダリであったかが括弧書きで示されている。
図6に示すように、変化分ΔBX、ΔBYの両方の絶対値が1以下である場合、基準バウンダリB0の移動方向は、(1)〜(8)の8通りある。これらの8方向について、アクセスバウンダリの発生状況を要約すると次の通りである。
a.ΔBX=+1、ΔBY=±1である場合、バウンダリBk(k=0〜3)のうち2ビットで表わされるバウンダリ番号k[1:0]の第0ビットk[0]が1であるバウンダリBk(すなわち、B1、B3)はアクセスバウンダリとなる。
b.ΔBX=−1、ΔBY=±1である場合、バウンダリ番号k[1:0]の第0ビットk[0]が0であるバウンダリBk(すなわち、B0、B2)はアクセスバウンダリとなる。
c.ΔBX=±1、ΔBY=+1である場合、バウンダリ番号k[1:0]の第1ビットk[1]が0であるバウンダリBk(すなわち、B0、B1)はアクセスバウンダリとなる。
d.ΔBX=±1、ΔBY=−1である場合、バウンダリ番号k[1:0]の第1ビットk[1]が1であるバウンダリBk(すなわち、B2、B3)はアクセスバウンダリとなる。
e.移動後のバウンダリのうち、上記a〜dに該当せず、アクセスバウンダリにならなかったものが非アクセスバウンダリとなる。
また、移動後に非アクセスバウンダリとなるバウンダリに着目すると、次のことが分かる。
f.x軸方向の移動があった場合(ΔBX=±1である場合)、移動に伴い、バウンダリBkのバウンダリ番号kの第0ビットk[0]が反転する。
g.y軸方向の移動があった場合(ΔBY=±1である場合)、移動に伴い、バウンダリBkのバウンダリ番号kの第1ビットk[1]が反転する。
h.x軸方向およびy軸方向の移動があった場合(ΔBX=±1であり、かつ、ΔBY=±1である場合)、移動に伴い、バウンダリBkのバウンダリ番号kの第0ビットk[0]および第1ビットk[0]の両方が反転する。
次に、基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYの両方の絶対値が1以下である場合における空きバッファの判定方法について説明する。本実施形態において、バッファBUFn(n=0〜3)の各々にバウンダリB0〜B3のいずれの画像データを記憶させるかに関しては、図5に示す4通りの記憶状態しか許容していない。そして、この4つの記憶状態にバッファ状態情報BFS=0〜3を各々割り当てている。
図5において、BFS=0=00bの状態は、バッファBUF0にバウンダリB0、バッファBUF1にバウンダリB1、バッファBUF2にバウンダリB2、バッファBUF3にバウンダリB3の各画像データが記憶された状態である。基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYのうち少なくとも一方の絶対値が2以上である場合には、上述した通り、アクセスバウンダリであるバウンダリB0〜B3の画像データが空きバッファであるバッファBUFn(n=0〜3)に格納され、このBFS=0の状態とされる。
BFS=1=01bの状態は、バッファBUF0にバウンダリB1、バッファBUF1にバウンダリB0、バッファBUF2にバウンダリB3、バッファBUF3にバウンダリB2の各画像データが記憶された状態である。BFS=0の状態において、各バッファBUFn(n=0〜3)に記憶されているバウンダリBk(k=0〜3)の画像データの代わりに、2ビットで表現されるバウンダリ番号k=00b、01b、10b、11bの第0ビットを各々反転したバウンダリk’=01b、00b、11b、10bのバウンダリBk’の画像データを格納すると、このBFS=1の状態となる。
BFS=2=10bの状態は、バッファBUF0にバウンダリB2、バッファBUF1にバウンダリB3、バッファBUF2にバウンダリB0、バッファBUF3にバウンダリB1の各画像データが記憶された状態である。BFS=0の状態において、各バッファBUFn(n=0〜3)に記憶されているバウンダリBk(k=0〜3)の画像データの代わりに、2ビットで表現されるバウンダリ番号k=00b、01b、10b、11bの第1ビットを各々反転したバウンダリk’=10b、11b、00b、01bのバウンダリBk’の画像データを格納すると、このBFS=2の状態となる。
BFS=3=11bの状態は、バッファBUF0にバウンダリB3、バッファBUF1にバウンダリB2、バッファBUF2にバウンダリB1、バッファBUF3にバウンダリB0の各画像データが記憶された状態である。BFS=0の状態において、各バッファBUFn(n=0〜3)に記憶されているバウンダリBk(k=0〜3)の画像データの代わりに、2ビットで表現されるバウンダリ番号k=00b、01b、10b、11bの第0ビットおよび第1ビットの両方を各々反転したバウンダリk’=11b、10b、01b、00bのバウンダリBk’の画像データを格納すると、このBFS=3の状態となる。
本実施形態において、バッファBUFn(n=0〜3)の記憶状態を以上の4通りに制限しているのは、基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYの両方の絶対値が1以下である場合において、バッファBUFn(n=0〜3)のうちのいずれのバッファが空きバッファとなるかが変化分ΔBX、ΔBYから一義的に定まるようにするためである。また、基準バウンダリB0のアドレスBX、BYの前回からの変化分ΔBX、ΔBYの両方の絶対値が1以下である場合には、基準バウンダリB0の移動方向は、図6に示す(1)〜(8)の8通りであり、バッファBUFn(n=0〜3)の記憶状態として4通りの記憶状態を認めれば、この8通りの移動の全てに対応することができるからである。図7は、一例として、バッファBUFn(n=0〜3)が図6の中央に図示されたバウンダリB0〜B3の画像データを各々記憶したBFS=0の初期状態から、図6の(1)〜(8)に示す基準バウンダリB0の移動が行われた各場合について、バッファBUFn(n=0〜3)の記憶状態の変化を示している。図示は省略するが、初期状態がBFS=1、BFS=2、BFS=3の場合においても、図6の(1)〜(8)の8通りの移動があった場合には、移動後のバッファBUFn(n=0〜3)の記憶状態はBFS=0〜3のいずれかの状態になる。
本実施形態において、バッファリング制御部3は、基準バウンダリB0の移動がx軸方向である場合(ΔBX=+1または−1である場合)、次のように、2ビットで表現されるバッファ状態情報BFSの第0ビットを反転して、移動後のバッファ状態情報BFSを求める。この場合、移動後において各バッファBUFn(n=0〜3)に記憶される画像データのバウンダリ番号kは、移動前のバウンダリ番号kの第0ビットk[0]を反転したものとなる。
<移動前のBFS> <移動後のBFS>
BFS=00b BFS=01b
BFS=01b BFS=00b
BFS=10b BFS=11b
BFS=11b BFS=10b
また、本実施形態において、バッファリング制御部3は、基準バウンダリB0の移動がy軸方向である場合(ΔBY=+1または−1である場合)、次のように、2ビットで表現されるバッファ状態情報BFSの第1ビットを反転して、移動後のバッファ状態情報BFSを求める。この場合、移動後において各バッファBUFn(n=0〜3)に記憶される画像データのバウンダリ番号kは、移動前のバウンダリ番号kの第1ビットk[1]を反転したものとなる。
<移動前のBFS> <移動後のBFS>
BFS=00b BFS=10b
BFS=01b BFS=11b
BFS=10b BFS=00b
BFS=11b BFS=01b
また、本実施形態において、バッファリング制御部3は、基準バウンダリB0の移動がx軸方向およびy軸方向の両方の成分を含む場合(ΔBX=+1または−1であり、かつ、ΔBY=+1または−1である場合)、次のように、2ビットで表現されるバッファ状態情報BFSの第0ビット、第1ビットの両方を反転して、移動後のバッファ状態情報BFSを求める。この場合、移動後において各バッファBUFn(n=0〜3)に記憶される画像データのバウンダリ番号kは、移動前のバウンダリ番号kの第0ビットk[0]および第1ビットk[1]の両方を反転したものとなる。
<移動前のBFS> <移動後のBFS>
BFS=00b BFS=11b
BFS=01b BFS=10b
BFS=10b BFS=01b
BFS=11b BFS=00b
そして、バッファリング制御部3は、次のように移動前のバッファ状態情報BFSと、基準バウンダリB0のアドレスの変化分ΔBX、ΔBYから空きバッファを求める。まず、ΔBX=±1、ΔBY=0である場合、バッファリング制御部3は、移動前のバッファ状態情報BFSにより定まるバッファBUFn(n=0〜3)内のバウンダリBkの番号kを求め、2ビットで表現される番号kの第0ビットk[0]にΔBXを加算する。そして、各バッファBUFnのうち、この加算結果の第1ビットが0であるものは空きバッファであると判断する。一例を示すと、次の通りである。
<移動前のBFS=0、ΔBX=±1、ΔBY=0の場合>
BUFn Bk k[0]+ΔBX(=+1) k[0]+ΔBX(=−1)
BUF0 B0 0+1=01b 空き 0−1=11b
BUF1 B1 1+1=10b 1−1=00b 空き
BUF2 B2 0+1=01b 空き 0−1=11b
BUF3 B3 1+1=10b 1−1=00b 空き
<移動前のBFS=1、ΔBX=±1、ΔBY=0の場合>
BUFn Bk k[0]+ΔBX(=+1) k[0]+ΔBX(=−1)
BUF0 B1 1+1=10b 1−1=00b 空き
BUF1 B0 0+1=01b 空き 0−1=11b
BUF2 B3 1+1=10b 1−1=00b 空き
BUF3 B2 0+1=01b 空き 0−1=11b
バッファリング制御部3は、以上のような演算を行うことにより、ΔBX=+1、ΔBY=0の場合には、移動前にバウンダリB0、B2の画像データを記憶していたバッファを空きバッファと判定し、ΔBX=−1、ΔBY=0の場合には、移動前にバウンダリB1、B3の画像データを記憶していたバッファを空きバッファと判定する。
次に、ΔBX=0、ΔBY=±1、である場合、バッファリング制御部3は、移動前のバッファ状態情報BFSにより定まるバッファBUFn(n=0〜3)内のバウンダリBkの番号kを求め、2ビットで表現される番号kの第1ビットk[1]にΔBYを加算する。そして、各バッファBUFnのうち、この加算結果の第1ビットが0であるものは空きバッファであると判断する。一例を示すと、次の通りである。
<移動前のBFS=0、ΔBX=0、ΔBY=±1の場合>
BUFn Bk k[1]+ΔBY(=+1) k[1]+ΔBY(=−1)
BUF0 B0 0+1=01b 空き 0−1=11b
BUF1 B1 0+1=01b 空き 0−1=11b
BUF2 B2 1+1=10b 1−1=00b 空き
BUF3 B3 1+1=10b 1−1=00b 空き
<移動前のBFS=2、ΔBX=0、ΔBY=±1の場合>
BUFn Bk k[1]+ΔBY(=+1) k[1]+ΔBY(=−1)
BUF0 B2 1+1=10b 1−1=00b 空き
BUF1 B3 1+1=10b 1−1=00b 空き
BUF2 B0 0+1=01b 空き 0−1=11b
BUF3 B1 0+1=01b 空き 0−1=11b
バッファリング制御部3は、以上のような演算を行うことにより、ΔBX=0、ΔBY=+1の場合には、移動前にバウンダリB0、B1の画像データを記憶していたバッファを空きバッファと判定し、ΔBX=0、ΔBY=−1の場合には、移動前にバウンダリB2、B3の画像データを記憶していたバッファを空きバッファと判定する。
次に、ΔBX=±1であり、かつ、ΔBY=±1である場合、バッファリング制御部3は、移動前のBFSを用いて、上記ΔBX=±1、ΔBY=0の場合の判定と、上記ΔBX=0、ΔBY=±1の場合の判定の両方を行い、バッファBUFn(n=0〜3)のうちいずれかの判定において空きバッファとされたものを空きバッファとする。
以上が図4におけるバウンダリ判定処理S1の詳細である。
バウンダリ判定処理S1が終了すると、バッファリング制御部3は、バウンダリ読み出し処理S2を実行する。このバウンダリ読み出し処理S2では、バウンダリ判定処理S1において求めたアクセスバウンダリの画像データをスプライトメモリ1から読み出し、バッファBUFn(n=0〜3)のうちバウンダリ判定処理S1において求めた空きバッファに格納する。各アクセスバウンダリの画像データを各空きバッファのいずれに格納するかは、バウンダリ判定処理S1において求められた移動後のバッファ状態情報BFSに従って決定される。
バウンダリ読み出し処理S2が終了すると、バッファリング制御部3は、BFS送信処理S3を実行し、バウンダリ判定処理S1において求めた移動後のバッファ状態情報BFSを描画処理部4に送信する。そして、バッファリング制御部3は、図4に示すルーチンを終了する。
描画処理部4は、以上のようにして描画用バッファ部2に格納された画像データを使用してバイリニアフィルタ処理を実行する。その際、描画処理部4は、バッファリング制御部3から受信したバッファ状態情報BFSに基づき、バイリニアフィルタ処理に使用する4画素の画像データがバッファBUFn(n=0〜3)のいずれに格納されているかを判断する。
以上のように、本実施形態によれば、バイリニアフィルタ処理に使用される可能性があり、かつ、描画用バッファ部2に格納されていない画像データがバッファリング制御部3によってスプライトメモリ1から読み出され、描画用バッファ部2に格納され、この描画用バッファ部2内の画像データがバイリニアフィルタ処理に使用される。従って、スプライトメモリ1における重複した画像データの読み出しを回避し、描画処理を効率的に進めることができる。
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば次の通りである。
(1)上記実施形態では、基準バウンダリのアドレスBX、BYが変化したとき、描画処理部4が変化後のアドレスBX、BYをバッファリング制御部3に送信したが、描画処理部4は基準バウンダリのアドレスBX、BYを常時送信し、バッファリング制御部3がアドレスBX、BYの変化を検知して、前掲図4の処理を実行してもよい。
(2)上記実施形態では、描画処理部4は、補間処理として、4画素の画像データを用いるバイリニアフィルタ処理を実行したが、他の種類の補間処理を実行してもよい。また、補間処理に使用する画像データの画素数は4画素でなくてもよい。
(3)上記実施形態では、補間処理に使用する画素数と同じ数のバッファを描画用バッファ部2に設けたが、補間処理に使用する画素数以上の個数のバッファを描画用バッファ部2に設けて、画像データのバッファリングに使用してもよい。
この発明の一実施形態である画像処理装置の構成を示すブロック図である。 同実施形態におけるスプライトメモリ1の画像データの記憶状態を示す図である。 同実施形態において基準バウンダリB0とバイリニファフィルタ処理に画像データが使用される可能性のある4個のバウンダリB0〜B3の関係を示す図である。 同実施形態においてバッファリング制御部3が実行するルーチンの処理内容を示すフローチャートである。 同実施形態において描画用バッファ部3の4個のバッファBUFn(n=0〜3)がとりうる記憶状態とバッファ状態情報BFSとの関係を示す図である。 同実施形態において基準バウンダリB0の移動に伴って発生するアクセスバウンダリと非アクセスバウンダリを示す図である。 同実施形態において基準バウンダリB0の移動に伴うバッファBUFn(n=0〜3)の記憶状態の変化を示す図である。 バイリニアフィルタ処理の処理内容を説明する図である。 従来の画像処理装置におけるスプライトメモリからの画像データの読み出し動作を示す図である。
符号の説明
1……スプライトメモリ、2……描画用バッファ部、BUFn(n=0〜3)……バッファ、3……バッファリング制御部、4……描画処理部、5……フレームメモリ、6……表示制御部、7……表示装置。

Claims (4)

  1. スプライトの画像を連続した複数画素からなるバウンダリに分割して、各バウンダリの画像データを記憶し、バウンダリ単位で画像データの読み出しが可能なスプライトメモリと、
    表示装置に表示する画像データを記憶するフレームメモリと、
    スプライトの画像データを前記フレームメモリ内の画像データに反映させる描画処理であって、水平方向および垂直方向に並んだ複数画素の画像データを用いた補間処理を含む描画処理を実行する描画処理部と、
    1バウンダリ分の画像データを記憶可能なバッファを複数有し、前記スプライトメモリから読み出された画像データを各バッファに記憶し、前記描画処理部に提供する描画用バッファ部と、
    前記スプライトメモリに記憶された1または複数バウンダリの画像データであって、前記補間処理に使用される可能性があり、かつ、前記複数のバッファのいずれにも記憶されていないものが発生した場合に、当該画像データを前記スプライトメモリから読み出し、前記複数のバッファのうち前記補間処理に使用される可能性のある画像データを記憶していないバッファに格納するバッファリング制御部と
    を具備することを特徴とする画像処理装置。
  2. 前記描画処理部は、水平方向および垂直方向に並んだN画素(Nは複数)の画像データを用いた補間処理を実行するものであり、
    前記スプライトメモリは、前記スプライトの画像を連続したM画素(Mは複数)からなるバウンダリに分割して、各バウンダリの画像データを記憶し、バウンダリ単位で画像データの読み出しが可能なメモリであり、
    前記描画用バッファ部は、1バウンダリ分の画像データを記憶可能なバッファを少なくともN個有することを特徴とする請求項1に記載の画像処理装置。
  3. 前記バッファリング制御部は、前記複数のバッファの各々にいずれのバウンダリの画像データが記憶されているかを示すバッファ状態情報を前記描画処理部に出力し、前記描画処理部は、前記バッファ状態情報に基づいて、前記補間処理に用いる複数画素分の画像データを各々記憶しているバッファを判定することを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記バッファリング制御部は、前記補間処理に画像データを使用する複数画素のうちの1つの基準画素が属するバウンダリである基準バウンダリのアドレスの変化に基づき、前記補間処理に使用される可能性があり、かつ、前記複数のバッファのいずれにも記憶されていないものの発生を検知するとともに、前記複数のバッファのうち前記補間処理に使用される可能性のある画像データを記憶していないバッファを判定することを特徴とする請求項1〜3のいずれか1の請求項に記載の画像処理装置。
JP2007187687A 2007-07-18 2007-07-18 画像処理装置 Active JP4877118B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007187687A JP4877118B2 (ja) 2007-07-18 2007-07-18 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007187687A JP4877118B2 (ja) 2007-07-18 2007-07-18 画像処理装置

Publications (2)

Publication Number Publication Date
JP2009027391A JP2009027391A (ja) 2009-02-05
JP4877118B2 true JP4877118B2 (ja) 2012-02-15

Family

ID=40398794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007187687A Active JP4877118B2 (ja) 2007-07-18 2007-07-18 画像処理装置

Country Status (1)

Country Link
JP (1) JP4877118B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048655A (ja) * 2004-06-29 2006-02-16 Canon Inc 画像処理回路、電子機器、及び画像処理方法
JP4466234B2 (ja) * 2004-06-30 2010-05-26 ヤマハ株式会社 画像処理方法および装置
JP4734952B2 (ja) * 2005-02-21 2011-07-27 ヤマハ株式会社 画像処理方法および装置

Also Published As

Publication number Publication date
JP2009027391A (ja) 2009-02-05

Similar Documents

Publication Publication Date Title
JP5091220B2 (ja) テクスチャ情報をコード化するための方法および装置
JP4776592B2 (ja) 画像生成装置、画像生成方法および画像生成プログラム
KR100804898B1 (ko) 이미지 회전을 위한 방법 및 장치
JP5593060B2 (ja) 画像処理装置、および画像処理装置の動作方法
EP2790177A1 (en) Image processing apparatus and image processing method
JPH0863608A (ja) コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法
CN101075422A (zh) 用于显示旋转的图像的方法和设备
US20070172117A1 (en) Method and apparatus for scaling down a bayer domain image
JP4777893B2 (ja) 描画装置
JP3833212B2 (ja) 画像処理装置、画像処理プログラムおよび可読記録媒体
US20110032262A1 (en) Semiconductor integrated circuit for displaying image
JP5662418B2 (ja) 表示処理装置、表示処理方法、及び集積回路
JP4877118B2 (ja) 画像処理装置
JP5304443B2 (ja) 描画データ処理方法、図形描画システム、及び図形描画データ作成プログラム
KR20010092408A (ko) 그래픽 프로세서 및 그래픽처리 시스템
JP2017174019A (ja) 情報処理装置
CN115018713B (zh) 实现图形旋转的数据存储及访问方法、装置和存储介质
CN114461121B (zh) 一种基于虚拟图层实现uefi全屏显示的装置
US6002391A (en) Display control device and a method for controlling display
JP4707964B2 (ja) グラフィックス描画装置
JP5475859B2 (ja) 画像表示駆動装置
US6489967B1 (en) Image formation apparatus and image formation method
JP2024080249A (ja) 画像処理プログラム、画像処理方法および画像処理装置
JP4482996B2 (ja) データ記憶装置とその方法および画像処理装置
JP2008278442A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111114

R150 Certificate of patent or registration of utility model

Ref document number: 4877118

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532