図面 (/)

技術 画像処理装置及びプログラム

出願人 株式会社東芝
発明者 檜田和浩国松敦上村剛竹本卓尾藤英直
出願日 2010年3月30日 (11年2ヶ月経過) 出願番号 2010-079836
公開日 2011年5月6日 (10年1ヶ月経過) 公開番号 2011-090663
状態 特許登録済
技術分野 イメージ生成 表示装置の制御、回路
主要キーワード ベクタイメージ Y座標 テセレーション ラスタ図形 X座標 処理遅れ キャッシュ量 モーフ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2011年5月6日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (9)

課題

テセレーション処理を効率的に実行する。

解決手段

ベクタイメージ頂点データに対してスプライト毎補間処理を行うCPU2と、前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行うハードウェアであるテセレーション処理部6と、前記テセレーション処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデータ記憶部61と、を備え、前記CPU2は、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部61に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする。

概要

背景

携帯端末など表示機能を持つ組み込み機器では、パーソナルコンピュータ(以下、単に
PC)で再生されるようなリッチコンテンツが扱われるようになることが予想される。し
かしながら、組み込み機器に搭載される画像処理装置は、コンパクトかつ低消費電力であ
ることが求められるため、リッチコンテンツの高品質な再生のための充分なメモリやCP
Uのクロック数が確保できなかった。このため、近年は、リッチコンテンツの高品質な再
生をできるようにするための方策として、リッチコンテンツの再生に関する一部乃至全て
の処理を担う部分を専用ハードウェア化することが試みられている(例えば特許文献1)

リッチコンテンツの再生においては、ベクタグラフィックスの描画、なかでもテセレー
ション処理が非常に多くの計算量を要する。テセレーション処理とは、曲線曲面)や輪
郭線の頂点などで表現された物体の表面を多角形(以下、プリミティブ)の集合体で表現
する形式に変換する処理をいう。このテセレーション処理の効率を向上させることが画像
処理装置においてリッチコンテンツを高品質に再生できるようにするためのキーポイント
であるといえる。

概要

テセレーション処理を効率的に実行する。ベクタイメージ頂点データに対してスプライト毎補間処理を行うCPU2と、前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行うハードウェアであるテセレーション処理部6と、前記テセレーション処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデータ記憶部61と、を備え、前記CPU2は、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部61に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする。

目的

本発明は、テセレーション処理を効率的に実行することができる画像処理装置を提供す
ることを目的とする

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ベクタイメージ頂点データに対してスプライト毎補間処理を行うCPUと、前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行うハードウェアであるテセレーション処理部と、前記テセレーション処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデータ記憶部と、を備え、前記CPUは、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする画像処理装置

請求項2

前記テセレーションデータ記憶部は、生成したプリミティブを、該プリミティブのスプライトの識別番号に対応する論理アドレスに記憶し、前記CPUは、前記描画すべきスプライトの識別番号に対応する論理アドレスを前記テセレーション処理部に入力し、前記格納されたプリミティブを読み出す、ことを特徴とする請求項1に記載の画像処理装置。

請求項3

前記テセレーションデータ記憶部は、スプライト毎のプリミティブを該プリミティブの識別番号を下位アドレスとした論理アドレスに記憶する、ことを特徴とする請求項2に記載の画像処理装置。

請求項4

前記テセレーション処理部は、前記テセレーションデータ記憶部のスプライト毎のプリミティブの格納先の論理アドレスと、該格納先の論理アドレスに格納されているプリミティブのデータ量と、を対応付けるテセレーションデータ記憶部管理テーブルを備え、前記CPUから論理アドレスが入力されたとき、前記テセレーションデータ記憶部管理テーブルに基づいて前記入力された論理アドレスに前記プリミティブが格納されているか否かを判定する、ことを特徴とする請求項1乃至請求項3のうちの何れか1項に記載の画像処理装置。

請求項5

メインメモリに前記ベクタイメージの頂点データをロードする第2のCPUと、をさらに備え、前記CPUは、前記第2のCPUにより前記メインメモリにロードされたベクタイメージの頂点データに対して補間処理を行う、ことを特徴とする請求項1に記載の画像処理装置。

請求項6

ベクタイメージの頂点データに対してスプライト毎の補間処理及び前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行うCPUと、前記CPUにより生成されたプリミティブを記憶するメインメモリと、を備え、前記CPUは、描画すべきスプライトのプリミティブが前記メインメモリに記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする画像処理装置。

請求項7

