表示システムのためのベクトルグラフィックス回路
ストリーム化された、または、非ストリーム化されたベクトルグラフィックスアプリケーションおよびマルチメディアコンテンツに対する高性能アクセラレータ回路。これは、現在のコンピュータおよび携帯アーキテクチャに比べてベクトルグラフィックスアプリケーションおよびマルチメディアコンテンツに対する性能を向上させる。ベクトルグラフィックスユニット回路は、二次および三次のベジェ曲線(すなわち、フォント、曲ったオブジェクトなど)の高速描画手段、べたのオブジェクトと透明なオブジェクトを合成するハードウェアおよび高速エイリアス除去ハードウェア部を含む。ベクトルグラフィックス部は、高品質のグラフィックスおよび低消費電力の特徴を有する市販の装置に特に適している。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトルおよびビットマップのグラフィックス・オブジェクトを最終画像にレンダリングするためのベクトルグラフィックス回路に関する。
【背景技術】
【0002】
今日では、携帯装置を介した有線または無線でのインターネット接続を用いたクライアント・サーバ・アプリケーションの人気が、ワールドワイドウェブ・コンソーシアム(World Wide Web Consortium)によるSVG(スケーラブル・ベクトルグラフィックス)、およびMacromedia(商標)によるSWFなどのオープン・グラフィックス・フォーマットに基づく、豊富なクライアント・ベクトルグラフィックス・コンテンツおよび豊富なユーザインタフェースを要求している。
【0003】
こうした装置で使われるディスプレイ装置は、サイズ、スクリーン解像度および色の深みが増加し、制御対象となる画素およびデータの総数が増加している。こうした画素レンダリングは、多くの場合、グラフィックス妥当性が異なる、異なったレイヤにスタックされたベクトルグラフィックス・オブジェクトの、1つ以上のビットマップ画像への変換を表示している。
【0004】
より高いスクリーン解像度および色の深みにより、携帯装置上の汎用プロセッサであるCPUの使用リソースおよび電力消費も増加し続けている。したがって、携帯/スマート装置の製造会社は、マルチメディア・プレイヤーの機能を減らし、提供するマルチメディア・プレイヤーの性能を非常に限られたものにすることを余儀なくされている。この解決手段を、標準のパーソナルコンピュータ・アーキテクチャ、デスクトップコンピュータおよびノートパソコンでの完全なオプションならびに高速マルチメディア・プレイヤーと比較すると、これは多くの場合、エンドユーザによる純粋なルック・アンド・フィールへの変換である。
【0005】
背面光を要しないOLEDなどの新技術に基づく前記ディスプレイ装置の電力消費も急速に減少し続けている。今日では、色QVGAのOLEDスクリーンは、携帯アプリケーション・プロセッサと同等以下の電力を使用する。
【発明の開示】
【発明が解決しようとする課題】
【0006】
消費者の装置でベクトルグラフィックス・アプリケーションおよびマルチメディア・コンテンツを実行するための、安価で効率の良い低電力の解決手段を提供する、ベクトルグラフィックス・アプリケーションおよびマルチメディア・コンテンツの実行のための、改良されたシステムを有することが所望されている。
【課題を解決するための手段】
【0007】
本発明は、ベクトルグラフィックス・オブジェクトを、OLED、カラーTFT、白黒LCD、CRTモニターなどのディスプレイ装置に、直接、カラー、グレースケール、またはb(黒)/w(白)ビットマップ画像として、高速にレンダリングするのに使用可能な、ハードウェアのベクトルグラフィックス部に関する。
【0008】
通常、ソフトウェアのベクトルグラフィックス・レンダリング・エンジンは、制御処理部(CPU)のパイプライン・アーキテクチャ上でソフトウェアを実行することにより、ベクトルグラフィックス・オブジェクトのビットマップ・オブジェクトへの変換を計算する。
【0009】
ベクトルグラフィックス部は、ベクトルレンダリング・エンジンが実行されるときに以前は発生していたボトルネックをCPU上のソフトウェアを通して排除するので、ベクトルグラフィックス・オブジェクトのレンダリングをかなり高速化している。
【0010】
本発明では、ベクトルレンダリング・エンジンの全てまたは少なくともその一部分が、ベクトルグラフィックス部としてハードウェア内で実行される。ベクトルグラフィックス・部およびCPUは、市販の装置と共に使用するのに適した、システム・オン・チップ(SoC)などの、埋め込み型システムを提供する、単一の半導体チップ上に一緒に配置できる。
【発明の効果】
【0011】
130nm未満の処理に対する新しいシリコン技術の進歩により、IC製造会社は、小さいフットプリント(1mm2未満)を伴う、VGUなどの高度に専門化したハードウェアIPコアを、専用システム・オン・チップ内へ含ませることが可能となっている。このVGU・IPコアは、30%未満という良好に受け入れられる値で、CPUのリソースを低減する一方、驚異的な性能アクセラレーション因子を加えている。これにより、非常に低電力および低周波数のマイクロ制御器を使用するスマートフォンおよび任意の他の携帯装置も、マルチメディア・ハイエンド・ノートパソコンの性能に達することが可能となる。したがって、音声による通信など、他の優先順位の高いタスクを犠牲にすることはない。こうした組込み型システムの解決手段は、非常な低消費電力の利点を有する分離型グラフィックス・アクセラレーション・チップを備えた強力なCPUほど高価ではない。
【発明を実施するための最良の形態】
【0012】
本発明は、同じ要素に同じ参照記号が付されている添付の図面と関連して以下に説明される。
【0013】
図1は、中央処理ユニット(CPU)2に結合したハードウェア・ベクトルグラフィックス部3の使用を示すシステム1の図である。ベクトルグラフィックス部3は、ベクトルレンダリング・エンジンの一部がハードウェアで実装されることを可能にする。このハードウェアの実装により、ベクトルグラフィックス・オブジェクトのレンダリングが高速化される。特に、好ましい実施形態では、スタック・レイヤ方式で構成されたベクトルグラフィックス・オブジェクトの、連続スキャンライン・ビットマップへの変換は、部分的または完全に、ハードウェアのベクトルグラフィックス部3内で実行される。この変換は、ソフトウェアで実行されるベクトルレンダリング・エンジンでは、ボトルネックの一部となってきた。
【0014】
図2は、CPU2のソフトウェアの前処理生成部およびベクトルグラフィックス部3を詳細に示している。表示リスト8は、ソフトウェアの前処理生成部とハードウェアのベクトルグラフィックス部3との間の通信チャネルとして機能する。
【0015】
ソフトウェアの曲線エッジ生成部4は、現在の時間フレーム内に描画される必要があるベジェ曲線における全てのグラフィックス・オブジェクトを分解し、それらを1つのエッジシーケンスとして表示リスト内に格納する。
【0016】
色テーブル生成部5は、エッジリストにより用いられる色を表示リストに追加する。
【0017】
傾き傾斜路生成部6は、その色が傾きであるときに、使用される全ての傾き傾斜路テーブルを作成する。
【0018】
ビットマップおよび平方根生成部7は、描画されるべきオブジェクト用のテキスチャとして使用されるビットマップを、表示リスト内に格納された適当なグラフィックスフォーマットに変換する。平方根テーブルは、画素値がそのアドレスの平方根である特別なビットマップであり、半径方向の傾きの色で描画されたオブジェクトに対して使用される。
【0019】
図3は、アクティブエッジ処理部16を示している。アクティブエッジ処理部16は、表示リスト8から、現在のスキャンラインで処理されるべきエッジをロードし、さらにそれらのエッジを、フリー・アクティブエッジ・スタック14により生成されたアドレスで、アクティブエッジ・テーブル13内へ格納する。同時に、ベジェ分解部10はエッジデータを処理する。ドカステリョ細分化部19とベジェ細分化ツリー・アドレス17を備えた、細分化されたベジェパラメータ18は、ベジェを一連のセグメントに分割し、それらをアクティブエッジ・テーブル13へ格納する。
【0020】
図4(a)は、二次ベジェ曲線を示し、また、図4(c)は、その8つのセグメントへの細分化を示している。細分化は、8つのセグメントが発生するまで実行されるが、しかし、同じ処理は、より多くのステップで繰り返すことができる。この繰り返しは、細分化された曲線が直線的セグメントに近似できるとき、平坦さのテストで停止できる。
【0021】
極小または極大を伴う全ての曲線は、2本の単調曲線により分割され、したがって、各Yステップで、X座標は常に減少または増加する。こうして、全ての曲線は、単純にY座標を増加するラスタスキャン・アルゴリズムで評価可能となる。三次ベジェ曲線においては、この処理は、1つ多い細分化を伴うが、同様である。
【0022】
ベジェ細分化ツリーアドレス17は、図4(d)に示された、Nセグメントを含む2ポートメモリのためのアドレス生成部であり、その構造は、読出しおよび書込みの数を最適化するように選択される。この2ポートメモリは、異なるアドレスに対して同時に読出しおよび書込みをする2つのポートを有している。細分化ブロックは、3対のXおよびYの加算と2による除算をする加算器および遅延素子から構成されている。
【0023】
図4(b)のフローチャートにより示されたシーケンスは、以下のように説明可能である。
(0)第1要素(2つのアンカー点および1つの制御点を表す3組のX,Y座標)、すなわち、処理対象のベジェ曲線を、第1メモリアドレス位置(アドレス0)に書込む。
(1)式に示されるように前記の点を細分化し、そして、メモリアドレス位置1に下位サブ曲線を書込み、さらにメモリアドレス位置0に上位サブ曲線を書込む。これは、全ての結果が、最初の読出しから計算され、それに続く書込みが、この特定の結果およびその中間結果によってのみ決定されるという事実により、最良のシーケンスとして提供される。
(2)アドレス1のサブ曲線は再び分割され、すでに説明したように、下位部分をメモリアドレス位置3へ、さらに上位部分をアドレス位置2へ格納する。サブ曲線0のため同じ形式が用いられる。すなわち、分割され、メモリアドレス位置1、0へ格納される。
(3)この処理は、各細分化に対して再び繰り返され、この例では、最終書込みは、図4(d)の第3ループに示されている。
【0024】
上述のロジックブロックは、非常にコンパクトであり、メモリアクセスを最小にできる。8つのセグメントに対するこの細分化処理は、3+6+12=21クロックのみで実行される。
【0025】
アクティブエッジ処理部16は、現在の更新領域を用いて、サブ・セグメントを計算し、傾きパラメータをアクティブエッジテーブル13内へ格納する。アクティブエッジ処理部16はまた、サブ・セグメントの点を、アクティブエッジの相対アドレスでX並び換え処理部15へ格納する。スキャンラスター化の処理中に、Yが増加する順序のモードで、表示リスト内へ格納されたベジェ曲線のエッジが読出され、セグメントに変換されて、さらに、アクティブエッジ・テーブル内へ、色種類やエッジ・フィリング・ルールなどの他の情報と共に格納される。
【0026】
アクティブエッジ・テーブルは、各エントリーが、フリーエッジスタックで動的に割り当てられる小さなメモリである。これは、図5(a)に示したように、アクティブエッジテーブル13(この例では、256のエッジ位置が存在し、N=256)の全てのフリーアドレスで初期化される、LIFO(後入れ先出し)スタック種類のメモリである。処理されるべきエッジ#0は、ブロック10から来て、アクティブエッジ・テーブル13に、図5(b)のフリースタックのトップに含まれるアドレス0で格納される。使用後、そのアドレスはスタックから除去される。次のアクティブエッジ(図5(a)のエッジ#1)は、今使われたデータアドレスを結果として除去しながら、スタックのトップからアドレス1を取得することになる。あるY座標では、エッジ#0は、もはやアクティブでなく(すなわち、下位アンカー点は、実際のY座標より小さい)、さらに、スタックのトップ上の第1データとして、再びそのアドレスを格納することにより、除去される。このアドレスは、次のアクティブエッジに使用される。こうして、ブロック16は、複雑なメモリ割当てストラテジーを用いることなく、エッジテーブルの256のすべてのエントリーを割当てることが可能である。図5の(d)は、既存のアクティブエッジ#3が更新された際の再配列化処理を示している。
【0027】
アクティブエッジ内でのN個のエントリーへの制限は、同じ色を用いて、1つの行に対して、Nより多くのエッジがアクティブにはなり得ないことを意味する。しかし、より複雑な図面も、Nに制限されたメモリ内で処理されるように分割可能である。
【0028】
正確なレンダリングを実行するために、全てのアクティブエッジは、X値が増加するように格納され、かつ、処理されなければならない。座標Xはエッジの傾きに従って変化可能であり、したがって、アクティブエッジ・テーブルの全ての要素を、その都度、再並び換えする必要がある。この機能は、主に、2つの交互のピンポンバッファI、IIが格納されている2ポートメモリにより構成される並び換え処理部ブロック15により実行される。図3のバッファIは、常に、エッジの実際の行のX座標およびアクティブエッジ・テーブル内のそれらのエッジのアドレスを読出している。こうして、エッジのX値を更新するのに必要な全てのデータを読込み、サブセグメントステップを変更し、正しい色およびルールで、オブジェクトをレンダリングすることが可能である。X座標が更新されるとき、バッファII内へ格納される。この点で、以前に処理された各エッジのX値が比較できる。処理されるエッジは、順番に配列された正しい位置のX座標に挿入され、全ての上位要素はトップに向かって1つの位置だけシフトされる。ソート処理は、エッジがもはやアクティブでないときにも実行される。このとき、それを格納されたエッジ値と比較する必要はない。このステップは、次のアクティブエッジの処理まで省略される。このアプリケーションでは、ソート処理・アルゴリズムは、図5の(c)のフローチャートに示すように、エッジの分配が行の間で激しく変化しないという事実のため、実装が簡単で、コンパクトで、かつ、高速である。その代わりに、多くの場合、それらは同じ順序で留まっており、位置を変ることはまれである。バッファの上位部分への移動処理は、その順序を変更するときにのみ必要である。
【0029】
エッジ特性セレクタ20は、スキャンラインのペイントコマンドを生成する。これらのコマンドは、クリッピング値およびエッジの種類(ワインディング、偶数・奇数、マスクされたフィリング処理など)に依存している。
【0030】
色生成部12は、リニア傾き、半径方向の傾き、タイル化された(tiled)ビットマップまたはクリップされた(clipped)ビットマップがアクティブエッジに関連付けられているときは、連続的な色すなわち処理された色を出力する。色生成部12は、専用ロジックを用いて、要求されたビットマップが格納されている表示リストメモリ8へのアクセスの速度および数を最適化する。図7(a)および図7(b)は、ビットマップ・レンダリングのための典型的な演算を示している。図7(a)に示したソース画像で始めて、ソース座標および図7(b)などのデスティネーション・ビットマップへのマッピングを取得するために、リニア変換行列がデスティネーション座標へ適用される。マトリクス変換係数は、ソース画像の拡大/縮小、回転および移動に使用可能である。
【0031】
回路22の目標は、高速シーケンシャル・アクセスモードでのメモリに対する読出しおよび書込みの数の最適化である。
【0032】
概して、ソース画像は、表示リスト内に格納される。行列は、デスティネーション座標へ適用されて開始ソースビットマップ座標を得る。デスティネーション座標は、画素が水平方向(Xが増加する方向)にレンダリングされるときは常に、2つのマトリクス係数を用いて増加される。新しいアドレスが計算される都度、そのアドレスは、同一ソース画素または少なくともXが連続した画素を示していることを確実にするためチェックされる。この処理は、これがもはや真ではなくなると停止される。その結果、ソース画素が何回デスティネーション・ビットマップ内に描画(複製)されなければならないかを示す数とともに、一時的メモリに格納されたアドレスのシーケンスが得られる。このシーケンスは、ソースビットマップを読出し、デスティネーション・ビットマップへ書込むのに使用される。図7(a)の例では、画素1、2は、同一列の一部分であり、これは、2画素の連続的読み込みと、2つの連続する複製した対としての4画素の書込みシーケンスを意味する。
【0033】
色の種類が半径方向の傾きであるときは、表示リスト内部の特別なビットマップが使用される。それは、図7(c)に示したように、256×256画素の幅および高さを有する平方根ルックアップテーブルと呼ばれる。各位置の画素値は、単に、X、およびYの二乗の和の平方根、実際には特にビットマップ座標の原点からの極距離、である。行列変換部24は、ビットマップについて同様に作動し、デスティネーション座標をソース座標へ変換して、メモリを読出す。今回は、行列変換部24は、他の色傾斜路ルックアップテーブル(図7(d))へアドレスするために、値を色傾斜路25へ渡す。その結果は、色構成部22内で各々のレンダリングされた画素で適用されるべき実の傾きの色である。アクセスシーケンスの最適化は、ビットマップに対して説明されたように実行される。
【0034】
エイリアス除去バッファ21は、実際の画素内にあるサブ画素の数を計算して、スキャン変換された行について重み因子を取得する。エイリアス除去処理は、実際の画素サイズの4倍の座標解像度で実行される。図6(a)は、各々のディスプレイ画素の一部である16個のサブ画素がメモリ内でいかに描画されるかを示している。この場合、正の傾きをもつセグメントは、以下の4つの連続するステップで処理される。
(0)第1サブ行では、2つのサブ画素が設定され、その結果、対応するメモリ位置内に、2(画素単位で)がロードされる。
(1)第2サブ行では、追加の3つのサブ画素が設定され、その結果、以前のメモリ内容に、3が加算され、さらに、和5が再び格納される。
(2)第3サブ行では、4が加算され、9が格納される。
(3)最後のサブ行では、再び4が加算され、最終結果は13となる。したがって、その画素に対するエイリアス除去重み因子は13/16となる。
【0035】
本発明の独自性は、図6(b)に示したように、同時に4つの実際の画素(16のサブ画素)が処理可能な、並列加算器グループであるエイリアス除去(AA)バッファ21に基づいている。この例におけるエイリアス除去ブロックは、2ポートメモリを含み、各クロック内で4つの画素を処理可能である。並行度をクロックごとに8つまたは16の実際の画素まで増加させて、単純に加算器ロジックおよびメモリ幅を増加させることは、簡単かつ高速である。
【0036】
図6(c)は、開始エッジと終了エッジが同一画素の一部であるときも、エイリアス除去ロジックは重みを計算可能であることを示している。
【0037】
エイリアス除去バッファの出力は、図6(d)に示したように、色構成部22に対する入力として使用され、その度に正しい画素の重みを選択するマルチプレクサが用いられる。
【0038】
色構成部22は、色生成部12からの色を処理するのに重み因子を使用し、その結果をダンプバッファ23内に格納する。図8(a)は、AAバッファ21により生成される、透明度の割合とエイリアス除去の割合を用いた色構成を示している。最終結果は、ブロック23のダンプバッファ内に格納される。
【0039】
第2フェーズでは、ダンプバッファからのデータは、再度読出され、このシーケンス内における背景とともにさらに構成される。
(1)ブロック23の格納バッファメモリから背景画素を読出し、それにダンプバッファから取得された透明度の相補値(1−α)を掛け、さらに、それに、再度ダンプバッファから取得した赤色、緑色、および青色の値を加える。
(2)その結果は、各スキャン変換でサイズに再調整可能である、ディスプレイメモリ未満のまたは最大でそれに等しい容量のメモリである、ブロック23の格納バッファ内部に書き込まれる。このサイズは、256×256画素、128×512画素、64×1024画素など、2のべき乗とすることが可能である。その次元は、システムで使用されるメモリ技術(SDRAM,SRAMなど)および毎回最も効率的にメモリへアクセスするため使用可能な技術(すなわち、SDRAMに対するバースト読出し/書込み)の関数である。
【0040】
図8(b)は、描画処理の更新(update)境界すなわち更新長方形を示している。この長方形は、動画により何らかの変化が引き起こされる領域のみに関係付けられている。この例では、更新長方形は、格納バッファメモリより大きい。したがって、ソフトウェアの曲線エッジ生成部4は、ブロック23の格納バッファメモリの可能なサイズ設定と両立するブロックに、更新長方形を分割することになる。最適化は、更新領域全体をカバーする、可能なサブ・ブロックの最小値を取得するために行われる。
【0041】
図8(b)の例では、4つの部分が生成され、各々が、ブロック23の格納バッファ内部に格納可能である。
【0042】
表示リストに記載された全ての完全なラスタ処理は、サブ更新領域sb1の座標頂点に対して設定された更新長方形の制限を用いて、格納バッファ内で実行される。
【0043】
最終ステップは、ディスプレイメモリにバッファの内容をコピーすることである。同一ラスタシーケンスは、各サブ更新領域sb2、sb3、sb4について繰り返される。
【0044】
こうして、外部メモリ帯域幅を減少させ、外部ディスプレイメモリアクセスの数を減少させることが可能である。格納バッファの内部データ経路も、外部バス構成で使用される標準の32/64ビットと比べて、すなわち、1024ビットよりも容易に大きくすることができる。集積回路内の電流、電圧および容量が、常に別々のIC間の接続に使用される外部のものより小さいので、このシステムにより消費される電力も減少する。
【0045】
回路は、表示リスト・レンダリング・ステップ数を最適化し、さらに、外部メモリ帯域幅を低下させる、プログラム可能な高さと幅を備える、別々のバッファ内に分解可能な、更新境界長方形に対する独自の構成を有している。
【0046】
本発明のベクトルグラフィックス部3は、特に、ハードウェアのアクセラレータが既存のCPU設計と同じチップ上に位置決めされる、システム・オン・チップなどの埋め込み解決手段によく適合する。加えて、本実施形態のアーキテクチャは、スマートフォン統合アーキテクチャから、プロセッサおよびVGU部がディスクリートIC部品である専用解決手段までの、様々な応用に適合するよう、スケーラブルである。
【0047】
本発明の好適な実施形態が示され、説明されてきたが、当業者ならば、本発明のより広い態様から逸脱することなく多くの変形および変更態様がなし得ることは明白であろう。したがって、特許請求の範囲は、本発明の真の趣旨および範囲内に入る、全ての変形および変更態様をカバーすることを意図したものである。
【図面の簡単な説明】
【0048】
【図1】本グラフィックスシステムを示すブロック図である。
【図2】CPUのソフトウェア前処理タスクおよびベクトルグラフィックスユニットのハードウェア処理作業を説明するブロック図である。
【図3】ベクトルグラフィックス部の内部部分を説明するブロック図である。
【図4(a)】8つのサブ曲線へのベジェ細分化の図である。
【図4(b)】ベジェ細分化計算、および2ポートRAM内における、その格納のフローチャートである。
【図4(c)】8つのサブ曲線へのベジェ細分化の略図である。
【図4(d)】連続タイムフレーム(初期、第1ループ、第2ループ、第3ループ)内における記憶内容を示す図である。
【図5(a)】エッジおよびソート処理システムのブロック図である。
【図5(b)】エッジおよびソート処理システムのブロック図である。
【図5(c)】x並び換えアルゴリズムのフローチャートである。
【図5(d)】エッジおよびソート処理システムのブロック図である。
【図6(a)】エイリアス除去処理を示す図である。
【図6(b)】エイリアス除去処理を示す図である。
【図6(c)】エイリアス除去処理を示す図である。
【図6(d)】エイリアス除去処理を示す図である。
【図7】(a)は変換されたビットマップでの色生成処理を示す図であり、(b)は変換されたビットマップでの色生成処理を示す図であり、(c)は半径方向の傾きテーブルを示す図であり、(d)は色傾斜路ルックアップテーブルを示す図である。
【図8(a)】色構成部22およびダンプ格納バッファ23の内部部品を示すブロック図である。
【図8(b)】更新長方形細分化手順を示す図である。
【技術分野】
【0001】
本発明は、ベクトルおよびビットマップのグラフィックス・オブジェクトを最終画像にレンダリングするためのベクトルグラフィックス回路に関する。
【背景技術】
【0002】
今日では、携帯装置を介した有線または無線でのインターネット接続を用いたクライアント・サーバ・アプリケーションの人気が、ワールドワイドウェブ・コンソーシアム(World Wide Web Consortium)によるSVG(スケーラブル・ベクトルグラフィックス)、およびMacromedia(商標)によるSWFなどのオープン・グラフィックス・フォーマットに基づく、豊富なクライアント・ベクトルグラフィックス・コンテンツおよび豊富なユーザインタフェースを要求している。
【0003】
こうした装置で使われるディスプレイ装置は、サイズ、スクリーン解像度および色の深みが増加し、制御対象となる画素およびデータの総数が増加している。こうした画素レンダリングは、多くの場合、グラフィックス妥当性が異なる、異なったレイヤにスタックされたベクトルグラフィックス・オブジェクトの、1つ以上のビットマップ画像への変換を表示している。
【0004】
より高いスクリーン解像度および色の深みにより、携帯装置上の汎用プロセッサであるCPUの使用リソースおよび電力消費も増加し続けている。したがって、携帯/スマート装置の製造会社は、マルチメディア・プレイヤーの機能を減らし、提供するマルチメディア・プレイヤーの性能を非常に限られたものにすることを余儀なくされている。この解決手段を、標準のパーソナルコンピュータ・アーキテクチャ、デスクトップコンピュータおよびノートパソコンでの完全なオプションならびに高速マルチメディア・プレイヤーと比較すると、これは多くの場合、エンドユーザによる純粋なルック・アンド・フィールへの変換である。
【0005】
背面光を要しないOLEDなどの新技術に基づく前記ディスプレイ装置の電力消費も急速に減少し続けている。今日では、色QVGAのOLEDスクリーンは、携帯アプリケーション・プロセッサと同等以下の電力を使用する。
【発明の開示】
【発明が解決しようとする課題】
【0006】
消費者の装置でベクトルグラフィックス・アプリケーションおよびマルチメディア・コンテンツを実行するための、安価で効率の良い低電力の解決手段を提供する、ベクトルグラフィックス・アプリケーションおよびマルチメディア・コンテンツの実行のための、改良されたシステムを有することが所望されている。
【課題を解決するための手段】
【0007】
本発明は、ベクトルグラフィックス・オブジェクトを、OLED、カラーTFT、白黒LCD、CRTモニターなどのディスプレイ装置に、直接、カラー、グレースケール、またはb(黒)/w(白)ビットマップ画像として、高速にレンダリングするのに使用可能な、ハードウェアのベクトルグラフィックス部に関する。
【0008】
通常、ソフトウェアのベクトルグラフィックス・レンダリング・エンジンは、制御処理部(CPU)のパイプライン・アーキテクチャ上でソフトウェアを実行することにより、ベクトルグラフィックス・オブジェクトのビットマップ・オブジェクトへの変換を計算する。
【0009】
ベクトルグラフィックス部は、ベクトルレンダリング・エンジンが実行されるときに以前は発生していたボトルネックをCPU上のソフトウェアを通して排除するので、ベクトルグラフィックス・オブジェクトのレンダリングをかなり高速化している。
【0010】
本発明では、ベクトルレンダリング・エンジンの全てまたは少なくともその一部分が、ベクトルグラフィックス部としてハードウェア内で実行される。ベクトルグラフィックス・部およびCPUは、市販の装置と共に使用するのに適した、システム・オン・チップ(SoC)などの、埋め込み型システムを提供する、単一の半導体チップ上に一緒に配置できる。
【発明の効果】
【0011】
130nm未満の処理に対する新しいシリコン技術の進歩により、IC製造会社は、小さいフットプリント(1mm2未満)を伴う、VGUなどの高度に専門化したハードウェアIPコアを、専用システム・オン・チップ内へ含ませることが可能となっている。このVGU・IPコアは、30%未満という良好に受け入れられる値で、CPUのリソースを低減する一方、驚異的な性能アクセラレーション因子を加えている。これにより、非常に低電力および低周波数のマイクロ制御器を使用するスマートフォンおよび任意の他の携帯装置も、マルチメディア・ハイエンド・ノートパソコンの性能に達することが可能となる。したがって、音声による通信など、他の優先順位の高いタスクを犠牲にすることはない。こうした組込み型システムの解決手段は、非常な低消費電力の利点を有する分離型グラフィックス・アクセラレーション・チップを備えた強力なCPUほど高価ではない。
【発明を実施するための最良の形態】
【0012】
本発明は、同じ要素に同じ参照記号が付されている添付の図面と関連して以下に説明される。
【0013】
図1は、中央処理ユニット(CPU)2に結合したハードウェア・ベクトルグラフィックス部3の使用を示すシステム1の図である。ベクトルグラフィックス部3は、ベクトルレンダリング・エンジンの一部がハードウェアで実装されることを可能にする。このハードウェアの実装により、ベクトルグラフィックス・オブジェクトのレンダリングが高速化される。特に、好ましい実施形態では、スタック・レイヤ方式で構成されたベクトルグラフィックス・オブジェクトの、連続スキャンライン・ビットマップへの変換は、部分的または完全に、ハードウェアのベクトルグラフィックス部3内で実行される。この変換は、ソフトウェアで実行されるベクトルレンダリング・エンジンでは、ボトルネックの一部となってきた。
【0014】
図2は、CPU2のソフトウェアの前処理生成部およびベクトルグラフィックス部3を詳細に示している。表示リスト8は、ソフトウェアの前処理生成部とハードウェアのベクトルグラフィックス部3との間の通信チャネルとして機能する。
【0015】
ソフトウェアの曲線エッジ生成部4は、現在の時間フレーム内に描画される必要があるベジェ曲線における全てのグラフィックス・オブジェクトを分解し、それらを1つのエッジシーケンスとして表示リスト内に格納する。
【0016】
色テーブル生成部5は、エッジリストにより用いられる色を表示リストに追加する。
【0017】
傾き傾斜路生成部6は、その色が傾きであるときに、使用される全ての傾き傾斜路テーブルを作成する。
【0018】
ビットマップおよび平方根生成部7は、描画されるべきオブジェクト用のテキスチャとして使用されるビットマップを、表示リスト内に格納された適当なグラフィックスフォーマットに変換する。平方根テーブルは、画素値がそのアドレスの平方根である特別なビットマップであり、半径方向の傾きの色で描画されたオブジェクトに対して使用される。
【0019】
図3は、アクティブエッジ処理部16を示している。アクティブエッジ処理部16は、表示リスト8から、現在のスキャンラインで処理されるべきエッジをロードし、さらにそれらのエッジを、フリー・アクティブエッジ・スタック14により生成されたアドレスで、アクティブエッジ・テーブル13内へ格納する。同時に、ベジェ分解部10はエッジデータを処理する。ドカステリョ細分化部19とベジェ細分化ツリー・アドレス17を備えた、細分化されたベジェパラメータ18は、ベジェを一連のセグメントに分割し、それらをアクティブエッジ・テーブル13へ格納する。
【0020】
図4(a)は、二次ベジェ曲線を示し、また、図4(c)は、その8つのセグメントへの細分化を示している。細分化は、8つのセグメントが発生するまで実行されるが、しかし、同じ処理は、より多くのステップで繰り返すことができる。この繰り返しは、細分化された曲線が直線的セグメントに近似できるとき、平坦さのテストで停止できる。
【0021】
極小または極大を伴う全ての曲線は、2本の単調曲線により分割され、したがって、各Yステップで、X座標は常に減少または増加する。こうして、全ての曲線は、単純にY座標を増加するラスタスキャン・アルゴリズムで評価可能となる。三次ベジェ曲線においては、この処理は、1つ多い細分化を伴うが、同様である。
【0022】
ベジェ細分化ツリーアドレス17は、図4(d)に示された、Nセグメントを含む2ポートメモリのためのアドレス生成部であり、その構造は、読出しおよび書込みの数を最適化するように選択される。この2ポートメモリは、異なるアドレスに対して同時に読出しおよび書込みをする2つのポートを有している。細分化ブロックは、3対のXおよびYの加算と2による除算をする加算器および遅延素子から構成されている。
【0023】
図4(b)のフローチャートにより示されたシーケンスは、以下のように説明可能である。
(0)第1要素(2つのアンカー点および1つの制御点を表す3組のX,Y座標)、すなわち、処理対象のベジェ曲線を、第1メモリアドレス位置(アドレス0)に書込む。
(1)式に示されるように前記の点を細分化し、そして、メモリアドレス位置1に下位サブ曲線を書込み、さらにメモリアドレス位置0に上位サブ曲線を書込む。これは、全ての結果が、最初の読出しから計算され、それに続く書込みが、この特定の結果およびその中間結果によってのみ決定されるという事実により、最良のシーケンスとして提供される。
(2)アドレス1のサブ曲線は再び分割され、すでに説明したように、下位部分をメモリアドレス位置3へ、さらに上位部分をアドレス位置2へ格納する。サブ曲線0のため同じ形式が用いられる。すなわち、分割され、メモリアドレス位置1、0へ格納される。
(3)この処理は、各細分化に対して再び繰り返され、この例では、最終書込みは、図4(d)の第3ループに示されている。
【0024】
上述のロジックブロックは、非常にコンパクトであり、メモリアクセスを最小にできる。8つのセグメントに対するこの細分化処理は、3+6+12=21クロックのみで実行される。
【0025】
アクティブエッジ処理部16は、現在の更新領域を用いて、サブ・セグメントを計算し、傾きパラメータをアクティブエッジテーブル13内へ格納する。アクティブエッジ処理部16はまた、サブ・セグメントの点を、アクティブエッジの相対アドレスでX並び換え処理部15へ格納する。スキャンラスター化の処理中に、Yが増加する順序のモードで、表示リスト内へ格納されたベジェ曲線のエッジが読出され、セグメントに変換されて、さらに、アクティブエッジ・テーブル内へ、色種類やエッジ・フィリング・ルールなどの他の情報と共に格納される。
【0026】
アクティブエッジ・テーブルは、各エントリーが、フリーエッジスタックで動的に割り当てられる小さなメモリである。これは、図5(a)に示したように、アクティブエッジテーブル13(この例では、256のエッジ位置が存在し、N=256)の全てのフリーアドレスで初期化される、LIFO(後入れ先出し)スタック種類のメモリである。処理されるべきエッジ#0は、ブロック10から来て、アクティブエッジ・テーブル13に、図5(b)のフリースタックのトップに含まれるアドレス0で格納される。使用後、そのアドレスはスタックから除去される。次のアクティブエッジ(図5(a)のエッジ#1)は、今使われたデータアドレスを結果として除去しながら、スタックのトップからアドレス1を取得することになる。あるY座標では、エッジ#0は、もはやアクティブでなく(すなわち、下位アンカー点は、実際のY座標より小さい)、さらに、スタックのトップ上の第1データとして、再びそのアドレスを格納することにより、除去される。このアドレスは、次のアクティブエッジに使用される。こうして、ブロック16は、複雑なメモリ割当てストラテジーを用いることなく、エッジテーブルの256のすべてのエントリーを割当てることが可能である。図5の(d)は、既存のアクティブエッジ#3が更新された際の再配列化処理を示している。
【0027】
アクティブエッジ内でのN個のエントリーへの制限は、同じ色を用いて、1つの行に対して、Nより多くのエッジがアクティブにはなり得ないことを意味する。しかし、より複雑な図面も、Nに制限されたメモリ内で処理されるように分割可能である。
【0028】
正確なレンダリングを実行するために、全てのアクティブエッジは、X値が増加するように格納され、かつ、処理されなければならない。座標Xはエッジの傾きに従って変化可能であり、したがって、アクティブエッジ・テーブルの全ての要素を、その都度、再並び換えする必要がある。この機能は、主に、2つの交互のピンポンバッファI、IIが格納されている2ポートメモリにより構成される並び換え処理部ブロック15により実行される。図3のバッファIは、常に、エッジの実際の行のX座標およびアクティブエッジ・テーブル内のそれらのエッジのアドレスを読出している。こうして、エッジのX値を更新するのに必要な全てのデータを読込み、サブセグメントステップを変更し、正しい色およびルールで、オブジェクトをレンダリングすることが可能である。X座標が更新されるとき、バッファII内へ格納される。この点で、以前に処理された各エッジのX値が比較できる。処理されるエッジは、順番に配列された正しい位置のX座標に挿入され、全ての上位要素はトップに向かって1つの位置だけシフトされる。ソート処理は、エッジがもはやアクティブでないときにも実行される。このとき、それを格納されたエッジ値と比較する必要はない。このステップは、次のアクティブエッジの処理まで省略される。このアプリケーションでは、ソート処理・アルゴリズムは、図5の(c)のフローチャートに示すように、エッジの分配が行の間で激しく変化しないという事実のため、実装が簡単で、コンパクトで、かつ、高速である。その代わりに、多くの場合、それらは同じ順序で留まっており、位置を変ることはまれである。バッファの上位部分への移動処理は、その順序を変更するときにのみ必要である。
【0029】
エッジ特性セレクタ20は、スキャンラインのペイントコマンドを生成する。これらのコマンドは、クリッピング値およびエッジの種類(ワインディング、偶数・奇数、マスクされたフィリング処理など)に依存している。
【0030】
色生成部12は、リニア傾き、半径方向の傾き、タイル化された(tiled)ビットマップまたはクリップされた(clipped)ビットマップがアクティブエッジに関連付けられているときは、連続的な色すなわち処理された色を出力する。色生成部12は、専用ロジックを用いて、要求されたビットマップが格納されている表示リストメモリ8へのアクセスの速度および数を最適化する。図7(a)および図7(b)は、ビットマップ・レンダリングのための典型的な演算を示している。図7(a)に示したソース画像で始めて、ソース座標および図7(b)などのデスティネーション・ビットマップへのマッピングを取得するために、リニア変換行列がデスティネーション座標へ適用される。マトリクス変換係数は、ソース画像の拡大/縮小、回転および移動に使用可能である。
【0031】
回路22の目標は、高速シーケンシャル・アクセスモードでのメモリに対する読出しおよび書込みの数の最適化である。
【0032】
概して、ソース画像は、表示リスト内に格納される。行列は、デスティネーション座標へ適用されて開始ソースビットマップ座標を得る。デスティネーション座標は、画素が水平方向(Xが増加する方向)にレンダリングされるときは常に、2つのマトリクス係数を用いて増加される。新しいアドレスが計算される都度、そのアドレスは、同一ソース画素または少なくともXが連続した画素を示していることを確実にするためチェックされる。この処理は、これがもはや真ではなくなると停止される。その結果、ソース画素が何回デスティネーション・ビットマップ内に描画(複製)されなければならないかを示す数とともに、一時的メモリに格納されたアドレスのシーケンスが得られる。このシーケンスは、ソースビットマップを読出し、デスティネーション・ビットマップへ書込むのに使用される。図7(a)の例では、画素1、2は、同一列の一部分であり、これは、2画素の連続的読み込みと、2つの連続する複製した対としての4画素の書込みシーケンスを意味する。
【0033】
色の種類が半径方向の傾きであるときは、表示リスト内部の特別なビットマップが使用される。それは、図7(c)に示したように、256×256画素の幅および高さを有する平方根ルックアップテーブルと呼ばれる。各位置の画素値は、単に、X、およびYの二乗の和の平方根、実際には特にビットマップ座標の原点からの極距離、である。行列変換部24は、ビットマップについて同様に作動し、デスティネーション座標をソース座標へ変換して、メモリを読出す。今回は、行列変換部24は、他の色傾斜路ルックアップテーブル(図7(d))へアドレスするために、値を色傾斜路25へ渡す。その結果は、色構成部22内で各々のレンダリングされた画素で適用されるべき実の傾きの色である。アクセスシーケンスの最適化は、ビットマップに対して説明されたように実行される。
【0034】
エイリアス除去バッファ21は、実際の画素内にあるサブ画素の数を計算して、スキャン変換された行について重み因子を取得する。エイリアス除去処理は、実際の画素サイズの4倍の座標解像度で実行される。図6(a)は、各々のディスプレイ画素の一部である16個のサブ画素がメモリ内でいかに描画されるかを示している。この場合、正の傾きをもつセグメントは、以下の4つの連続するステップで処理される。
(0)第1サブ行では、2つのサブ画素が設定され、その結果、対応するメモリ位置内に、2(画素単位で)がロードされる。
(1)第2サブ行では、追加の3つのサブ画素が設定され、その結果、以前のメモリ内容に、3が加算され、さらに、和5が再び格納される。
(2)第3サブ行では、4が加算され、9が格納される。
(3)最後のサブ行では、再び4が加算され、最終結果は13となる。したがって、その画素に対するエイリアス除去重み因子は13/16となる。
【0035】
本発明の独自性は、図6(b)に示したように、同時に4つの実際の画素(16のサブ画素)が処理可能な、並列加算器グループであるエイリアス除去(AA)バッファ21に基づいている。この例におけるエイリアス除去ブロックは、2ポートメモリを含み、各クロック内で4つの画素を処理可能である。並行度をクロックごとに8つまたは16の実際の画素まで増加させて、単純に加算器ロジックおよびメモリ幅を増加させることは、簡単かつ高速である。
【0036】
図6(c)は、開始エッジと終了エッジが同一画素の一部であるときも、エイリアス除去ロジックは重みを計算可能であることを示している。
【0037】
エイリアス除去バッファの出力は、図6(d)に示したように、色構成部22に対する入力として使用され、その度に正しい画素の重みを選択するマルチプレクサが用いられる。
【0038】
色構成部22は、色生成部12からの色を処理するのに重み因子を使用し、その結果をダンプバッファ23内に格納する。図8(a)は、AAバッファ21により生成される、透明度の割合とエイリアス除去の割合を用いた色構成を示している。最終結果は、ブロック23のダンプバッファ内に格納される。
【0039】
第2フェーズでは、ダンプバッファからのデータは、再度読出され、このシーケンス内における背景とともにさらに構成される。
(1)ブロック23の格納バッファメモリから背景画素を読出し、それにダンプバッファから取得された透明度の相補値(1−α)を掛け、さらに、それに、再度ダンプバッファから取得した赤色、緑色、および青色の値を加える。
(2)その結果は、各スキャン変換でサイズに再調整可能である、ディスプレイメモリ未満のまたは最大でそれに等しい容量のメモリである、ブロック23の格納バッファ内部に書き込まれる。このサイズは、256×256画素、128×512画素、64×1024画素など、2のべき乗とすることが可能である。その次元は、システムで使用されるメモリ技術(SDRAM,SRAMなど)および毎回最も効率的にメモリへアクセスするため使用可能な技術(すなわち、SDRAMに対するバースト読出し/書込み)の関数である。
【0040】
図8(b)は、描画処理の更新(update)境界すなわち更新長方形を示している。この長方形は、動画により何らかの変化が引き起こされる領域のみに関係付けられている。この例では、更新長方形は、格納バッファメモリより大きい。したがって、ソフトウェアの曲線エッジ生成部4は、ブロック23の格納バッファメモリの可能なサイズ設定と両立するブロックに、更新長方形を分割することになる。最適化は、更新領域全体をカバーする、可能なサブ・ブロックの最小値を取得するために行われる。
【0041】
図8(b)の例では、4つの部分が生成され、各々が、ブロック23の格納バッファ内部に格納可能である。
【0042】
表示リストに記載された全ての完全なラスタ処理は、サブ更新領域sb1の座標頂点に対して設定された更新長方形の制限を用いて、格納バッファ内で実行される。
【0043】
最終ステップは、ディスプレイメモリにバッファの内容をコピーすることである。同一ラスタシーケンスは、各サブ更新領域sb2、sb3、sb4について繰り返される。
【0044】
こうして、外部メモリ帯域幅を減少させ、外部ディスプレイメモリアクセスの数を減少させることが可能である。格納バッファの内部データ経路も、外部バス構成で使用される標準の32/64ビットと比べて、すなわち、1024ビットよりも容易に大きくすることができる。集積回路内の電流、電圧および容量が、常に別々のIC間の接続に使用される外部のものより小さいので、このシステムにより消費される電力も減少する。
【0045】
回路は、表示リスト・レンダリング・ステップ数を最適化し、さらに、外部メモリ帯域幅を低下させる、プログラム可能な高さと幅を備える、別々のバッファ内に分解可能な、更新境界長方形に対する独自の構成を有している。
【0046】
本発明のベクトルグラフィックス部3は、特に、ハードウェアのアクセラレータが既存のCPU設計と同じチップ上に位置決めされる、システム・オン・チップなどの埋め込み解決手段によく適合する。加えて、本実施形態のアーキテクチャは、スマートフォン統合アーキテクチャから、プロセッサおよびVGU部がディスクリートIC部品である専用解決手段までの、様々な応用に適合するよう、スケーラブルである。
【0047】
本発明の好適な実施形態が示され、説明されてきたが、当業者ならば、本発明のより広い態様から逸脱することなく多くの変形および変更態様がなし得ることは明白であろう。したがって、特許請求の範囲は、本発明の真の趣旨および範囲内に入る、全ての変形および変更態様をカバーすることを意図したものである。
【図面の簡単な説明】
【0048】
【図1】本グラフィックスシステムを示すブロック図である。
【図2】CPUのソフトウェア前処理タスクおよびベクトルグラフィックスユニットのハードウェア処理作業を説明するブロック図である。
【図3】ベクトルグラフィックス部の内部部分を説明するブロック図である。
【図4(a)】8つのサブ曲線へのベジェ細分化の図である。
【図4(b)】ベジェ細分化計算、および2ポートRAM内における、その格納のフローチャートである。
【図4(c)】8つのサブ曲線へのベジェ細分化の略図である。
【図4(d)】連続タイムフレーム(初期、第1ループ、第2ループ、第3ループ)内における記憶内容を示す図である。
【図5(a)】エッジおよびソート処理システムのブロック図である。
【図5(b)】エッジおよびソート処理システムのブロック図である。
【図5(c)】x並び換えアルゴリズムのフローチャートである。
【図5(d)】エッジおよびソート処理システムのブロック図である。
【図6(a)】エイリアス除去処理を示す図である。
【図6(b)】エイリアス除去処理を示す図である。
【図6(c)】エイリアス除去処理を示す図である。
【図6(d)】エイリアス除去処理を示す図である。
【図7】(a)は変換されたビットマップでの色生成処理を示す図であり、(b)は変換されたビットマップでの色生成処理を示す図であり、(c)は半径方向の傾きテーブルを示す図であり、(d)は色傾斜路ルックアップテーブルを示す図である。
【図8(a)】色構成部22およびダンプ格納バッファ23の内部部品を示すブロック図である。
【図8(b)】更新長方形細分化手順を示す図である。
【特許請求の範囲】
【請求項1】
a.データの入力ストリームを受け取る入力表示リスト手段、
b.スキャン変換アルゴリズムを最適化するソート処理ハードウェア回路、
c.ベクトル曲線の細分化を行うベジェ・ハードウェア回路、
d.サブ画素値を計算するエイリアス除去ハードウェア回路、
e.表示リストメモリ内で複数のビットマップおよび数値テーブルへのアクセスを再度順序付けしかつ最適化する色ハードウェア回路、および
f.メモリを用いて、最終的な画素ビットマップにおいてベクトルグラフィックス・オブジェクトを構成するダンプバッファ・ハードウェア回路
とからなる、ベクトルおよびビットマップのグラフィックス・オブジェクトを最終的画像へレンダリングするベクトルグラフィックス回路。
【請求項2】
前記入力表示リスト手段が二次または三次ベジェッジデータリストを含む、請求項1に記載されたベクトルグラフィックス回路。
【請求項3】
前記入力表示リスト手段が色データリストを含む、請求項2に記載されたベクトルグラフィックス回路。
【請求項4】
入力表示リスト手段が色傾斜路データリストを含む、請求項3に記載されたベクトルグラフィックス回路。
【請求項5】
入力表示リスト手段がパターンまたはビットマップのデータリストを含む、請求項3に記載されたベクトルグラフィックス回路。
【請求項6】
前記ソート処理ハードウェア回路は、
a.2つの交互のピンポンバッファが格納されている2ポートメモリを含むアクティブエッジ・テーブル内部に、現在のスキャンラインのエッジを、Xを増加しつつ格納するアクティブエッジ処理部と、
b.LIFOスタックとして動作して、前記アクティブエッジ・テーブルのアドレスを生成するフリーアクティブエッジ・スタックと
からなることを特徴とする請求項1に記載されたベクトルグラフィックス回路。
【請求項7】
前記ベジェハードウェア回路が、2ポートメモリに一連のセグメントを格納し、前記2ポートメモリは、
a.3対のXおよびYの加算と2による除算をする加算器、及び、遅延素子を含む細分化ベジェパラメータ部と、
b.ドカステリョ細分化部と、
c.2ポートメモリ内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部と
からなる、請求項1に記載されたベクトルグラフィックス回路。
【請求項8】
前記エイリアス除去ハードウェア回路が、クロックごとにN=i×4の実際の画素内に存在するサブ画素の数を計算して、スキャン変換された行に対して用いられる重み因子を取得する、請求項1に記載されたベクトルグラフィックス回路。
【請求項9】
前記色ハードウェア回路が、
a.リニア方向の傾き、半径方向の傾き、タイル化ビットマップまたはクリップ化ビットマップがアクティブエッジに関連付けられているとき、べた色または処理色を出力する色生成部と、
b.前記色生成部からの色を処理するために重み因子を使用して、その結果を前記ダンプバッファに格納する色構成部と
からなる、請求項1に記載されたベクトルグラフィックス回路。
【請求項10】
前記バッファハードウェア回路は、画素領域を、全てのオブジェクトがその中に構成されているバッファの中に格納し、前記バッファは、
a.エイリアス除去因子と透明度因子により処理された色画素を格納する、固定された1ラインのダンプバッファメモリと、
b.色画素値を格納する格納バッファメモリとからなり、
前記格納バッファメモリから背景画素を読出し、それに、前記ダンプバッファから取得された透明度の相補値(1−α)を乗算し、さらに、その積に、再び前記ダンプバッファから取得した赤色、緑色および青色の値を加算し、
その結果を、再び前記格納バッファ内部に書込む
請求項1に記載されたベクトルグラフィックス回路。
【請求項11】
前記ベジェハードウェア回路が、2ポートメモリ内部に一連のセグメントを格納し、
前記2ポートメモリは、3対のXおよびYの加算と2による除算をする加算器、および、遅延素子を含む細分化ベジェパラメータ部を備える、請求項1に記載されたベクトルグラフィックス回路。
【請求項12】
前記ベジェハードウェア回路が、ドカステリョ細分化ユニットを備える2ポートメモリ内部に一連のセグメントを格納する、請求項1に記載されたベクトルグラフィックス回路。
【請求項13】
前記ベジェハードウェア回路が、内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部を含む2ポートメモリ内部に一連のセグメントを格納する、請求項1に記載されたベクトルグラフィックス回路。
【請求項14】
ベクトルおよびビットマップのグラフィックス・オブジェクトを最終的画像へレンダリングするベクトルグラフィックス回路であって、
a.データの入力ストリームを受け取る入力表示リスト手段と、
b.スキャン変換アルゴリズムを最適化するソート処理ハードウェア回路と、
c.ベクトル曲線細分化のためのベジェ・ハードウェア回路と、
d.サブ画素値を計算するエイリアス除去ハードウェア回路と、
e.前記表示リストメモリ内部で複数のビットマップおよび数値表へのアクセスを再度順序付けし、最適化する色ハードウェア回路と、
f.メモリを使用して、最終的画素のビットマップにおいてベクトルグラフィックス・オブジェクトを構成するダンプバッファ・ハードウェア回路と
からなり、
前記入力表示リスト手段は二次または三次ベジェエッジデータリストを含み、
前記入力表示リスト手段は色データリストを含み、
前記入力表示リスト手段は色傾斜路データリストを含み、
前記入力表示リスト手段はパターンまたはビットマップのデータリストを含み、
前記ソート処理ハードウェア回路は、
a.現在のスキャンラインのエッジを、Xを増加しつつ、2つの交互のピンポンバッファが格納されている2ポートメモリを含んでいるアクティブエッジ・テーブル内部に格納するアクティブエッジ処理部と、
b.LIFOスタックとして動作し、前記アクティブエッジ・テーブルのアドレスを生成するフリーアクティブエッジ・スタックと
からなり、
前記ベジェハードウェア回路は、2ポートメモリ内部に一連のセグメントを格納し、前記2ポートメモリは、
a.3対のXおよびYの加算と2による除算をする加算器、および、遅延素子を含む細分化ベジェパラメータ部と、
b.ドカステリョ細分化部と、
c.前記2ポートメモリ内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部とからなり、
前記エイリアス除去ハードウェア回路が、クロックごとにN=i×4の実在の画素内に存在するサブ画素の数を計算して、スキャン変換行に対して用いられる重み因子を取得し、
前記色ハードウェア回路は、
a.リニア方向の傾き、半径方向の傾き、タイル化されたビットマップまたはクリップ化されたビットマップがアクティブエッジに関連付けられているときは、べた色または処理色を出力する色生成部と、
b.重み因子を前記色生成部からの色を処理するために使用し、その結果をダンプバッファに格納する色構成部と
からなり、
前記バッファ・ハードウェア回路は、画素領域を、全てのオブジェクトが構成されるバッファ内に格納し、前記バッファ・ハードウェア回路は、
a.エイリアス除去因子および透明度因子により処理された色画素を格納する、固定された1ラインのダンプバッファメモリと、
b.色画素値を格納する格納バッファメモリとからなり、
前記格納バッファメモリから、背景画素を読出し、それに前記ダンプバッファから取得された透明度の相補値(1−α)を乗算し、それに、再び前記ダンプバッファから取得された赤色、緑色及び青色の値を加算し、次に、その結果を再び前記格納バッファ内部に書き込む、
ベクトルグラフィックス回路。
【請求項1】
a.データの入力ストリームを受け取る入力表示リスト手段、
b.スキャン変換アルゴリズムを最適化するソート処理ハードウェア回路、
c.ベクトル曲線の細分化を行うベジェ・ハードウェア回路、
d.サブ画素値を計算するエイリアス除去ハードウェア回路、
e.表示リストメモリ内で複数のビットマップおよび数値テーブルへのアクセスを再度順序付けしかつ最適化する色ハードウェア回路、および
f.メモリを用いて、最終的な画素ビットマップにおいてベクトルグラフィックス・オブジェクトを構成するダンプバッファ・ハードウェア回路
とからなる、ベクトルおよびビットマップのグラフィックス・オブジェクトを最終的画像へレンダリングするベクトルグラフィックス回路。
【請求項2】
前記入力表示リスト手段が二次または三次ベジェッジデータリストを含む、請求項1に記載されたベクトルグラフィックス回路。
【請求項3】
前記入力表示リスト手段が色データリストを含む、請求項2に記載されたベクトルグラフィックス回路。
【請求項4】
入力表示リスト手段が色傾斜路データリストを含む、請求項3に記載されたベクトルグラフィックス回路。
【請求項5】
入力表示リスト手段がパターンまたはビットマップのデータリストを含む、請求項3に記載されたベクトルグラフィックス回路。
【請求項6】
前記ソート処理ハードウェア回路は、
a.2つの交互のピンポンバッファが格納されている2ポートメモリを含むアクティブエッジ・テーブル内部に、現在のスキャンラインのエッジを、Xを増加しつつ格納するアクティブエッジ処理部と、
b.LIFOスタックとして動作して、前記アクティブエッジ・テーブルのアドレスを生成するフリーアクティブエッジ・スタックと
からなることを特徴とする請求項1に記載されたベクトルグラフィックス回路。
【請求項7】
前記ベジェハードウェア回路が、2ポートメモリに一連のセグメントを格納し、前記2ポートメモリは、
a.3対のXおよびYの加算と2による除算をする加算器、及び、遅延素子を含む細分化ベジェパラメータ部と、
b.ドカステリョ細分化部と、
c.2ポートメモリ内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部と
からなる、請求項1に記載されたベクトルグラフィックス回路。
【請求項8】
前記エイリアス除去ハードウェア回路が、クロックごとにN=i×4の実際の画素内に存在するサブ画素の数を計算して、スキャン変換された行に対して用いられる重み因子を取得する、請求項1に記載されたベクトルグラフィックス回路。
【請求項9】
前記色ハードウェア回路が、
a.リニア方向の傾き、半径方向の傾き、タイル化ビットマップまたはクリップ化ビットマップがアクティブエッジに関連付けられているとき、べた色または処理色を出力する色生成部と、
b.前記色生成部からの色を処理するために重み因子を使用して、その結果を前記ダンプバッファに格納する色構成部と
からなる、請求項1に記載されたベクトルグラフィックス回路。
【請求項10】
前記バッファハードウェア回路は、画素領域を、全てのオブジェクトがその中に構成されているバッファの中に格納し、前記バッファは、
a.エイリアス除去因子と透明度因子により処理された色画素を格納する、固定された1ラインのダンプバッファメモリと、
b.色画素値を格納する格納バッファメモリとからなり、
前記格納バッファメモリから背景画素を読出し、それに、前記ダンプバッファから取得された透明度の相補値(1−α)を乗算し、さらに、その積に、再び前記ダンプバッファから取得した赤色、緑色および青色の値を加算し、
その結果を、再び前記格納バッファ内部に書込む
請求項1に記載されたベクトルグラフィックス回路。
【請求項11】
前記ベジェハードウェア回路が、2ポートメモリ内部に一連のセグメントを格納し、
前記2ポートメモリは、3対のXおよびYの加算と2による除算をする加算器、および、遅延素子を含む細分化ベジェパラメータ部を備える、請求項1に記載されたベクトルグラフィックス回路。
【請求項12】
前記ベジェハードウェア回路が、ドカステリョ細分化ユニットを備える2ポートメモリ内部に一連のセグメントを格納する、請求項1に記載されたベクトルグラフィックス回路。
【請求項13】
前記ベジェハードウェア回路が、内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部を含む2ポートメモリ内部に一連のセグメントを格納する、請求項1に記載されたベクトルグラフィックス回路。
【請求項14】
ベクトルおよびビットマップのグラフィックス・オブジェクトを最終的画像へレンダリングするベクトルグラフィックス回路であって、
a.データの入力ストリームを受け取る入力表示リスト手段と、
b.スキャン変換アルゴリズムを最適化するソート処理ハードウェア回路と、
c.ベクトル曲線細分化のためのベジェ・ハードウェア回路と、
d.サブ画素値を計算するエイリアス除去ハードウェア回路と、
e.前記表示リストメモリ内部で複数のビットマップおよび数値表へのアクセスを再度順序付けし、最適化する色ハードウェア回路と、
f.メモリを使用して、最終的画素のビットマップにおいてベクトルグラフィックス・オブジェクトを構成するダンプバッファ・ハードウェア回路と
からなり、
前記入力表示リスト手段は二次または三次ベジェエッジデータリストを含み、
前記入力表示リスト手段は色データリストを含み、
前記入力表示リスト手段は色傾斜路データリストを含み、
前記入力表示リスト手段はパターンまたはビットマップのデータリストを含み、
前記ソート処理ハードウェア回路は、
a.現在のスキャンラインのエッジを、Xを増加しつつ、2つの交互のピンポンバッファが格納されている2ポートメモリを含んでいるアクティブエッジ・テーブル内部に格納するアクティブエッジ処理部と、
b.LIFOスタックとして動作し、前記アクティブエッジ・テーブルのアドレスを生成するフリーアクティブエッジ・スタックと
からなり、
前記ベジェハードウェア回路は、2ポートメモリ内部に一連のセグメントを格納し、前記2ポートメモリは、
a.3対のXおよびYの加算と2による除算をする加算器、および、遅延素子を含む細分化ベジェパラメータ部と、
b.ドカステリョ細分化部と、
c.前記2ポートメモリ内部にベジェセグメントのアドレス位置を生成するベジェ細分化ツリーアドレス部とからなり、
前記エイリアス除去ハードウェア回路が、クロックごとにN=i×4の実在の画素内に存在するサブ画素の数を計算して、スキャン変換行に対して用いられる重み因子を取得し、
前記色ハードウェア回路は、
a.リニア方向の傾き、半径方向の傾き、タイル化されたビットマップまたはクリップ化されたビットマップがアクティブエッジに関連付けられているときは、べた色または処理色を出力する色生成部と、
b.重み因子を前記色生成部からの色を処理するために使用し、その結果をダンプバッファに格納する色構成部と
からなり、
前記バッファ・ハードウェア回路は、画素領域を、全てのオブジェクトが構成されるバッファ内に格納し、前記バッファ・ハードウェア回路は、
a.エイリアス除去因子および透明度因子により処理された色画素を格納する、固定された1ラインのダンプバッファメモリと、
b.色画素値を格納する格納バッファメモリとからなり、
前記格納バッファメモリから、背景画素を読出し、それに前記ダンプバッファから取得された透明度の相補値(1−α)を乗算し、それに、再び前記ダンプバッファから取得された赤色、緑色及び青色の値を加算し、次に、その結果を再び前記格納バッファ内部に書き込む、
ベクトルグラフィックス回路。
【図1】
【図2】
【図3】
【図4】
【図4(a)】
【図4(b)】
【図4(d)】
【図5(a)】
【図5(b)】
【図5(c)】
【図5(d)】
【図6(a)】
【図6(b)】
【図6(c)】
【図6(d)】
【図7】
【図8(a)】
【図8(b)】
【図2】
【図3】
【図4】
【図4(a)】
【図4(b)】
【図4(d)】
【図5(a)】
【図5(b)】
【図5(c)】
【図5(d)】
【図6(a)】
【図6(b)】
【図6(c)】
【図6(d)】
【図7】
【図8(a)】
【図8(b)】
【公表番号】特表2006−515939(P2006−515939A)
【公表日】平成18年6月8日(2006.6.8)
【国際特許分類】
【出願番号】特願2004−515379(P2004−515379)
【出願日】平成15年6月19日(2003.6.19)
【国際出願番号】PCT/IB2003/003112
【国際公開番号】WO2004/001709
【国際公開日】平成15年12月31日(2003.12.31)
【出願人】(504466384)
【氏名又は名称原語表記】Alberto BARONCELLI
【出願人】(504466395)
【氏名又は名称原語表記】Francesco BUZZIGOLI
【Fターム(参考)】
【公表日】平成18年6月8日(2006.6.8)
【国際特許分類】
【出願日】平成15年6月19日(2003.6.19)
【国際出願番号】PCT/IB2003/003112
【国際公開番号】WO2004/001709
【国際公開日】平成15年12月31日(2003.12.31)
【出願人】(504466384)
【氏名又は名称原語表記】Alberto BARONCELLI
【出願人】(504466395)
【氏名又は名称原語表記】Francesco BUZZIGOLI
【Fターム(参考)】
[ Back to top ]