(57)【要約】【課題】テセレーション処理を効率的に実行する。【解決手段】ベクタイメージの頂点データに対してスプライト毎に補間処理を行うＣＰＵ２と、前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行うハードウェアであるテセレーション処理部６と、前記テセレーション処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデータ記憶部６１と、を備え、前記ＣＰＵ２は、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部６１に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする。【選択図】図２
2011090663.tif 000002
【特許請求の範囲】
【請求項１】
ベクタイメージの頂点データに対してスプライト毎に補間処理を行うＣＰＵと、
前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理
を行うハードウェアであるテセレーション処理部と、
前記テセレーション処理部により生成されたプリミティブをスプライト毎に記憶するテ
セレーションデータ記憶部と、
を備え、
前記ＣＰＵは、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶
部に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメー
ジを描画するための描画関数を生成する、
ことを特徴とする画像処理装置。
【請求項２】
前記テセレーションデータ記憶部は、生成したプリミティブを、該プリミティブのスプ
ライトの識別番号に対応する論理アドレスに記憶し、
前記ＣＰＵは、前記描画すべきスプライトの識別番号に対応する論理アドレスを前記テ
セレーション処理部に入力し、前記格納されたプリミティブを読み出す、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記テセレーションデータ記憶部は、スプライト毎のプリミティブを該プリミティブの
識別番号を下位アドレスとした論理アドレスに記憶する、ことを特徴とする請求項２に記
載の画像処理装置。
【請求項４】
前記テセレーション処理部は、
前記テセレーションデータ記憶部のスプライト毎のプリミティブの格納先の論理アドレ
スと、該格納先の論理アドレスに格納されているプリミティブのデータ量と、を対応付け
るテセレーションデータ記憶部管理テーブルを備え、
前記ＣＰＵから論理アドレスが入力されたとき、前記テセレーションデータ記憶部管理
テーブルに基づいて前記入力された論理アドレスに前記プリミティブが格納されているか
否かを判定する、
ことを特徴とする請求項１乃至請求項３のうちの何れか１項に記載の画像処理装置。
【請求項５】
メインメモリに前記ベクタイメージの頂点データをロードする第２のＣＰＵと、
をさらに備え、
前記ＣＰＵは、前記第２のＣＰＵにより前記メインメモリにロードされたベクタイメー
ジの頂点データに対して補間処理を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
ベクタイメージの頂点データに対してスプライト毎の補間処理及び前記補間処理された
頂点データに基づいてプリミティブを生成するテセレーション処理を行うＣＰＵと、
前記ＣＰＵにより生成されたプリミティブを記憶するメインメモリと、
を備え、
前記ＣＰＵは、描画すべきスプライトのプリミティブが前記メインメモリに記憶されて
いる場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するた
めの描画関数を生成する、
ことを特徴とする画像処理装置。
【請求項７】
ベクタイメージの頂点データに対して、ベクタイメージを描画する描画関数を生成する
プログラムであって、コンピュータを、
ベクタイメージの頂点データに対してスプライト毎の補間処理及び前記補間処理された
頂点データに基づいてプリミティブを生成するテセレーション処理を行う手段と、
生成された前記プリミティブを記憶する手段と、
を備え、
描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部に記憶されて
いる場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するた
めの描画関数を生成する、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
携帯端末など表示機能を持つ組み込み機器では、パーソナルコンピュータ（以下、単に
ＰＣ）で再生されるようなリッチコンテンツが扱われるようになることが予想される。し
かしながら、組み込み機器に搭載される画像処理装置は、コンパクトかつ低消費電力であ
ることが求められるため、リッチコンテンツの高品質な再生のための充分なメモリやＣＰ
Ｕのクロック数が確保できなかった。このため、近年は、リッチコンテンツの高品質な再
生をできるようにするための方策として、リッチコンテンツの再生に関する一部乃至全て
の処理を担う部分を専用ハードウェア化することが試みられている（例えば特許文献１）
。
【０００３】
リッチコンテンツの再生においては、ベクタグラフィックスの描画、なかでもテセレー
ション処理が非常に多くの計算量を要する。テセレーション処理とは、曲線（曲面）や輪
郭線の頂点などで表現された物体の表面を多角形（以下、プリミティブ）の集合体で表現
する形式に変換する処理をいう。このテセレーション処理の効率を向上させることが画像
処理装置においてリッチコンテンツを高品質に再生できるようにするためのキーポイント
であるといえる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表平１１−５０５６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、テセレーション処理を効率的に実行することができる画像処理装置を提供す
ることを目的とする。
【課題を解決するための手段】
【０００６】
本願発明の一様態によれば、ベクタイメージの頂点データに対してスプライト毎に補間
処理を行うＣＰＵと、前記補間処理された頂点データに基づいてプリミティブを生成する
テセレーション処理を行うハードウェアであるテセレーション処理部と、前記テセレーシ
ョン処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデー
タ記憶部と、を備え、前記ＣＰＵは、描画すべきスプライトのプリミティブが前記テセレ
ーションデータ記憶部に記憶されている場合、前記記憶されているプリミティブに基づい
て前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする画像処理
装置が提供される。
【０００７】
本願発明の別態様によれば、ベクタイメージの頂点データに対してスプライト毎の補間
処理及び前記補間処理された頂点データに基づいてプリミティブを生成するテセレーショ
ン処理を行うＣＰＵと、前記ＣＰＵにより生成されたプリミティブを記憶するメインメモ
リと、を備え、前記ＣＰＵは、描画すべきスプライトのプリミティブが前記メインメモリ
に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージ
を描画するための描画関数を生成する、ことを特徴とする画像処理装置が提供される。
【発明の効果】
【０００８】
本発明によれば、テセレーション処理を効率的に実行することができる画像処理装置を
提供することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、コンテンツファイルを再生する際に実行される一般的な処理フローを説明する図。
【図２】図２は、本発明の第１の実施の形態の画像処理装置の構成を説明する図。
【図３】図３は、テセレーションキャッシュハードウェアの構成を説明する図。
【図４】図４は、本発明の第１の実施の形態の画像処理装置の動作を説明するフローチャート。
【図５】図５は、テセレーションキャッシュハードウェアの動作を説明するフローチャート。
【図６】図６は、テセレーションキャッシュハードウェアの動作を説明するフローチャート。
【図７】図７は、本発明の第２の実施の形態の画像処理装置の構成を説明する図。
【図８】図８は、本発明の第２の実施の形態の画像処理装置の動作を説明するフローチャート。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明の実施の形態にかかる画像処理装置を詳細に説明す
る。なお、この実施の形態により本発明が限定されるものではない。
【００１１】
（第１の実施の形態）
まず、コンテンツファイルを再生する際に実行される一般的な処理フローを、図１を参
照して説明する。
【００１２】
図１に示すように、まず、コンテンツファイルのロード処理が実行される（ステップＳ
１）。ロード処理では、コンテンツファイルが読み込まれ、読み込まれたファイルが解凍
される。そして、解凍されたコンテンツファイルが含まれている情報（図形情報）をスプ
ライト（またはクラスともいう）毎に分けてメモリなどに格納される。また、解凍された
コンテンツファイルからテクスチャが取り出されてメモリなどに格納される。すなわちテ
クスチャが生成される。
【００１３】
コンテンツファイルに含まれているキャラクタなどはベクタイメージ（ベクタ図形）で
描画される（ステップＳ２）。ベクタ図形で描画されているクラスの図形情報として含ま
れている輪郭線の頂点（頂点座標）を、後に実行されるベジェ補間が行いやすくなるよう
に整列される。そして整列された頂点間がベジェ補間される。ベジェ補間された輪郭線で
区切られている夫々の面はテセレーション処理され、描画すべきプリミティブが生成され
る。以降、輪郭線の頂点座標を頂点データということもある。
【００１４】
一方、コンテンツファイルに含まれている背景画像などはラスタイメージ（ラスタ図形
）で描画される（ステップＳ３）。ロード処理により生成されたテクスチャに基づき、描
画すべきラスタ図形が生成される。
【００１５】
そして、生成されたプリミティブおよび生成されたラスタ図形に対して、塗りつぶし処
理、半透明（アルファブレンディング）処理、アンチエイリアス処理を含むピクセル処理
が実行されて、表示画面に表示するためのフレームが生成される（ステップＳ４）。
【００１６】
上記説明した一連の処理フローは実行するコンピュータに対して高い性能を要求する。
近年のパーソナルコンピュータ（ＰＣ）など高性能なコンピュータでコンテンツファイル
を再生することは簡単であるが、前記したように、ＰＣなどに比べて処理性能が劣る携帯
電話などに搭載される画像処理装置で実行すると、レイテンシが大きくなり、再生された
画像を動画としてみた場合、コマ遅れなど、処理遅れに起因する好ましくない事態が発生
する。すなわち画像処理装置では、高品質な再生ができない。
【００１７】
本願発明の発明者らは、種々のシミュレーションおよび実験を行うことにより、このよ
うなフルスペックのコンテンツファイルの処理フローを画像処理装置で実行したとき、テ
セレーション処理がボトルネックとなって全体の処理速度の低下を引き起こしていること
を突き止めた。本実施の形態は、いちどテセレーション処理を施したスプライトに関して
は、テセレーション処理後のデータ（テセレーションデータ）をメモリに記憶させておく
。そして、再度同一のスプライトを描画する際はメモリに記憶させておいたテセレーショ
ンデータを使用する。これにより、テセレーション処理を行う回数を少なくしたことが特
徴となっている。なお、以降、再利用のためにテセレーションデータを記憶させることを
、テセレーションデータをキャッシュする、と表現することとする。
【００１８】
図２は、上記特徴を実現するための本実施の形態の画像処理装置の構成を説明するブロ
ック図である。図示するように、画像処理装置１は、複数（ここでは２つ）のメインＣＰ
Ｕ２ａ、２ｂと、ロード処理用ＣＰＵ３と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓ
ｉｎｇ  Ｕｎｉｔ）４と、メインメモリ５と、テセレーションキャッシュハードウェア（
ＨＷ）６と、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７
と、バス８とを備えている。
【００１９】
テセレーションキャッシュＨＷ６は、バス８に接続されている。テセレーションキャッ
シュＨＷ６はテセレーション処理を実行するための専用ハードウェアである。テセレーシ
ョンキャッシュＨＷ６は、ベジェ補間済みの頂点データに対してテセレーション処理を実
行する。テセレーションキャッシュＨＷ６は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍ
ｅｍｏｒｙ）６１を備えており、テセレーション処理後のデータ（テセレーションデータ
）をスプライト毎にＲＡＭ６１に格納（キャッシュ）する。ここで、テセレーションキャ
ッシュＨＷ６は、スプライトを識別するためのＩＤ（スプライトＩＤ）を下位アドレスと
した論理アドレスにスプライト毎のテセレーションデータをキャッシュする。すなわち、
テセレーションデータの格納先はスプライト毎に定められている。テセレーションキャッ
シュＨＷ６のさらに詳しい構成については後ほど説明する。
【００２０】
メインメモリ５は、リッチコンテンツの再生にかかる中間データや表示装置（図示せず
）に表示するためのデータであるフレームが格納される記憶領域として使用される。メイ
ンメモリ５は、例えばＲＡＭで構成される。メインメモリ５は、メモリインタフェース（
メモリＩＦ）９を介してバス８に接続されている。
【００２１】
ロード処理用ＣＰＵ３は、ロード処理を実行するためのＣＰＵである。具体的には、外
部記憶装置（図示せず）などから入力されてきたリッチコンテンツのファイルを読み込ん
で、読み込んだファイルを解凍し、解凍したファイルに図形情報として含まれる頂点デー
タをスプライト毎に分け、中間データとしてメインメモリ５に格納する。ロード処理用Ｃ
ＰＵ３は、バス８に接続されている。
【００２２】
メインＣＰＵ２ａおよびメインＣＰＵ２ｂはマルチＣＰＵシステムを構成しており、夫
々キャッシュメモリ１０に共通接続されている。メインＣＰＵ２ａおよびメインＣＰＵ２
ｂは、夫々キャッシュメモリ１０を介してバス８に接続されている。メインＣＰＵ２ａお
よびメインＣＰＵ２ｂを総称してメインＣＰＵ２ということとする。メインＣＰＵ２は、
ロード処理されてメインメモリ５に格納されたスプライト毎の頂点データに対して、拡大
、縮小、回転などの座標変換処理、頂点の整列、ベジェ補間を実行する。ベジェ補間され
た頂点データは、テセレーションキャッシュＨＷ６に送られ、テセレーションキャッシュ
ＨＷ６にてテセレーション処理が実行される。メインＣＰＵ２は、テセレーション処理の
実行結果（テセレーションデータ）をＲＡＭ６１から取得し、取得したテセレーションデ
ータに基づいて描画関数を生成し、生成した描画関数をＳＲＡＭ７に格納する。
【００２３】
ここで、以前に同一のスプライトに対するテセレーション処理が実行されたことがある
場合、そのテセレーション処理結果（テセレーションデータ）はＲＡＭ６１にキャッシュ
されている。メインＣＰＵ２は、頂点の整列を実行する前に、描画すべきスプライトのテ
セレーションデータがＲＡＭ６１にキャッシュされているか否かをテセレーションキャッ
シュＨＷ６に問い合わせる。該当するテセレーションデータがキャッシュされていた場合
、メインＣＰＵ２は、そのテセレーションデータを取得し、取得したテセレーションデー
タに基づいて描画関数を生成する。なお、メインＣＰＵ２は、描画すべきスプライトのテ
セレーションデータがキャッシュされているか否かの問い合わせを要求する通知として、
キャッシュされている場合に格納先となるべきＲＡＭ６１におけるアドレス、すなわちス
プライトＩＤを下位アドレスとしたアドレスをテセレーションキャッシュＨＷ６に入力す
る。
【００２４】
ＧＰＵ４は、キャッシュメモリ１１を介してバス８に接続されている。ＧＰＵ４は、Ｓ
ＲＡＭ７に格納されている描画関数に基づいて、描画対象のスプライトに対して塗りつぶ
し処理、半透明処理、アンチエイリアスなどの塗りつぶし処理を実行し、実行結果をフレ
ームとしてメインメモリ５に格納する。メインメモリ５に格納されたフレームは表示装置
などにそのまま描画される。
【００２５】
図３は、テセレーションキャッシュＨＷ６の構成をさらに詳細に説明するブロック図で
ある。図示するように、テセレーションキャッシュＨＷ６は、ＲＡＭ６１と、論理回路部
６２とを備えている。
【００２６】
ＲＡＭ６１には、テセレーションデータをキャッシュするための記憶領域であるテセレ
ーションキャッシュ記憶領域６１１が確保されている。テセレーションキャッシュ記憶領
域６１１にキャッシュされているスプライト毎のテセレーションデータは、ベジェ補間済
みの頂点データと、該頂点データに基づいて生成されたプリミティブ（ここでは三角形で
あるとする）を構成する座標（座標ａ〜ｃ）およびプリミティブ毎の色を指定する色情報
と、を含んでいる。図３では、スプライト０〜スプライトｎのテセレーションデータがキ
ャッシュされており、スプライト０は、三角形０〜三角形ｌのプリミティブを含んでいる
ことが示されている。また、三角形０〜三角形ｌが生成される元となった頂点データとし
て頂点座標０〜頂点座標ｍがキャッシュされていることが示されている。
【００２７】
ＲＡＭ６１には、テセレーションキャッシュ記憶領域６１１にキャッシュされているテ
セレーションデータを管理するためのテーブルであるスプライトＩＤテーブル６１２が記
憶される。具体的には、スプライトＩＤテーブル６１２は、テセレーションデータのキャ
ッシュ先の論理アドレスと、テセレーションデータのキャッシュ先の先頭の物理アドレス
およびキャッシュ量と、をスプライトＩＤ毎に対応付ける。テセレーションデータがキャ
ッシュされていない論理アドレスには、キャッシュ量としてゼロ値「０」が対応付けられ
ている。なお、キャッシュ量とは、テセレーションデータのデータ量を示す値であって、
例えばｌおよびｍである。また、テセレーションデータの論理アドレスとは、前述したよ
うに、スプライトＩＤに適切な上位アドレスを付加したものである。
【００２８】
また、ＲＡＭ６１には、ベジェ補間済みの頂点データに対してテセレーション処理を実
行する際の中間データを格納するための記憶領域である頂点データ記憶領域６１３が確保
されている。
【００２９】
論理回路部６２は、テセレーションキャッシュ制御部６２１、ソート回路部６２２、凸
分割処理部６２３、交差判定部６２４、および三角分割部６２５を備えている。
【００３０】
テセレーションキャッシュＨＷ６には、メインＣＰＵ２から、所望のスプライトのテセ
レーションデータがキャッシュされているか否かを問い合わせる要求としてアドレスが入
力される。なお、入力されてきたアドレスを入力アドレスということもある。テセレーシ
ョンキャッシュ制御部６２１は、入力アドレスおよびスプライトＩＤテーブル６１２に基
づいて、要求されたテセレーションデータがキャッシュされているか否かを判定する。キ
ャッシュされていた場合、テセレーションキャッシュ制御部６２１は、該当するテセレー
ションデータを読み出して、読み出したデータをキャッシュ量とともに出力データとして
メインＣＰＵ２に送信する。キャッシュされていなかった場合、テセレーションキャッシ
ュ制御部６２１は、出力データとして、メインＣＰＵ２へキャッシュ量「０」を送信する
。
【００３１】
テセレーションキャッシュハードウェア６には、テセレーション処理すべきスプライト
の頂点データが該スプライトを構成する頂点データ（頂点座標）の個数とともに入力され
る。これらの入力される頂点座標の個数および頂点データを入力データということもある
。入力データは、いったん頂点データ記憶領域６１３に格納される。ソート回路部６２２
は、頂点データ記憶領域６１３に格納された頂点データおよび頂点座標の個数に基づいて
、後述する凸分割処理など、以降の処理を行うための処理順序を決定する回路である。例
えば、ソート回路部６２２は、Ｘ座標、Ｙ座標の順で優先順位を設け、優先順位に基づい
て夫々の頂点データの処理順序を決定する。
【００３２】
凸分割処理部６２３は、ソート回路部６２２により決定された処理順序で頂点データが
表す輪郭線に囲まれた図形を凸分割する回路である。なお、凸分割により生成された新た
な図形を、リージョンということとする。交差判定部６２４は、交差しているリージョン
があるか否かを判定する回路である。
【００３３】
三角分割部６２５は、各リージョンを最終的に出力するプリミティブとしての三角形に
分割する回路である。三角形に分割された後のデータ、および入力データに含まれ、頂点
データ記憶領域６１３に格納されている頂点データは、テセレーションキャッシュ記憶領
域６１１にスプライト毎に書き込まれる。
【００３４】
次に、本実施の形態の画像処理装置１の動作を説明する。ここでは、特に、ベクタ図形
を再生する際の動作を説明する。図４は、ベクタ図形を再生する際の画像処理装置１の動
作を説明するフローチャートである。
【００３５】
図４に示すように、まず、ロード処理用ＣＰＵ３は、外部記憶装置などから入力されて
きたコンテンツファイルをロード処理し、頂点データをスプライト毎にメインメモリ５に
格納する（ステップＳ１１）。メインＣＰＵ２は、メインメモリ５に格納されたスプライ
トの頂点データに対して座標変換処理を実行し、座標変換処理済みの頂点データをメイン
メモリ５に格納する（ステップＳ１２）。
【００３６】
続いて、メインＣＰＵ２は、座標変換処理済みのスプライト、すなわちこれから描画す
べきスプライトは、モーフィング中であるか否かを判定する（ステップＳ１３）。モーフ
ィングとは、ある物体から別の形状の物体へ徐々に変化するように描画するコンピュータ
グラフィックスの手法の一つである。
【００３７】
モーフィング中ではなかった場合（ステップＳ１３、Ｎｏ）、メインＣＰＵ２は、描画
すべきスプライトのスプライトＩＤを下位アドレスとした入力アドレスをテセレーション
キャッシュＨＷ６に入力して、テセレーションキャッシュＨＷ６に、該スプライトのテセ
レーションデータがＲＡＭ６１にキャッシュされているか否かを問い合わせる（ステップ
Ｓ１４）。
【００３８】
図５は、メインＣＰＵ２から入力アドレスが入力されたときのテセレーションキャッシ
ュＨＷ６の動作を説明するフローチャートである。
【００３９】
図５に示すように、入力アドレスが入力されると、テセレーションキャッシュ制御部６
２１は、入力アドレスを検索キーとしてスプライトＩＤテーブル６１２を検索し、検索に
ヒットしたか否かを判定する（ステップＳ２１）。スプライトＩＤテーブル６１２におい
て入力アドレスにキャッシュ量「０」が対応づけられている場合、テセレーションキャッ
シュ制御部６２１は、ヒットしなかったと判定する（ステップＳ２１、Ｎｏ）。ヒットし
なかった場合（ステップＳ２１、Ｎｏ）、テセレーションキャッシュ制御部６２１は、メ
インＣＰＵ２へ、キャッシュ量「０」を送信し（ステップＳ２２）、動作はリターンとな
る。
【００４０】
ヒットした場合（ステップＳ２１、Ｙｅｓ）、入力アドレスに対応づけられている物理
アドレスから、入力アドレスに対応付けられているキャッシュ量に相当する量のデータ、
すなわち描画すべきスプライトのテセレーションデータを読み出して（ステップＳ２３）
、読み出したテセレーションデータおよびキャッシュ量をメインＣＰＵ２へ送信する（ス
テップＳ２４）。そして、動作はリターンとなる。
【００４１】
図４に戻り、ステップＳ１４の問い合わせの結果、描画すべきスプライトのテセレーシ
ョンデータがキャッシュされていなかった場合（ステップＳ１４、Ｎｏ）、すなわちテセ
レーションキャッシュＨＷ６からキャッシュ量が「０」となっている出力データを受信し
た場合、メインＣＰＵ２は、座標変換処理済の頂点データの各頂点（頂点座標）を、ベジ
ェ補間しやすいように整列し（ステップＳ１５）、整列済みの頂点データに対してベジェ
補間を実行する（ステップＳ１６）。
【００４２】
続いて、メインＣＰＵ２は、描画すべきスプライトのベジェ補間済みの頂点データおよ
び頂点座標の個数をバス８を介してテセレーションキャッシュＨＷ６に入力し、描画すべ
きスプライトに対してテセレーション処理が実行される（ステップＳ１７）。図６はステ
ップＳ１７のテセレーション処理の動作をさらに詳しく説明するフローチャートである。
【００４３】
図６に示すように、まず、ソート回路部６２２は、メインＣＰＵ２から送信されてきて
頂点データ記憶領域６１３に格納されている頂点データに対して、頂点の処理順序を決定
する（ステップＳ３１）。そして、凸分割処理部６２３は、決定された処理順序で頂点座
標を逐次選択し、輪郭線の内側を算出し、輪郭線で囲まれた面について凸分割を実行する
（ステップＳ３２）。交差判定部６２４は、凸分割によって生成されたリージョンの夫々
が交差していないことを確認する（ステップＳ３３）。なお、ステップＳ３２、ステップ
Ｓ３３の動作は、描画すべきスプライトが備える頂点全てについて処理が行われるまで続
けられる。
【００４４】
そして、三角分割部６２５は、凸分割により生成され、交差チェック済みのリージョン
の夫々を一つ以上のプリミティブとしての三角形に分割する（ステップＳ３４）。分割後
に生成された三角形を示すデータはテセレーションデータとしてテセレーションキャッシ
ュ記憶領域６１１に格納される。ここで、テセレーションデータは、スプライトＩＤを下
位アドレスとした論理アドレスに対応づけられている物理アドレスを先頭とした領域に格
納される。
【００４５】
そして、テセレーションキャッシュ制御部６２１は、テセレーションデータが格納され
た先頭の物理アドレスと、テセレーションデータが含む三角形の数および頂点座標の数に
基づいてキャッシュ量とを求め、テセレーションデータが格納された物理アドレスに対応
する論理アドレスと前記算出した物理アドレスおよびキャッシュ量とを対応づけてスプラ
イトＩＤテーブル６１２に記録（すなわちスプライトＩＤテーブル６１２を更新）する（
ステップＳ３５）。テセレーションキャッシュ制御部６２１は、格納されたテセレーショ
ンデータおよび該テセレーションデータのキャッシュ量をメインＣＰＵ２へ出力し（ステ
ップＳ３６）、動作はリターンとなる。
【００４６】
図４にもどり、メインＣＰＵ２は、テセレーションデータおよびキャッシュ量を受信す
ると、受信したテセレーションデータに基づいて描画関数を生成し（ステップＳ１８）、
生成した描画関数をＳＲＡＭ７に格納する。ＧＰＵ４は、ＳＲＡＭ７に格納された描画関
数に基づいて、ピクセル処理を実行し（ステップＳ１９）、実行結果をメインメモリ５に
フレームとして記憶させ、動作が終了する。
【００４７】
ステップＳ１４において、すでに描画すべきスプライトのテセレーションデータがキャ
ッシュされていた場合（ステップＳ１４、Ｙｅｓ）、すなわちメインＣＰＵ２がテセレー
ションキャッシュＨＷ６からテセレーションデータおよびキャッシュ量を受信した場合、
頂点の整列（ステップＳ１５）、ベジェ補間（ステップＳ１６）、およびテセレーション
処理（ステップＳ１７）をスキップしてステップＳ１８の処理に移行する。
【００４８】
ステップＳ１３において、描画すべきスプライトがモーフィング中であった場合（ステ
ップＳ１３、Ｙｅｓ）、頂点データが変化しているため新たにテセレーション処理を実行
する必要があるので、ステップＳ１５に移行する。
【００４９】
なお、以上の説明においては、ロード処理（ステップＳ１１）の後、座標変換（ステッ
プＳ１２）が実行されるとして説明しているが、本実施の形態では、ロード処理にかかる
レイテンシを隠蔽するために、ロード処理は専用のＣＰＵ（ロード処理用ＣＰＵ３）で実
行される。したがって、実際は、ロード処理（ステップＳ１１）と座標変換（ステップＳ
１２）以降の処理とは同時並行的に実行される。
【００５０】
また、メインメモリ５は画像処理装置１に備えられるとして説明したが、メインメモリ
５は画像処理装置１外に設けられ、バス８およびメモリＩＦ９を介してアクセスされるよ
うに構成しても構わない。
【００５１】
また、テセレーションキャッシュ記憶領域６１１にキャッシュされているスプライト毎
のテセレーションデータは、ベジェ補間済みの頂点データを含んでいるとして説明したが
、ベジェ補間済みの頂点データを含まないようにしてもよい。また、キャッシュ量として
、例えばｌ（プリミティブの数に対応する値）およびｍ（頂点データの数に対応する値）
である、としたが、テセレーションデータがベジェ補間済みの頂点データを含まないよう
にする場合、キャッシュ量はｌだけで表すことができる。また、キャッシュ量として、テ
セレーションデータの量（データ量）を示す値であればどのような値を用いるようにして
もよい。
【００５２】
また、頂点データの補間処理としてベジェ補間を行うようにしたが、補間処理の手法は
ベジェ補間だけに限定しない。
【００５３】
以上説明したように、本実施の形態によれば、テセレーションキャッシュハードウェア
６（テセレーション処理部）は、生成したプリミティブをスプライト毎に記憶するＲＡＭ
６１（テセレーションデータ記憶部）を備え、メインＣＰＵ２は、描画すべきスプライト
のプリミティブがＲＡＭ６１に記憶されている場合、該スプライトの頂点データに対する
補間処理をスキップして前記記憶されているプリミティブに基づいて前記ベクタイメージ
を描画するための描画関数を生成する、ように構成したので、一度テセレーション処理が
実行されたスプライトに対しては再度のテセレーション処理を実行する必要がなくなるの
で、テセレーション処理を効率的に実行することができるようになる。また、一度テセレ
ーション処理が実行されたスプライトに対しては、補間処理や補間処理のための頂点の整
列を行う必要がなくなる。
【００５４】
また、メインメモリ５にベクタイメージの頂点データをロードするロード処理用ＣＰＵ
３（サブＣＰＵ）をさらに備え、メインＣＰＵ２は、ロード処理用ＣＰＵ３によりメイン
メモリ５にロードされたベクタイメージの頂点データに対して補間処理を行う、ように構
成したので、ロード処理にかかるレイテンシを隠蔽することができるので、処理速度を向
上させることができる。
【００５５】
また、ＲＡＭ６１はテセレーションキャッシュハードウェア６内に備えられるとして説
明したが、テセレーションキャッシュハードウェア６がアクセス可能な場所であればテセ
レーションキャッシュハードウェア６の外に備えられるように構成しても構わない。
【００５６】
（第２の実施の形態）
次に、図７、図８を参照して、本実施の形態の画像処理装置について説明する。図７は
、本実施の形態の画像処理装置の構成を説明するブロック図である。第１の実施の形態と
同様の構成については、同一の符号を付し、説明を省略する。
【００５７】
第２の実施の形態は、テセレーションキャッシュハードウェア６を備えない点で、第１
の実施の形態と異なる。第１の実施の形態では、テセレーションキャッシュハードウェア
６により、テセレーション処理及びテセレーション処理後のデータの格納（キャッシュ）
が行われる。これに対し、第２の実施の形態では、メインＣＰＵ２により、テセレーショ
ン処理が実行され、メインメモリ５により、テセレーション処理後のデータ（テセレーシ
ョンデータ）が格納（キャッシュ）される。すなわち、以下において図８を参照して説明
する、メインＣＰＵ２が実行する処理は、メインＣＰＵ２がソフトウェアプログラム（以
下、プログラムという）を実行することにより実現される。プログラムは、画像処理装置
内のＲＯＭ等に格納され、メインメモリの所定の領域に展開されて、実行される。
【００５８】
メインＣＰＵ２は、ロード処理されたメモリ５に格納されたスプライト毎の頂点データ
に対して、拡大、縮小、回転などの座標変換処理、頂点の整列、ベジェ補間を実行する。
さらに、メインＣＰＵ２は、ベジェ補間された頂点データに対してテセレーション処理を
実行し、テセレーション処理後のデータ（テセレーションデータ）をメインメモリ５に格
納（キャッシュ）するとともに、該テセレーションデータに基づいて描画関数を生成する
。
【００５９】
ここで、以前に同一のスプライトに対するテセレーション処理が実行されたことがある
場合、そのテセレーションデータはメインメモリ５にキャッシュされている。メインＣＰ
Ｕ２は、頂点の整理を実行する前に、描画すべきスプライトのテセレーションデータがメ
インメモリ５にキャッシュされているか否か確認する。該当するテセレーションデータが
キャッシュされていた場合、メインＣＰＵ２は、そのテセレーションデータを取得し、取
得したテセレーションデータに基づいて描画関数を生成する。
【００６０】
メインメモリ５は、リッチコンテンツの再生にかかる中間データや表示装置（図示せず
）に表示するためのデータであるフレームが格納される記憶領域として使用される。さら
に、メインメモリ５は、前述のように、メインＣＰＵ２によりテセレーション処理された
データ（テセレーションデータ）を格納（キャッシュ）する。メインメモリ５にキャッシ
ュされているスプライト毎のテセレーションデータは、ベジェ補間済みの頂点データと、
該頂点データに基づいて生成されたプリミティブ（ここでは三角形であるとする）を構成
する座標（座標ａ〜ｃ）およびプリミティブ毎の色を指定する色情報と、を含んでいる。
【００６１】
次に、図８を参照して、本実施の形態の画像処理装置２の動作を説明する。ここでは、
特に、ベクタ図形を再生する際の動作を説明する。図８は、ベクタ図形を再生する際の画
像処理装置の動作を説明するフローチャートである。
【００６２】
ステップＳ４１、Ｓ４２、Ｓ４３の処理については、図４の説明（ステップＳ１１、Ｓ
１２、Ｓ１３）と同様であるので省略する。
【００６３】
ステップ４３において、モーフィング中でなかった場合（ステップＳ４３、Ｎｏ）、メ
インＣＰＵ２は、描画すべきスプライトのテセレーションデータがキャッシュされている
か否か確認する。確認した結果、描画すべきスプライトのテセレーションデータがキャッ
シュされていなかった場合（ステップＳ４４、Ｎｏ）、メインＣＰＵ２は、座標変換処理
済の頂点データの各頂点（頂点座標）を、ベジェ補間しやすいように整列し（ステップＳ
４５）、整列済みの頂点データに対してベジェ補間を実行する（ステップＳ４６）。
【００６４】
続いて、メインＣＰＵ２は、描画すべきスプライトのベジェ補間済みの頂点データおよ
び頂点座標の個数をもとに、該スプライトに対してテセレーション処理を実行する（ステ
ップＳ４７）。このとき、テセレーション処理後のデータをメインメモリ５にキャッシュ
する。
【００６５】
続いて、メインＣＰＵ２は、テセレーション処理後のデータ（テセレーションデータ）
に基づいて描画関数を生成し（ステップＳ４８）、実行結果をメインメモリ５にフレーム
として記憶させ、動作を終了する。
【００６６】
ステップＳ４４において、すでに描画すべきスプライトのテセレーションデータがメイ
ンメモリ５にキャッシュされていた場合（ステップＳ４４、Ｙｅｓ）、頂点の整列（ステ
ップＳ４５）、ベジェ補間（ステップＳ４６）、およびテセレーション処理（ステップＳ
４７）をスキップしてステップＳ４８の処理に移行する。
【００６７】
ステップＳ４３において、描画すべきスプライトがモーフィング中であった場合（ステ
ップＳ４３、Ｙｅｓ）、頂点データが変化しているため新たにテセレーション処理を実行
する必要があるので、ステップＳ４５に移行する。
【００６８】
以上説明したように、本実施の形態によれば、メインＣＰＵ２は、描画すべきスプライ
トのテセレーションデータがメインメモリ５に記憶されている場合、該スプライトの頂点
データに対する補間処理をスキップして前記記憶されているテセレーションデータに基づ
いて前記ベクタイメージを描画するための描画関数を生成する。これにより、第１の実施
の形態と同様の効果が得られる。
【００６９】
なお、以上の説明においては、ロード処理（ステップＳ４１）の後、座標変換（ステッ
プＳ４２）が実行されるとして説明しているが、本実施の形態では、ロード処理にかかる
レイテンシを隠蔽するために、ロード処理は専用のＣＰＵ（ロード処理用ＣＰＵ３）で実
行される。したがって、実際は、ロード処理（ステップＳ４１）と座標変換（ステップＳ
２２）以降の処理とは同時並行的に実行される。
【００７０】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として
、フレキシブルディスク、CD-ROM等の可搬媒体や、ハードディスク等の記憶媒体に、その
全体あるいは一部のプログラムコードが記録され、あるいは記憶されている。そのプログ
ラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるい
は、そのプログラムのコードの全体あるいは一部を通信ネットワークを介して流通または
提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロ
ードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにイン
ストールすることで、容易に本実施形態の画像処理装置を実現することができる。
【００７１】
なお、前述した各実施形態は、本発明の理解を容易にするためのものであり、本発明を
限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／
改良されうると共に、本発明にはその等価物も含まれる。
【符号の説明】
【００７２】
１  画像処理装置、２、２ａ、２ｂ  メインＣＰＵ、３  ロード処理用ＣＰＵ、４  Ｇ
ＰＵ、５  メインメモリ、６  テセレーションキャッシュハードウェア、７  ＳＲＡＭ、
８  バス、９  メモリＩＦ、１０  キャッシュメモリ、１１  キャッシュメモリ、６１  
ＲＡＭ、６２  論理回路部、６１１  テセレーションキャッシュ記憶領域、６１２  スプ
ライトＩＤテーブル、６１３  頂点データ記憶領域、６２１  テセレーションキャッシュ
制御部、６２２  ソート回路部、６２３  凸分割処理部、６２４  交差判定部、６２５  
三角分割部。
【図１】
2011090663.tif 000003
【図２】
2011090663.tif 000004
【図３】
2011090663.tif 000005
【図４】
2011090663.tif 000006
【図５】
2011090663.tif 000007
【図６】
2011090663.tif 000008
【図７】
2011090663.tif 000009
【図８】
2011090663.tif 000010