ベクタイメージの頂点データに対して、ベクタイメージを描画する描画関数を生成するプログラムであって、コンピュータを、ベクタイメージの頂点データに対してスプライト毎の補間処理及び前記補間処理された頂点データに基づいてプリミティブを生成するテセレーション処理を行う手段と、生成された前記プリミティブを記憶する手段と、を備え、描画すべきスプライトのプリミティブが前記テセレーションデータ記憶部に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージを描画するための描画関数を生成する、として機能させるためのプログラム。

技術分野

0001

本発明は、画像処理装置に関する。

背景技術

0002

携帯端末など表示機能を持つ組み込み機器では、パーソナルコンピュータ(以下、単に
PC)で再生されるようなリッチコンテンツが扱われるようになることが予想される。し
かしながら、組み込み機器に搭載される画像処理装置は、コンパクトかつ低消費電力であ
ることが求められるため、リッチコンテンツの高品質な再生のための充分なメモリやCP
Uのクロック数が確保できなかった。このため、近年は、リッチコンテンツの高品質な再
生をできるようにするための方策として、リッチコンテンツの再生に関する一部乃至全て
の処理を担う部分を専用ハードウェア化することが試みられている(例えば特許文献1)

0003

リッチコンテンツの再生においては、ベクタグラフィックスの描画、なかでもテセレー
ション処理が非常に多くの計算量を要する。テセレーション処理とは、曲線曲面)や輪
郭線の頂点などで表現された物体の表面を多角形(以下、プリミティブ)の集合体で表現
する形式に変換する処理をいう。このテセレーション処理の効率を向上させることが画像
処理装置においてリッチコンテンツを高品質に再生できるようにするためのキーポイント
であるといえる。

先行技術

0004

特表平11−505644号公報

発明が解決しようとする課題

0005

本発明は、テセレーション処理を効率的に実行することができる画像処理装置を提供す
ることを目的とする。

課題を解決するための手段

0006

本願発明の一様態によれば、ベクタイメージ頂点データに対してスプライト毎に補間
処理を行うCPUと、前記補間処理された頂点データに基づいてプリミティブを生成する
テセレーション処理を行うハードウェアであるテセレーション処理部と、前記テセレーシ
ョン処理部により生成されたプリミティブをスプライト毎に記憶するテセレーションデー
タ記憶部と、を備え、前記CPUは、描画すべきスプライトのプリミティブが前記テセレ
ーションデータ記憶部に記憶されている場合、前記記憶されているプリミティブに基づい
て前記ベクタイメージを描画するための描画関数を生成する、ことを特徴とする画像処理
装置が提供される。

0007

本願発明の別態様によれば、ベクタイメージの頂点データに対してスプライト毎の補間
処理及び前記補間処理された頂点データに基づいてプリミティブを生成するテセレーショ
ン処理を行うCPUと、前記CPUにより生成されたプリミティブを記憶するメインメモ
リと、を備え、前記CPUは、描画すべきスプライトのプリミティブが前記メインメモリ
に記憶されている場合、前記記憶されているプリミティブに基づいて前記ベクタイメージ
を描画するための描画関数を生成する、ことを特徴とする画像処理装置が提供される。

発明の効果

0008

本発明によれば、テセレーション処理を効率的に実行することができる画像処理装置を
提供することができるという効果を奏する。

図面の簡単な説明

0009

図1は、コンテンツファイルを再生する際に実行される一般的な処理フローを説明する図。
図2は、本発明の第1の実施の形態の画像処理装置の構成を説明する図。
図3は、テセレーションキャッシュハードウェアの構成を説明する図。
図4は、本発明の第1の実施の形態の画像処理装置の動作を説明するフローチャート
図5は、テセレーションキャッシュハードウェアの動作を説明するフローチャート。
図6は、テセレーションキャッシュハードウェアの動作を説明するフローチャート。
図7は、本発明の第2の実施の形態の画像処理装置の構成を説明する図。
図8は、本発明の第2の実施の形態の画像処理装置の動作を説明するフローチャート。

実施例

0010

以下に添付図面を参照して、本発明の実施の形態にかかる画像処理装置を詳細に説明す
る。なお、この実施の形態により本発明が限定されるものではない。

0011

(第1の実施の形態)
まず、コンテンツファイルを再生する際に実行される一般的な処理フローを、図1を参
照して説明する。

0012

図1に示すように、まず、コンテンツファイルのロード処理が実行される(ステップ
1)。ロード処理では、コンテンツファイルが読み込まれ、読み込まれたファイル解凍
される。そして、解凍されたコンテンツファイルが含まれている情報(図形情報)をスプ
ライト(またはクラスともいう)毎に分けてメモリなどに格納される。また、解凍された
コンテンツファイルからテクスチャが取り出されてメモリなどに格納される。すなわちテ
クスチャが生成される。

