(57)【要約】【課題】画像処理において、描画速度を向上させる。【解決手段】本発明に係る画像処理装置は、所定の色情報を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式の描画データを出力するラスタライズ処理部と、連続数に基づいて、所定の色情報を有するピクセルを示す連続数分の表示データを生成し、当該表示データを複数まとめてフレームバッファへ出力可能とする伸長回路と、を有する。【選択図】図１
2014174843.tif 000002
【特許請求の範囲】
【請求項１】
所定の色情報を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式の描画データを出力するラスタライズ処理部と、
前記連続数に基づいて、前記所定の色情報を有するピクセルを示す前記連続数分の表示データを生成し、当該表示データを複数まとめてフレームバッファへ出力可能とする伸長回路と、
を有する画像処理装置。
【請求項２】
前記ラスタライズ処理部が出力した前記連続数が、前記表示データを保持するデータ保持部の容量を超える場合、前記連続数を、前記容量以下の複数の数に分割し、前記描画データを前記容量以下の数毎に前記伸長回路に出力する分割回路をさらに有する
請求項１に記載の画像処理装置。
【請求項３】
前記フレームバッファに接続されたバスの伝送容量に基づいて前記表示データを分割し、バースト転送するバス制御部をさらに有する
請求項１又は２に記載の画像処理装置。
【請求項４】
前記所定の色情報は、複数のピクセルが同一色であることを示す情報である
請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記所定の色情報は、複数のピクセルの色を表すパラメータが線形に変化することを示す情報であり、
前記ラスタライズ処理部は、１ピクセル当たりの色の変化量をさらに出力し、
前記伸長回路は、前記色の変化量をさらに用いて前記連続数分の表示データを生成する
請求項１から３のいずれか一項に記載の画像処理装置。
【請求項６】
所定の色情報を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式の描画データを出力し、
前記連続数に基づいて、前記所定の色情報を有するピクセルを示す前記連続数分の表示データを生成し、当該表示データを複数まとめてフレームバッファへ出力可能とする、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、画像処理において、バスを介して転送したりメモリに保持したりするデータのデータ構造を変更し、又はキャッシュを設け、描画速度を向上させる技術が提案されている。
【０００３】
例えば、外部から画像データが入力された時に、その画像データをイメージ展開したイメージデータが画像描画制御装置内のキャッシュメモリに格納されているかどうかをチェックし、格納されていればそのイメージデータをＤＭＡコントローラにより画像描画制御装置内のＦＩＦＯに転送して書き込む技術が開示されている（特許文献１）。当該文献には、キャッシュメモリ内のイメージデータをランレングスでもつようにする態様も記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−９５６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、メモリやバスといったコンピュータ資源が大容量化している。しかしながら、一方で、例えば、グラフィックスプロセッサの描画パイプラインを流れるデータ量が一定であると、メモリの容量やバス幅を十分に活用することができないことがある。すなわち、コンピュータ資源が大容量化しただけでは、描画パイプラインがボトルネックとなり、全体の描画速度は向上しない場合がある。
【０００６】
本発明は、上記のような問題に鑑みてなされたものであり、画像処理において、描画速度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、所定の色情報を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式の描画データを出力するラスタライズ処理部と、連続数に基づいて、所定の色情報を有するピクセルを示す連続数分の表示データを生成し、当該表示データを複数まとめてフレームバッファへ出力可能とする伸長回路とを有する。
【０００８】
このように、例えば同一色のピクセルが連続する場合、ラスタライズ処理部はピクセルごとに表示データを出力するのではなく、連続数を出力する。伸長回路は、例えば同一色の表示データを所定数分コピーするような処理であれば、１サイクルで実行することができる。よって、本画像処理装置は、フレームバッファに接続されたシステムバスの幅を十分に利用することができ、連続数分の表示データをまとめて出力することができる。すなわち、本画像処理装置は、描画速度を向上させることができる。
【０００９】
また、ラスタライズ処理部が出力した連続数が、表示データを保持するデータ保持部の容量を超える場合、連続数を、容量以下の複数の数に分割し、表示データを容量以下の数毎に前記伸長回路に出力する分割回路をさらに有するようにしてもよい。このようにすれ
ば、所定の色情報を有するピクセルが、データ保持部の容量以上に連続する場合であっても適切に処理することができる。
【００１０】
また、フレームバッファに接続されたバスの伝送容量に基づいて、データ保持部に保持されている表示データを分割し、バースト転送するバス制御部をさらに有するようにしてもよい。このようにすれば、たとえデータ保持部の容量とバスの伝送容量が一致していない場合であっても、適切にバースト転送することができる。
【００１１】
なお、上記の所定の色情報は、複数のピクセルが同一色であることを示す情報であってもよい。また、所定の色情報は、複数のピクセルの色を表すパラメータが線形に変化することを示す情報であってもよい。後者の場合、ラスタライズ処理部は、１ピクセル当たりの色の変化量をさらに出力し、伸長回路は、色の変化量をさらに用いて連続数分の表示データを生成するようにする。いずれの場合であっても、本画像処理装置は、システムバスの幅を十分に利用することができ、連続数分の表示データをまとめて出力させることができるため、描画速度を向上させることができる。
【００１２】
なお、本発明に係る上記構成要素は、可能な限り組み合わせて実施することができる。また、本発明に係る画像処理装置の処理を行う画像処理方法を実施することもできる。
【発明の効果】
【００１３】
画像処理において、描画速度を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】システム構成の一例を示す機能ブロック図である。
【図２Ａ】ストローク描画の一例を説明するための図である。
【図２Ｂ】フィル描画の一例を説明するための図である。
【図２Ｃ】ストローク描画を輪郭線内の塗りつぶしとして処理する例を説明するための図である。
【図３】ベクタ画像をラスタライズする処理を説明するための図である。
【図４】カラーキャッシュのデータ構造の一例を示す図である。
【図５】キャッシュ判定部及び伸長ブロックの処理を説明するためのブロック図である。
【図６】システムバスのマスク処理を説明するための図である。
【図７】鉛直方向に色がリニアに変化するグラデーションを説明するための図である。
【図８】水平方向に色がリニアに変化するグラデーションを説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明を実施するための形態について説明する。なお、以下に示す実施の形態の構成は例示であり、本発明は実施の形態の構成に限定されない。
【００１６】
＜システム構成＞
図１は、実施の形態に係るグラフィックスプロセッサを含むシステム構成の一例を示す機能ブロック図である。本実施の形態に係るシステムは、いわゆるＧＰＵ（Graphics Processing Unit）等のグラフィックスプロセッサ１と、システムバス２と、フレームバッファ３とを含み、図示していないコンピュータ装置の一部として機能する。
【００１７】
グラフィックスプロセッサ１は、図示していないＣＰＵ（Central Processing Unit）
から、ベクタグラフィックス、３Ｄ（3 Dimension，三次元）グラフィックス等の図形デ
ータの入力を受ける。なお、本実施の形態では、ベクタグラフィックスを描画するものとして説明する。
【００１８】
ベクタグラフィックスとは、直線や曲線（例えば、ベジエ曲線、楕円曲線等）の方程式のパラメータで定義されたパス（Path）を基本的な構成要素として画像を表現する形式である。パスは、ストロークとフィルに分類できる。ストロークの一例を図２Ａに示す。ストロークは、曲線等１００１の方程式のパラメータ、始点１００２、終点１００３の他、太さ１００４や端点の形状（「キャップ」とも呼ぶ）１００５等を定義して描画する。なお、図面において塗りつぶしは便宜上ハッチングで示す。また、フィルの一例を図２Ｂに示す。フィルは、曲線等２００１で包囲された領域２００２を例えば同一色で塗りつぶす。図２Ｂの例では、フィル規則として、「EVENODD」規則を指定した場合の例である。「NONZERO」規則を適用した場合は、中央の領域も塗りつぶされる。
【００１９】
なお、図２Ａに示したストロークも、太さを含む曲線等及びキャップ全体の外形である輪郭を求め、領域内を塗りつぶす処理として扱うことができる。ストロークの輪郭線内部を塗りつぶす一例を図２Ｃに示す。図２Ｃの例では、太さを含む曲線及びキャップ全体の輪郭３００１で包囲された領域３００２が塗りつぶされている。
【００２０】
このように、ベクタグラフィックスにおいて、ある領域内を所定の色で塗りつぶすような処理はしばしば行われる。例えば、アウトラインフォント（例えば、TrueTypeフォントやPostScriptフォント）の内部を塗りつぶすような場合も、同様の処理が行われる。なお、所定の色で塗りつぶす場合には、同一色で塗りつぶすフラットカラーペイント（ソリッドペイントとも呼ぶ）、グラデーション（グラディエントペイントとも呼ぶ）等があり、その他塗りつぶしの種類には、イメージ（テクスチャ）を貼り付けるパターンペイント等がある。
【００２１】
ベクタグラフィックスの場合、グラフィックスプロセッサは、例えば、ラスタ線（表示装置における水平方向の線、すなわち、Ｙ座標が同一であるＸ軸方向の線）ごとに左から右方向へピクセル（画素）を用いて描画を行う。この、ピクセルを描画する方向を、本実施の形態では「描画方向」と呼ぶ。図２Ｂに示したフィルを、ラスタデータとして描画する処理を、図３に示す。図３に示すように、ベクタ画像である曲線４００１の領域内４００２を塗りつぶすため、描画方向４００３にピクセルの列４００４及び４００５が出力される。描画パイプラインにおいて１ピクセルずつ処理する場合、３２ビットカラーのときは、バス幅を３２ビット分利用して１ピクセルずつフレームバッファに出力される。
【００２２】
図１のシステム構成の説明に戻る。グラフィックスプロセッサ１は、システムバス２を介してフレームバッファ３と接続されている。システムバス２は、信号線やフリップフロップ、ゲート回路を含む。フレームバッファ３は、コンピュータ装置に接続された図示していない表示装置（ディスプレイ、モニタ、スクリーン等とも呼ぶ）に表示する画像をラスタデータで保持するためのメモリである。例えば、表示装置の１画面分のラスタデータが保持されると、表示装置はフレームバッファに保持されたデータを読み出して、表示する。
【００２３】
グラフィックスプロセッサ１は、ラスタライザ１１と、分割ブロック１２と、伸長ブロック１３とを含む。ラスタライザ１１は、入力されたベクタ形式等の図形データに基づいて、ラスタ形式の描画データ（ピクセルコマンド）を生成するラスタライズを行う処理部である。また、ラスタライザ１１は、生成したピクセルコマンドを分割ブロック１２に出力する。本実施の形態に係るラスタライザ１１は、例えば図３に示したように同一色のピクセルが描画方向に連続する場合、１ピクセル毎に出力するのではなく、連続数を表すデータ出力する。ラスタライザ１１は、例えば、図形の外形上の点におけるＸ座標を用いて
、領域内部の、Ｘ軸方向（描画方向）の距離を、表示装置上のピクセル数に変換することにより、連続数を算出することができる。分割ブロック１２は、入力された連続数が後述するカラーキャッシュの容量より大きい場合、カラーキャッシュの容量以下の数を表示するピクセルコマンドに分割し、出力する。伸長ブロック１３は、入力されたピクセルコマンドに基づいて指定された数分のピクセルデータを生成し、カラーキャッシュに保持する。また、伸長ブロック１３は、カラーキャッシュに保持しているピクセルデータを、システムバス２の幅に合わせてバースト転送する。
【００２４】
より詳細には、分割ブロック１２は、分割回路（分割処理部とも呼ぶ）１２１と、キャッシュ判定部１２２と、フロントタグ１２３とを含む。また、伸長ブロック１３は、伸長回路１３１と、カラーキャッシュ１３２と、アドレス演算回路１３３と、バス制御部１３４とを含む。
【００２５】
図３の描画方向４００３について処理する場合、ラスタライザ１１は、パスの情報に基づいて連続する同一色のピクセルをまとめて１つのピクセルコマンドとして出力する。具体的には、ラスタライザ１１は、ピクセルの開始位置を示すＸ座標及びＹ座標、同一色のピクセルが連続する数を示す連続数Ｎ、並びにピクセルのカラー値（ＲＧＢＡ（Red Green Blue Alpha））を含むピクセルコマンドを出力する。
【００２６】
なお、描画方向は予め定められているため、開始位置の座標がわかれば、描画処理を実行できる。また、カラー値は、ＲＧＢＡ（赤・緑・青・透明度）の各パラメータによりピクセルの色を指定する値である。例えば、各パラメータを８ビットで表現する３２ビットカラーであってもよいし、１６ビットカラー、８ビットグレースケールカラー、その他の方式であってもよい。
【００２７】
ラスタライザ１１が描画パイプラインに出力するデータを概括的に示すと、次のようになる。
ピクセルコマンド＝Ｘ，Ｙ，Ｎ，カラー値（ＲＧＢＡ）
図３の例では、ピクセルの列４００４及び４００５についてそれぞれ開始座標、連続数４、カラー値が出力される。
【００２８】
分割処理部１２１は、ラスタライザ１１が出力したピクセルコマンドを受信し、連続数ＮDが所定の大きさ以下のピクセルコマンドに分割する。所定の大きさは、例えば、後述
するカラーキャッシュの１ラインの容量に基づいて定める。本実施の形態では、カラーキャッシュの１ラインが３２ピクセルであり、分割処理部１２１は、連続数Ｎが３２より大きい場合、連続数ＮDが３２以下の複数のピクセルコマンドに分割して出力するものとす
る。なお、分割処理の過程で生成される中間的な値は、例えば図示していないレジスタに保持される。一方、ラスタライザ１１から受信したピクセルコマンドの連続数Ｎが３２以下の場合、分割処理部１２１は、ピクセルコマンドをそのまま出力する。
【００２９】
図３の例では、分割されず、分割処理部１２１は、連続数ＮDが４のピクセルコマンド
を出力する。仮に、ラスタライザ１１から受信したピクセルコマンドの連続数Ｎが７０であった場合、分割処理部１２１は、連続数ＮDが３２のピクセルコマンドを２つと、連続
数ＮDが６のピクセルコマンドを１つ出力する。
【００３０】
分割処理部１２１が描画パイプラインに出力するデータを概括的に示すと、次のようになる。
ピクセルコマンド＝Ｘ，Ｙ，ＮD，カラー値（ＲＧＢＡ）
【００３１】
キャッシュ判定部１２２は、分割処理部１２１からピクセルコマンドを受信し、ピクセ
ルコマンドの連続数ＮDのすべてが後述するカラーキャッシュに格納できるか（すなわち
、フロントキャッシュにヒットするか）判断する。具体的には、キャッシュ判定部１２２は、後述するカラーキャッシュのキャッシュラインのうち、処理の時点でフロントに設定されているラインをフロントタグ１２３から読み出し、分割処理部１２１から受信したピクセルコマンドが示す連続数ＮDのすべてがフロントに設定されているキャッシュライン
のピクセルデータに収まるか判断する。
【００３２】
ここで、カラーキャッシュ１３２に格納されるデータの概略的なデータ構造を、図４に示す。図４のカラーキャッシュは、ＩＤが「０」のキャッシュラインと、ＩＤが「１」のキャッシュラインとを含む。各キャッシュラインは、タグと、有効フラグと、ピクセルデータとを含む。タグには、表示装置上（すなわち、フレームバッファ上）の開始位置を示す座標（Ｘ，Ｙ）が格納される。有効フラグには、ピクセルデータのうち描画すべき（すなわち、有効な）ピクセルを示すフラグが格納される。ピクセルデータには、描画方向に連続するピクセルの各カラー値（ＲＧＢＡ。「表示データ」とも呼ぶ）が格納される。なお、便宜上、ＩＤの列を示したが、「０」又は「１」の値は保持しなくてもよい。
【００３３】
本実施の形態では、ピクセルデータの容量は、３２ビットカラーで３２ピクセル分設けられているものとする。また、本実施の形態では、このようなカラーキャッシュ１３２において、各キャッシュラインがフロント又はバックに設定される。そして、フロントに設定されたキャッシュラインにはデータが書き込まれ、バックに設定されたキャッシュラインからはデータが書き出される。このように、本実施の形態に係るカラーキャッシュは、ダブルバッファのように機能するものとする。なお、キャッシュラインにフロント又はバックを設定するための構成は特に限定されないが、例えばレジスタ等に「フロント」又は「バック」のＩＤを設定しておき、ＩＤが「０」のラインがフロントの場合は、ＩＤが「１」のラインがバックと判断できるようにしておく。
【００３４】
キャッシュ判定部１２２及び伸長ブロック１３の処理を説明するための機能ブロック図を、図５に示す。図５は、図１に示した機能ブロック図のうち、キャッシュ判定部１２２及び伸長ブロック１３の接続関係を、図４に示したカラーキャッシュ１３２を用いて詳細に示している。
【００３５】
フロントタグ１２３には、フロントに設定されたキャッシュラインの開始位置を示す座標（Ｘ，Ｙ）が保持されているものとする。キャッシュ判定部１２２は、まず、フロントタグ１２３から、フロントに設定されたキャッシュラインの開始位置を示す座標（Ｘ，Ｙ）を読み出す。そして、フロントに設定されたキャッシュラインの３２ピクセルの領域に、受信したピクセルコマンドが示す、開始位置から連続数ＮD分のピクセルすべてを格納
できると判断した場合は、キャッシュヒットと判定する。一方、受信したピクセルコマンドの連続数ＮDのすべてをカラーキャッシュ１３２に格納できないと判断した場合は、キ
ャッシュミスと判定する。なお、カラーキャッシュ１３２のキャッシュラインに格納できるピクセルの容量は、あらかじめわかっている。よって、フロントに設定されたキャッシュラインに、ピクセルコマンドが示すピクセルのすべてを格納できるか否かは、フロントタグ１２３から読み出したキャッシュラインの開始座標、及び分割処理部１２１から受信したピクセルコマンドに基づいて判断できる。すなわち、キャッシュ判定部１２２は、ピクセルコマンドが示す開始位置から描画方向に連続数ＮD先の座標が、フロントタグ１２
３の座標から３２ピクセル（カラーキャッシュ１３２の容量）以内に存在すれば、キャッシュヒットと判断できる。
【００３６】
さらに、キャッシュ判定部１２２は、キャッシュヒットと判定した場合、受信したピクセルコマンドを伸長ブロック１３に出力する。具体的には、キャッシュ判定部１２２は、受信したピクセルコマンドを伸長回路１３１に転送する。
【００３７】
一方、キャッシュ判定部１２２は、キャッシュミスと判定した場合、フロントタグ１２３を受信したピクセルコマンドの開始位置で更新する。さらに、キャッシュラインのフロントとバックとを切り替え、バックに設定されたキャッシュラインにデータの書き出しを指示するとともに、受信したピクセルコマンドを伸長ブロック１３に出力する。
【００３８】
具体的には、キャッシュ判定部１２２は、受信したピクセルコマンドの開始座標（Ｘ，Ｙ）を用いて、フロントタグ１２３を更新する。また、例えば、伸長回路１３１やバス制御部１３４からも読み出せる図示していないレジスタに、フロント又はバックに設定されているキャッシュラインのＩＤを保持させておく。そして、キャッシュ判定部１２２が当該レジスタを更新することで、キャッシュラインのフロントとバックとを切り替える。また、キャッシュ判定部１２２は、フロントに設定されたキャッシュラインのタグを伸長回路１３１に更新させる。また、キャッシュ判定部１２２は、バス制御部１３４に対し、バックに設定されたキャッシュラインのフラッシュ（ピクセルデータ及び開始座標を示すアドレスの出力）を指示するための信号を出力する。そして、キャッシュ判定部１２２は、受信したピクセルコマンドを伸長回路１３１に転送する。なお、切り替えの際には、キャッシュ判定部１２２は、切り替え後にフロントに設定されるキャッシュラインの有効フラグを、例えば「０」で初期化させるようにしてもよい。
【００３９】
伸長回路１３１は、受信したピクセルコマンドに基づいて、連続数ＮD分のカラー値を
複製し、ピクセルデータとしてカラーキャッシュ１３２に格納する。具体的には、伸長回路１３１は、分割ブロック１２のキャッシュ判定部１２２からピクセルコマンドを受信し、連続数ＮDの数だけカラー値（ＲＧＢＡ）を複製し、カラーキャッシュ１３２において
フロントに設定されているキャッシュラインのピクセルデータに書き込む。同一のカラー値を複製する処理は、例えば複数のパイプラインレジスタに同一の信号を送る処理であり、描画パイプラインにおける１サイクルで実行できる。よって、同一色のピクセルが連続する場合はまとめて書き込むことができる分、１ピクセル毎に処理を行う場合よりも効率がよい。
【００４０】
また、有効フラグには、カラー値を書き込んだピクセルデータに対応するビットを立てる。本実施の形態では、有効フラグは、例えば３２ビットのフラグを有し、ピクセルデータに保持された、有効な表示データの範囲を表す。
【００４１】
一方、キャッシュ判定部１２２からフラッシュの指示を受信した場合、バス制御部１３４は、表示データをフレームバッファ３へ出力する。具体的には、バス制御部１３４は、バックに設定されているキャッシュラインのピクセルデータを、システムバス２を介してフレームバッファ３へ書き出す。なお、システムバス２の幅に基づいて、バス制御部１３４は、表示データであるピクセルデータを分割し、バースト転送を行うようにしてもよい。このとき、アドレス演算回路１３３は、カラーキャッシュにおいてバックに設定されているキャッシュラインのタグに保持されている座標（Ｘ，Ｙ）を読み出し、フレームバッファ３がアサインされているメモリ上のアドレスに変換する。また、バス制御部１３４は、予め定められたシステムバス２の幅（すなわち、伝送容量）及びカラー値の色深度（ビット数）に基づいて、システムバス２でまとめて伝送可能なピクセル数を算出する。なお、システムバス２でまとめて伝送可能なピクセル数は、色深度毎に予め定めておくようにしてもよい。そして、バス制御部１３４は、表示装置上の開始位置の座標に相当する、変換後のアドレスを用いて、システムバス２でまとめて伝送可能なピクセル数毎にピクセルデータをバースト転送する。
【００４２】
例えば、システムバス２の幅が１２８ビットの場合において、３２ピクセルを出力するとき、カラー値が３２ビットカラーであれば、バースト長は８バーストになる。すなわち
、システムバス２は、同時に４ピクセル分のデータを出力することができる。１６ビットカラーであれば、バースト長は４バーストになる。すなわち、システムバス２は、同時に８ピクセル分のデータを出力することができる。８ビットカラーであれば、バースト長は２バーストになる。すなわち、システムバス２は、同時に１６ピクセル分のデータを出力することができる。
【００４３】
なお、バス制御部１３４は、バックに設定されているキャッシュラインの有効フラグに基づいて、有効でないピクセルデータにはマスク処理を行い、フレームバッファ３へ出力しないようにする。システムバス２は、ピクセルデータの他に、対応するピクセルデータの有効又は無効をＢｙｔｅ単位で表すマスク信号（バイトマスク）を伝送する。バイトマスクが無効（例えば「０」）に設定されたピクセルデータは、フレームバッファ３に記憶されない。
【００４４】
ここで、図６に示すカラーキャッシュの有効フラグ及びピクセルデータを用いて、マスク処理を説明する。図６の例では、便宜上、１行目に、カラーキャッシュに格納される３２ピクセルの通し番号（ピクセル０〜ピクセル３１）を示している。また、図６の２行目に示すように、カラーキャッシュは、３２ピクセルの各々に対応する有効フラグを有している。本実施の形態では、有効フラグは計３２ビット確保され、有効フラグの各ビットが各ピクセルに対応している。そして、図６の例では、ピクセル１の有効フラグが「０（無効）」に設定され、その他のピクセルは「１（有効）」に設定されている。また、図６の３行目に示すように、カラーキャッシュは、３２ピクセルの各々に対応するピクセルデータＤ０〜Ｄ３１を有している。３２ビットカラーの場合、ピクセルデータにはＲＧＢＡの各パラメータをそれぞれ８ビットで表したデータが格納される。
【００４５】
システムバス２の幅が１２８ビットの場合、バス制御部１３４は、４ピクセル分のピクセルデータを一度にシステムバス２へ出力することができる。また、システムバス２の幅が１２８ビットの場合、１６本（１バイト（８ビット）毎に１本、１２８ビット分）のマスク信号０〜マスク信号１５（図示せず）が伝送される。図６の例では、バス制御部１３４は、ピクセル０〜ピクセル３に相当するピクセルデータＤ０〜Ｄ３を出力するとき、ピクセル１の有効フラグは「０」であるため、マスク信号４〜マスク信号７を「０（無効）」にして、システムバス２へ出力する。仮に１６ビットカラーの場合は、システムバス２の幅が１２８ビットのとき、システムバス２は、一度に８ピクセル分のピクセルデータを伝送できる。このとき、ピクセル１の有効フラグが「０」であれば、バス制御部１３４は、マスク信号２〜マスク信号３を「０」にする。なお、水平方向に２本のスパン（色のある１以上のピクセル）が存在し、間に１ピクセル分の間隔がある場合、図６のようなデータがカラーキャッシュに保持される。
【００４６】
以上のように、例えば３２ピクセル分のピクセルデータを出力する場合、バス制御部１３４は、バス幅と色深度（ピクセルデータの大きさ）に基づいて、バースト長（バス幅に応じたデータ出力回数）と、有効でないピクセルのマスク処理を制御する。以上のような処理を繰り返し、表示装置の１画面分のラスタデータがフレームバッファ３に保持されると、表示装置はフレームバッファ３に保持されたデータを読み出して表示を更新する。
【００４７】
本実施の形態では、同一色のピクセルが連続する場合、ラスタライザ１１はピクセルごとに描画データを出力するのではなく、連続数Ｎを出力する。また、伸長回路１３１は、例えば同一色の表示データ（ピクセルデータ）を所定数分複製するような処理であれば、１サイクルで実行することができる。よって、グラフィックスプロセッサ１は、フレームバッファ３に接続されたシステムバス２の幅を十分に利用することができ、連続数Ｎ、若しくは分割した連続数ＮD、又はそれらをバス幅に応じて分割したピクセル数ごとに、表
示データをまとめて出力することができる。すなわち、本実施の形態に係るグラフィック
スプロセッサ１は、描画速度を向上させることができる。また、処理にかかるクロック数を低減させることができるため、同時に消費電力を低減させることもできる。
【００４８】
図１の例では省略しているが、ラスタライザ１１と分割ブロック１２との間には、カラースペース変換等の処理パイプラインを含んでいてもよい。例えば、ラスタライザ１１はカラー値を生成するための属性値を出力し、カラースペース変換により、カラー値（ＲＧＢＡ）が生成される。本実施の形態のように、色が同一の場合、カラー値等の情報と連続数を出力するようにすれば、カラースペース変換等も１サイクルで処理できる。
【００４９】
なお、本実施の形態では、所定の領域を同一色で塗りつぶす場合を例に説明したが、上記の処理が適用できるのは、このような場合には限られない。例えば、図７に示すように、表示装置上（すなわち、フレームバッファ３上）で縦方向（Ｙ軸方向、鉛直方向とも呼ぶ）５００１に、リニア（線形）に変化するグラデーションで塗りつぶすような場合であってもよい。すなわち、図７の場合も、横方向（すなわち、Ｘ軸方向、水平方向、ラスタ方向、描画方向とも呼ぶ）５００２には同一色が連続することになる。よって、ラスタライザ１１は同一色が描画方向に連続する数を示す連続数Ｎを出力することができ、本実施の形態に係る処理が適用できる。なお、図７では、便宜上、グラデーションの色の変化は、ハッチングの間隔の変化で表されている。
【００５０】
＜変形例＞
次に、所定の領域を、描画方向に色がリニアに変化するようなグラデーションで塗りつぶす場合の処理を説明する。図８に、所定の領域が、水平方向に色が変化するグラデーションで塗りつぶされた例を示す。図８は図２Ｂ等と同様の外形である。ただし、領域の内部は、鉛直方向６００１に同一色が連続し、描画方向である水平方向６００２に色がリニアに変化している。なお、図８でも、便宜上、グラデーションの色の変化は、ハッチングの間隔の変化で表されている。
【００５１】
本変形例でも、図１に示したグラフィックスプロセッサ１を用いることができる。ただし、ラスタライザ１１、分割回路１２１及びキャッシュ判定部１２２が描画パイプラインに出力するピクセルコマンドは、色が描画方向に変化する変位量を示す「差分」（ΔＲ，ΔＧ，ΔＢ，ΔＡ）をさらに含む。そして、伸長回路１３１は、カラー値に差分を加算してピクセルデータに展開し、カラーキャッシュ１３２に保持させる。
【００５２】
開始座標のカラー値が（Ｒ，Ｇ，Ｂ，Ａ）、差分が（ΔＲ，ΔＧ，ΔＢ，ΔＡ）、連続するピクセル数が４の場合、描画方向の順にピクセル０〜ピクセル３のピクセルデータは次のように算出される。
ピクセル０＝（Ｒ，Ｇ，Ｂ，Ａ）
ピクセル１＝（Ｒ＋１×ΔＲ，Ｇ＋１×ΔＧ，Ｂ＋１×ΔＢ，Ａ＋１×ΔＡ）
ピクセル２＝（Ｒ＋２×ΔＲ，Ｇ＋２×ΔＧ，Ｂ＋２×ΔＢ，Ａ＋２×ΔＡ）
ピクセル３＝（Ｒ＋３×ΔＲ，Ｇ＋３×ΔＧ，Ｂ＋３×ΔＢ，Ａ＋３×ΔＡ）
【００５３】
すなわち、開始座標のカラー値が（Ｒ，Ｇ，Ｂ，Ａ）、差分が（ΔＲ，ΔＧ，ΔＢ，ΔＡ）、連続するピクセル数がＮの場合、伸長回路１３１が出力するｎ番目（ｎ＝０〜Ｎ−１）のピクセルのピクセルデータを概括的に表すと、次のようになる。
ピクセルｎ＝（Ｒ＋ｎ×ΔＲ，Ｇ＋ｎ×ΔＧ，Ｂ＋ｎ×ΔＢ，Ａ＋ｎ×ΔＡ）
【００５４】
また、バス制御部１３４は、上で述べた実施の形態と同様に、システムバス２を介してフレームバッファ３へ、ピクセルデータを、例えばバースト転送することができる。このような変形例の場合も、グラフィックスプロセッサ１は、システムバス２の幅を十分に利用することができ、複数のピクセルデータをまとめてフレームバッファ３へ出力すること
ができる。すなわち、変形例に係るグラフィックスプロセッサ１も、描画速度を向上させることができる。なお、図８では水平方向に色がリニアに変化するグラデーションの例を示したが、斜め（すなわち、鉛直方向及び水平方向）に色がリニアに変化するグラデーションの場合も、同様に処理することができる。
【００５５】
上記実施の形態及び変形例で説明した処理は、結果が変わらない限りにおいて、実行する順序を入れ替えてもよい。また、上記の処理は、ベクタグラフィックスに限らず、３Ｄグラフィックス等において、所定の色情報を有するピクセル（すなわち、同一色のピクセル又は色がリニアに変化するピクセル）が描画方向に連続する場合に適用することも可能である。
【００５６】
なお、グラフィックスプロセッサ１は、同様の処理を行うグラフィックスアクセラレータや、ＬＳＩ（Large Scale Integration）の部分であるＩＰ（Intellectual Property）コア等の画像処理装置であってもよい。また、機能ブロック図で示したグラフィックスプロセッサ等の画像処理装置は、例えば、集積回路のようなデジタル回路を設計するための、様々なハードウェア記述言語を利用して設計することができる。
【符号の説明】
【００５７】
１    グラフィックスプロセッサ
１１    ラスタライザ
１２    分割ブロック
１２１    分割回路
１２２    キャッシュ判定部
１２３    フロントタグ
１３    伸長ブロック
１３１    伸長回路
１３２    カラーキャッシュ
１３３    アドレス演算回路
１３４    バス制御部
２    システムバス
３    フレームバッファ
【図１】
2014174843.tif 000003
【図２Ａ】
2014174843.tif 000004
【図２Ｂ】
2014174843.tif 000005
【図２Ｃ】
2014174843.tif 000006
【図３】
2014174843.tif 000007
【図４】
2014174843.tif 000008
【図５】
2014174843.tif 000009
【図６】
2014174843.tif 000010
【図７】
2014174843.tif 000011
【図８】
2014174843.tif 000012