(57)【特許請求の範囲】
【請求項１】
スプライトの画像を連続した複数画素からなるバウンダリに分割して、各バウンダリの画像データを記憶し、バウンダリ単位で画像データの読み出しが可能なスプライトメモリと、
表示装置に表示する画像データを記憶するフレームメモリと、
スプライトの画像データを前記フレームメモリ内の画像データに反映させる描画処理であって、水平方向および垂直方向に並んだ複数画素の画像データを用いた補間処理を含む描画処理を実行する描画処理部と、
１バウンダリ分の画像データを記憶可能なバッファを複数有し、前記スプライトメモリから読み出された画像データを各バッファに記憶し、前記描画処理部に提供する描画用バッファ部と、
前記スプライトメモリに記憶された１または複数バウンダリの画像データであって、前記補間処理に使用される可能性があり、かつ、前記複数のバッファのいずれにも記憶されていないものが発生した場合に、当該画像データを前記スプライトメモリから読み出し、前記複数のバッファのうち前記補間処理に使用される可能性のある画像データを記憶していないバッファに格納するバッファリング制御部と
を具備することを特徴とする画像処理装置。
【請求項２】
前記描画処理部は、水平方向および垂直方向に並んだＮ画素（Ｎは複数）の画像データを用いた補間処理を実行するものであり、
前記スプライトメモリは、前記スプライトの画像を連続したＭ画素（Ｍは複数）からなるバウンダリに分割して、各バウンダリの画像データを記憶し、バウンダリ単位で画像データの読み出しが可能なメモリであり、
前記描画用バッファ部は、１バウンダリ分の画像データを記憶可能なバッファを少なくともＮ個有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記バッファリング制御部は、前記複数のバッファの各々にいずれのバウンダリの画像データが記憶されているかを示すバッファ状態情報を前記描画処理部に出力し、前記描画処理部は、前記バッファ状態情報に基づいて、前記補間処理に用いる複数画素分の画像データを各々記憶しているバッファを判定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記バッファリング制御部は、前記補間処理に画像データを使用する複数画素のうちの１つの基準画素が属するバウンダリである基準バウンダリのアドレスの変化に基づき、前記補間処理に使用される可能性があり、かつ、前記複数のバッファのいずれにも記憶されていないものの発生を検知するとともに、前記複数のバッファのうち前記補間処理に使用される可能性のある画像データを記憶していないバッファを判定することを特徴とする請求項１〜３のいずれか１の請求項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バイリニアフィルタ処理などの補間処理を伴う描画処理機能を備えた画像処理装置に関する。
【背景技術】
【０００２】
ゲーム機等においては、スプライトの描画処理機能を備えた画像処理装置が一般に用いられている。この種の画像処理装置は、ゲームのキャラクタ等の各種のスプライトの画像を記憶したスプライトメモリと描画処理部を備えている。そして、描画処理部は、ホストＣＰＵから指令に従って、スプライトの画像データをスプライトメモリから読み出し、フレームメモリ内の表示対象の画像データに反映させる描画処理を実行する。この描画処理の際、スプライトの画像を本来のものから拡大し、縮小し、あるいは回転（以下、拡大等という）させた画像データを生成し、この画像データをフレームメモリ内の画像データに反映させる場合がある。ここで、画像を拡大等して表示装置に表示する場合、画像を構成する画素の位置は表示装置の画素位置からずれる。しかし、画素位置の固定された表示装置に表示させる以上、表示装置の画素位置に対応した画像データが必要である。そこで、拡大等のなされた画像を構成する各画素を用いて表示装置の各画素位置に対応した画像データを求める補間処理が行われる。
【０００３】
この補間処理の例として、バイリニアフィルタ処理がある。ここで、図８を参照し、このバイリニアフィルタ処理の処理内容を説明する。このバイリニアフィルタ処理では、拡大等のなされた画像を構成する各画素のうち表示装置の画素位置ＰＰ（ｘ、ｙ）を囲む周囲４画素Ａ、Ｂ、Ｃ、Ｄの画像データを用いて、次式に示す演算を行い、表示装置の画素位置ＰＰ（ｘ、ｙ）に対応した画像データＲＧＢ（ｘ、ｙ）を算出する。なお、以下では、図８における画素Ａに相当するものを基準画素という。
ＲＧＢ（ｘ、ｙ）
＝（１−ｐ）（１−ｑ）Ａ＋ｐ（１−ｑ）Ｂ＋（１−ｐ）ｑＣ＋ｐｑＤ    ……（１）
ただし、上記式（１）において、ｐおよびｑは、画素位置間隔Ａ−Ｂ、Ｃ−Ｄ、Ａ−Ｃ、Ｂ−Ｄを１とした場合における座標値ｘおよびｙの小数部である。
なお、バイリニアフィルタを用いた描画処理に関する文献としては、例えば特許文献１がある。
【０００４】
さて、以上のようなバイリニアフィルタ処理を実行するために、描画処理部は、描画対象である１つの画素位置ＰＰ（ｘ、ｙ）当たり４個の画素（図８では画素Ａ、Ｂ、Ｃ、Ｄ）の画像データをスプライトメモリから読み出す必要がある。しかし、１つの画素位置ＰＰ（ｘ、ｙ）毎にその周囲４個の画素の画像データをスプライトメモリから読み出したのでは、スプライトメモリへのアクセス頻度が高くなり、処理の効率が悪化する。そこで、従来の画像処理装置では、次のようにして、スプライトメモリへのアクセスおよびバイリニアフィルタ処理を実行していた。
【０００５】
まず、図９（ａ）および（ｂ）は、スプライトメモリにおける画像データの記憶状態を各々示すものである。図示の例において、スプライトメモリは、スプライトの画像を水平方向に連続して並んだ８画素の集まりに分割して記憶し、８画素単位で画像データの読み出しが可能な構成となっている。図９（ａ）および（ｂ）において、Ｂ０〜Ｂ５は、各々１回のアクセスで読み出すことが可能な８画素分の画像データであり、以下、バウンダリと呼ぶ。
【０００６】
図９（ａ）に示す例では、描画処理部は、４個のバウンダリＢ０、Ｂ１、Ｂ３、Ｂ４をスプライトメモリから読み出し、内蔵のレジスタに取り込んでいる。この状態において、描画処理部は、バウンダリＢ０の画素０〜７を各々基準画素とし、各基準画素と、その右側、その下側および右下の各画素の画像データを用いて、最大８画素位置分のバイリニアフィルタ処理を実行する。さらに詳述すると、描画処理部は、レジスタに取り込んだバウンダリＢ０およびその下側のバウンダリＢ３を参照することにより、バウンダリＢ０の画素０〜６を各々基準画素とする各バイリニアフィルタ処理を実行する。また、描画処理部は、レジスタに取り込んだバウンダリＢ０の画素７、バウンダリＢ１の画素０、バウンダリＢ３の画素７およびバウンダリＢ４の画素０を参照することにより、バウンダリＢ０の画素７を基準画素とする各バイリニアフィルタ処理を実行する。
【０００７】
以上のようにしてバウンダリＢ０の画素０〜７を各々基準画素とするバイリニアフィルタ処理を実行した後、右隣のバウンダリＢ１の画素０〜７を各々基準画素とするバイリニアフィルタ処理を実行する場合、描画処理部は、図９（ｂ）に示すように４個のバウンダリＢ１、Ｂ２、Ｂ４、Ｂ５をスプライトメモリから読み出して、内蔵のレジスタに取り込む。そして、上述と同様、最大８画素位置分のバイリニアフィルタ処理を実行する。
【特許文献１】特開２００６−１８３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上述した従来の画像処理装置では、描画処理部は、バイリニアフィルタ処理における基準画素があるバウンダリから隣のバウンダリに移動するときに、その都度、新たな基準画素を含むバウンダリと、その周囲の３個のバウンダリからなる合計４個のバウンダリの画像データをスプライトメモリから読み出していた。しかし、基準画素が隣のバウンダリに移動した後、スプライトメモリから読み出されるバウンダリには、基準画素が移動する前に既にスプライトメモリから読み出されたバウンダリと重複する部分がある。例えば、図９（ａ）および（ｂ）におけるバウンダリＢ１およびＢ４である。従来の画像処理装置では、このように描画処理部がバイリニアフィルタ処理のためにスプライトメモリから画像データを読み出す場合において、直前のバイリニアフィルタ処理のために読み出した画像データと一部重複する画像データを読み出しており、このため、スプライトメモリへのアクセス回数が増え、描画処理の効率が低下するという問題があった。
【０００９】
この発明は、以上説明した事情に鑑みてなされたものであり、スプライトメモリにおける重複した画像データの読み出しを回避し、効率的な描画処理を実行することができる画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
この発明は、スプライトの画像データを記憶するスプライトメモリと、表示装置に表示する画像データを記憶するフレームメモリと、スプライトの画像データを前記フレームメモリ内の画像データに反映させる描画処理であって、複数画素の画像データを用いた補間処理を含む描画処理を実行する描画処理部と、前記スプライトメモリから読み出された画像データを記憶し、前記描画処理部に提供する描画用バッファ部と、前記補間処理に使用される可能性があり、かつ、前記描画用バッファ部に格納されていない画像データを前記スプライトメモリから読み出し、前記描画用バッファ部に格納するバッファリング制御部とを具備することを特徴とする画像処理装置を提供する。
【００１１】
かかる発明によれば、補間処理に使用される可能性があり、かつ、描画用バッファ部に格納されていない画像データがバッファリング制御部によってスプライトメモリから読み出され、描画用バッファ部に格納され、この描画用バッファ部内の画像データが補間処理に使用される。従って、スプライトメモリにおける重複した画像データの読み出しを回避し、描画処理を効率的に進めることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態である画像処理装置の構成を示すブロック図である。この画像処理装置は、パチンコなどのゲーム機における画像処理を行う装置である。本実施形態の特徴は、この画像処理のうち各種のキャラクタを示すスプライト画像の描画処理のための画像データの読み出し制御にある。このため、図１では、描画処理に関連した部分のみが図示され、描画処理との関連性の薄い部分の図示は省略されている。
【００１３】
図１に示すように、本実施形態における画像処理装置は、スプライトメモリ１と、描画用バッファ部２と、バッファリング制御部３と、描画処理部４と、フレームメモリ５と、表示制御部６と、表示装置７とを有している。ここで、フレームメモリ５は、表示装置７に表示する画像データを記憶するメモリであり、ＲＡＭ等により構成されている。表示制御部６は、一定時間長の垂直走査周期毎にフレームメモリ５に記憶された画像データを表示装置７に表示する制御を繰り返す。表示装置７は、例えば液晶パネルとその駆動装置により構成されている。
【００１４】
スプライトメモリ１は、ゲームのキャラクタ等のスプライトの画像データを記憶するメモリであり、例えばＲＯＭにより構成されている。図２は、このスプライトメモリ１における画像データの記憶状態を示すものである。上述した従来の画像処理装置におけるスプライトメモリと同様、本実施形態におけるスプライトメモリも、スプライトの画像データを水平方向に連続して並んだ８画素からなるバウンダリに分割して、各バウンダリの画像データを記憶しており、バウンダリ単位で画像データの読み出しが可能な構成となっている。また、スプライトメモリ１内において、各バウンダリは、水平方向のアドレスＢＸと垂直方向のアドレスＢＹの組により特定される。
【００１５】
図１において、描画処理部４は、図示しないホストＣＰＵからの指示に従い、描画用バッファ部２およびバッファリング制御部３を介してスプライトメモリ１からスプライトの画像データを取得し、フレームメモリ５内の画像データに反映させる描画処理を実行する装置である。ここで、描画処理は、スプライトの画像の拡大、縮小、回転等を含む場合がある。その場合、描画処理部４は、バイリニアフィルタ処理を実行し、スプライトメモリ１から取得した画像データから描画対象の画素位置（表示装置７の画素位置）に対応した画像データを生成する。このバイリニアフィルタ処理を実行するために、描画処理部４は、基準バウンダリＢ０のアドレスＢＸ、ＢＹを管理する。ここで、基準バウンダリＢ０は、バイリニア処理が必要とする４画素のうちの基準画素、すなわち、描画対象の画素位置の左上の画素（前掲図８の画素Ａに相当する画素）が属するバウンダリである。この基準バウンダリＢ０が変化したとき、描画処理部４は、変化後の基準バウンダリＢ０のアドレスＢＸ、ＢＹをバッファリング制御部３に送信する。
【００１６】
描画用バッファ部２は、スプライトメモリ１から読み出された画像データを記憶し、描画処理部４に提供する装置である。また、バッファリング制御部３は、バイリニアフィルタ処理に使用される可能性があり、かつ、描画用バッファ部２に格納されていない画像データが発生した場合に、その画像データをスプライトメモリ１から読み出し、描画用バッファ部２に格納する装置である。
【００１７】
本実施形態における描画用バッファ部２は、各々１バウンダリ（８画素）分の画像データを記憶可能な容量を有する４個のバッファＢＵＦｎ（ｎ＝０〜３）を有している。ここで、４個のバッファＢＵＦｎ（ｎ＝０〜３）が描画用バッファ部２に設けられているのは、描画処理部４がバイリニアフィルタ処理に使用する４画素の画像データが、互いに異なる４個のバウンダリに属する場合があるからである。
【００１８】
バッファリング制御部３は、バッファＢＵＦｎ（ｎ＝０〜３）がバイリニアフィルタ処理に使用される可能性のある４個のバウンダリの画像データを格納した状態になるように、バッファＢＵＦｎ（ｎ＝０〜３）の書き換え制御を行う。本実施形態においてバッファリング制御部３は、図３に示すように、基準バウンダリＢ０（アドレス＝ＢＸ、ＢＹ）と、基準バウンダリＢ０の右のバウンダリＢ１（アドレス＝ＢＸ＋１、ＢＹ）と、基準バウンダリＢ０の下のバウンダリＢ２（アドレス＝ＢＸ、ＢＹ＋１）と、基準バウンダリＢ０の右下のバウンダリＢ３（アドレス＝ＢＸ＋１、ＢＹ＋１）を、バイリニアフィルタ処理に画像データが使用される可能性のあるバウンダリとして取り扱う。これらの４個のバウンダリは、描画処理部４により基準バウンダリＢ０のアドレスＢＸ、ＢＹが指定された時点において定まる。バッファリング制御部３は、描画処理部４から基準バウンダリＢ０のアドレスＢＸ、ＢＹを受け取ったとき、アドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹに基づき、これらの４個のバウンダリのうちアクセスバウンダリであるものと非アクセスバウンダリであるものを判定する。ここで、アクセスバウンダリとは、４個のバッファＢＵＦｎ（ｎ＝０〜３）のいずれにも画像データが記憶されておらず、そのバウンダリの画像データをスプライトメモリ１から読み出して４個のバッファＢＵＦｎ（ｎ＝１〜ｎ）のいずれかに格納しなければならないバウンダリである。また、非アクセスバウンダリは、既にそのバウンダリの画像データが４個のバッファＢＵＦｎ（ｎ＝１〜ｎ）のいずれかに格納されており、スプライトメモリ１から画像データを読み出す必要がないバウンダリである。
【００１９】
また、バッファリング制御部３は、バッファ状態情報ＢＦＳを管理している。このバッファ状態情報ＢＦＳは、４個のバッファＢＵＦｎ（ｎ＝０〜３）の記憶状態、すなわち、各バッファＢＵＦｎ（ｎ＝０〜３）が基準バウンダリＢ０、基準バウンダリＢ０の右のバウンダリＢ１、基準バウンダリＢ０の下のバウンダリＢ２、基準バウンダリＢ０の右下のバウンダリＢ３のいずれのバウンダリの画像データを記憶しているかを示す情報である。そして、バッファリング制御部３は、このバッファ状態情報ＢＦＳを参照することにより、４個のバッファＢＵＦｎ（ｎ＝０〜３）のうち非アクセスバウンダリの画像データを記憶しているバッファ以外のバッファを求め、このバッファを空きバッファとし、アクセスバウンダリの画像データをスプライトメモリ１から読み出して空きバッファに格納する。
【００２０】
また、バッファリング制御部３は、アクセスバウンダリの画像データをスプライトメモリ１から読み出して、描画用バッファ部２の空きバッファに格納するときに、描画用バッファ部２におけるバッファＢＵＦｎ（ｎ＝０〜３）の新たな記憶状態に合わせてバッファ状態情報ＢＦＳを更新し、このバッファ状態情報ＢＦＳを描画処理部４に送信する。描画処理部４は、このようにしてバッファリング制御部３から与えられるバッファ状態情報ＢＦＳに基づいて、バイリニアフィルタ処理に用いる４画素の画像データを各々記憶しているバッファを判定し、そのバッファから画像データを読み出す。
以上が本実施形態における画像処理装置の構成の詳細である。
【００２１】
次に、描画処理部４がバイリニアフィルタ処理を実行しているときのバッファリング制御部３の動作を中心に、本実施形態の動作を説明する。描画処理部４は、バイリニアフィルタ処理の実行中に、基準画素を含む基準バウンダリＢ０のアドレスＢＸ、ＢＹを監視し、アドレスＢＸ、ＢＹが変化した場合に、この変化後のアドレスＢＸ、ＢＹをバッファリング制御部３に送信する。バッファリング制御部３は、この基準バウンダリＢ０のアドレスＢＸ、ＢＹを受信すると、図４にフローを示すルーチンを実行する。すなわち、バッファリング制御部３は、基準バウンダリＢ０のアドレスＢＸ、ＢＹを受信する毎に、バウンダリ判定処理Ｓ１と、バウンダリ読み出し処理Ｓ２と、ＢＦＳ送信処理Ｓ３を順次実行する。
【００２２】
バウンダリ判定処理Ｓ１では、新たに受信した基準バウンダリのアドレスＢＸ、ＢＹと現在におけるバッファ状態情報ＢＦＳとに基づき、アクセスバウンダリと非アクセスバウンダリを判定する。また、バウンダリ判定処理Ｓ１では、バッファＢＵＦｎ（ｎ＝０〜３）のうちアクセスバウンダリの画像データの格納先となる空きバッファを判定する。以下、前掲図３および図５〜図７を参照し、このバウンダリ判定処理Ｓ１の内容について説明する。ここで、図５は、描画用バッファ部２の４個のバッファＢＵＦｎ（ｎ＝０〜３）がとりうる記憶状態とバッファ状態情報ＢＦＳとの関係を示す図、図６は基準バウンダリＢ０の移動に伴って発生するアクセスバウンダリと非アクセスバウンダリを示す図、図７は基準バウンダリＢ０の移動に伴うバッファＢＵＦｎ（ｎ＝０〜３）の記憶状態の変化を示す図である。
【００２３】
既に図３を参照して説明したように、バイリニアフィルタ処理では、４個のバウンダリＢ０〜Ｂ３の画像データが使用される可能性がある。これらの４個のバウンダリＢ０〜Ｂ３のいずれがアクセスバウンダリであり、いずれが非アクセスバウンダリであるかは基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹにより定まる。
【００２４】
基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹのうち少なくとも一方の絶対値が２以上である場合、基準バウンダリＢ０（アドレス＝ＢＸ、ＢＹ）、バウンダリＢ１（アドレス＝ＢＸ＋１、ＢＹ）、バウンダリＢ２（アドレス＝ＢＸ、ＢＹ＋１）、バウンダリＢ３（アドレス＝ＢＸ＋１、ＢＹ＋１）の全てがアクセスバウンダリである。この場合、バッファリング制御部３は、バッファＢＵＦｎ（ｎ＝０〜３）の全てを空きバッファと判定し、アクセスバウンダリＢｋ（ｋ＝０〜３）の画像データの格納先を各々バッファＢＵＦｎ（ｎ＝０〜３）とする。
【００２５】
一方、基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹの両方の絶対値が１以下である場合、いずれがアクセスバウンダリであり、いずれが非アクセスバウンダリであるかは、図６に示すように基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹの内容により定まる。この図６において、バウンダリの名称（Ｂ０等）が記入され、ハッチングの施されている部分がアクセスバウンダリであり、バウンダリの名称が記入され、ハッチングの施されていない部分が非アクセスバウンダリである。また、図６において、非アクセスバウンダリについてはその非アクセスバウンダリが移動前においてバウンダリＢ０〜Ｂ３のいずれのバウンダリであったかが括弧書きで示されている。
【００２６】
図６に示すように、変化分ΔＢＸ、ΔＢＹの両方の絶対値が１以下である場合、基準バウンダリＢ０の移動方向は、（１）〜（８）の８通りある。これらの８方向について、アクセスバウンダリの発生状況を要約すると次の通りである。
ａ．ΔＢＸ＝＋１、ΔＢＹ＝±１である場合、バウンダリＢｋ（ｋ＝０〜３）のうち２ビットで表わされるバウンダリ番号ｋ［１：０］の第０ビットｋ［０］が１であるバウンダリＢｋ（すなわち、Ｂ１、Ｂ３）はアクセスバウンダリとなる。
ｂ．ΔＢＸ＝−１、ΔＢＹ＝±１である場合、バウンダリ番号ｋ［１：０］の第０ビットｋ［０］が０であるバウンダリＢｋ（すなわち、Ｂ０、Ｂ２）はアクセスバウンダリとなる。
ｃ．ΔＢＸ＝±１、ΔＢＹ＝＋１である場合、バウンダリ番号ｋ［１：０］の第１ビットｋ［１］が０であるバウンダリＢｋ（すなわち、Ｂ０、Ｂ１）はアクセスバウンダリとなる。
ｄ．ΔＢＸ＝±１、ΔＢＹ＝−１である場合、バウンダリ番号ｋ［１：０］の第１ビットｋ［１］が１であるバウンダリＢｋ（すなわち、Ｂ２、Ｂ３）はアクセスバウンダリとなる。
ｅ．移動後のバウンダリのうち、上記ａ〜ｄに該当せず、アクセスバウンダリにならなかったものが非アクセスバウンダリとなる。
【００２７】
また、移動後に非アクセスバウンダリとなるバウンダリに着目すると、次のことが分かる。
ｆ．ｘ軸方向の移動があった場合（ΔＢＸ＝±１である場合）、移動に伴い、バウンダリＢｋのバウンダリ番号ｋの第０ビットｋ［０］が反転する。
ｇ．ｙ軸方向の移動があった場合（ΔＢＹ＝±１である場合）、移動に伴い、バウンダリＢｋのバウンダリ番号ｋの第１ビットｋ［１］が反転する。
ｈ．ｘ軸方向およびｙ軸方向の移動があった場合（ΔＢＸ＝±１であり、かつ、ΔＢＹ＝±１である場合）、移動に伴い、バウンダリＢｋのバウンダリ番号ｋの第０ビットｋ［０］および第１ビットｋ［０］の両方が反転する。
【００２８】
次に、基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹの両方の絶対値が１以下である場合における空きバッファの判定方法について説明する。本実施形態において、バッファＢＵＦｎ（ｎ＝０〜３）の各々にバウンダリＢ０〜Ｂ３のいずれの画像データを記憶させるかに関しては、図５に示す４通りの記憶状態しか許容していない。そして、この４つの記憶状態にバッファ状態情報ＢＦＳ＝０〜３を各々割り当てている。
【００２９】
図５において、ＢＦＳ＝０＝００ｂの状態は、バッファＢＵＦ０にバウンダリＢ０、バッファＢＵＦ１にバウンダリＢ１、バッファＢＵＦ２にバウンダリＢ２、バッファＢＵＦ３にバウンダリＢ３の各画像データが記憶された状態である。基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹのうち少なくとも一方の絶対値が２以上である場合には、上述した通り、アクセスバウンダリであるバウンダリＢ０〜Ｂ３の画像データが空きバッファであるバッファＢＵＦｎ（ｎ＝０〜３）に格納され、このＢＦＳ＝０の状態とされる。
【００３０】
ＢＦＳ＝１＝０１ｂの状態は、バッファＢＵＦ０にバウンダリＢ１、バッファＢＵＦ１にバウンダリＢ０、バッファＢＵＦ２にバウンダリＢ３、バッファＢＵＦ３にバウンダリＢ２の各画像データが記憶された状態である。ＢＦＳ＝０の状態において、各バッファＢＵＦｎ（ｎ＝０〜３）に記憶されているバウンダリＢｋ（ｋ＝０〜３）の画像データの代わりに、２ビットで表現されるバウンダリ番号ｋ＝００ｂ、０１ｂ、１０ｂ、１１ｂの第０ビットを各々反転したバウンダリｋ’＝０１ｂ、００ｂ、１１ｂ、１０ｂのバウンダリＢｋ’の画像データを格納すると、このＢＦＳ＝１の状態となる。
【００３１】
ＢＦＳ＝２＝１０ｂの状態は、バッファＢＵＦ０にバウンダリＢ２、バッファＢＵＦ１にバウンダリＢ３、バッファＢＵＦ２にバウンダリＢ０、バッファＢＵＦ３にバウンダリＢ１の各画像データが記憶された状態である。ＢＦＳ＝０の状態において、各バッファＢＵＦｎ（ｎ＝０〜３）に記憶されているバウンダリＢｋ（ｋ＝０〜３）の画像データの代わりに、２ビットで表現されるバウンダリ番号ｋ＝００ｂ、０１ｂ、１０ｂ、１１ｂの第１ビットを各々反転したバウンダリｋ’＝１０ｂ、１１ｂ、００ｂ、０１ｂのバウンダリＢｋ’の画像データを格納すると、このＢＦＳ＝２の状態となる。
【００３２】
ＢＦＳ＝３＝１１ｂの状態は、バッファＢＵＦ０にバウンダリＢ３、バッファＢＵＦ１にバウンダリＢ２、バッファＢＵＦ２にバウンダリＢ１、バッファＢＵＦ３にバウンダリＢ０の各画像データが記憶された状態である。ＢＦＳ＝０の状態において、各バッファＢＵＦｎ（ｎ＝０〜３）に記憶されているバウンダリＢｋ（ｋ＝０〜３）の画像データの代わりに、２ビットで表現されるバウンダリ番号ｋ＝００ｂ、０１ｂ、１０ｂ、１１ｂの第０ビットおよび第１ビットの両方を各々反転したバウンダリｋ’＝１１ｂ、１０ｂ、０１ｂ、００ｂのバウンダリＢｋ’の画像データを格納すると、このＢＦＳ＝３の状態となる。
【００３３】
本実施形態において、バッファＢＵＦｎ（ｎ＝０〜３）の記憶状態を以上の４通りに制限しているのは、基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹの両方の絶対値が１以下である場合において、バッファＢＵＦｎ（ｎ＝０〜３）のうちのいずれのバッファが空きバッファとなるかが変化分ΔＢＸ、ΔＢＹから一義的に定まるようにするためである。また、基準バウンダリＢ０のアドレスＢＸ、ＢＹの前回からの変化分ΔＢＸ、ΔＢＹの両方の絶対値が１以下である場合には、基準バウンダリＢ０の移動方向は、図６に示す（１）〜（８）の８通りであり、バッファＢＵＦｎ（ｎ＝０〜３）の記憶状態として４通りの記憶状態を認めれば、この８通りの移動の全てに対応することができるからである。図７は、一例として、バッファＢＵＦｎ（ｎ＝０〜３）が図６の中央に図示されたバウンダリＢ０〜Ｂ３の画像データを各々記憶したＢＦＳ＝０の初期状態から、図６の（１）〜（８）に示す基準バウンダリＢ０の移動が行われた各場合について、バッファＢＵＦｎ（ｎ＝０〜３）の記憶状態の変化を示している。図示は省略するが、初期状態がＢＦＳ＝１、ＢＦＳ＝２、ＢＦＳ＝３の場合においても、図６の（１）〜（８）の８通りの移動があった場合には、移動後のバッファＢＵＦｎ（ｎ＝０〜３）の記憶状態はＢＦＳ＝０〜３のいずれかの状態になる。
【００３４】
本実施形態において、バッファリング制御部３は、基準バウンダリＢ０の移動がｘ軸方向である場合（ΔＢＸ＝＋１または−１である場合）、次のように、２ビットで表現されるバッファ状態情報ＢＦＳの第０ビットを反転して、移動後のバッファ状態情報ＢＦＳを求める。この場合、移動後において各バッファＢＵＦｎ（ｎ＝０〜３）に記憶される画像データのバウンダリ番号ｋは、移動前のバウンダリ番号ｋの第０ビットｋ［０］を反転したものとなる。
＜移動前のＢＦＳ＞    ＜移動後のＢＦＳ＞
ＢＦＳ＝００ｂ          ＢＦＳ＝０１ｂ
ＢＦＳ＝０１ｂ          ＢＦＳ＝００ｂ
ＢＦＳ＝１０ｂ          ＢＦＳ＝１１ｂ
ＢＦＳ＝１１ｂ          ＢＦＳ＝１０ｂ
【００３５】
また、本実施形態において、バッファリング制御部３は、基準バウンダリＢ０の移動がｙ軸方向である場合（ΔＢＹ＝＋１または−１である場合）、次のように、２ビットで表現されるバッファ状態情報ＢＦＳの第１ビットを反転して、移動後のバッファ状態情報ＢＦＳを求める。この場合、移動後において各バッファＢＵＦｎ（ｎ＝０〜３）に記憶される画像データのバウンダリ番号ｋは、移動前のバウンダリ番号ｋの第１ビットｋ［１］を反転したものとなる。
＜移動前のＢＦＳ＞    ＜移動後のＢＦＳ＞
ＢＦＳ＝００ｂ          ＢＦＳ＝１０ｂ
ＢＦＳ＝０１ｂ          ＢＦＳ＝１１ｂ
ＢＦＳ＝１０ｂ          ＢＦＳ＝００ｂ
ＢＦＳ＝１１ｂ          ＢＦＳ＝０１ｂ
【００３６】
また、本実施形態において、バッファリング制御部３は、基準バウンダリＢ０の移動がｘ軸方向およびｙ軸方向の両方の成分を含む場合（ΔＢＸ＝＋１または−１であり、かつ、ΔＢＹ＝＋１または−１である場合）、次のように、２ビットで表現されるバッファ状態情報ＢＦＳの第０ビット、第１ビットの両方を反転して、移動後のバッファ状態情報ＢＦＳを求める。この場合、移動後において各バッファＢＵＦｎ（ｎ＝０〜３）に記憶される画像データのバウンダリ番号ｋは、移動前のバウンダリ番号ｋの第０ビットｋ［０］および第１ビットｋ［１］の両方を反転したものとなる。
＜移動前のＢＦＳ＞    ＜移動後のＢＦＳ＞
ＢＦＳ＝００ｂ          ＢＦＳ＝１１ｂ
ＢＦＳ＝０１ｂ          ＢＦＳ＝１０ｂ
ＢＦＳ＝１０ｂ          ＢＦＳ＝０１ｂ
ＢＦＳ＝１１ｂ          ＢＦＳ＝００ｂ
【００３７】
そして、バッファリング制御部３は、次のように移動前のバッファ状態情報ＢＦＳと、基準バウンダリＢ０のアドレスの変化分ΔＢＸ、ΔＢＹから空きバッファを求める。まず、ΔＢＸ＝±１、ΔＢＹ＝０である場合、バッファリング制御部３は、移動前のバッファ状態情報ＢＦＳにより定まるバッファＢＵＦｎ（ｎ＝０〜３）内のバウンダリＢｋの番号ｋを求め、２ビットで表現される番号ｋの第０ビットｋ［０］にΔＢＸを加算する。そして、各バッファＢＵＦｎのうち、この加算結果の第１ビットが０であるものは空きバッファであると判断する。一例を示すと、次の通りである。
＜移動前のＢＦＳ＝０、ΔＢＸ＝±１、ΔＢＹ＝０の場合＞
ＢＵＦｎ  Ｂｋ  ｋ［０］＋ΔＢＸ（＝＋１）  ｋ［０］＋ΔＢＸ（＝−１）
ＢＵＦ０  Ｂ０  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ１  Ｂ１  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ２  Ｂ２  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ３  Ｂ３  １＋１＝１０ｂ              １−１＝００ｂ  空き
＜移動前のＢＦＳ＝１、ΔＢＸ＝±１、ΔＢＹ＝０の場合＞
ＢＵＦｎ  Ｂｋ  ｋ［０］＋ΔＢＸ（＝＋１）  ｋ［０］＋ΔＢＸ（＝−１）
ＢＵＦ０  Ｂ１  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ１  Ｂ０  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ２  Ｂ３  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ３  Ｂ２  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
【００３８】
バッファリング制御部３は、以上のような演算を行うことにより、ΔＢＸ＝＋１、ΔＢＹ＝０の場合には、移動前にバウンダリＢ０、Ｂ２の画像データを記憶していたバッファを空きバッファと判定し、ΔＢＸ＝−１、ΔＢＹ＝０の場合には、移動前にバウンダリＢ１、Ｂ３の画像データを記憶していたバッファを空きバッファと判定する。
【００３９】
次に、ΔＢＸ＝０、ΔＢＹ＝±１、である場合、バッファリング制御部３は、移動前のバッファ状態情報ＢＦＳにより定まるバッファＢＵＦｎ（ｎ＝０〜３）内のバウンダリＢｋの番号ｋを求め、２ビットで表現される番号ｋの第１ビットｋ［１］にΔＢＹを加算する。そして、各バッファＢＵＦｎのうち、この加算結果の第１ビットが０であるものは空きバッファであると判断する。一例を示すと、次の通りである。
＜移動前のＢＦＳ＝０、ΔＢＸ＝０、ΔＢＹ＝±１の場合＞
ＢＵＦｎ  Ｂｋ  ｋ［１］＋ΔＢＹ（＝＋１）  ｋ［１］＋ΔＢＹ（＝−１）
ＢＵＦ０  Ｂ０  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ１  Ｂ１  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ２  Ｂ２  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ３  Ｂ３  １＋１＝１０ｂ              １−１＝００ｂ  空き
＜移動前のＢＦＳ＝２、ΔＢＸ＝０、ΔＢＹ＝±１の場合＞
ＢＵＦｎ  Ｂｋ  ｋ［１］＋ΔＢＹ（＝＋１）  ｋ［１］＋ΔＢＹ（＝−１）
ＢＵＦ０  Ｂ２  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ１  Ｂ３  １＋１＝１０ｂ              １−１＝００ｂ  空き
ＢＵＦ２  Ｂ０  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
ＢＵＦ３  Ｂ１  ０＋１＝０１ｂ  空き        ０−１＝１１ｂ
【００４０】
バッファリング制御部３は、以上のような演算を行うことにより、ΔＢＸ＝０、ΔＢＹ＝＋１の場合には、移動前にバウンダリＢ０、Ｂ１の画像データを記憶していたバッファを空きバッファと判定し、ΔＢＸ＝０、ΔＢＹ＝−１の場合には、移動前にバウンダリＢ２、Ｂ３の画像データを記憶していたバッファを空きバッファと判定する。
【００４１】
次に、ΔＢＸ＝±１であり、かつ、ΔＢＹ＝±１である場合、バッファリング制御部３は、移動前のＢＦＳを用いて、上記ΔＢＸ＝±１、ΔＢＹ＝０の場合の判定と、上記ΔＢＸ＝０、ΔＢＹ＝±１の場合の判定の両方を行い、バッファＢＵＦｎ（ｎ＝０〜３）のうちいずれかの判定において空きバッファとされたものを空きバッファとする。
以上が図４におけるバウンダリ判定処理Ｓ１の詳細である。
【００４２】
バウンダリ判定処理Ｓ１が終了すると、バッファリング制御部３は、バウンダリ読み出し処理Ｓ２を実行する。このバウンダリ読み出し処理Ｓ２では、バウンダリ判定処理Ｓ１において求めたアクセスバウンダリの画像データをスプライトメモリ１から読み出し、バッファＢＵＦｎ（ｎ＝０〜３）のうちバウンダリ判定処理Ｓ１において求めた空きバッファに格納する。各アクセスバウンダリの画像データを各空きバッファのいずれに格納するかは、バウンダリ判定処理Ｓ１において求められた移動後のバッファ状態情報ＢＦＳに従って決定される。
【００４３】
バウンダリ読み出し処理Ｓ２が終了すると、バッファリング制御部３は、ＢＦＳ送信処理Ｓ３を実行し、バウンダリ判定処理Ｓ１において求めた移動後のバッファ状態情報ＢＦＳを描画処理部４に送信する。そして、バッファリング制御部３は、図４に示すルーチンを終了する。
【００４４】
描画処理部４は、以上のようにして描画用バッファ部２に格納された画像データを使用してバイリニアフィルタ処理を実行する。その際、描画処理部４は、バッファリング制御部３から受信したバッファ状態情報ＢＦＳに基づき、バイリニアフィルタ処理に使用する４画素の画像データがバッファＢＵＦｎ（ｎ＝０〜３）のいずれに格納されているかを判断する。
【００４５】
以上のように、本実施形態によれば、バイリニアフィルタ処理に使用される可能性があり、かつ、描画用バッファ部２に格納されていない画像データがバッファリング制御部３によってスプライトメモリ１から読み出され、描画用バッファ部２に格納され、この描画用バッファ部２内の画像データがバイリニアフィルタ処理に使用される。従って、スプライトメモリ１における重複した画像データの読み出しを回避し、描画処理を効率的に進めることができる。
【００４６】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば次の通りである。
【００４７】
（１）上記実施形態では、基準バウンダリのアドレスＢＸ、ＢＹが変化したとき、描画処理部４が変化後のアドレスＢＸ、ＢＹをバッファリング制御部３に送信したが、描画処理部４は基準バウンダリのアドレスＢＸ、ＢＹを常時送信し、バッファリング制御部３がアドレスＢＸ、ＢＹの変化を検知して、前掲図４の処理を実行してもよい。
【００４８】
（２）上記実施形態では、描画処理部４は、補間処理として、４画素の画像データを用いるバイリニアフィルタ処理を実行したが、他の種類の補間処理を実行してもよい。また、補間処理に使用する画像データの画素数は４画素でなくてもよい。
【００４９】
（３）上記実施形態では、補間処理に使用する画素数と同じ数のバッファを描画用バッファ部２に設けたが、補間処理に使用する画素数以上の個数のバッファを描画用バッファ部２に設けて、画像データのバッファリングに使用してもよい。
【図面の簡単な説明】
【００５０】
【図１】この発明の一実施形態である画像処理装置の構成を示すブロック図である。
【図２】同実施形態におけるスプライトメモリ１の画像データの記憶状態を示す図である。
【図３】同実施形態において基準バウンダリＢ０とバイリニファフィルタ処理に画像データが使用される可能性のある４個のバウンダリＢ０〜Ｂ３の関係を示す図である。
【図４】同実施形態においてバッファリング制御部３が実行するルーチンの処理内容を示すフローチャートである。
【図５】同実施形態において描画用バッファ部３の４個のバッファＢＵＦｎ（ｎ＝０〜３）がとりうる記憶状態とバッファ状態情報ＢＦＳとの関係を示す図である。
【図６】同実施形態において基準バウンダリＢ０の移動に伴って発生するアクセスバウンダリと非アクセスバウンダリを示す図である。
【図７】同実施形態において基準バウンダリＢ０の移動に伴うバッファＢＵＦｎ（ｎ＝０〜３）の記憶状態の変化を示す図である。
【図８】バイリニアフィルタ処理の処理内容を説明する図である。
【図９】従来の画像処理装置におけるスプライトメモリからの画像データの読み出し動作を示す図である。
【符号の説明】
【００５１】
１……スプライトメモリ、２……描画用バッファ部、ＢＵＦｎ（ｎ＝０〜３）……バッファ、３……バッファリング制御部、４……描画処理部、５……フレームメモリ、６……表示制御部、７……表示装置。
【図１】
0004877118.tif 000002
【図２】
0004877118.tif 000003
【図３】
0004877118.tif 000004
【図４】
0004877118.tif 000005
【図５】
0004877118.tif 000006
【図６】
0004877118.tif 000007
【図７】
0004877118.tif 000008
【図８】
0004877118.tif 000009
【図９】
0004877118.tif 000010