0013

コンテンツファイルに含まれているキャラクタなどはベクタイメージ(ベクタ図形)で
描画される(ステップS2)。ベクタ図形で描画されているクラスの図形情報として含ま
れている輪郭線の頂点(頂点座標)を、後に実行されるベジェ補間が行いやすくなるよう
整列される。そして整列された頂点間がベジェ補間される。ベジェ補間された輪郭線で
区切られている夫々の面はテセレーション処理され、描画すべきプリミティブが生成され
る。以降、輪郭線の頂点座標を頂点データということもある。

0014

一方、コンテンツファイルに含まれている背景画像などはラスタイメージラスタ図形
)で描画される(ステップS3)。ロード処理により生成されたテクスチャに基づき、描
画すべきラスタ図形が生成される。

0015

そして、生成されたプリミティブおよび生成されたラスタ図形に対して、塗りつぶし処
理、半透明アルファブレンディング)処理、アンチエイリアス処理を含むピクセル処理
が実行されて、表示画面に表示するためのフレームが生成される(ステップS4)。

0016

上記説明した一連の処理フローは実行するコンピュータに対して高い性能を要求する。
近年のパーソナルコンピュータ(PC)など高性能なコンピュータでコンテンツファイル
を再生することは簡単であるが、前記したように、PCなどに比べて処理性能が劣る携帯
電話などに搭載される画像処理装置で実行すると、レイテンシが大きくなり、再生された
画像を動画としてみた場合、コマ遅れなど、処理遅れに起因する好ましくない事態が発生
する。すなわち画像処理装置では、高品質な再生ができない。

0017

本願発明の発明者らは、種々のシミュレーションおよび実験を行うことにより、このよ
うなフルスペックのコンテンツファイルの処理フローを画像処理装置で実行したとき、テ
セレーション処理がボトルネックとなって全体の処理速度の低下を引き起こしていること
を突き止めた。本実施の形態は、いちどテセレーション処理を施したスプライトに関して
は、テセレーション処理後のデータ(テセレーションデータ)をメモリに記憶させておく
。そして、再度同一のスプライトを描画する際はメモリに記憶させておいたテセレーショ
ンデータを使用する。これにより、テセレーション処理を行う回数を少なくしたことが特
徴となっている。なお、以降、再利用のためにテセレーションデータを記憶させることを
、テセレーションデータをキャッシュする、と表現することとする。

0018

図2は、上記特徴を実現するための本実施の形態の画像処理装置の構成を説明するブロ
ック図である。図示するように、画像処理装置1は、複数(ここでは2つ)のメインCP
U2a、2bと、ロード処理用CPU3と、GPU(Graphics Process
ing Unit)4と、メインメモリ5と、テセレーションキャッシュハードウェア(
HW)6と、SRAM(Static Random Access Memory)7
と、バス8とを備えている。

0019

テセレーションキャッシュHW6は、バス8に接続されている。テセレーションキャッ
シュHW6はテセレーション処理を実行するための専用ハードウェアである。テセレーシ
ョンキャッシュHW6は、ベジェ補間済みの頂点データに対してテセレーション処理を実
行する。テセレーションキャッシュHW6は、RAM(Random Access M
emory)61を備えており、テセレーション処理後のデータ(テセレーションデータ
)をスプライト毎にRAM61に格納(キャッシュ)する。ここで、テセレーションキャ
ッシュHW6は、スプライトを識別するためのID(スプライトID)を下位アドレス
した論理アドレスにスプライト毎のテセレーションデータをキャッシュする。すなわち、
テセレーションデータの格納先はスプライト毎に定められている。テセレーションキャッ
シュHW6のさらに詳しい構成については後ほど説明する。

0020

メインメモリ5は、リッチコンテンツの再生にかかる中間データや表示装置(図示せず
)に表示するためのデータであるフレームが格納される記憶領域として使用される。メイ
ンメモリ5は、例えばRAMで構成される。メインメモリ5は、メモリインタフェース
メモリIF)9を介してバス8に接続されている。

0021

ロード処理用CPU3は、ロード処理を実行するためのCPUである。具体的には、外
記憶装置(図示せず)などから入力されてきたリッチコンテンツのファイルを読み込ん
で、読み込んだファイルを解凍し、解凍したファイルに図形情報として含まれる頂点デー
タをスプライト毎に分け、中間データとしてメインメモリ5に格納する。ロード処理用C
PU3は、バス8に接続されている。

