(57)【要約】【課題】スプライト方式の画像処理装置において、ワークメモリを設けることなく、ブラー等の画像処理を実現する。【解決手段】表示対象のスプライトの２倍のイメージサイズの縦長の画像を絶対スプライトとし、当該スプライトのαデータのみを第１の相対スプライト、同カラーデータのみを第２の相対スプライトとしてプリリンクしておく。スプライトバッファに絶対スプライトを配置する記憶領域を確保して当該絶対スプライトを配置し、当該記憶領域の前半には第１の相対スプライトを配置し、次いで、同後半に第２の相対スプライトを配置する。そして、直近に書き込みの行われた領域にフィルタ処理を施して他方の領域に書き込む処理を予め定められた回数だけ繰り返し、最後に書き込みの行われた領域の画像データをフレームバッファに描画することでブラーを実現する。【選択図】図６
2015219351.tif 000002
【特許請求の範囲】
【請求項１】
各々スプライトの属性データを記憶するスプライト属性テーブルと、
描画対象とするスプライトの画像データを前記スプライト属性テーブルの属性データに従って第１の記憶手段に書き込む第１の書き込み手段と、
１フレームの画像を表す画像データを記憶する第２の記憶手段と、
前記第１の記憶手段に記憶された画像データを前記第２の記憶手段へ書き込む第２の書き込み手段と、を備え、
少なくとも一のスプライトの位置情報が当該スプライトの属性データに格納されており、他の少なくとも一のスプライトの位置情報は当該スプライト以外の他のスプライトからの相対位置として、当該スプライトの属性データに格納されており、
前記第１の書き込み手段は、フィルタ処理の対象となるスプライトのイメージサイズの２倍の記憶領域を前記第１の記憶手段に確保し、前記少なくとも一のスプライトの属性データに従って、当該スプライトを前記記憶領域に書き込み、前記記憶領域を前半と後半に等分した一方に、前記他の少なくとも一のスプライトの属性データに従って、前記他の少なくとも一のスプライトを書き込み、前記前半の領域と前記後半の領域のうちの直近に書き込みの行われた領域にフィルタ処理を施して他方の領域に書き込む処理を予め定められた回数だけ繰り返し、
前記第２の書き込み手段は、前記前半と後半の領域のうち直近に書き込みの行われた領域の画像データを前記第１の記憶手段から読み出して前記第２の記憶手段に書き込む
ことを特徴とする画像処理装置。
【請求項２】
前記スプライトの画像データは、スプライトを構成する各画素の色を表すカラーデータと各画素の透過処理係数とから構成されており、
前記第１の書き込み手段は、カラーデータを対象に前記フィルタ処理を施す
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記スプライトの画像データは、スプライトを構成する各画素の色を表すカラーデータと各画素の透過処理係数とから構成されており、
前記第１の書き込み手段は、透過処理係数を対象に前記フィルタ処理を施すことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記第２の書き込み手段は、
前記等分した一方の領域と同じイメージサイズの所定色の画像に、前記前半の領域と前記後半の領域のうち直近に書き込みの行われた領域に記憶されている透過処理係数による透過処理を行って得られる画像を、前記第２の記憶手段に書き込むとともに、前記他の少なくとも一のスプライトの画像データのカラーデータの表す画像を縮小または拡大して重ね書きする
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１の記憶手段はファーストイン・ファーストアウトメモリとして機能することを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
スプライトの画像データに圧縮符号化を施して得られる圧縮符号化データを前記スプライト属性テーブルの属性データにしたがってパターンＲＯＭから読み出し、圧縮符号化前の画像データを復元し前記第１の書き込み手段に与えるデコーダを有する
ことを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像表示技術に関し、特にスプライト方式の画像表示技術に関する。
【背景技術】
【０００２】
図９は、スプライト方式の画像表示システムの構成を示すブロック図である。スプライト方式とは、予め用意されたスプライト（小画像）の重ね合わせにより、１フレーム分の画像を表現する方式である。図９に示すように、この画像表示システムには、例えば画像処理ＬＳＩ（Large Scale Integration）などの画像処理装置２と、パターンＲＯＭ３と、表示装置４と、ホストＣＰＵ（Central Processing Unit）５とが含まれている。パターンＲＯＭ３には、スプライトの画像データに圧縮符号化を施して得られる圧縮符号化データが記憶されている。画像処理装置２は上位装置（図９に示す例では、ホストＣＰＵ５）から与えられる指示に応じてスプライトの圧縮符号化データをパターンＲＯＭ３から読み出し、読み出した圧縮符号化データをデコード（伸張）して圧縮前の画像データに戻し、画像処理装置２内部のスプライトバッファに展開する。次いで、画像処理装置２は、スプライトバッファからスプライトの画像データを読み出し、拡大、縮小、回転、変形等のレンダリング処理を施して当該画像処理装置２内部のフレームバッファに描画する。画像処理装置２は、フレームバッファに描画した画像データを、液晶ディスプレイ等の表示装置４へ出力する水平／垂直走査タイミングに合わせて読み出し、表示装置４へ出力する。これにより表示装置４に各フレームの画像が表示される。スプライト方式の画像表示システムに関する先行技術文献としては、特許文献１〜３が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許３８６１８２０号
【特許文献２】特許３９４１７０２号
【特許文献３】特開２００１−０１３９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スプライト方式の画像表示システムは、ポリゴン等を用いた他の方式の画像表示システムに比較して、低い性能のＣＰＵでも画像の表示が容易であるため、パチンコなどの遊技機やテレビゲーム等に採用されることが多かった。また、少ないリソースで画像の表示が可能という利点に着目し、冷蔵庫や洗濯機などの白物家電や車載表示装置のユーザインタフェース部にスプライト方式の画像表示システムを採用することも検討されている。
【０００５】
車載表示装置や白物家電のユーザインタフェース部にスプライト方式の画像表示システムを採用する場合、ポリゴン等を用いた他の画像表示システムに比較して表示画像の見劣りが発生しないように、ブラーやグロー、ドロップ・シャドウなど画像の奥行感や動きを演出する画像処理を行えることが好ましい。なお、ブラーとは、表示対象のスプライトの輪郭をぼやけさせる処理である。グローとは、表示対象のスプライトに白くぼんやりした縁取りを付ける処理である。そして、ドロップ・シャドウとは、表示対象のスプライトに影を付ける処理である。
【０００６】
スプライト方式の画像表示システムにおいてブラーやグロー、ドロップ・シャドウなどの各種画像処理を実現する具体的な方法としては、表示対象のスプライトを一旦ワークメモリに格納し、ガウスフィルタ処理などの各種フィルタ処理を施すことで、上記各種画像処理を実現する方法が考えられる。しかし、大容量のメモリと性能の高いＣＰＵにより各種画像処理を実現することは可能であるが、限られたメモリと性能の低いＣＰＵでも負荷をかけずに実現することが望まれている。
【０００７】
本発明は上記説明した課題に鑑みて為されたものであり、スプライト方式の画像処理装置において、画像処理用に別途ワークメモリを設けることなく、スプライトの動きや奥行き感を演出する各種画像処理を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、各々スプライトの属性データを記憶するスプライト属性テーブルと、描画対象とするスプライトの画像データを前記スプライト属性テーブルの属性データに従って第１の記憶手段に書き込む第１の書き込み手段と、１フレームの画像を表す画像データを記憶する第２の記憶手段と、前記第１の記憶手段に記憶された画像データを前記第２の記憶手段へ書き込む第２の書き込み手段と、を備え、少なくとも一のスプライトの位置情報が当該スプライトの属性データに格納されており、他の少なくとも一のスプライトの位置情報は当該スプライト以外の他のスプライトからの相対位置として、当該スプライトの属性データに格納されており、前記第１の書き込み手段は、フィルタ処理の対象となるスプライトのイメージサイズの２倍の記憶領域を前記第１の記憶手段に確保し、前記少なくとも一のスプライトの属性データに従って、当該スプライトを前記記憶領域に書き込み、前記記憶領域を前半と後半に等分した一方に、前記他の少なくとも一のスプライトの属性データに従って、前記他の少なくとも一のスプライトを書き込み、前記前半の領域と前記後半の領域のうちの直近に書き込みの行われた領域にフィルタ処理を施して他方の領域に書き込む処理を予め定められた回数だけ繰り返し、前記第２の書き込み手段は、前記前半と後半の領域のうち直近に書き込みの行われた領域の画像データを前記第１の記憶手段から読み出して前記第２の記憶手段に書き込むことを特徴とする画像処理装置、を提供する。
【０００９】
上記少なくとも一のスプライトは、本願の発明の詳細な説明に記載の「絶対スプライト」に対応し、上記他の少なくとも一のスプライトは「相対スプライト」に対応する。本発明によれば、スプライト方式の画像処理装置において、画像処理用に別途ワークメモリを設けることなく、絶対スプライトに相対スプライトを重ね合わせて得られる画像に予め定められた回数のフィルタ処理を施して当該画像の動きや奥行感を演出することが可能になる。
【００１０】
例えば、スプライトの画像データがスプライトを構成する各画素の色を表すカラーデータと各画素の透過処理係数とから構成されている場合には、相対スプライトのカラーデータのみにフィルタ処理を施すようにすれば、ブラーを実現することが可能になる。なお、この場合のフィルタ処理の具体例としてはガウスフィルタ処理が挙げられる。
【００１１】
また、相対スプライトの画像データでのうち透過処理係数のみにフィルタ処理を施すことも考えられる。この場合、相対スプライトの画像データの表す画像と同じイメージサイズの所定色の画像に前半の領域と後半の領域のうち直近に書き込みの行われた領域に記憶されている透過処理係数による透過処理を行って得られる画像を第２の記憶手段に書き込むとともに、相対スプライトのカラーデータの表す画像を縮小または拡大して重ね書きする処理を第２の書き込み手段に実行させればグローが実現され、カラーデータの表す画像を中心をずらして重ね書きする処理を第２の書き込み手段に実行させればドロップ・シャドウが実現される。これらの場合も上記フィルタ処理としてガウスフィルタ処理を採用すれば良い。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の画像処理装置１１を含む画像表示システムの構成例および画像処理装置１１の構成例を示すブロック図である。
【図２】スプライトバッファ上のプリリンクおよびフレームバッファ上のポストリンクを説明するための図である。
【図３】スプライト属性テーブルの格納例を示す図である。
【図４】画像処理装置１１が実行するデコード・展開シーケンスの流れを示すフローチャートである。
【図５】画像処理装置１１が実行する描画シーケンスの流れを示すフローチャートである。
【図６】画像処理装置１１の動作例を説明するための図である。
【図７】ガウスフィルタ処理におけるフィルタ係数の一例を示す図である。
【図８】画像処理装置１１の動作例を説明するための図である。
【図９】従来のスプライト方式の画像処理装置２の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下図面を参照しつつ本発明の実施形態を説明する。
（Ａ：構成）
図１は、本発明の一実施形態の画像処理装置１１を含む画像表示システムの構成例および画像処理装置１１の構成例を示すブロック図である。図１では、図９におけるものと同一のものには同一の符号が付されている。図１と図９とを対比すれば明らかなように本実施形態の画像表示システムは、画像処理装置２に代えて画像処理装置１１を設けた点が図９に示す画像表示システムと異なる。画像処理装置１１は、画像処理装置２と同様に画像処理ＬＳＩである。ただし、画像処理装置１１は、以下の２つの機能を有する点が画像処理装置２と異なる。第１に、複数のスプライトをスプライトバッファ１８或いはフレームバッファ２３上で互いに関連付け（以下、「リンク」と呼ぶ）、１つのオブジェクトとして取り扱う機能である。第２に、表示装置４に表示される画像に動きや奥行感を与える画像処理（前述した、ブラーやグロー、ドロップ・シャドウを実現する画像処理）を上記第１の機能を利用して実行する機能である。
以下、本実施形態の特徴を顕著に示す画像処理装置１１を中心に説明する。
【００１４】
図１に示すように、画像処理装置１１は、スプライト属性テーブル１３、デコード制御回路１４、ＲＯＭインタフェース１５、デコーダ１６、スプライトバッファインタフェース１７、スプライトバッファ１８、レンダリング制御回路２０、レンダリングエンジン２１、フレームバッファインタフェース２２、フレームバッファ２３、表示制御回路２５、およびホストインタフェース２６を有している。
【００１５】
ホストインタフェース２６にはホストＣＰＵ５が接続されている。このホストインタフェース２６を介して、スプライト属性テーブル１３へのスプライト属性データの登録がホストＣＰＵ５によって行われる。スプライト属性データには、表示装置４に表示させるスプライトに関する各種情報（スプライトの圧縮符号化データのパターンＲＯＭ３における格納場所を示す格納先アドレス、スプライトの拡大、縮小、回転、変形等を決めるパラメータ、配置位置を指示する配置位置データ等）が含まれている。
【００１６】
デコード制御回路１４は、ホストＣＰＵ５によってスプライト属性テーブル１３に書き込まれたスプライト属性データを読み出す。そして、デコード制御回路１４は、スプライト属性テーブル１３から読み出したスプライト属性データに含まれている格納先アドレスの示す圧縮符号化データをパターンＲＯＭ３から読み出す処理の制御、および当該圧縮符号化データのデコード処理の制御を行う。
【００１７】
より詳細に説明すると、デコード制御回路１４は、スプライト属性テーブル１３から読み出したスプライト属性データに含まれている格納アドレスをＲＯＭインタフェース１５に与える。ＲＯＭインタフェース１５は、デコード制御回路１４から与えられた格納アドレスを読出アドレスとしてパターンＲＯＭ３へ出力し、パターンＲＯＭ３から読み出された圧縮符号化データをデコーダ１６へ出力する。デコーダ１６は、ＲＯＭインタフェース１５を介してパターンＲＯＭ３から読み出された圧縮符号化データのデコード（伸張処理）を行って圧縮符号化前の画像データ（以下、スプライトパターンデータ）を復元する。デコーダ１６は、復元したスプライトパターンデータをスプライトバッファインタフェース１７へ出力する。スプライトバッファインタフェース１７は、デコーダ１６から出力されるスプライトパターンデータをスプライトバッファ１８に書き込む書き込み手段である。また、スプライトバッファインタフェース１７は、レンダリングエンジン２１からの指示を受けてスプライトバッファ１８内のスプライトパターンデータを読み出し、レンダリングエンジン２１へ出力する。
【００１８】
スプライトバッファ１８はＦＩＦＯ（ファーストイン・ファーストアウトメモリ）として機能する記憶手段である。スプライトバッファ１８は、複数のスプライトパターンデータを格納可能な記憶容量を有する。本実施形態では、圧縮符号化前の画像データとして、ＡＲＧＢ３２ビット形式の画像データが採用されており、スプライトバッファ１８にはこの形式の画像データが格納される。ＡＲＧＢ３２ビット形式の画像データとは、スプライトを構成する各画素の画素値が、透過係数α（８ビット）、Ｒ成分の強度（８ビット）、Ｇ成分の強度（８ビット）、Ｂ成分の強度（８ビット）で表現された画像データである。以下では、Ｒ成分、Ｇ成分およびＢ成分の各強度を表すデータのことを「カラーデータ」と呼ぶ場合がある。
【００１９】
レンダリング制御回路２０は、スプライト属性テーブル１３内のスプライト属性データを読み出し、読み出したスプライト属性データをレンダリングエンジン２１へ出力する。レンダリングエンジン２１は、スプライトバッファインタフェース１７から与えられたスプライトパターンデータのレンダリング処理（拡大、縮小、回転、変形等する処理）を、レンダリング制御回路２０から与えられる指示に従って行う。レンダリングエンジン２１は、レンダリング処理を完了したスプライトパターンデータをフレームバッファインタフェース２２へ出力する。フレームバッファインタフェース２２はレンダリングエンジン２１から出力されるスプライトパターンデータをフレームバッファ２３に書き込む書き込み手段である。また、フレームバッファインタフェース２２は、表示制御回路２５からの指示を受けてフレームバッファ２３からスプライトパターンデータを読み出し、表示制御回路２５へ出力する。
【００２０】
フレームバッファ２３は、１フレーム分の画像データを記憶する記憶手段である。フレームバッファ２３は、書き込み用と読み出し用とが交互に切り替えられるダブルバッファ構成となっている。表示制御回路２５は画像表示のための各種のタイミング信号を生成して表示装置４へ出力する。また、表示制御回路２５は、フレームバッファインタフェース２２を介してフレームバッファ２３から読み出されたスプライトパターンデータをそのタイミング信号に同期させて表示装置４へ出力する。
【００２１】
本実施形態では、複数のスプライトをスプライトバッファ１８或いはフレームバッファ２３上でリンクして１つのオブジェクトとして取り扱えるようにするための情報として、ＰＲＥビットおよびＮＯＲＥＬビットがスプライト属性データに含まれている。以下では、スプライトバッファ１８上で複数のスプライトをリンクすることを「プリリンク」と呼び、フレームバッファ２３上で複数のスプライトをリンクすることを「ポストリンク」と呼ぶ。スプライト属性データに含まれるＮＯＲＥＬビットの値が“０”であれば、当該スプライト属性データに対応するスプライトにリンクされる他のスプライトがあることを意味し、ＮＯＲＥＬビットが“１”であればリンクされる他のスプライトがないことを意味する。また、リンクされる他のスプライトのスプライト属性データに含まれるＰＲＥビットの値が“０”であれば他のスプライトはポストリンクされることを意味し、ＰＲＥビットが“１”であれば他のスプライトはプリリンクされることを意味する。また、スプライト属性データには、ＥＮＤビットが含まれる。通常このＥＮＤビットは“０”である。リンクされるスプライトがある場合、ＥＮＤビットが“１”のスプライト属性データがあれば、それに続くリンクされるスプライトは存在しないことを意味する。
【００２２】
図２（ａ）は、プリリンクを説明するための図である。プリリンクとは、スプライトバッファ１８に格納されているスプライトパターンデータにリンクされる他のスプライトのスプライトパターンデータをスプライトバッファ１８上で重ね書きすることで、リンクの関係がある複数のスプライトを１つのオブジェクトとして扱えるようにすることをいう。以下では、重ね書きされる方のスプライト（すなわち、最背面側のスプライト）を絶対スプライト（或いは親スプライト）と呼び、重ね書きする方のスプライトを相対スプライト（或いは子スプライト）と呼ぶ。なお、絶対スプライトのイメージサイズを超える領域に相対スプライトが配置される場合、当該領域に属する部分の展開は行われず、マスクされる（図２（ａ）におけるスプライト４の点線部分）。図２（ａ）には、スプライト０に対してスプライト１〜４の４つのスプライトをプリリンクする場合について例示されている。図２（ａ）に示すプリリンクが完了すると、以降は、スプライト０のスプライトパターンデータ（プリリンクによりスプライト１〜スプライト４のスプライトデータが部分的に上書きされたデータ）をスプライトバッファ１８から読み出すことで、スプライト０〜スプライト４を１つのオブジェクトとして扱うことができる。
【００２３】
図２（ｂ）は、ポストリンクを説明するための図である。ポストリンクとは、フレームバッファ２３に格納されている絶対スプライトのスプライトパターンデータに、当該絶対スプライトにリンクされる相対スプライトのスプライトパターンデータをフレームバッファ２３上で重ね書きすることをいう。プリリンク或いはポストリンクにおける絶対スプライトとしては、通常のスプライト或いは透明色で塗りつぶされた矩形の画像等を用いることができる。
【００２４】
図３には、図２（ａ）に示す絶対スプライトと相対スプライトについてのスプライト属性データのスプライト属性テーブル１３への格納例が示されている。スプライト属性テーブル１３には、各フレームを構成する絶対スプライトのスプライト属性データが連続して格納され、相対スプライトのスプライト属性データは、絶対スプライトのスプライト属性データの格納領域から離れた記憶領域に、同じ絶対スプライトにリンクされる相対スプライトのものが連続するように格納される。１または複数の相対スプライトがリンクされる絶対スプライトのスプライト属性データには、先頭の相対スプライトの属性テーブルの格納先アドレスが含まれている。１つのスプライトのスプライト属性データのデータサイズは一定のため、先頭の相対スプライトのスプライト属性データの格納先アドレスから、次の相対スプライトのスプライト属性データの格納先アドレスを算出することができる。前述したように、スプライト属性データのＥＮＤビットの値が“１”である相対スプライトは絶対スプライトにリンクされる最後の相対スプライトである。従って、絶対スプライトのスプライト属性データに含まれる先頭の相対スプライトの属性テーブルの格納先アドレスからＥＮＤビットが“１”である相対スプライトまで、スプライト属性データの格納先アドレスを算出し、その格納先アドレスの示すスプライト属性データを読み出すことで、絶対スプライトにリンクする全ての相対スプライトのスプライト属性データにアクセスすることができる。なお、絶対スプライトと相対スプライトとのリンクがプリリンクである場合、相対スプライトのスプライト属性データに含まれる配置位置データは直近にスプライトバッファ１８に展開されたスプライト（当該相対スプライトが最初の相対スプライトであれば、絶対スプライト）に対する相対位置（直近に展開されたスプライトの左上隅を原点とした場合の当該相対スプライトの左上隅の位置）を表す。すなわち、プリリンクされる相対スプライトが単独でスプライトバッファ１８およびフレームバッファ２３に描画されることはないのである。
【００２５】
本実施形態では、プリリンク、ポストリンクを用いてブラー、グローおよびドロップ・シャドウの各々を実現できるようにするため、ブラー、グローおよびドロップ・シャドウを施すスプライトについて以下の要領でスプライトパターンデータがパターンＲＯＭ３に予め登録されている。
【００２６】
ブラーの対象となるスプライトについては、当該スプライトの２倍のイメージサイズの透明色を表す縦長の画像データが絶対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されている。これにより、スプライトバッファ１８にはイメージサイズの２倍の大きさの縦長の領域を確保する。そして、当該ブラーの対象となるスプライトの輪郭部のαデータのみからなる画像データが第１の相対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されており、当該スプライトのカラーデータのみからなる画像データが第２の相対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されている。上記第１および第２の相対スプライトのスプライト属性データのＰＲＥビットには“１”がセットされている。つまり、上記絶対スプライトに対して上記第１および第２の相対スプライトはプリリンクされる。上記第１の相対スプライトのスプライト属性データには、絶対スプライトを横方向に二等分割した前半の領域（以下、ｏｄｄ領域）に当該第１の相対スプライトを配置することを示す配置位置データが含まれている。一方、上記第２の相対スプライトのスプライト属性データには、絶対スプライトを横方向に二等分割した後半の領域（以下、ｅｖｅｎ領域）に当該第２の相対スプライトを配置することを示す配置位置データが含まれている。
【００２７】
グローまたはドロップ・シャドウの対象となるスプライトについては、当該スプライトの２倍のイメージサイズの透明色を表す縦長の画像データが絶対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されている。これにより、スプライトバッファ１８にはイメージサイズの２倍の大きさの縦長の領域を確保する。そして、グローまたはドロップ・シャドウの対象となるスプライトの輪郭部のαデータのみからなる画像データが第１の相対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されている。さらに、グローまたはドロップ・シャドウの対象となるスプライトのカラーデータのみからなる画像データが第２の相対スプライトのスプライトパターンデータとしてパターンＲＯＭ３に圧縮符号化されて登録されている。
【００２８】
上記第１の相対スプライトのスプライト属性データのＰＲＥビットには“１”がセットされている。つまり、上記絶対スプライトに対して上記第１の相対スプライトはプリリンクされる。第１の相対スプライトのスプライト属性データには、前述したｅｖｅｎ領域に当該第１の相対スプライトを配置することを示す配置位置データが含まれている。これに対して、第２の相対スプライトのスプライト属性データのＰＲＥビットには“０”がセットされている。つまり、第２の相対スプライトは、上記絶対スプライトに第１の相対スプライトをプリリンクして得られる新たなスプライトに対してポストリンクされる。そして、グローの対象となるスプライトについての上記第２の相対スプライトのスプライト属性データには、当該第２の相対スプライトに縮小（または拡大）を施すことを示すパラメータと上記新たなスプライトに対して中心が一致するように配置することを示す配置位置データが含まれている。一方、ドロップ・シャドウの対象となるスプライトについての上記第２の相対スプライトのスプライト属性データには、当該第２の相対スプライトに縮小を施すことを示すパラメータと当該第２の相対スプライトを上記新たなスプライトに対して中心をずらして配置することを示す配置位置データが含まれている。
以上が画像処理装置１１の構成である。
【００２９】
（Ｂ：動作）
次に、画像処理装置１１の動作を図４および図５に示すフローチャートを参照して説明する。
（Ｂ−１：デコード・展開シーケンスの流れ）
図４は、画像処理装置１１が実行するデコード・展開シーケンスの流れを示すフローチャートである。デコード・展開シーケンスとは、パターンＲＯＭ３に格納されている圧縮符号化データを読み出してデコードし、デコード結果のスプライトパターンデータをスプライトバッファ１８に書き込む処理のことを言う。デコード・展開シーケンスでは、デコード制御回路１４は、まず、スプライト属性テーブル１３にアクセスし、スプライト属性データを取得する（ステップＳａ１）。次に、デコード制御回路１４は、ステップＳａ１にて取得したスプライト属性データに含まれている圧縮符号化データの格納先アドレスをＲＯＭインタフェース１５へ出力し、１ブロックの読み出しを指示する。ここで、１ブロックとは、例えば１６×１６ドットのデータであり、スプライトパターンデータは通常ｎ（ｎ：１より大きい整数）ブロックのデータによって構成されている。上記の指示を受けたＲＯＭインタフェース１５は、パターンＲＯＭ３から１ブロックの圧縮符号化データを読み出し、デコーダ１６へ出力する。デコーダ１６はその圧縮符号化データのデコードを行う（ステップＳａ２）。
【００３０】
次いで、デコード制御回路１４は、ステップＳａ２にてデコードされたブロックのスプライトバッファ１８への展開が必要か否かを判定する（ステップＳａ３）。例えば、ステップＳａ２にてデコードされたブロックが、絶対スプライトにプリリンクされる相対スプライトのブロックであり、かつ当該ブロックのスプライトパターンデータの全てが絶対スプライトのイメージサイズを超える領域に属するものである場合には、デコード制御回路１４は当該ブロックの展開不要と判定し、その他の場合は展開が必要と判定する。ステップＳａ３の判定結果が“Ｎｏ”であれば（すなわち、展開不要と判定された場合）、ステップＳａ４の処理が実行され、逆にステップＳａ３の判定結果が“Ｙｅｓ”であれば、ステップＳａ５の処理が実行される。
【００３１】
ステップＳａ３の判定結果が“Ｎｏ”である場合に実行されるステップＳａ４では、デコード制御回路１４は、ステップＳａ１にて取得したスプライト属性データに対応するスプライトを構成する全ブロックのデコードが終了したか否かをチェックする。ステップＳａ４のチェック結果が“Ｎｏ”の場合（すなわち、全ブロックのデコードが終了していない場合）は、デコード制御回路１４はＲＯＭインタフェース１５に次のブロックの読み出しを指示する。ＲＯＭインタフェース１５によって読み出された圧縮符号化データはデコーダ１６によってデコードされる（ステップＳａ２）。以降、上述した動作が繰り返えされ、直近にデコードしたスプライトパターンデータを展開せずにスプライトを構成する全ブロックのデコードが終了すると（ステップＳａ４：Ｙｅｓ）、デコード制御回路１４は、再びステップＳａ１の処理を実行し、次のスプライト（１または複数の相対スプライトがリンクされる絶対スプライトであれば最初の相対スプライト）のスプライト属性データをスプライト属性テーブル１３から読み出す。以後、上記と同様にして次のスプライトについてのデコード処理が行われる。
【００３２】
ステップＳａ３の判定結果が“Ｙｅｓ”である場合に実行されるステップＳａ５では、ステップＳａ２にてデコードされたブロックがデコーダ１６からスプライトバッファインタフェース１７に出力され、スプライトバッファ１８へのアクセスシーケンスが開始される。前述したようにスプライトバッファ１８はＦＩＦＯ（ファーストイン・ファーストアウトメモリ）であり、スプライトバッファ１８へのアクセスシーケンスとは、スプライトバッファ１８にブロック単位でスプライトパターンデータを順次展開する処理である。
【００３３】
スプライトバッファ１８へのアクセスシーケンスでは、まず、展開対象のブロックについて、絶対スプライトにプリリンクされる相対スプライトのブロックであるか否かの判定（ステップＳａ６）がスプライトバッファインタフェース１７によって行われる。ステップＳａ６の判定結果が“Ｎｏ”の場合、スプライトバッファインタフェース１７は、スプライトバッファ１８がＦＵＬＬの状態にあるか否かをチェックし（ステップＳａ７）、否であった場合に展開を実行する（ステップＳａ８）。また、スプライトバッファインタフェース１７は、スプライトバッファ１８がＦＵＬＬ状態であれば（ステップＳａ７：Ｙｅｓ）、ステップＳａ７の判定結果が“Ｎｏ”になるまでステップＳａ７の処理を繰り返し実行し、スプライトバッファ１８に空きができるのを待つ。
【００３４】
ステップＳａ６の判定結果が“Ｙｅｓ”である場合には、スプライトバッファインタフェース１７は、ステップＳａ７のチェックを行うことなく、ステップＳａ８の処理を実行する。ステップＳａ６の判定結果が“Ｙｅｓ”である場合にステップＳａ７のチェックを行わないのは、絶対スプライトの展開の際に当該相対スプライトのスプライトパターンデータを格納する領域が確保されているからである。
【００３５】
１ブロックの展開が終了すると、全ブロックの展開が終了したか否かのチェック（ステップＳａ９）がデコード制御回路１４によって行われる。全ブロックの展開が終了していない場合（ステップＳａ９：Ｎｏ）には、ステップＳａ５へ戻り、次のブロックのデコードが終了するのを待って、そのブロックについてステップＳａ６以降の処理が実行される。また、全ブロックの展開が終了した場合は（ステップＳａ９：Ｙｅｓ）、ステップＳａ１以降の処理が再度実行される。ただし、以上の処理によりスプライトバッファ１８への展開を完了したスプライトパターンデータが、絶対スプライトにプリリンクされている最後の相対スプライトのスプライトパターンであり、かつ、絶対スプライトおよび相対スプライトをリンクしてなるオブジェクトに対してブラー、グローまたはドロップ・シャドウの何れかを施すことが指示されていた場合には、これらを実現する画像処理がスプライトバッファインタフェース１７によって実行される。この画像処理の詳細については後に明らかにする。
以上が画像処理装置１１において実行されるデコード・展開シーケンスの流れである。
【００３６】
（Ｂ−２：描画シーケンスの流れ）
次に、フレームバッファ２３へスプライトパターンデータを書き込む描画シーケンスについて説明する。この描画シーケンスは、前述したデコード・展開シーケンスとは非同期に実行される。図５は、画像処理装置１１が実行する描画シーケンスの流れを示すフローチャートである。この描画シーケンスでは、まず、フレームバッファ２３へ書き込むスプライトパターンの拡大、縮小、回転、変形等を決めるパラメータ、表示位置を指示するデータ等のスプライト属性データがレンダリング制御回路２０によってスプライト属性テーブル１３から読み出される（ステップＳｂ１）。このとき、絶対スプライトにプリリンクされる相対スプライトについてのスプライト属性データは読み出し対象から除外される。前述したように、絶対スプライトにプリリンクされる相対スプライトをフレームバッファ２３に描画する必要はないからである。ただし、ポストリンクされる相対スプライトの属性データの読み出しは行われ、絶対スプライトの描画の後に描画が行われる。
【００３７】
レンダリング制御回路２０は、スプライト属性テーブル１３から読み出したスプライト属性データをレンダリングエンジン２１に与える。レンダリングエンジン２１は、レンダリング制御回路２０から入力されたスプライト属性データに基づいて初期パラメータの計算を行う（ステップＳｂ２）。次に、レンダリング制御回路２０は、描画するスプライトのイメージが既にスプライトバッファ１８上に展開されているかをスプライトバッファのステータス（ＥＭＰＴＹ）を参照して判定する（ステップＳｂ３）。レンダリング制御回路２０は、ステップＳｂ３の判定結果が“Ｎｏ”であれば（すなわち、ＥＭＰＴＹでない場合）は描画処理を行い（ステップＳｂ４）、ステップＳｂ３の判定結果がＹｅｓであれば、該当スプライトの展開が完了するまでステップＳｂ３を繰り返す。
【００３８】
ステップＳｂ４の描画処理では、レンダリング制御回路２０は、まず、スプライトバッファインタフェース１７へスプライトパターンデータの読み出しを指示する。スプライトバッファインタフェース１７は、その指示を受け、スプライト属性データに基づいてレンダリングエンジン２１によって計算された座標（アドレス）に該当するデータをスプライトバッファ１８から読み出し、レンダリングエンジン２１へ出力する。レンダリングエンジン２１は、そのデータと表示位置を示す表示位置データとをフレームバッファインタフェース２２へ出力する。フレームバッファインタフェース２２は、レンダリングエンジン２１から受け取ったスプライトパターンデータを、そのスプライトパターンデータとともにレンダリングエンジン２１から受け取った表示位置データに対応するアドレスに描画する（ステップＳｂ４、Ｓｂ５）。
【００３９】
フレームバッファ２３への描画処理は、回転、変形等の処理があるため、スプライトバッファ１８のＥＭＰＴＹの確認はスプライト単位で判断される。スプライト１個の全体のイメージがスプライトバッファ１８に展開されていないと、描画処理を開始できない。そして、スプライトの全描画が終了すると（ステップＳｂ６：ＹＥＳ）、ステップＳｂ１へ戻り、レンダリング制御回路２０が次のスプライト属性データをスプライト属性テーブル１３から読み出す。そして、読み出したスプライト属性データに基づいて次のスプライトの描画処理が行われる。
以上が描画シーケンスの流れである。
【００４０】
このように、スプライトバッファ１８からのスプライトパターンデータの読み出しは、スプライトバッファ１８へのスプライトパターンデータの書き込みとは非同期に実行される。すなわち、スプライトバッファ１８は、前述したように複数のスプライトパターンを展開可能な記憶容量をもつＦＩＦＯであり、ＦＩＦＯがＦＵＬＬにならない限りフレームバッファ２３の描画終了を待たずに次のスプライトのパターンデータをデコードしてスプライトバッファ１８に展開することができる。また、レンダリング制御回路２０はＦＩＦＯがＥＭＰＴＹでなければフレームバッファ２３へ描画を継続することができる。これにより、パターンＲＯＭ３内のパターンデータのデコード処理とフレームバッファ２３の描画処理の時間の違いを考慮することなくそれぞれの処理を行うことができ、この結果、描画処理能力を向上させることができる。
【００４１】
次いで、ブラー、グロー、ドロップ・シャドウの各々を実現する画像処理について説明する。前述したように、本実施形態では、ブラー、グローおよびドロップ・シャドウの何れかの対象となるスプライトについては、絶対スプライトと複数の相対スプライトに分割してスプライトパターンデータがパターンＲＯＭ３に登録されている。このため、ブラーの対象となるスプライトについては、絶対スプライト、第１の相対スプライト、第２の相対スプライトの順に、デコード・展開シーケンスの処理が実行される。同様に、グローまたはドロップ・シャドウの対象となるスプライトについては、絶対スプライト、第１の相対スプライト、第２の相対スプライトの順に、デコード・展開シーケンスの処理が実行される。
【００４２】
処理対象のスプライトに施す処理がブラーの場合は第１および第２の相対スプライトが、グロー、ドロップ・シャドウの場合は第１の相対スプライトが、絶対スプライトに対してプリリンクされる相対スプライトである。ブラーの場合、第１の相対スプライトのスプライトパターンデータは、当該第１の相対スプライトについてのスプライト属性データに含まれる配置位置情報にしたがって、スプライトバッファ１８上で絶対スプライトのｏｄｄ領域に展開される。一方、第２の相対スプライトのスプライトパターンデータは、当該第２の相対スプライトについてのスプライト属性データに含まれる配置位置情報にしたがって、スプライトバッファ１８上で絶対スプライトのｅｖｅｎ領域に展開される。また、グロー、ドロップ・シャドウの場合、第１の相対スプライトのスプライトパターンデータは、当該第１の相対スプライトについてのスプライト属性データに含まれる配置位置情報にしたがって、スプライトバッファ１８上で絶対スプライトのｅｖｅｎ領域に展開される。
【００４３】
処理対象のスプライトに施す処理がブラーの場合、絶対スプライトに対してプリリンクされる最後の相対スプライトは第２の相対スプライトであるため、当該第２の相対スプライトのスプライトパターンデータの展開の完了後、スプライトバッファインタフェース１７は、図６に示す処理を実行する。これに対して、処理対象のスプライトに施す処理がグローまたはドロップ・シャドウである場合、絶対スプライトに対してプリリンクされる最後の相対スプライトは第１の相対スプライトであるため、当該第１の相対スプライトのスプライトパターンデータの展開の完了後、スプライトバッファインタフェース１７は、図６に示す処理を実行する。すなわち、スプライトバッファインタフェース１７は、ｅｖｅｎ領域に展開された相対スプライトのスプライトパターンデータを読み出しながらガウスフィルタ処理を施してｏｄｄ領域に書き込む（図６：ステップｓｔ１、なお、図６にて○印で囲んだＦはフィルタ処理を表す）。ガウスフィルタ処理とは、処理対象の画素とその周辺の画素の各画素の画素値と各画素に対応する係数を乗算した値を加算して当該処理対象の画素の画素値を算出する処理である。例えば、５×５のマトリクスを単位としてガウスフィルタ処理を行う場合（図７における画素ｕ３３が処理対象である場合）は、５×５領域内の各画素の画素値に図７に示す各画素の係数を画素毎に乗算して得られる値を加算した結果が画素Ｕ３３のガウスフィルタ処理結果となる。
【００４４】
ｅｖｅｎ領域に展開された相対スプライトがカラーデータのみの画像データであれば、スプライトバッファインタフェース１７はカラーデータのみにガウスフィルタ処理を施してｏｄｄ領域に格納されている画像データのカラーデータを上書きし、ｅｖｅｎ領域に展開された相対スプライトがαデータのみの画像データであれば、スプライトバッファインタフェース１７はαデータのみにガウスフィルタ処理を施してｏｄｄ領域に格納されている画像データのαデータを上書きする。スプライトバッファインタフェース１７はステップｓｔ１の後、ｏｄｄ領域に書き込まれたデータを読み出しながらガウスフィルタ処理を施してｅｖｅｎ領域に書き込む（ステップｓｔ２）。以降、スプライトバッファインタフェース１７は、ｅｖｅｎ／ｏｄｄを切り替えてガウスフィルタのカスケード処理を予め定められた回数だけ繰り返す（図６：ステップｓｔ３〜ステップｓｔ７）。ガウスフィルタのカスケード処理の繰り返し回数については絶対スプライトのスプライト属性データに含めて画像処理装置１１に与えても良く、また、予め定められた固定値としても良い。図６には、ガウスフィルタのカスケード処理を７回行う場合について例示されている。
【００４５】
処理対象のスプライトに施す処理がブラーである場合、第１の相対スプライトのスプライトパターンデータは当該処理対象のスプライトの輪郭部分のαデータであり、第２の相対スプライトのスプライトパターンデータは当該処理対象のスプライトのカラーデータである。上記カスケード処理の回数が奇数回である場合には、最終結果（すなわち、ガウスフィルタ処理のカスケード処理が施されたカラーデータと当該カスケード処理を施されていないαデータとからなる画像データ）はｏｄｄ領域に展開される。ｏｄｄ領域の格納内容を処理対象として前述の描画シーケンスを実行すれば、ガウスフィルタ処理のカスケードによりぼやけたスプライトの画像データがフレームバッファ２３に描画され、ブラーが実現される。
【００４６】
処理対象のスプライトに施す処理がグローまたはドロップ・シャドウである場合、第１の相対スプライトのスプライトパターンデータは当該処理対象のスプライトの輪郭部分のαデータのみからなる画像データである。したがって、ガウスフィルタのカスケード処理を奇数回行うと、ｏｄｄ領域に格納されている各画素のαデータはガウスフィルタ処理を繰り返し施したものに更新される。グローおよびドロップ・シャドウは、図６に示す処理に加えて、描画シーケンスにおいて図８に示す処理をフレームバッファインタフェース２２に実行させることで実現される。すなわち、フレームバッファインタフェース２２は、ｏｄｄ領域に格納されているガウスフィルタ処理済のαデータを用いて固定色（例えば、グローの場合は白、ドロップ・シャドウの場合はグレイ）の画像と透過処理を行って新たなスプライトとしてフレームバッファ２３に描画する。そして、フレームバッファインタフェース２２は、上記第２の相対スプライト（図８に示す例では、文字“Ａ”の画像）を当該新たなスプライトにポストリンクする。なお、図８において点描のハッチングは透明色を表し、斜線のハッチングは上記固定色を表し、横線のハッチングは背景色を表す。
【００４７】
上記処理対象のスプライトに対して施す処理がグローであれば、第２の相対スプライトは縮小（または拡大）を施された後にフレームバッファ２３上で上記新たなスプライトに対して中心を一致させて重ね書きされる。その結果、第２の相対スプライトの輪郭部分には上記固定色のぼやけた縁取りが付与され、グローが実現される。これに対して、上記処理対象のスプライトに対して施す処理がドロップ・シャドウであれば、第２の相対スプライトは縮小を施された後にフレームバッファ２３上で上記新たなスプライトに対して中心をずらして重ね書きされる。その結果、上記新たなスプライトのうち第２の相対スプライトとは重ならない部分があたかも影のように見え、ドロップ・シャドウが実現される。
【００４８】
以上説明したように本実施形態によれば、パターンＲＯＭ３から読み出してリアルタイムにデコードしたスプライトパターンをブロック単位でスプライトバッファ１８に展開しながらフレームバッファ２３に重ね合わせて描画する際に、スプライトパターンの奥行き感を演出するブラー、グロー、ドロップ・シャドウを実現することが可能になる。
【００４９】
（Ｃ：変形）
以上本発明の一実施形態について説明したが、この実施形態を以下のように変形しても勿論良い。
（１）上記実施形態では、絶対スプライトを、処理対象となるスプライトの２倍のイメージサイズとしたが、当該処理対象となるスプライトと同じイメージサイズとしても良い。この場合、スプライトバッファ１８に当該処理対象のスプライトの２倍のイメージサイズ分の記憶領域を確保した後、ｏｄｄ領域に絶対スプライト（透明色の画像）を配置し、ｅｖｅｎ領域に相対スプライトを配置するように相対スプライトの配置情報を規定しておく。この場合、絶対スプライトの領域外に相対スプライトを展開することになるが、イレギュラーとして対応すれば良い。このような態様によれば、最終的な描画対象であるｏｄｄ領域の画像が絶対スプライトと一致し、描画シーケンスが単純化される。
【００５０】
（２）上記実施形態では、スプライトバッファ１８に確保したｏｄｄ領域およびｅｖｅｎ領域を交互に使用しながらブラー、グロー、ドロップ・シャドウなどスプライトの動きや奥行感を演出する画像処理を実現する場合について説明した。しかし、スプライトバッファ１８或いはフレームバッファ２３上で複数のスプライトをリンクするプリリンク、ポストリンクを利用しつつ文字列全体を拡大縮小、回転、変形することで、複雑な構成規則をもつアラビア語のフォントレイアウトや多言語の混在、等幅でないフォントの文字列の描画を行うようにしても良い。
【００５１】
（３）上記実施形態では、ブラー、グロー、ドロップ・シャドウなどスプライトの動きや奥行感を演出する画像処理を実現する場合について説明した。しかし、本発明の適用対象はこれら画像処理に限定されるものではなく、スプライトパターンデータに対してフィルタ処理を繰り返し施すことを要する画像処理であれば適用可能であり、上記フィルタ処理はガウスフィルタ処理に限定されるものでもない。
【００５２】
（４）上記実施形態ではブラーを実現する際にカラーデータに対してのみガウスフィルタ処理を施したが透過処理係数に対してもガウスフィルタ処理を施しても良い。要は、各々スプライトの属性データを記憶するスプライト属性テーブルと、描画対象とするスプライトの画像データを前記スプライト属性テーブルの属性データに従って第１の記憶手段に書き込む第１の書き込み手段と、１フレームの画像を表す画像データを記憶する第２の記憶手段と、前記第１の記憶手段に記憶された画像データを前記第２の記憶手段へ書き込む第２の書き込み手段と、を備え、少なくとも一のスプライトの位置情報が当該スプライトの属性データに格納されており、他の少なくとも一のスプライトの位置情報は当該スプライト以外の他のスプライトからの相対位置として、当該スプライトの属性データに格納されており、前記第１の書き込み手段は、フィルタ処理の対象となるスプライトのイメージサイズの２倍の記憶領域を前記第１の記憶手段に確保し、前記少なくとも一のスプライトの属性データに従って、当該スプライトを前記記憶領域に書き込み、前記記憶領域を前半と後半に等分した一方に、前記他の少なくとも一のスプライトの属性データに従って、前記他の少なくとも一のスプライトを書き込み、前記前半の領域と前記後半の領域のうちの直近に書き込みの行われた領域にフィルタ処理を施して他方の領域に書き込む処理を予め定められた回数だけ繰り返し、前記第２の書き込み手段は、前記前半と後半の領域のうち直近に書き込みの行われた領域の画像データを前記第１の記憶手段から読み出して前記第２の記憶手段に書き込むことを特徴とする画像処理装置であれば良い。この場合、カラーデータと透過処理係数とで異なる種類のフィルタ処理を施しても良い。このようにすることで、ブラー、グロー、ドロップ・シャドウの何れとも異なる効果を付与することができると考えられるからである。
【符号の説明】
【００５３】
３…パターンＲＯＭ、４…表示装置、１１…画像処理装置、１３…スプライト属性テーブル、１４…デコード制御回路、１５…ＲＯＭインタフェース、１６…デコーダ、１７…スプライトバッファインタフェース、１８…スプライトバッファ、２０…レンダリング制御回路、２１…レンダリングエンジン、２２…フレームバッファインタフェース、２３…フレームバッファ、２５…表示制御回路、２６…ホストインタフェース。
【図１】
2015219351.tif 000003
【図２】
2015219351.tif 000004
【図３】
2015219351.tif 000005
【図４】
2015219351.tif 000006
【図５】
2015219351.tif 000007
【図６】
2015219351.tif 000008
【図７】
2015219351.tif 000009
【図８】
2015219351.tif 000010
【図９】
2015219351.tif 000011