特許第5661133号(P5661133)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社TAKUMIの特許一覧

<>
  • 特許5661133-画像処理装置及び画像処理方法 図000002
  • 特許5661133-画像処理装置及び画像処理方法 図000003
  • 特許5661133-画像処理装置及び画像処理方法 図000004
  • 特許5661133-画像処理装置及び画像処理方法 図000005
  • 特許5661133-画像処理装置及び画像処理方法 図000006
  • 特許5661133-画像処理装置及び画像処理方法 図000007
  • 特許5661133-画像処理装置及び画像処理方法 図000008
  • 特許5661133-画像処理装置及び画像処理方法 図000009
  • 特許5661133-画像処理装置及び画像処理方法 図000010
  • 特許5661133-画像処理装置及び画像処理方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5661133
(24)【登録日】2014年12月12日
(45)【発行日】2015年1月28日
(54)【発明の名称】画像処理装置及び画像処理方法
(51)【国際特許分類】
   G06T 11/40 20060101AFI20150108BHJP
   G09G 5/00 20060101ALI20150108BHJP
   G09G 5/02 20060101ALI20150108BHJP
【FI】
   G06T11/40
   G09G5/00 520H
   G09G5/00 550H
   G09G5/00 555D
   G09G5/02 B
【請求項の数】4
【全頁数】13
(21)【出願番号】特願2013-48472(P2013-48472)
(22)【出願日】2013年3月11日
(65)【公開番号】特開2014-174843(P2014-174843A)
(43)【公開日】2014年9月22日
【審査請求日】2013年7月9日
(73)【特許権者】
【識別番号】503434852
【氏名又は名称】株式会社TAKUMI
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100123319
【弁理士】
【氏名又は名称】関根 武彦
(72)【発明者】
【氏名】西田井 俊男
(72)【発明者】
【氏名】内藤 潤
【審査官】 真木 健彦
(56)【参考文献】
【文献】 特開平02−216590(JP,A)
【文献】 特開平01−112284(JP,A)
【文献】 特開平07−170411(JP,A)
【文献】 特開昭53−030832(JP,A)
【文献】 特開平06−180741(JP,A)
【文献】 特開平09−146509(JP,A)
【文献】 特開2005−189937(JP,A)
【文献】 特開2008−071317(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/40
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
所定のカラー値を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式のデータを出力するラスタライズ処理部と、
出力された前記連続数が、複数のピクセルのカラー値を保持可能なデータ保持部の容量を超える場合、前記連続数を前記容量に収まる複数の数に分割し、分割された連続数毎に前記ラスタ形式のデータを出力する分割回路と、
前記分割された連続数分の前記カラー値1サイクルで複製する伸長回路と、
前記分割された連続数が、前記フレームバッファに接続されたバスの伝送容量で転送可能なピクセル数を超える場合、前記分割された連続数分の前記カラー値を前記バスの伝送容量に合わせてさらに分割し、バースト転送するバス制御部と、
を有する画像処理装置。
【請求項2】
前記所定のカラー値は、複数のピクセルが同一色であることを示す情報である
請求項1に記載の画像処理装置。
【請求項3】
前記所定のカラー値は、複数のピクセルの色を表すパラメータが線形に変化することを示す情報であり、
前記ラスタライズ処理部は、1ピクセル当たりの色の変化量をさらに出力し、
前記伸長回路は、前記色の変化量をさらに用いて前記連続数分のカラー値を生成する
請求項1に記載の画像処理装置。
【請求項4】
所定のカラー値を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式のデータを出力し、
出力された前記連続数が、複数のピクセルのカラー値を保持可能なデータ保持部の容量を超える場合、前記連続数を前記容量に収まる複数の数に分割し、分割された連続数毎に前記ラスタ形式のデータを出力し、
前記分割された連続数分の前記カラー値1サイクルで複製し
前記分割された連続数が、前記フレームバッファに接続されたバスの伝送容量で転送可能なピクセル数を超える場合、前記分割された連続数分の前記カラー値を前記バスの伝送容量に合わせてさらに分割し、バースト転送する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
従来、画像処理において、バスを介して転送したりメモリに保持したりするデータのデータ構造を変更し、又はキャッシュを設け、描画速度を向上させる技術が提案されている。
【0003】
例えば、外部から画像データが入力された時に、その画像データをイメージ展開したイメージデータが画像描画制御装置内のキャッシュメモリに格納されているかどうかをチェックし、格納されていればそのイメージデータをDMAコントローラにより画像描画制御装置内のFIFOに転送して書き込む技術が開示されている(特許文献1)。当該文献には、キャッシュメモリ内のイメージデータをランレングスでもつようにする態様も記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平6−95655号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、メモリやバスといったコンピュータ資源が大容量化している。しかしながら、一方で、例えば、グラフィックスプロセッサの描画パイプラインを流れるデータ量が一定であると、メモリの容量やバス幅を十分に活用することができないことがある。すなわち、コンピュータ資源が大容量化しただけでは、描画パイプラインがボトルネックとなり、全体の描画速度は向上しない場合がある。
【0006】
本発明は、上記のような問題に鑑みてなされたものであり、画像処理において、描画速度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、所定の色情報を有するピクセルが所定の描画方向に連続する数を示す連続数を生成し、当該連続数を含むラスタ形式の描画データを出力するラスタライズ処理部と、連続数に基づいて、所定の色情報を有するピクセルを示す連続数分の表示データを生成し、当該表示データを複数まとめてフレームバッファへ出力可能とする伸長回路とを有する。
【0008】
このように、例えば同一色のピクセルが連続する場合、ラスタライズ処理部はピクセルごとに表示データを出力するのではなく、連続数を出力する。伸長回路は、例えば同一色の表示データを所定数分コピーするような処理であれば、1サイクルで実行することができる。よって、本画像処理装置は、フレームバッファに接続されたシステムバスの幅を十分に利用することができ、連続数分の表示データをまとめて出力することができる。すなわち、本画像処理装置は、描画速度を向上させることができる。
【0009】
また、ラスタライズ処理部が出力した連続数が、表示データを保持するデータ保持部の容量を超える場合、連続数を、容量以下の複数の数に分割し、表示データを容量以下の数毎に前記伸長回路に出力する分割回路をさらに有するようにしてもよい。このようにすれ
ば、所定の色情報を有するピクセルが、データ保持部の容量以上に連続する場合であっても適切に処理することができる。
【0010】
また、フレームバッファに接続されたバスの伝送容量に基づいて、データ保持部に保持されている表示データを分割し、バースト転送するバス制御部をさらに有するようにしてもよい。このようにすれば、たとえデータ保持部の容量とバスの伝送容量が一致していない場合であっても、適切にバースト転送することができる。
【0011】
なお、上記の所定の色情報は、複数のピクセルが同一色であることを示す情報であってもよい。また、所定の色情報は、複数のピクセルの色を表すパラメータが線形に変化することを示す情報であってもよい。後者の場合、ラスタライズ処理部は、1ピクセル当たりの色の変化量をさらに出力し、伸長回路は、色の変化量をさらに用いて連続数分の表示データを生成するようにする。いずれの場合であっても、本画像処理装置は、システムバスの幅を十分に利用することができ、連続数分の表示データをまとめて出力させることができるため、描画速度を向上させることができる。
【0012】
なお、本発明に係る上記構成要素は、可能な限り組み合わせて実施することができる。また、本発明に係る画像処理装置の処理を行う画像処理方法を実施することもできる。
【発明の効果】
【0013】
画像処理において、描画速度を向上させることができる。
【図面の簡単な説明】
【0014】
図1】システム構成の一例を示す機能ブロック図である。
図2A】ストローク描画の一例を説明するための図である。
図2B】フィル描画の一例を説明するための図である。
図2C】ストローク描画を輪郭線内の塗りつぶしとして処理する例を説明するための図である。
図3】ベクタ画像をラスタライズする処理を説明するための図である。
図4】カラーキャッシュのデータ構造の一例を示す図である。
図5】キャッシュ判定部及び伸長ブロックの処理を説明するためのブロック図である。
図6】システムバスのマスク処理を説明するための図である。
図7】鉛直方向に色がリニアに変化するグラデーションを説明するための図である。
図8】水平方向に色がリニアに変化するグラデーションを説明するための図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明を実施するための形態について説明する。なお、以下に示す実施の形態の構成は例示であり、本発明は実施の形態の構成に限定されない。
【0016】
<システム構成>
図1は、実施の形態に係るグラフィックスプロセッサを含むシステム構成の一例を示す機能ブロック図である。本実施の形態に係るシステムは、いわゆるGPU(Graphics Processing Unit)等のグラフィックスプロセッサ1と、システムバス2と、フレームバッファ3とを含み、図示していないコンピュータ装置の一部として機能する。
【0017】
グラフィックスプロセッサ1は、図示していないCPU(Central Processing Unit)
から、ベクタグラフィックス、3D(3 Dimension,三次元)グラフィックス等の図形デ
ータの入力を受ける。なお、本実施の形態では、ベクタグラフィックスを描画するものとして説明する。
【0018】
ベクタグラフィックスとは、直線や曲線(例えば、ベジエ曲線、楕円曲線等)の方程式のパラメータで定義されたパス(Path)を基本的な構成要素として画像を表現する形式である。パスは、ストロークとフィルに分類できる。ストロークの一例を図2Aに示す。ストロークは、曲線等1001の方程式のパラメータ、始点1002、終点1003の他、太さ1004や端点の形状(「キャップ」とも呼ぶ)1005等を定義して描画する。なお、図面において塗りつぶしは便宜上ハッチングで示す。また、フィルの一例を図2Bに示す。フィルは、曲線等2001で包囲された領域2002を例えば同一色で塗りつぶす。図2Bの例では、フィル規則として、「EVENODD」規則を指定した場合の例である。「NONZERO」規則を適用した場合は、中央の領域も塗りつぶされる。
【0019】
なお、図2Aに示したストロークも、太さを含む曲線等及びキャップ全体の外形である輪郭を求め、領域内を塗りつぶす処理として扱うことができる。ストロークの輪郭線内部を塗りつぶす一例を図2Cに示す。図2Cの例では、太さを含む曲線及びキャップ全体の輪郭3001で包囲された領域3002が塗りつぶされている。
【0020】
このように、ベクタグラフィックスにおいて、ある領域内を所定の色で塗りつぶすような処理はしばしば行われる。例えば、アウトラインフォント(例えば、TrueTypeフォントやPostScriptフォント)の内部を塗りつぶすような場合も、同様の処理が行われる。なお、所定の色で塗りつぶす場合には、同一色で塗りつぶすフラットカラーペイント(ソリッドペイントとも呼ぶ)、グラデーション(グラディエントペイントとも呼ぶ)等があり、その他塗りつぶしの種類には、イメージ(テクスチャ)を貼り付けるパターンペイント等がある。
【0021】
ベクタグラフィックスの場合、グラフィックスプロセッサは、例えば、ラスタ線(表示装置における水平方向の線、すなわち、Y座標が同一であるX軸方向の線)ごとに左から右方向へピクセル(画素)を用いて描画を行う。この、ピクセルを描画する方向を、本実施の形態では「描画方向」と呼ぶ。図2Bに示したフィルを、ラスタデータとして描画する処理を、図3に示す。図3に示すように、ベクタ画像である曲線4001の領域内4002を塗りつぶすため、描画方向4003にピクセルの列4004及び4005が出力される。描画パイプラインにおいて1ピクセルずつ処理する場合、32ビットカラーのときは、バス幅を32ビット分利用して1ピクセルずつフレームバッファに出力される。
【0022】
図1のシステム構成の説明に戻る。グラフィックスプロセッサ1は、システムバス2を介してフレームバッファ3と接続されている。システムバス2は、信号線やフリップフロップ、ゲート回路を含む。フレームバッファ3は、コンピュータ装置に接続された図示していない表示装置(ディスプレイ、モニタ、スクリーン等とも呼ぶ)に表示する画像をラスタデータで保持するためのメモリである。例えば、表示装置の1画面分のラスタデータが保持されると、表示装置はフレームバッファに保持されたデータを読み出して、表示する。
【0023】
グラフィックスプロセッサ1は、ラスタライザ11と、分割ブロック12と、伸長ブロック13とを含む。ラスタライザ11は、入力されたベクタ形式等の図形データに基づいて、ラスタ形式の描画データ(ピクセルコマンド)を生成するラスタライズを行う処理部である。また、ラスタライザ11は、生成したピクセルコマンドを分割ブロック12に出力する。本実施の形態に係るラスタライザ11は、例えば図3に示したように同一色のピクセルが描画方向に連続する場合、1ピクセル毎に出力するのではなく、連続数を表すデータ出力する。ラスタライザ11は、例えば、図形の外形上の点におけるX座標を用いて
、領域内部の、X軸方向(描画方向)の距離を、表示装置上のピクセル数に変換することにより、連続数を算出することができる。分割ブロック12は、入力された連続数が後述するカラーキャッシュの容量より大きい場合、カラーキャッシュの容量以下の数を表示するピクセルコマンドに分割し、出力する。伸長ブロック13は、入力されたピクセルコマンドに基づいて指定された数分のピクセルデータを生成し、カラーキャッシュに保持する。また、伸長ブロック13は、カラーキャッシュに保持しているピクセルデータを、システムバス2の幅に合わせてバースト転送する。
【0024】
より詳細には、分割ブロック12は、分割回路(分割処理部とも呼ぶ)121と、キャッシュ判定部122と、フロントタグ123とを含む。また、伸長ブロック13は、伸長回路131と、カラーキャッシュ132と、アドレス演算回路133と、バス制御部134とを含む。
【0025】
図3の描画方向4003について処理する場合、ラスタライザ11は、パスの情報に基づいて連続する同一色のピクセルをまとめて1つのピクセルコマンドとして出力する。具体的には、ラスタライザ11は、ピクセルの開始位置を示すX座標及びY座標、同一色のピクセルが連続する数を示す連続数N、並びにピクセルのカラー値(RGBA(Red Green Blue Alpha))を含むピクセルコマンドを出力する。
【0026】
なお、描画方向は予め定められているため、開始位置の座標がわかれば、描画処理を実行できる。また、カラー値は、RGBA(赤・緑・青・透明度)の各パラメータによりピクセルの色を指定する値である。例えば、各パラメータを8ビットで表現する32ビットカラーであってもよいし、16ビットカラー、8ビットグレースケールカラー、その他の方式であってもよい。
【0027】
ラスタライザ11が描画パイプラインに出力するデータを概括的に示すと、次のようになる。
ピクセルコマンド=X,Y,N,カラー値(RGBA)
図3の例では、ピクセルの列4004及び4005についてそれぞれ開始座標、連続数4、カラー値が出力される。
【0028】
分割処理部121は、ラスタライザ11が出力したピクセルコマンドを受信し、連続数NDが所定の大きさ以下のピクセルコマンドに分割する。所定の大きさは、例えば、後述
するカラーキャッシュの1ラインの容量に基づいて定める。本実施の形態では、カラーキャッシュの1ラインが32ピクセルであり、分割処理部121は、連続数Nが32より大きい場合、連続数NDが32以下の複数のピクセルコマンドに分割して出力するものとす
る。なお、分割処理の過程で生成される中間的な値は、例えば図示していないレジスタに保持される。一方、ラスタライザ11から受信したピクセルコマンドの連続数Nが32以下の場合、分割処理部121は、ピクセルコマンドをそのまま出力する。
【0029】
図3の例では、分割されず、分割処理部121は、連続数NDが4のピクセルコマンド
を出力する。仮に、ラスタライザ11から受信したピクセルコマンドの連続数Nが70であった場合、分割処理部121は、連続数NDが32のピクセルコマンドを2つと、連続
数NDが6のピクセルコマンドを1つ出力する。
【0030】
分割処理部121が描画パイプラインに出力するデータを概括的に示すと、次のようになる。
ピクセルコマンド=X,Y,ND,カラー値(RGBA)
【0031】
キャッシュ判定部122は、分割処理部121からピクセルコマンドを受信し、ピクセ
ルコマンドの連続数NDのすべてが後述するカラーキャッシュに格納できるか(すなわち
、フロントキャッシュにヒットするか)判断する。具体的には、キャッシュ判定部122は、後述するカラーキャッシュのキャッシュラインのうち、処理の時点でフロントに設定されているラインをフロントタグ123から読み出し、分割処理部121から受信したピクセルコマンドが示す連続数NDのすべてがフロントに設定されているキャッシュライン
のピクセルデータに収まるか判断する。
【0032】
ここで、カラーキャッシュ132に格納されるデータの概略的なデータ構造を、図4に示す。図4のカラーキャッシュは、IDが「0」のキャッシュラインと、IDが「1」のキャッシュラインとを含む。各キャッシュラインは、タグと、有効フラグと、ピクセルデータとを含む。タグには、表示装置上(すなわち、フレームバッファ上)の開始位置を示す座標(X,Y)が格納される。有効フラグには、ピクセルデータのうち描画すべき(すなわち、有効な)ピクセルを示すフラグが格納される。ピクセルデータには、描画方向に連続するピクセルの各カラー値(RGBA。「表示データ」とも呼ぶ)が格納される。なお、便宜上、IDの列を示したが、「0」又は「1」の値は保持しなくてもよい。
【0033】
本実施の形態では、ピクセルデータの容量は、32ビットカラーで32ピクセル分設けられているものとする。また、本実施の形態では、このようなカラーキャッシュ132において、各キャッシュラインがフロント又はバックに設定される。そして、フロントに設定されたキャッシュラインにはデータが書き込まれ、バックに設定されたキャッシュラインからはデータが書き出される。このように、本実施の形態に係るカラーキャッシュは、ダブルバッファのように機能するものとする。なお、キャッシュラインにフロント又はバックを設定するための構成は特に限定されないが、例えばレジスタ等に「フロント」又は「バック」のIDを設定しておき、IDが「0」のラインがフロントの場合は、IDが「1」のラインがバックと判断できるようにしておく。
【0034】
キャッシュ判定部122及び伸長ブロック13の処理を説明するための機能ブロック図を、図5に示す。図5は、図1に示した機能ブロック図のうち、キャッシュ判定部122及び伸長ブロック13の接続関係を、図4に示したカラーキャッシュ132を用いて詳細に示している。
【0035】
フロントタグ123には、フロントに設定されたキャッシュラインの開始位置を示す座標(X,Y)が保持されているものとする。キャッシュ判定部122は、まず、フロントタグ123から、フロントに設定されたキャッシュラインの開始位置を示す座標(X,Y)を読み出す。そして、フロントに設定されたキャッシュラインの32ピクセルの領域に、受信したピクセルコマンドが示す、開始位置から連続数ND分のピクセルすべてを格納
できると判断した場合は、キャッシュヒットと判定する。一方、受信したピクセルコマンドの連続数NDのすべてをカラーキャッシュ132に格納できないと判断した場合は、キ
ャッシュミスと判定する。なお、カラーキャッシュ132のキャッシュラインに格納できるピクセルの容量は、あらかじめわかっている。よって、フロントに設定されたキャッシュラインに、ピクセルコマンドが示すピクセルのすべてを格納できるか否かは、フロントタグ123から読み出したキャッシュラインの開始座標、及び分割処理部121から受信したピクセルコマンドに基づいて判断できる。すなわち、キャッシュ判定部122は、ピクセルコマンドが示す開始位置から描画方向に連続数ND先の座標が、フロントタグ12
3の座標から32ピクセル(カラーキャッシュ132の容量)以内に存在すれば、キャッシュヒットと判断できる。
【0036】
さらに、キャッシュ判定部122は、キャッシュヒットと判定した場合、受信したピクセルコマンドを伸長ブロック13に出力する。具体的には、キャッシュ判定部122は、受信したピクセルコマンドを伸長回路131に転送する。
【0037】
一方、キャッシュ判定部122は、キャッシュミスと判定した場合、フロントタグ123を受信したピクセルコマンドの開始位置で更新する。さらに、キャッシュラインのフロントとバックとを切り替え、バックに設定されたキャッシュラインにデータの書き出しを指示するとともに、受信したピクセルコマンドを伸長ブロック13に出力する。
【0038】
具体的には、キャッシュ判定部122は、受信したピクセルコマンドの開始座標(X,Y)を用いて、フロントタグ123を更新する。また、例えば、伸長回路131やバス制御部134からも読み出せる図示していないレジスタに、フロント又はバックに設定されているキャッシュラインのIDを保持させておく。そして、キャッシュ判定部122が当該レジスタを更新することで、キャッシュラインのフロントとバックとを切り替える。また、キャッシュ判定部122は、フロントに設定されたキャッシュラインのタグを伸長回路131に更新させる。また、キャッシュ判定部122は、バス制御部134に対し、バックに設定されたキャッシュラインのフラッシュ(ピクセルデータ及び開始座標を示すアドレスの出力)を指示するための信号を出力する。そして、キャッシュ判定部122は、受信したピクセルコマンドを伸長回路131に転送する。なお、切り替えの際には、キャッシュ判定部122は、切り替え後にフロントに設定されるキャッシュラインの有効フラグを、例えば「0」で初期化させるようにしてもよい。
【0039】
伸長回路131は、受信したピクセルコマンドに基づいて、連続数ND分のカラー値を
複製し、ピクセルデータとしてカラーキャッシュ132に格納する。具体的には、伸長回路131は、分割ブロック12のキャッシュ判定部122からピクセルコマンドを受信し、連続数NDの数だけカラー値(RGBA)を複製し、カラーキャッシュ132において
フロントに設定されているキャッシュラインのピクセルデータに書き込む。同一のカラー値を複製する処理は、例えば複数のパイプラインレジスタに同一の信号を送る処理であり、描画パイプラインにおける1サイクルで実行できる。よって、同一色のピクセルが連続する場合はまとめて書き込むことができる分、1ピクセル毎に処理を行う場合よりも効率がよい。
【0040】
また、有効フラグには、カラー値を書き込んだピクセルデータに対応するビットを立てる。本実施の形態では、有効フラグは、例えば32ビットのフラグを有し、ピクセルデータに保持された、有効な表示データの範囲を表す。
【0041】
一方、キャッシュ判定部122からフラッシュの指示を受信した場合、バス制御部134は、表示データをフレームバッファ3へ出力する。具体的には、バス制御部134は、バックに設定されているキャッシュラインのピクセルデータを、システムバス2を介してフレームバッファ3へ書き出す。なお、システムバス2の幅に基づいて、バス制御部134は、表示データであるピクセルデータを分割し、バースト転送を行うようにしてもよい。このとき、アドレス演算回路133は、カラーキャッシュにおいてバックに設定されているキャッシュラインのタグに保持されている座標(X,Y)を読み出し、フレームバッファ3がアサインされているメモリ上のアドレスに変換する。また、バス制御部134は、予め定められたシステムバス2の幅(すなわち、伝送容量)及びカラー値の色深度(ビット数)に基づいて、システムバス2でまとめて伝送可能なピクセル数を算出する。なお、システムバス2でまとめて伝送可能なピクセル数は、色深度毎に予め定めておくようにしてもよい。そして、バス制御部134は、表示装置上の開始位置の座標に相当する、変換後のアドレスを用いて、システムバス2でまとめて伝送可能なピクセル数毎にピクセルデータをバースト転送する。
【0042】
例えば、システムバス2の幅が128ビットの場合において、32ピクセルを出力するとき、カラー値が32ビットカラーであれば、バースト長は8バーストになる。すなわち
、システムバス2は、同時に4ピクセル分のデータを出力することができる。16ビットカラーであれば、バースト長は4バーストになる。すなわち、システムバス2は、同時に8ピクセル分のデータを出力することができる。8ビットカラーであれば、バースト長は2バーストになる。すなわち、システムバス2は、同時に16ピクセル分のデータを出力することができる。
【0043】
なお、バス制御部134は、バックに設定されているキャッシュラインの有効フラグに基づいて、有効でないピクセルデータにはマスク処理を行い、フレームバッファ3へ出力しないようにする。システムバス2は、ピクセルデータの他に、対応するピクセルデータの有効又は無効をByte単位で表すマスク信号(バイトマスク)を伝送する。バイトマスクが無効(例えば「0」)に設定されたピクセルデータは、フレームバッファ3に記憶されない。
【0044】
ここで、図6に示すカラーキャッシュの有効フラグ及びピクセルデータを用いて、マスク処理を説明する。図6の例では、便宜上、1行目に、カラーキャッシュに格納される32ピクセルの通し番号(ピクセル0〜ピクセル31)を示している。また、図6の2行目に示すように、カラーキャッシュは、32ピクセルの各々に対応する有効フラグを有している。本実施の形態では、有効フラグは計32ビット確保され、有効フラグの各ビットが各ピクセルに対応している。そして、図6の例では、ピクセル1の有効フラグが「0(無効)」に設定され、その他のピクセルは「1(有効)」に設定されている。また、図6の3行目に示すように、カラーキャッシュは、32ピクセルの各々に対応するピクセルデータD0〜D31を有している。32ビットカラーの場合、ピクセルデータにはRGBAの各パラメータをそれぞれ8ビットで表したデータが格納される。
【0045】
システムバス2の幅が128ビットの場合、バス制御部134は、4ピクセル分のピクセルデータを一度にシステムバス2へ出力することができる。また、システムバス2の幅が128ビットの場合、16本(1バイト(8ビット)毎に1本、128ビット分)のマスク信号0〜マスク信号15(図示せず)が伝送される。図6の例では、バス制御部134は、ピクセル0〜ピクセル3に相当するピクセルデータD0〜D3を出力するとき、ピクセル1の有効フラグは「0」であるため、マスク信号4〜マスク信号7を「0(無効)」にして、システムバス2へ出力する。仮に16ビットカラーの場合は、システムバス2の幅が128ビットのとき、システムバス2は、一度に8ピクセル分のピクセルデータを伝送できる。このとき、ピクセル1の有効フラグが「0」であれば、バス制御部134は、マスク信号2〜マスク信号3を「0」にする。なお、水平方向に2本のスパン(色のある1以上のピクセル)が存在し、間に1ピクセル分の間隔がある場合、図6のようなデータがカラーキャッシュに保持される。
【0046】
以上のように、例えば32ピクセル分のピクセルデータを出力する場合、バス制御部134は、バス幅と色深度(ピクセルデータの大きさ)に基づいて、バースト長(バス幅に応じたデータ出力回数)と、有効でないピクセルのマスク処理を制御する。以上のような処理を繰り返し、表示装置の1画面分のラスタデータがフレームバッファ3に保持されると、表示装置はフレームバッファ3に保持されたデータを読み出して表示を更新する。
【0047】
本実施の形態では、同一色のピクセルが連続する場合、ラスタライザ11はピクセルごとに描画データを出力するのではなく、連続数Nを出力する。また、伸長回路131は、例えば同一色の表示データ(ピクセルデータ)を所定数分複製するような処理であれば、1サイクルで実行することができる。よって、グラフィックスプロセッサ1は、フレームバッファ3に接続されたシステムバス2の幅を十分に利用することができ、連続数N、若しくは分割した連続数ND、又はそれらをバス幅に応じて分割したピクセル数ごとに、表
示データをまとめて出力することができる。すなわち、本実施の形態に係るグラフィック
スプロセッサ1は、描画速度を向上させることができる。また、処理にかかるクロック数を低減させることができるため、同時に消費電力を低減させることもできる。
【0048】
図1の例では省略しているが、ラスタライザ11と分割ブロック12との間には、カラースペース変換等の処理パイプラインを含んでいてもよい。例えば、ラスタライザ11はカラー値を生成するための属性値を出力し、カラースペース変換により、カラー値(RGBA)が生成される。本実施の形態のように、色が同一の場合、カラー値等の情報と連続数を出力するようにすれば、カラースペース変換等も1サイクルで処理できる。
【0049】
なお、本実施の形態では、所定の領域を同一色で塗りつぶす場合を例に説明したが、上記の処理が適用できるのは、このような場合には限られない。例えば、図7に示すように、表示装置上(すなわち、フレームバッファ3上)で縦方向(Y軸方向、鉛直方向とも呼ぶ)5001に、リニア(線形)に変化するグラデーションで塗りつぶすような場合であってもよい。すなわち、図7の場合も、横方向(すなわち、X軸方向、水平方向、ラスタ方向、描画方向とも呼ぶ)5002には同一色が連続することになる。よって、ラスタライザ11は同一色が描画方向に連続する数を示す連続数Nを出力することができ、本実施の形態に係る処理が適用できる。なお、図7では、便宜上、グラデーションの色の変化は、ハッチングの間隔の変化で表されている。
【0050】
<変形例>
次に、所定の領域を、描画方向に色がリニアに変化するようなグラデーションで塗りつぶす場合の処理を説明する。図8に、所定の領域が、水平方向に色が変化するグラデーションで塗りつぶされた例を示す。図8図2B等と同様の外形である。ただし、領域の内部は、鉛直方向6001に同一色が連続し、描画方向である水平方向6002に色がリニアに変化している。なお、図8でも、便宜上、グラデーションの色の変化は、ハッチングの間隔の変化で表されている。
【0051】
本変形例でも、図1に示したグラフィックスプロセッサ1を用いることができる。ただし、ラスタライザ11、分割回路121及びキャッシュ判定部122が描画パイプラインに出力するピクセルコマンドは、色が描画方向に変化する変位量を示す「差分」(ΔR,ΔG,ΔB,ΔA)をさらに含む。そして、伸長回路131は、カラー値に差分を加算してピクセルデータに展開し、カラーキャッシュ132に保持させる。
【0052】
開始座標のカラー値が(R,G,B,A)、差分が(ΔR,ΔG,ΔB,ΔA)、連続するピクセル数が4の場合、描画方向の順にピクセル0〜ピクセル3のピクセルデータは次のように算出される。
ピクセル0=(R,G,B,A)
ピクセル1=(R+1×ΔR,G+1×ΔG,B+1×ΔB,A+1×ΔA)
ピクセル2=(R+2×ΔR,G+2×ΔG,B+2×ΔB,A+2×ΔA)
ピクセル3=(R+3×ΔR,G+3×ΔG,B+3×ΔB,A+3×ΔA)
【0053】
すなわち、開始座標のカラー値が(R,G,B,A)、差分が(ΔR,ΔG,ΔB,ΔA)、連続するピクセル数がNの場合、伸長回路131が出力するn番目(n=0〜N−1)のピクセルのピクセルデータを概括的に表すと、次のようになる。
ピクセルn=(R+n×ΔR,G+n×ΔG,B+n×ΔB,A+n×ΔA)
【0054】
また、バス制御部134は、上で述べた実施の形態と同様に、システムバス2を介してフレームバッファ3へ、ピクセルデータを、例えばバースト転送することができる。このような変形例の場合も、グラフィックスプロセッサ1は、システムバス2の幅を十分に利用することができ、複数のピクセルデータをまとめてフレームバッファ3へ出力すること
ができる。すなわち、変形例に係るグラフィックスプロセッサ1も、描画速度を向上させることができる。なお、図8では水平方向に色がリニアに変化するグラデーションの例を示したが、斜め(すなわち、鉛直方向及び水平方向)に色がリニアに変化するグラデーションの場合も、同様に処理することができる。
【0055】
上記実施の形態及び変形例で説明した処理は、結果が変わらない限りにおいて、実行する順序を入れ替えてもよい。また、上記の処理は、ベクタグラフィックスに限らず、3Dグラフィックス等において、所定の色情報を有するピクセル(すなわち、同一色のピクセル又は色がリニアに変化するピクセル)が描画方向に連続する場合に適用することも可能である。
【0056】
なお、グラフィックスプロセッサ1は、同様の処理を行うグラフィックスアクセラレータや、LSI(Large Scale Integration)の部分であるIP(Intellectual Property)コア等の画像処理装置であってもよい。また、機能ブロック図で示したグラフィックスプロセッサ等の画像処理装置は、例えば、集積回路のようなデジタル回路を設計するための、様々なハードウェア記述言語を利用して設計することができる。
【符号の説明】
【0057】
1 グラフィックスプロセッサ
11 ラスタライザ
12 分割ブロック
121 分割回路
122 キャッシュ判定部
123 フロントタグ
13 伸長ブロック
131 伸長回路
132 カラーキャッシュ
133 アドレス演算回路
134 バス制御部
2 システムバス
3 フレームバッファ
図1
図2A
図2B
図2C
図3
図4
図5
図6
図7
図8