0022

メインCPU2aおよびメインCPU2bはマルチCPUシステムを構成しており、夫
キャッシュメモリ10に共通接続されている。メインCPU2aおよびメインCPU2
bは、夫々キャッシュメモリ10を介してバス8に接続されている。メインCPU2aお
よびメインCPU2bを総称してメインCPU2ということとする。メインCPU2は、
ロード処理されてメインメモリ5に格納されたスプライト毎の頂点データに対して、拡大
縮小、回転などの座標変換処理、頂点の整列、ベジェ補間を実行する。ベジェ補間され
た頂点データは、テセレーションキャッシュHW6に送られ、テセレーションキャッシュ
HW6にてテセレーション処理が実行される。メインCPU2は、テセレーション処理の
実行結果(テセレーションデータ)をRAM61から取得し、取得したテセレーションデ
ータに基づいて描画関数を生成し、生成した描画関数をSRAM7に格納する。

0023

ここで、以前に同一のスプライトに対するテセレーション処理が実行されたことがある
場合、そのテセレーション処理結果(テセレーションデータ)はRAM61にキャッシュ
されている。メインCPU2は、頂点の整列を実行する前に、描画すべきスプライトのテ
セレーションデータがRAM61にキャッシュされているか否かをテセレーションキャッ
シュHW6に問い合わせる。該当するテセレーションデータがキャッシュされていた場合
、メインCPU2は、そのテセレーションデータを取得し、取得したテセレーションデー
タに基づいて描画関数を生成する。なお、メインCPU2は、描画すべきスプライトのテ
セレーションデータがキャッシュされているか否かの問い合わせを要求する通知として、
キャッシュされている場合に格納先となるべきRAM61におけるアドレス、すなわちス
プライトIDを下位アドレスとしたアドレスをテセレーションキャッシュHW6に入力す
る。

0024

GPU4は、キャッシュメモリ11を介してバス8に接続されている。GPU4は、S
RAM7に格納されている描画関数に基づいて、描画対象のスプライトに対して塗りつぶ
し処理、半透明処理、アンチエイリアスなどの塗りつぶし処理を実行し、実行結果をフレ
ームとしてメインメモリ5に格納する。メインメモリ5に格納されたフレームは表示装置
などにそのまま描画される。

0025

図3は、テセレーションキャッシュHW6の構成をさらに詳細に説明するブロック図で
ある。図示するように、テセレーションキャッシュHW6は、RAM61と、論理回路
62とを備えている。

0026

RAM61には、テセレーションデータをキャッシュするための記憶領域であるテセレ
ーションキャッシュ記憶領域611が確保されている。テセレーションキャッシュ記憶
域611にキャッシュされているスプライト毎のテセレーションデータは、ベジェ補間済
みの頂点データと、該頂点データに基づいて生成されたプリミティブ(ここでは三角形
あるとする)を構成する座標(座標a〜c)およびプリミティブ毎の色を指定する色情報
と、を含んでいる。図3では、スプライト0〜スプライトnのテセレーションデータがキ
ャッシュされており、スプライト0は、三角形0〜三角形lのプリミティブを含んでいる
ことが示されている。また、三角形0〜三角形lが生成される元となった頂点データとし
て頂点座標0〜頂点座標mがキャッシュされていることが示されている。

0027

RAM61には、テセレーションキャッシュ記憶領域611にキャッシュされているテ
セレーションデータを管理するためのテーブルであるスプライトIDテーブル612が記
憶される。具体的には、スプライトIDテーブル612は、テセレーションデータのキャ
ッシュ先の論理アドレスと、テセレーションデータのキャッシュ先先頭物理アドレス
およびキャッシュ量と、をスプライトID毎に対応付ける。テセレーションデータがキャ
ッシュされていない論理アドレスには、キャッシュ量としてゼロ値「0」が対応付けられ
ている。なお、キャッシュ量とは、テセレーションデータのデータ量を示す値であって、
例えばlおよびmである。また、テセレーションデータの論理アドレスとは、前述したよ
うに、スプライトIDに適切な上位アドレスを付加したものである。

0028

また、RAM61には、ベジェ補間済みの頂点データに対してテセレーション処理を実
行する際の中間データを格納するための記憶領域である頂点データ記憶領域613が確保
されている。

0029

論理回路部62は、テセレーションキャッシュ制御部621、ソート回路部622、凸
分割処理部623、交差判定部624、および三角分割部625を備えている。

0030

テセレーションキャッシュHW6には、メインCPU2から、所望のスプライトのテセ
レーションデータがキャッシュされているか否かを問い合わせる要求としてアドレスが入
力される。なお、入力されてきたアドレスを入力アドレスということもある。テセレーシ
ョンキャッシュ制御部621は、入力アドレスおよびスプライトIDテーブル612に基
づいて、要求されたテセレーションデータがキャッシュされているか否かを判定する。キ
ャッシュされていた場合、テセレーションキャッシュ制御部621は、該当するテセレー
ションデータを読み出して、読み出したデータをキャッシュ量とともに出力データとして
メインCPU2に送信する。キャッシュされていなかった場合、テセレーションキャッシ
ュ制御部621は、出力データとして、メインCPU2へキャッシュ量「0」を送信する

0031

テセレーションキャッシュハードウェア6には、テセレーション処理すべきスプライト
の頂点データが該スプライトを構成する頂点データ(頂点座標)の個数とともに入力され
る。これらの入力される頂点座標の個数および頂点データを入力データということもある
。入力データは、いったん頂点データ記憶領域613に格納される。ソート回路部622
は、頂点データ記憶領域613に格納された頂点データおよび頂点座標の個数に基づいて
、後述する凸分割処理など、以降の処理を行うための処理順序を決定する回路である。例
えば、ソート回路部622は、X座標Y座標の順で優先順位を設け、優先順位に基づい
て夫々の頂点データの処理順序を決定する。

0032

凸分割処理部623は、ソート回路部622により決定された処理順序で頂点データが
表す輪郭線に囲まれた図形を凸分割する回路である。なお、凸分割により生成された新た
な図形を、リージョンということとする。交差判定部624は、交差しているリージョン
があるか否かを判定する回路である。

0033

三角分割部625は、各リージョンを最終的に出力するプリミティブとしての三角形に
分割する回路である。三角形に分割された後のデータ、および入力データに含まれ、頂点
データ記憶領域613に格納されている頂点データは、テセレーションキャッシュ記憶領
域611にスプライト毎に書き込まれる。

0034

次に、本実施の形態の画像処理装置1の動作を説明する。ここでは、特に、ベクタ図形
を再生する際の動作を説明する。図4は、ベクタ図形を再生する際の画像処理装置1の動
作を説明するフローチャートである。

0035

図4に示すように、まず、ロード処理用CPU3は、外部記憶装置などから入力されて
きたコンテンツファイルをロード処理し、頂点データをスプライト毎にメインメモリ5に
格納する(ステップS11)。メインCPU2は、メインメモリ5に格納されたスプライ
トの頂点データに対して座標変換処理を実行し、座標変換処理済みの頂点データをメイン
メモリ5に格納する(ステップS12)。

0036

続いて、メインCPU2は、座標変換処理済みのスプライト、すなわちこれから描画す
べきスプライトは、モーフィング中であるか否かを判定する(ステップS13)。モーフ
ィングとは、ある物体から別の形状の物体へ徐々に変化するように描画するコンピュータ
グラフィックスの手法の一つである。

0037

モーフィング中ではなかった場合(ステップS13、No)、メインCPU2は、描画
すべきスプライトのスプライトIDを下位アドレスとした入力アドレスをテセレーション
キャッシュHW6に入力して、テセレーションキャッシュHW6に、該スプライトのテセ
レーションデータがRAM61にキャッシュされているか否かを問い合わせる(ステップ
S14)。

0038

図5は、メインCPU2から入力アドレスが入力されたときのテセレーションキャッシ
ュHW6の動作を説明するフローチャートである。

0039

図5に示すように、入力アドレスが入力されると、テセレーションキャッシュ制御部6
21は、入力アドレスを検索キーとしてスプライトIDテーブル612を検索し、検索に
ヒットしたか否かを判定する(ステップS21)。スプライトIDテーブル612におい
て入力アドレスにキャッシュ量「0」が対応づけられている場合、テセレーションキャッ
シュ制御部621は、ヒットしなかったと判定する(ステップS21、No)。ヒットし
なかった場合(ステップS21、No)、テセレーションキャッシュ制御部621は、メ
インCPU2へ、キャッシュ量「0」を送信し(ステップS22)、動作はリターンとな
る。

0040

ヒットした場合(ステップS21、Yes)、入力アドレスに対応づけられている物理
アドレスから、入力アドレスに対応付けられているキャッシュ量に相当する量のデータ、
すなわち描画すべきスプライトのテセレーションデータを読み出して(ステップS23)
、読み出したテセレーションデータおよびキャッシュ量をメインCPU2へ送信する(ス
テップS24)。そして、動作はリターンとなる。

0041

図4戻り、ステップS14の問い合わせの結果、描画すべきスプライトのテセレーシ
ョンデータがキャッシュされていなかった場合(ステップS14、No)、すなわちテセ
レーションキャッシュHW6からキャッシュ量が「0」となっている出力データを受信し
た場合、メインCPU2は、座標変換処理済の頂点データの各頂点(頂点座標)を、ベジ
ェ補間しやすいように整列し(ステップS15)、整列済みの頂点データに対してベジェ
補間を実行する(ステップS16)。

0042

続いて、メインCPU2は、描画すべきスプライトのベジェ補間済みの頂点データおよ
び頂点座標の個数をバス8を介してテセレーションキャッシュHW6に入力し、描画すべ
きスプライトに対してテセレーション処理が実行される(ステップS17)。図6はステ
ップS17のテセレーション処理の動作をさらに詳しく説明するフローチャートである。

0043

図6に示すように、まず、ソート回路部622は、メインCPU2から送信されてきて
頂点データ記憶領域613に格納されている頂点データに対して、頂点の処理順序を決定
する(ステップS31)。そして、凸分割処理部623は、決定された処理順序で頂点座
標を逐次選択し、輪郭線の内側を算出し、輪郭線で囲まれた面について凸分割を実行する
(ステップS32)。交差判定部624は、凸分割によって生成されたリージョンの夫々
が交差していないことを確認する(ステップS33)。なお、ステップS32、ステップ
S33の動作は、描画すべきスプライトが備える頂点全てについて処理が行われるまで続
けられる。

0044

そして、三角分割部625は、凸分割により生成され、交差チェック済みのリージョン
の夫々を一つ以上のプリミティブとしての三角形に分割する(ステップS34)。分割後
に生成された三角形を示すデータはテセレーションデータとしてテセレーションキャッシ
ュ記憶領域611に格納される。ここで、テセレーションデータは、スプライトIDを下
位アドレスとした論理アドレスに対応づけられている物理アドレスを先頭とした領域に格
納される。

0045

そして、テセレーションキャッシュ制御部621は、テセレーションデータが格納され
た先頭の物理アドレスと、テセレーションデータが含む三角形の数および頂点座標の数に
基づいてキャッシュ量とを求め、テセレーションデータが格納された物理アドレスに対応
する論理アドレスと前記算出した物理アドレスおよびキャッシュ量とを対応づけてスプラ
イトIDテーブル612に記録(すなわちスプライトIDテーブル612を更新)する(
ステップS35)。テセレーションキャッシュ制御部621は、格納されたテセレーショ
ンデータおよび該テセレーションデータのキャッシュ量をメインCPU2へ出力し(ステ
ップS36)、動作はリターンとなる。

0046

図4もどり、メインCPU2は、テセレーションデータおよびキャッシュ量を受信す
ると、受信したテセレーションデータに基づいて描画関数を生成し(ステップS18)、
生成した描画関数をSRAM7に格納する。GPU4は、SRAM7に格納された描画関
数に基づいて、ピクセル処理を実行し(ステップS19)、実行結果をメインメモリ5に
フレームとして記憶させ、動作が終了する。

0047

ステップS14において、すでに描画すべきスプライトのテセレーションデータがキャ
ッシュされていた場合(ステップS14、Yes)、すなわちメインCPU2がテセレー
ションキャッシュHW6からテセレーションデータおよびキャッシュ量を受信した場合、
頂点の整列(ステップS15)、ベジェ補間(ステップS16)、およびテセレーション
処理(ステップS17)をスキップしてステップS18の処理に移行する。

0048

ステップS13において、描画すべきスプライトがモーフィング中であった場合(ステ
ップS13、Yes)、頂点データが変化しているため新たにテセレーション処理を実行
する必要があるので、ステップS15に移行する。

0049

なお、以上の説明においては、ロード処理(ステップS11)の後、座標変換(ステッ
プS12)が実行されるとして説明しているが、本実施の形態では、ロード処理にかかる
レイテンシを隠蔽するために、ロード処理は専用のCPU(ロード処理用CPU3)で実
行される。したがって、実際は、ロード処理(ステップS11)と座標変換(ステップS
12)以降の処理とは同時並行的に実行される。

0050

また、メインメモリ5は画像処理装置1に備えられるとして説明したが、メインメモリ
5は画像処理装置1外に設けられ、バス8およびメモリIF9を介してアクセスされるよ
うに構成しても構わない。

0051

また、テセレーションキャッシュ記憶領域611にキャッシュされているスプライト毎
のテセレーションデータは、ベジェ補間済みの頂点データを含んでいるとして説明したが
、ベジェ補間済みの頂点データを含まないようにしてもよい。また、キャッシュ量として
、例えばl(プリミティブの数に対応する値)およびm(頂点データの数に対応する値)
である、としたが、テセレーションデータがベジェ補間済みの頂点データを含まないよう
にする場合、キャッシュ量はlだけで表すことができる。また、キャッシュ量として、テ
セレーションデータの量(データ量)を示す値であればどのような値を用いるようにして
もよい。

0052

また、頂点データの補間処理としてベジェ補間を行うようにしたが、補間処理の手法は
ベジェ補間だけに限定しない。

0053

以上説明したように、本実施の形態によれば、テセレーションキャッシュハードウェア
6(テセレーション処理部)は、生成したプリミティブをスプライト毎に記憶するRAM
61(テセレーションデータ記憶部)を備え、メインCPU2は、描画すべきスプライト
のプリミティブがRAM61に記憶されている場合、該スプライトの頂点データに対する
補間処理をスキップして前記記憶されているプリミティブに基づいて前記ベクタイメージ
を描画するための描画関数を生成する、ように構成したので、一度テセレーション処理が
実行されたスプライトに対しては再度のテセレーション処理を実行する必要がなくなるの
で、テセレーション処理を効率的に実行することができるようになる。また、一度テセレ
ーション処理が実行されたスプライトに対しては、補間処理や補間処理のための頂点の整
列を行う必要がなくなる。

0054

また、メインメモリ5にベクタイメージの頂点データをロードするロード処理用CPU
3(サブCPU)をさらに備え、メインCPU2は、ロード処理用CPU3によりメイン
メモリ5にロードされたベクタイメージの頂点データに対して補間処理を行う、ように構
成したので、ロード処理にかかるレイテンシを隠蔽することができるので、処理速度を向
上させることができる。

0055

また、RAM61はテセレーションキャッシュハードウェア6内に備えられるとして説
明したが、テセレーションキャッシュハードウェア6がアクセス可能な場所であればテセ
レーションキャッシュハードウェア6の外に備えられるように構成しても構わない。

0056

(第2の実施の形態)
次に、図7図8を参照して、本実施の形態の画像処理装置について説明する。図7
、本実施の形態の画像処理装置の構成を説明するブロック図である。第1の実施の形態と
同様の構成については、同一の符号を付し、説明を省略する。

0057

第2の実施の形態は、テセレーションキャッシュハードウェア6を備えない点で、第1
の実施の形態と異なる。第1の実施の形態では、テセレーションキャッシュハードウェア
6により、テセレーション処理及びテセレーション処理後のデータの格納(キャッシュ)
が行われる。これに対し、第2の実施の形態では、メインCPU2により、テセレーショ
ン処理が実行され、メインメモリ5により、テセレーション処理後のデータ(テセレーシ
ョンデータ)が格納(キャッシュ)される。すなわち、以下において図8を参照して説明
する、メインCPU2が実行する処理は、メインCPU2がソフトウェアプログラム(以
下、プログラムという)を実行することにより実現される。プログラムは、画像処理装置
内のROM等に格納され、メインメモリの所定の領域に展開されて、実行される。

0058

メインCPU2は、ロード処理されたメモリ5に格納されたスプライト毎の頂点データ
に対して、拡大、縮小、回転などの座標変換処理、頂点の整列、ベジェ補間を実行する。
さらに、メインCPU2は、ベジェ補間された頂点データに対してテセレーション処理を
実行し、テセレーション処理後のデータ(テセレーションデータ)をメインメモリ5に格
納(キャッシュ)するとともに、該テセレーションデータに基づいて描画関数を生成する

0059

ここで、以前に同一のスプライトに対するテセレーション処理が実行されたことがある
場合、そのテセレーションデータはメインメモリ5にキャッシュされている。メインCP
U2は、頂点の整理を実行する前に、描画すべきスプライトのテセレーションデータがメ
インメモリ5にキャッシュされているか否か確認する。該当するテセレーションデータが
キャッシュされていた場合、メインCPU2は、そのテセレーションデータを取得し、取
得したテセレーションデータに基づいて描画関数を生成する。

0060

メインメモリ5は、リッチコンテンツの再生にかかる中間データや表示装置(図示せず
)に表示するためのデータであるフレームが格納される記憶領域として使用される。さら
に、メインメモリ5は、前述のように、メインCPU2によりテセレーション処理された
データ(テセレーションデータ)を格納(キャッシュ)する。メインメモリ5にキャッシ
ュされているスプライト毎のテセレーションデータは、ベジェ補間済みの頂点データと、
該頂点データに基づいて生成されたプリミティブ(ここでは三角形であるとする)を構成
する座標(座標a〜c)およびプリミティブ毎の色を指定する色情報と、を含んでいる。

0061

次に、図8を参照して、本実施の形態の画像処理装置2の動作を説明する。ここでは、
特に、ベクタ図形を再生する際の動作を説明する。図8は、ベクタ図形を再生する際の画
像処理装置の動作を説明するフローチャートである。

0062

ステップS41、S42、S43の処理については、図4の説明(ステップS11、S
12、S13)と同様であるので省略する。

0063

ステップ43において、モーフィング中でなかった場合(ステップS43、No)、メ
インCPU2は、描画すべきスプライトのテセレーションデータがキャッシュされている
か否か確認する。確認した結果、描画すべきスプライトのテセレーションデータがキャッ
シュされていなかった場合(ステップS44、No)、メインCPU2は、座標変換処理
済の頂点データの各頂点(頂点座標)を、ベジェ補間しやすいように整列し(ステップS
45)、整列済みの頂点データに対してベジェ補間を実行する(ステップS46)。

0064

続いて、メインCPU2は、描画すべきスプライトのベジェ補間済みの頂点データおよ
び頂点座標の個数をもとに、該スプライトに対してテセレーション処理を実行する(ステ
ップS47)。このとき、テセレーション処理後のデータをメインメモリ5にキャッシュ
する。

0065

続いて、メインCPU2は、テセレーション処理後のデータ(テセレーションデータ)
に基づいて描画関数を生成し(ステップS48)、実行結果をメインメモリ5にフレーム
として記憶させ、動作を終了する。

0066

ステップS44において、すでに描画すべきスプライトのテセレーションデータがメイ
ンメモリ5にキャッシュされていた場合(ステップS44、Yes)、頂点の整列(ステ
ップS45)、ベジェ補間(ステップS46)、およびテセレーション処理(ステップS
47)をスキップしてステップS48の処理に移行する。

0067

ステップS43において、描画すべきスプライトがモーフィング中であった場合(ステ
ップS43、Yes)、頂点データが変化しているため新たにテセレーション処理を実行
する必要があるので、ステップS45に移行する。

0068

以上説明したように、本実施の形態によれば、メインCPU2は、描画すべきスプライ
トのテセレーションデータがメインメモリ5に記憶されている場合、該スプライトの頂点
データに対する補間処理をスキップして前記記憶されているテセレーションデータに基づ
いて前記ベクタイメージを描画するための描画関数を生成する。これにより、第1の実施
の形態と同様の効果が得られる。

0069

なお、以上の説明においては、ロード処理(ステップS41)の後、座標変換(ステッ
プS42)が実行されるとして説明しているが、本実施の形態では、ロード処理にかかる
レイテンシを隠蔽するために、ロード処理は専用のCPU(ロード処理用CPU3)で実
行される。したがって、実際は、ロード処理(ステップS41)と座標変換(ステップS
22)以降の処理とは同時並行的に実行される。

0070

なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として
フレキシブルディスクCD-ROM等の可搬媒体や、ハードディスク等の記憶媒体に、その
全体あるいは一部のプログラムコードが記録され、あるいは記憶されている。そのプログ
ラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるい
は、そのプログラムのコードの全体あるいは一部を通信ネットワークを介して流通または
提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロ
ードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにイン
ストールすることで、容易に本実施形態の画像処理装置を実現することができる。

0071

なお、前述した各実施形態は、本発明の理解を容易にするためのものであり、本発明を
限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/
改良されうると共に、本発明にはその等価物も含まれる。

0072

1画像処理装置、2、2a、2bメインCPU、3ロード処理用CPU、4 G
PU、5メインメモリ、6テセレーションキャッシュハードウェア、7 SRAM、
8バス、9メモリIF、10キャッシュメモリ、11 キャッシュメモリ、61
RAM、62論理回路部、611 テセレーションキャッシュ記憶領域、612スプ
ライトIDテーブル、613頂点データ記憶領域、621 テセレーションキャッシュ
制御部、622ソート回路部、623 凸分割処理部、624交差判定部、625
三角分割部。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