JP6361267B2 - Image processing device - Google Patents
Image processing device Download PDFInfo
- Publication number
- JP6361267B2 JP6361267B2 JP2014092988A JP2014092988A JP6361267B2 JP 6361267 B2 JP6361267 B2 JP 6361267B2 JP 2014092988 A JP2014092988 A JP 2014092988A JP 2014092988 A JP2014092988 A JP 2014092988A JP 6361267 B2 JP6361267 B2 JP 6361267B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- primitive
- drawing range
- range search
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
この発明は、いわゆるラスタライザを備えた画像処理装置に関する。 The present invention relates to an image processing apparatus including a so-called rasterizer.
3次元コンピュータグラフィックスでは、3次元空間内のオブジェクトの表面を複数のプリミティブ(例えば、三角形や四角形などのポリゴン)の集合とみなし、各プリミティブの描画処理を行う。図13はこのプリミティブの描画処理の一般的な例を示すものである。この例では、ラスタライザが、プリミティブをx軸方向に長い4ピクセル幅の矩形領域に分割し、各矩形領域のピクセルの描画処理を行っている。 In three-dimensional computer graphics, the surface of an object in a three-dimensional space is regarded as a set of a plurality of primitives (for example, polygons such as triangles and quadrangles), and each primitive is rendered. FIG. 13 shows a general example of the primitive drawing process. In this example, the rasterizer divides the primitive into rectangular areas each having a width of 4 pixels that are long in the x-axis direction, and performs pixel rendering processing for each rectangular area.
さて、画像処理装置では、表示対象であるフレームを記憶するためのフレームメモリとして、SDRAM等のページ単位でのアクセスに適したメモリが用いられることが多い。しかし、このような画像処理装置において、ラスタライザが上記のような描画処理を行うと、次の問題が生じる。すなわち、プリミティブ内の矩形領域が長いと、矩形領域のピクセルのカラーデータをフレームメモリに順次書き込んでゆく際、書き込み先がフレームメモリのページ境界を飛び越えることによりフレームメモリのアクセス時間が長くなり、描画処理の効率が低下するのである。 In an image processing apparatus, a memory suitable for access in page units such as SDRAM is often used as a frame memory for storing a frame to be displayed. However, in such an image processing apparatus, when the rasterizer performs the drawing process as described above, the following problem occurs. In other words, if the rectangular area in the primitive is long, when writing the color data of the pixels in the rectangular area sequentially into the frame memory, the access time of the frame memory becomes longer due to the write destination jumping over the page boundary of the frame memory. Processing efficiency is reduced.
また、画像処理装置の中には、フレームメモリのアクセス効率を高めるため、SDRAM等とともにキャッシュメモリを使用したものも多い。この種の画像処理装置では、例えばバイリニアフィルタ処理等のフィルタ処理を行いつつ、矩形領域内のピクセルのカラーデータをフレームメモリに書き込むような場合に次の問題が生じる。すなわち、矩形領域が長くなると、フィルタ処理を実行するために書き込み対象のピクセルとその周囲のピクセルのカラーデータが必要な場合に、該当するピクセルのカラーデータがキャッシュメモリに残っておらず、キャッシュミスとなる可能性が高くなり、フレームメモリのアクセス効率が低下するのである。 Many image processing apparatuses use a cache memory together with an SDRAM or the like in order to increase the access efficiency of the frame memory. In this type of image processing apparatus, for example, the following problem occurs when color data of pixels in a rectangular area is written in a frame memory while performing filter processing such as bilinear filter processing. In other words, when the rectangular area becomes long, when the color data of the pixel to be written and the surrounding pixels are necessary to execute the filtering process, the color data of the corresponding pixel does not remain in the cache memory, and the cache miss As a result, the frame memory access efficiency decreases.
このような問題の解決に有効な手段として、タイリングアーキテクチャと呼ばれる方法が知られている。このタイリングアーキテクチャによると、画像処理装置は、フレームを所定のサイズ(例えば、8×8ピクセル)に分割したタイル毎に、タイル内にピクセルを有するプリミティブについて描画処理を行う。従って、描画処理の対象となるピクセル列が過度に長くなるのを防止し、フレームメモリのアクセス効率が低下する問題を解決することができる。なお、このタイリングアーキテクチャによる描画処理は、例えば特許文献1に開示されている。 As an effective means for solving such a problem, a method called a tiling architecture is known. According to this tiling architecture, the image processing apparatus performs rendering processing on primitives having pixels in the tiles for each tile obtained by dividing the frame into a predetermined size (for example, 8 × 8 pixels). Therefore, it is possible to prevent an excessively long pixel column from which drawing processing is performed, and to solve the problem that the access efficiency of the frame memory is lowered. Note that the drawing processing based on this tiling architecture is disclosed in, for example, Japanese Patent Application Laid-Open No. 2004-133830.
しかし、上述した特許文献1の技術では、タイル毎に、そのタイル内にピクセルを有するプリミティブがあるか否かを判定し、そのプリミティブのタイル内のピクセル列を描画する必要がある。このように従来の技術では、プリミティブのピクセルを含まないタイルについても処理対象とするため、描画処理の処理量が大きいという問題があった。
However, in the technique of
この発明は、以上説明した事情に鑑みてなされたものであり、フレームメモリのアクセス効率を悪化させず、かつ、少ない処理量で描画処理を実行することができる画像処理装置を提供することを目的としている。 The present invention has been made in view of the above-described circumstances, and an object thereof is to provide an image processing apparatus capable of executing drawing processing with a small processing amount without deteriorating access efficiency of a frame memory. It is said.
この発明は、描画対象であるプリミティブの各頂点の座標を取得し、前記プリミティブに属するピクセルの描画を行う画像処理装置において、前記プリミティブに属するピクセルを内包するブロックを当該ブロックより小さなサイズのブロックに分割しつつ、分割した各ブロックから前記プリミティブに属するピクセルを内包するブロックを探索する描画範囲探索処理をブロックサイズが描画可能なブロックサイズになるまで階層的に探索範囲を狭めながら繰り返す描画範囲探索手段と、前記描画範囲探索手段により得られた描画可能なブロックが内包する前記プリミティブのピクセルの描画処理を行う描画処理手段とを具備することを特徴とする画像処理装置を提供する。 According to the present invention, in an image processing apparatus that obtains coordinates of each vertex of a primitive to be drawn and draws a pixel belonging to the primitive, a block including the pixel belonging to the primitive is made a block having a smaller size than the block. A drawing range search means that repeats a drawing range search process for searching for a block including pixels belonging to the primitive from each divided block while hierarchically reducing the search range until the block size reaches a drawable block size. And an image processing device for performing drawing processing of the pixels of the primitive included in the drawable block obtained by the drawing range search means.
この発明によれば、描画範囲探索手段は、プリミティブに属するピクセルを内包するブロックを当該ブロックより小さなサイズのブロックに分割しつつ、分割した各ブロックから前記プリミティブに属するピクセルを内包するブロックを探索する描画範囲探索処理をブロックサイズが描画可能なブロックサイズになるまで階層的に探索範囲を狭めながら繰り返す。そして、描画手段は、描画範囲探索手段により得られた描画可能なブロックが内包するプリミティブのピクセルの描画処理を行う。従って、この発明によれば、プリミティブのピクセルを含むブロックを、描画可能なブロックサイズになるまで分割し、少ない処理量で、プリミティブに属するピクセルを内包する最適なサイズのブロックを得ることができる。従って、フレームメモリのアクセス効率を悪化させず、かつ、少ない処理量で描画処理を実行することができる。 According to this invention, the drawing range search means searches for a block containing the pixel belonging to the primitive from each divided block while dividing the block containing the pixel belonging to the primitive into blocks having a smaller size than the block. The drawing range search process is repeated while hierarchically narrowing the search range until the block size becomes a drawable block size. Then, the drawing means performs a drawing process of the primitive pixels included in the drawable block obtained by the drawing range search means. Therefore, according to the present invention, it is possible to divide a block including primitive pixels to a block size that can be drawn, and to obtain a block having an optimum size including pixels belonging to the primitive with a small amount of processing. Therefore, the drawing process can be executed with a small processing amount without deteriorating the access efficiency of the frame memory.
以下、図面を参照し、この発明の実施の形態を説明する。 Embodiments of the present invention will be described below with reference to the drawings.
<第1実施形態>
[1.画像処理装置の構成の概略]
図1は、この発明の第1実施形態である画像処理装置100の構成を示すブロック図である。この画像処理装置100は、3次元のオブジェクトを任意の視点から見た2次元画像の画像データを生成し、ディスプレイ200に表示させる装置である。
<First Embodiment>
[1. Outline of configuration of image processing apparatus]
FIG. 1 is a block diagram showing a configuration of an
図1に示すように、画像処理装置100は、ジオメトリ処理部1と、ラスタライザ2と、ピクセル処理部3と、表示制御部4と、メモリ部51と、メモリコントローラ52と、キャッシュメモリ53とを有する。ジオメトリ処理部1は、ディスプレイ200の表示画面に表示させる3次元のオブジェクトの表面を三角形や四角形等のプリミティブの集合により近似し、表示画面内に表示させる2次元の各プリミティブの各頂点の属性値を発生する手段である。ここで、プリミティブの各頂点の属性値には、表示画面内におけるプリミティブの各頂点の座標、各頂点のカラー、各頂点に適用するテクスチャ座標、3次元のオブジェクトの表面における各頂点の法線ベクトル等が含まれる。ジオメトリ処理部1は、オブジェクトを構成する各プリミティブの各頂点の属性値を各プリミティブの描画順にラスタライザ2に供給する。
As shown in FIG. 1, the
ラスタライザ2は、ジオメトリ処理部1から供給される各プリミティブの各頂点の属性値に基づいて各プリミティブの描画処理を行う手段である。この描画処理において、ラスタライザ2は、表示画面上においてプリミティブの占める領域を求め、当該領域内に属するピクセル列の属性値を当該プリミティブの各頂点の属性値に基づいて生成し、ピクセル処理部3に供給する。なお、ラスタライザ2が実行する描画処理の詳細については後述する。
The
メモリ部51は、フレームメモリ、テクスチャメモリ等の各種のメモリを含む。フレームメモリは、ディスプレイ200に表示させるフレーム上の各ピクセルのカラーデータを記憶するメモリである。テクスチャメモリは、表示対象である各プリミティブの表面に貼り付けるテクスチャの画像データ(カラーデータを含む)を記憶したメモリである。メモリコントローラ52は、メモリ部51の各メモリに対するアクセスを制御する装置である。キャッシュメモリ53は、メモリ部51のフレームメモリ、テクスチャメモリ等の大容量メモリから読み出したデータを一時記憶するためのメモリである。なお、メモリ部51を構成する各メモリのうち大容量のメモリは、画像処理装置100の外付けのメモリとしてもよい。
The
ピクセル処理部3は、ラスタライザ2から供給されるプリミティブ内のピクセル列の属性値に基づいて、各ピクセルのカラーデータを生成し、キャッシュメモリ53およびメモリコントローラ52を介してメモリ部51のフレームメモリに書き込む。その際、ピクセル処理部3は、ラスタライザ2から供給される属性値に基づいて、プリミティブに貼り付けるべきテクスチャを求め、そのテクスチャのカラーデータをテクスチャメモリから読み出して、プリミティブのピクセル列のカラーデータの演算に用いる。また、バイリニアフィルタ等のフィルタ処理が必要な場合、ピクセル処理部3は、カラーデータの書き込みを行うピクセルとその周辺のピクセルのカラーデータをフレームメモリから読み出してフィルタ処理に使用する。なお、キャッシュメモリ53に該当するピクセルのカラーデータが記憶されている場合は、キャッシュメモリ53からカラーデータを取得する。
The
表示制御部4は、ディスプレイ200へ垂直同期信号、水平同期信号を出力し、これらの同期信号に同期して、メモリ部51のフレームメモリからメモリコントローラ52を介してカラーデータを順次読み出し、ディスプレイ200の表示画面に表示させる。
以上が本実施形態による画像処理装置100の構成の概略である。
The
The above is the outline of the configuration of the
[2.ラスタライザ2の特徴]
この画像処理装置100において、メモリ部51のフレームメモリは、例えばSDRAMにより構成されている。このフレームメモリについては、アクセス効率を高くするため、ページ単位で、連続したアドレスにアクセスを行うことが求められる。従って、フレームメモリにピクセル列のカラーデータを書き込む場合、ピクセル列は、あまり長くならないようにすることが好ましい。ピクセル列が長くなると、各ピクセルのカラーデータの書き込み先アドレスが複数のページに跨ることとなり、アクセス効率を低下させるからである。
[2. Characteristics of rasterizer 2]
In the
また、この画像処理装置100では、テクスチャマッピングを伴う描画処理を実行する場合がある。その際、メモリ部51のテクスチャメモリに記憶されたテクスチャデータの中からプリミティブに貼り付けるテクスチャのテクスチャデータを読み出してキャッシュメモリ53に一時記憶させ、テクスチャマッピングに使用する。この場合、キャッシュメモリ53には、必要なテクスチャデータを含む小領域のテクスチャデータが記憶される。従って、キャッシュメモリ53を利用したテクスチャマッピングにおいてキャッシュミスを発生させないためにも、連続的に描画するピクセル列の長さはあまり長くない方が好ましい。何故ならば、例えば長いピクセル列をプリミティブが含む場合、次のような問題が起こり得るからである。まず、テクスチャメモリから必要なテクスチャデータを含む小領域のテクスチャデータを読み出してキャッシュメモリ53に記憶させ、このキャッシュメモリ53のテクスチャデータを使用して、あるスキャンライン上のプリミティブへのテクスチャマッピングを行ったとする。このスキャンラインの次のスキャンラインも同じプリミティブを横切っている。従って、次のスキャンライン上のプリミティブへのテクスチャマッピングのためのテクスチャデータがキャッシュメモリ53に残っていれば、そのテクスチャデータをテクスチャマッピングに使用可能である。しかし、プリミティブに含まれるピクセル列が長い状況では、キャッシュメモリ53におけるテクスチャデータの入れ替えが頻繁に行われる。このため、スキャンライン上のプリミティブへのテクスチャマッピングを行おうとする際に、必要なテクスチャデータがキャッシュメモリ53から既に追い出されており、キャッシュミスになる、という問題が起こり得るのである。
Further, the
また、画像処理装置100は、描画処理の際にバイリニアフィルタ等のフィルタ処理を実行する場合がある。従って、このフィルタ処理を効率的に実行するためにも、連続的に描画するピクセル列は、あまり長くならないことが好ましい。連続的に描画するピクセル列を短くすることにより、複数ページに跨るアクセスが減るからである。
Further, the
そこで、本実施形態におけるラスタライザ2は、フレームから表示対象であるプリミティブを含む所定の大きさのブロックを取り出し、その後、このブロックをより小さなブロックに分割しつつ、分割したブロックの中からプリミティブに属するピクセルを内包しないブロックを除外し、プリミティブに属するピクセルを内包するブロックを探索する、という描画範囲探索処理を階層的に繰り返す。そして、ラスタライザ2は、この階層的な描画範囲探索処理により得られた各ブロックから、プリミティブに属するピクセル列を求め、そのピクセル列の属性値を生成してピクセル処理部3に供給するのである。
Therefore, the
[3.ラスタライザ2の処理内容] [3. Processing contents of rasterizer 2]
[3−1.ラスタライザ2の処理内容の概略]
図2はラスタライザ2の処理内容を示すフローチャートである。また、図3はフレームに描画するプリミティブを例示する図である。本実施形態では、描画範囲探索処理を階層的に繰り返すことにより、フレーム内においてプリミティブの所在する領域を絞り込み、プリミティブの所在する領域内のピクセルの描画を行う。図2において、ステップS1〜S3の各処理は、この階層的な描画範囲探索処理を実行するための初期設定に相当する。
[3-1. Outline of processing contents of rasterizer 2]
FIG. 2 is a flowchart showing the processing contents of the
図4(a)〜(d)は、本実施形態における階層的な描画範囲探索処理の処理内容を例示する図である。最上位階層(第1階層)の描画範囲探索処理S10では、図4(a)に示すように、表示対象のプリミティブを含む所定サイズのブロックを例えばx軸方向のスキャンラインSL_ia、SL_ia+1、…により所定ピクセル幅のブロックに分割する。図4(a)に示す例では、このブロックのピクセル幅を64にしている。そして、分割した各ブロックのうちプリミティブのピクセルを含むブロックY64BLKSTART〜Y64BLKENDの各々について、プリミティブに属するピクセルを含むx軸方向の範囲を探索する(具体的な探索方法は後述する)。このプリミティブのピクセルを含むx軸方向の範囲が第2階層の描画範囲探索処理S10_iの探索範囲となる。 4A to 4D are diagrams illustrating the processing contents of the hierarchical drawing range search processing in the present embodiment. In the drawing range search process S10 of the highest hierarchy (first hierarchy), as shown in FIG. 4A, a block of a predetermined size including a primitive to be displayed is scanned by, for example, scan lines SL_ia, SL_ia + 1,. Divide into blocks with a predetermined pixel width. In the example shown in FIG. 4A, the pixel width of this block is 64. Then, for each of the blocks Y64BLKSTART to Y64BLKEND including the primitive pixels among the divided blocks, a range in the x-axis direction including the pixels belonging to the primitive is searched (a specific search method will be described later). The range in the x-axis direction including the primitive pixels becomes the search range of the drawing range search process S10_i in the second layer.
第2階層の描画範囲探索処理S10_iでは、図4(b)に示すように、第1階層の描画範囲探索処理S10において得られたプリミティブのピクセルを含むブロックY64BLKSTART〜Y64BLKENDの各々を例えばy軸方向のスキャンラインSL_ja、SL_ja+1、…により所定ピクセル幅のブロックに分割する。図4(b)に示す例では、このブロックのピクセル幅を64にしている。そして、分割した各ブロックのうちプリミティブのピクセルを含むブロックX64BLKSTART〜X64BLKENDの各々について、プリミティブのピクセルを含むy軸方向の範囲を探索する(具体的な探索方法は後述する)。このプリミティブのピクセルを含むy軸方向の範囲が第3階層の描画範囲探索処理S10_i_jの探索範囲となる。 In the second hierarchical drawing range search process S10_i, as shown in FIG. 4B, each of the blocks Y64BLKSTART to Y64BLKEND including the primitive pixels obtained in the first hierarchical drawing range search process S10 is, for example, in the y-axis direction. Are divided into blocks having a predetermined pixel width by the scan lines SL_ja, SL_ja + 1,. In the example shown in FIG. 4B, the pixel width of this block is 64. Then, for each of the blocks X64BLKSTART to X64BLKEND including the primitive pixel among the divided blocks, a range in the y-axis direction including the primitive pixel is searched (a specific search method will be described later). The range in the y-axis direction including the primitive pixels is the search range of the third-layer drawing range search process S10_i_j.
第3階層の描画範囲探索処理S10_i_jでは、図4(c)に示すように、第2階層の描画範囲探索処理S10_iにおいて得られたプリミティブのピクセルを含むブロックX64BLKSTART〜X64BLKENDの各々を例えばx軸方向のスキャンラインSL_ka、SL_ka+1、…により所定ピクセル幅のブロックに分割する。図4(c)に示す例では、このブロックのピクセル幅を4にしている。そして、分割した各ブロックのうちプリミティブのピクセルを含むブロックの各々について、プリミティブのピクセルを含むx軸方向の範囲を求める。このプリミティブのピクセルを含むx軸方向の範囲が描画範囲となる。図4(d)にこのようにして得られた描画範囲を例示する。第3階層の描画範囲探索処理S10_i_jでは、このようにして求めた描画範囲内の各ピクセルの描画を行う。
以上がラスタライザ2により実行される階層的な描画範囲探索処理の概略である。
In the third hierarchy drawing range search process S10_i_j, as shown in FIG. 4C, each of the blocks X64BLKSTART to X64BLKEND including the primitive pixels obtained in the second hierarchy drawing range search process S10_i is, for example, in the x-axis direction. Are divided into blocks having a predetermined pixel width by the scan lines SL_ka, SL_ka + 1,. In the example shown in FIG. 4C, the pixel width of this block is set to 4. Then, for each block including the primitive pixel among the divided blocks, a range in the x-axis direction including the primitive pixel is obtained. A range in the x-axis direction including pixels of the primitive is a drawing range. FIG. 4D illustrates the drawing range obtained in this way. In the drawing range search process S10_i_j of the third hierarchy, each pixel in the drawing range thus obtained is drawn.
The outline of the hierarchical drawing range search processing executed by the
[3−2.階層的な描画範囲探索処理を実行するための初期設定]
次に図2のステップS1〜S3の各処理について説明する。プリミティブの各頂点の属性値が与えられると、ラスタライザ2は、まず、スキャンラインとプリミティブの各辺(より正確には各辺またはその延長線)との交点の座標を求めるための関数を発生する(ステップS1)。本実施形態における描画範囲探索処理S10、S10_i、S10_i_jでは、この関数を利用して描画範囲の探索を行う。
[3-2. Initial settings for executing hierarchical drawing range search processing]
Next, each process of steps S1 to S3 in FIG. 2 will be described. Given the attribute value of each vertex of the primitive, the
次に図3を参照し、このステップS1の処理内容について説明する。図3に示す例において、プリミティブは四角形であり、4個の頂点V0、V1、V2およびV3を有する。そして、xy座標平面において、頂点V0の座標は(x0、y0)、頂点V1の座標は(x1、y1)、頂点V2の座標は(x2、y2)、頂点V3の座標は(x3、y3)となっている。 Next, the processing content of step S1 will be described with reference to FIG. In the example shown in FIG. 3, the primitive is a quadrangle and has four vertices V0, V1, V2, and V3. In the xy coordinate plane, the coordinates of the vertex V0 are (x0, y0), the coordinates of the vertex V1 are (x1, y1), the coordinates of the vertex V2 are (x2, y2), and the coordinates of the vertex V3 are (x3, y3). It has become.
このxy座標平面上において、頂点V0およびV1間を結ぶ辺およびその延長線上の各点の座標(x、y)は、次式を満たす。
x=((x0−x1)/(y0−y1))y+(x1y0−x0y1)/(y0−y1)
……(1X)
y=((y0−y1)/(x0−x1))x−(x1y0−x0y1)/(x0−x1)
……(1Y)
On this xy coordinate plane, the side connecting the vertices V0 and V1 and the coordinates (x, y) of each point on the extension line satisfy the following expression.
x = ((x0−x1) / (y0−y1)) y + (x1y0−x0y1) / (y0−y1)
...... (1X)
y = ((y0-y1) / (x0-x1)) x- (x1y0-x0y1) / (x0-x1)
...... (1Y)
また、頂点V1およびV2間を結ぶ辺およびその延長線上の各点の座標(x、y)は、次式を満たす。
x=((x1−x2)/(y1−y2))y+(x2y1−x1y2)/(y1−y2)
……(2X)
y=((y1−y2)/(x1−x2))x−(x2y1−x1y2)/(x1−x2)
……(2Y)
Further, the side connecting the vertices V1 and V2 and the coordinates (x, y) of each point on the extension line satisfy the following expression.
x = ((x1-x2) / (y1-y2)) y + (x2y1-x1y2) / (y1-y2)
...... (2X)
y = ((y1-y2) / (x1-x2)) x- (x2y1-x1y2) / (x1-x2)
...... (2Y)
また、頂点V2およびV3間を結ぶ辺およびその延長線上の各点の座標(x、y)は、次式を満たす。
x=((x2−x3)/(y2−y3))y+(x3y2−x2y3)/(y2−y3)
……(3X)
y=((y2−y3)/(x2−x3))x−(x3y2−x2y3)/(x2−x3)
……(3Y)
Further, the side connecting the vertices V2 and V3 and the coordinates (x, y) of each point on the extension line satisfy the following expression.
x = ((x2-x3) / (y2-y3)) y + (x3y2-x2y3) / (y2-y3)
...... (3X)
y = ((y2-y3) / (x2-x3)) x- (x3y2-x2y3) / (x2-x3)
...... (3Y)
また、頂点V3およびV0間を結ぶ辺およびその延長線上の各点の座標(x、y)は、次式を満たす。
x=((x3−x0)/(y3−y0))y+(x0y3−x3y0)/(y3−y0)
……(4X)
y=((y3−y0)/(x3−x0))x−(x0y3−x3y0)/(x3−x0)
……(4Y)
Further, the side connecting the vertices V3 and V0 and the coordinates (x, y) of each point on the extension line satisfy the following expression.
x = ((x3-x0) / (y3-y0)) y + (x0y3-x3y0) / (y3-y0)
...... (4X)
y = ((y3-y0) / (x3-x0)) x- (x0y3-x3y0) / (x3-x0)
...... (4Y)
ステップS1において、ラスタライザ2は、プリミティブの各頂点V0、V1、V2およびV3の座標に基づいて、以上の各式(1X)〜(4Y)に示す各関数を生成する。そして、本実施形態では、任意のy座標を有するx軸方向のスキャンラインとプリミティブの各辺またはその延長線との交点のx座標を求めるために式(1X)、(2X)、(3X)および(4X)に示す各関数を使用する。また、任意のx座標を有するy軸方向のスキャンラインとプリミティブの各辺またはその延長線との交点のy座標を求めるために式(1Y)、(2Y)、(3Y)および(4Y)に示す各関数を使用する。
In step S1, the
ステップS1の処理が終了すると、ラスタライザ2は、描画矩形範囲を設定する(ステップS2)。さらに詳述すると、ラスタライザ2は、図3に示すように、プリミティブの各頂点V0、V1、V2およびV3のX座標の最大値VXMAXおよび最小値VXMINと、Y座標の最大値VYMAXおよび最小値VYMINとを求める。そして、ラスタライザ2は、xy座標平面において、直線y=VYMAXおよび直線y=VYMINに挟まれ、かつ、直線x=VXMAXおよび直線x=VXMINに挟まれた領域を描画矩形範囲とする。
When the process of step S1 ends, the
次にラスタライザ2は、スキャン方向の初期設定を行う(ステップS3)。具体的には、描画矩形範囲のx軸方向の長さVXMAX−VXMINと、y軸方向の長さVYMAX−VYMINとを比較し、x軸方向の長さがy軸方向の長さよりも短ければスキャン方向をx軸方向とし、そうでなければスキャン方向をy軸方向とする。図3に示す例では、スキャン方向はx軸方向となる。そして、このようにして決定したスキャン方向を第1階層の描画範囲探索処理(ステップS10)のスキャン方向として初期設定する。このようにスキャン方向の初期設定をする理由は次の通りである。
Next, the
本実施形態のように第1階層〜第3階層の描画範囲探索処理を実行すると、第3階層の描画範囲探索処理における描画方向(描画範囲の開始位置から終了位置までの方向)は、第1階層の描画範囲探索処理のスキャン方向と同じになる。ここで、描画方向に沿ったピクセル列の長さは短くなった方がよい。そこで、本実施形態では、描画矩形範囲のx軸方向の辺とy軸方向の辺のうち短い方の辺を選択し、この辺の延在方向を第1階層の描画範囲探索処理S10のスキャン方向とするのである。 When the drawing range search process of the first layer to the third layer is executed as in the present embodiment, the drawing direction (direction from the start position to the end position of the drawing range) in the drawing range search process of the third layer is the first. This is the same as the scanning direction of the drawing range search process of the hierarchy. Here, the length of the pixel row along the drawing direction is preferably shortened. Therefore, in this embodiment, the shorter side of the x-axis direction side and the y-axis direction side of the drawing rectangle range is selected, and the extension direction of this side is determined as the scanning direction of the drawing range search process S10 in the first layer. It is.
[3−3.第1階層の描画範囲探索処理]
スキャン方向の初期設定が完了すると、ラスタライザ2は、第1階層の描画範囲探索処理(ステップS10)を開始する。上述したように、第1階層の描画範囲探索処理(ステップS10)では、最初に表示対象であるプリミティブを含む所定の大きさのブロックをスキャン方向のスキャンラインにより所定ピクセル幅のブロックに分割する(ステップS11)。図4(a)に示す例では、x軸方向のスキャンラインSL_ia、SL_ia+1、…により上記ブロックを64ピクセル幅のブロックに分割している。
[3-3. First-layer drawing range search process]
When the initial setting of the scan direction is completed, the
そして、ラスタライザ2は、プリミティブにおいてy座標が最小値VYMINである頂点V0を含むブロックを探索開始ブロックY64BLKSTARTとし、y座標が最大値VYMAXである頂点V2を含むブロックを探索終了ブロックY64BLKENDとする。
The
次にラスタライザ2は、探索開始ブロックY64BLKSTARTから探索終了ブロックY64BLKENDまでの各ブロックを順次選択し(ステップS12)、ステップS13〜S17の処理を繰り返す。
Next, the
まず、ラスタライザ2は、ステップS12において選択したブロックについて、当該ブロックをy軸方向両側から挟むスキャンラインSLTおよびSLBのy座標を各々求め、これらのy座標を前掲式(1X)、(2X)、(3X)および(4X)の各関数に代入する(ステップS13)。これによりスキャンラインSLTおよびSLBとプリミティブの各辺またはその延長線との交点のx座標が得られる。ここで、プリミティブが4本の辺を有する場合、このステップS13では、スキャンラインSLTおよびSLBの各々について、4個の交点のx座標が得られる。
First, the
次にラスタライザ2は、ステップS13において求めたスキャンラインSLTおよびSLBの各4個の交点の中から下位階層の描画範囲探索処理(この場合、第2階層の描画範囲探索処理S10_i)の探索開始位置候補および探索終了位置候補を求める(ステップS14)。
Next, the
ここで、図4(a)を参照し、ステップS14の処理の詳細について説明する。例えば探索開始ブロックY64BLKSTARTを挟むスキャンラインSLT=SL_iaおよびSLB=SL_ia+1上の各交点がステップS14の処理対象になっているものとする。 Here, with reference to FIG. 4A, details of the processing in step S14 will be described. For example, it is assumed that the intersections on the scan lines SLT = SL_ia and SLB = SL_ia + 1 sandwiching the search start block Y64BLKSTART are to be processed in step S14.
この場合、スキャンラインSLT=SL_ia上には、プリミティブの辺V2−V3の延長線との交点(x座標=cx(2))と、辺V0−V1の延長線との交点(x座標=cx(0))と、辺V3−V0の延長線との交点(x座標=cx(3))と、辺V1−V2の延長線との交点(x座標=cx(1))とが左から順に並ぶ。そして、各交点のx座標の間には、cx(2)<cx(0)<cx(3)<cx(1)の関係がある。そこで、ラスタライザ2は、これら4個のx座標から両端の2個を除き、残った2個のうち小さい方のx座標cx(0)を下位階層の描画範囲探索処理の探索開始位置候補SLT_minとし、大きい方のx座標cx(3)を下位階層の描画範囲探索処理S10_i(i=ia)の探索終了位置候補SLT_maxとする。
In this case, on the scan line SLT = SL_ia, the intersection (x coordinate = cx (2)) of the extension line of the primitive side V2-V3 and the extension line of the side V0-V1 (x coordinate = cx (0)) and the intersection (x coordinate = cx (3)) of the extension line of the side V3-V0 and the intersection (x coordinate = cx (1)) of the extension line of the side V1-V2 from the left. Line up in order. And there is a relationship of cx (2) <cx (0) <cx (3) <cx (1) between the x coordinates of each intersection. Therefore, the
一方、スキャンラインSLB=SL_ia+1上には、プリミティブの辺V2−V3の延長線との交点(x座標=cx(2))と、辺V3−V0との交点(x座標=cx(3))と、辺V0−V1との交点(x座標=cx(0))と、辺V1−V2の延長線との交点(x座標=cx(1))とが左から順に並ぶ。そして、各交点のx座標の間には、cx(2)<cx(3)<cx(0)<cx(1)の関係がある。そこで、ラスタライザ2は、これら4個のx座標から両端の2個を除き、残った2個のうち小さい方のx座標cx(3)を下位階層での探索開始位置候補SLB_minとし、大きい方のx座標cx(0)を下位階層の描画範囲探索処理S10_i(i=ia)の探索終了位置候補SLB_maxとする。
On the other hand, on the scan line SLB =
以上、ブロックY64BLKSTARTを挟んだスキャンラインSLT=SL_iaおよびSLB=SL_ia+1を例に探索開始位置候補および探索終了位置候補の決定方法を説明したが、他のブロックを挟むスキャンラインSLTおよびSLBについても同様である。 The method for determining the search start position candidate and the search end position candidate has been described above using the scan lines SLT = SL_ia and SLB = SL_ia + 1 sandwiching the block Y64BLKSTART as an example, but the same applies to the scan lines SLT and SLB sandwiching other blocks. is there.
次にラスタライザ2は、ステップS14において求めた探索開始位置候補SLT_minおよびSLB_min、探索終了位置候補SLT_maxおよびSLB_maxに基づいて、下位階層の描画範囲探索処理の探索開始位置と探索終了位置を決定する(ステップS15)。
Next, the
図5はこのステップS15の処理の詳細を示すフローチャートである。まず、ステップS21において、ラスタライザ2は、プリミティブを囲む辺がブロックを分割する分割線であるスキャンラインSLTとスキャンラインSLBに各々交差しているか否かを判断する。このような判断は、各辺とスキャンラインとの交点のx座標cx(0)〜cx(3)の大小関係に基づいて実行することが可能である。後述するステップS22およびS23についても同様である。
FIG. 5 is a flowchart showing details of the processing in step S15. First, in step S21, the
図4(a)に示す例では、例えばスキャンラインSL_ia+1がスキャンラインSLT、スキャンラインSL_ia+2がスキャンラインSLBであるときに、このステップS21の判断結果が「YES」となる。
In the example shown in FIG. 4A, for example, when the scan
この場合、ラスタライザ2は、スキャンラインSLT=SL_ia+1とスキャンラインSLB=SL_ia+2との間に挟まれたブロックについて行う下位階層の描画範囲探索処理S10_i(i=ia+1)における探索開始位置と探索終了位置を次のようにして求める。
In this case, the
まず、ラスタライザ2は、スキャンラインSLT=SL_ia+1およびSLB=SL_ia+2間のブロックに含まれるプリミティブの頂点V1のスキャン方向の座標(この例ではx座標)を求める。そして、この頂点V1の座標と、スキャンラインSLT=SL_ia+1から求めた探索開始位置候補SLT_min=cx(3)と、スキャンラインSLB=SL_ia+2から求めた探索開始位置候補SLB_min=cx(3)と、プリミティブ内のブロック境界を比較し、それらのうち最も小さい座標を下位階層の描画範囲探索処理における探索開始位置とする。ここで、プリミティブ内のブロック境界とは、スキャン方向を横切る方向のブロック間の境界である。最上位階層の描画範囲探索処理S10では、このプリミティブ内のブロック境界に相当するものはない。そこで、この例では、スキャンラインSLBから求めた探索開始位置候補SLB_min=cx(3)が下位階層の描画範囲探索処理S10_i(i=ia+1)における探索開始位置となる。
First, the
また、ラスタライザ2は、スキャンラインSLT=SL_ia+1およびSLB=SL_ia+2間のプリミティブの頂点V1のスキャン方向の座標(この例ではx座標)と、スキャンラインSLT=SL_ia+1から求めた探索終了位置候補SLT_max=cx(0)と、スキャンラインSLB=SL_ia+2から求めた探索終了位置候補SLB_max=cx(1)と、プリミティブ内のブロック境界とを比較し、それらのうち最も大きい座標を下位階層の描画範囲探索処理S10_i(i=ia+1)における探索終了位置とする。この例では、頂点V1のx座標が下位階層の描画範囲探索処理S10_i(i=ia+1)における探索終了位置となる。
The
図4(a)に示す例において、スキャンラインSL_ia+2がスキャンラインSLT、スキャンラインSL_ia+3がスキャンラインSLBであるときにも、ステップS21の判断結果が「YES」となる。
In the example shown in FIG. 4A, the determination result in step S21 is “YES” even when the scan
この場合、頂点V3のx座標が下位階層の描画範囲探索処理S10_i(i=ia+2)における探索開始位置となる。また、スキャンラインSLT=SL_ia+2から求めた探索終了位置候補SLT_max=cx(1)が下位階層の描画範囲探索処理S10_i(i=ia+2)における探索終了位置となる。 In this case, the x coordinate of the vertex V3 becomes the search start position in the drawing range search process S10_i (i = ia + 2) in the lower hierarchy. Further, the search end position candidate SLT_max = cx (1) obtained from the scan line SLT = SL_ia + 2 becomes the search end position in the drawing range search process S10_i (i = ia + 2) of the lower layer.
ステップS21の判断結果が「NO」である場合はステップS22に進む。このステップS22において、ラスタライザ2は、プリミティブを囲む辺がスキャンラインSLTのみに交差しているか否かを判断する。
If the determination result of step S21 is “NO”, the process proceeds to step S22. In step S22, the
図4(a)に示す例では、スキャンラインSL_ia+3がスキャンラインSLT、スキャンラインSL_ia+4がスキャンラインSLBであるときに、このステップS22の判断結果が「YES」となる。
In the example shown in FIG. 4A, when the scan
この場合、ラスタライザ2は、スキャンラインSLT=SL_ia+3およびSLB=SL_ia+4間のブロックY64BLKSENDに含まれるプリミティブの頂点V2のスキャン方向の座標(この例ではx座標)を求める。そして、この頂点V2の座標と、スキャンラインSLT=SL_ia+3から求めた探索開始位置候補SLT_min=cx(2)と、プリミティブ内のブロック境界とを比較し、それらのうち最も小さい座標を下位階層の描画範囲探索処理S10_i(i=ia+3)における探索開始位置とする。この例では、スキャンラインSLT=SL_ia+3から求めた探索開始位置候補SLT_min=cx(2)が下位階層の描画範囲探索処理S10_i(i=ia+3)における探索開始位置となる。
In this case, the
また、ラスタライザ2は、スキャンラインSLT=SL_ia+3およびスキャンラインSLB=SL_ia+4間のプリミティブの頂点V2のスキャン方向の座標(この例ではx座標)と、スキャンラインSLT=SL_ia+3から求めた探索終了位置候補SLT_max=cx(1)と、プリミティブ内のブロック境界とを比較し、それらのうち最も大きい座標を下位階層の描画範囲探索処理S10_i(i=ia+3)における探索終了位置とする。この例では、スキャンラインSLT=SL_ia+3から求めた探索終了位置候補SLT_max=cx(1)が下位階層の描画範囲探索処理S10_i(i=ia+3)における探索終了位置となる。
Further, the
ステップS22の判断結果が「NO」である場合はステップS23に進む。このステップS23において、ラスタライザ2は、プリミティブを囲む辺がスキャンラインSLBのみに交差しているか否かを判断する。
If the determination result of step S22 is “NO”, the process proceeds to step S23. In step S23, the
図4(a)に示す例では、スキャンラインSL_iaがスキャンラインSLT、スキャンラインSL_ia+1がスキャンラインSLBであるときに、このステップS23の判断結果が「YES」となる。
In the example shown in FIG. 4A, when the scan line SL_ia is the scan line SLT and the scan
この場合、ラスタライザ2は、スキャンラインSLT=SL_iaおよびスキャンラインSLB=SL_ia+1間のブロックY64BLKSTARTに含まれるプリミティブの頂点V0のスキャン方向の座標(この例ではx座標)を求める。そして、この頂点V0の座標と、スキャンラインSLB=SL_ia+1から求めた探索開始位置候補SLB_min=cx(3)と、プリミティブ内のブロック境界とを比較し、それらのうち最も小さい座標を下位階層の描画範囲探索処理S10_i(i=ia)における探索開始位置とする。この例では、スキャンラインSLB=SL_ia+1から求めた探索開始位置候補SLB_min=cx(3)が下位階層の描画範囲探索処理S10_i(i=ia)における探索開始位置となる。
In this case, the
また、ラスタライザ2は、スキャンラインSLT=SL_iaおよびSLB=SL_ia+1間のプリミティブの頂点V0のスキャン方向の座標(この例ではx座標)と、スキャンラインSLB=SL_ia+1から求めた探索終了位置候補SLB_max=cx(0)と、プリミティブ内のブロック境界とを比較し、それらのうち最も大きい座標を下位階層の描画範囲探索処理S10_i(i=ia)における探索終了位置とする。この例では、スキャンラインSLB=SL_ia+1から求めた探索終了位置候補SLB_max=cx(0)が下位階層の描画範囲探索処理S10_i(i=ia)における探索終了位置となる。
The
ステップS23の判断結果が「NO」になる場合として、スキャンラインSLTおよびSLB間にプリミティブ全体が収まっている場合と、全てのブロック境界がプリミティブ内に収まっている場合がある(図示略)。前者の場合、ラスタライザ2は、スキャンラインSLTおよびSLB間のブロックに含まれるプリミティブの各頂点を求める。そして、スキャン方向の各頂点の座標の最小値を下位階層の描画範囲探索処理S10_iにおける探索開始位置とし、スキャン方向の各頂点の座標の最大値を探索終了位置とする。また、後者の場合、ラスタライザ2は、プリミティブ内の各ブロック境界のスキャン方向の座標の最小値を下位階層の描画範囲探索処理S10_iにおける探索開始位置とし、最大値を探索終了位置とする。
以上が図2のステップS15の処理内容の詳細である。
As a case where the determination result in step S23 is “NO”, there are a case where the entire primitive falls between the scan lines SLT and SLB, and a case where all block boundaries fall within the primitive (not shown). In the former case, the
The above is the details of the processing content of step S15 of FIG.
ステップS15の処理が終了すると、ステップS16に進む。このステップS16において、ラスタライザ2は、上側スキャンラインSLTおよび下側スキャンラインSLBにより挟まれたブロックのサイズが描画可能なサイズか否かを判断する。第1階層の描画範囲探索処理S10では、ブロックのサイズが大きく、描画可能なサイズではない。図4に示す例では4ピクセル幅のブロックのサイズを描画可能なサイズとしているからである。このため、ステップS16の判断結果が「NO」となり、ラスタライザ2は、第2階層の描画範囲探索処理S10_iを実行する。
When the process of step S15 ends, the process proceeds to step S16. In step S <b> 16, the
[3−4.第2階層の描画範囲探索処理]
第1階層でのスキャン方向がx軸方向であった場合、ラスタライザ2は、第2階層の描画範囲探索処理S10_iにおけるスキャン方向をy軸方向とする。一方、第1階層でのスキャン方向がy軸方向であった場合、ラスタライザ2は、第2階層の描画範囲探索処理S10_iにおけるスキャン方向をx軸方向とする。
[3-4. Second-layer drawing range search process]
When the scan direction in the first layer is the x-axis direction, the
また、第1階層の描画範囲探索処理S10において、スキャンラインSLTが例えば図4(a)のスキャンラインSL_ia、スキャンラインSLBがスキャンラインSL_ia+1であるときに、ステップS16の判断結果が「NO」となった場合、ラスタライザ2は、スキャンラインSLT=SL_iaおよびSLB=SL_ia+1間のブロックにおいて、ステップS15により決定された探索開始位置、探索終了位置を含む領域を処理対象とする第2階層の描画範囲探索処理S10_i(i=ia)を実行する。
Also, in the drawing range search process S10 in the first hierarchy, when the scan line SLT is, for example, the scan line SL_ia in FIG. 4A and the scan line SLB is the scan
ここで、図4(b)を参照し、第2階層の描画範囲探索処理S10_i(i=ia)の処理内容の概略を説明する。この第2階層の描画範囲探索処理S10_iは、第1階層の描画範囲探索処理S10と同様なステップS11〜S17の処理により構成されている。このため、第2階層の描画範囲探索処理S10_iでは、第1階層の描画範囲探索処理S10を実行するために利用される演算手段と同じ演算手段が利用される。 Here, with reference to FIG. 4B, an outline of the processing contents of the drawing range search process S10_i (i = ia) of the second hierarchy will be described. This drawing range search process S10_i of the second hierarchy is configured by the processes of steps S11 to S17 similar to the drawing range search process S10 of the first hierarchy. For this reason, in the drawing range search process S10_i of the second hierarchy, the same calculation means as the calculation means used to execute the drawing range search process S10 of the first hierarchy is used.
第2階層のスキャン方向がy軸方向である場合、第2階層の描画範囲探索処理S10_i(i=ia)のステップS11では、スキャンラインSLT=SL_iaおよびSLB=SL_ia+1間のブロックをy軸方向のスキャンラインにより所定ピクセル幅のブロックに分割する。図4(b)に示す例では、y軸方向のスキャンラインSL_ja、SL_ja+1、SL_ja+2によりブロックY64BLKSTARTを64×64ピクセルの2つのブロックに分割している。 When the scan direction of the second layer is the y-axis direction, in step S11 of the drawing range search process S10_i (i = ia) of the second layer, the block between the scan lines SLT = SL_ia and SLB = SL_ia + 1 is moved in the y-axis direction. A block having a predetermined pixel width is divided by a scan line. In the example shown in FIG. 4B, the block Y64BLKSTART is divided into two blocks of 64 × 64 pixels by the scan lines SL_ja, SL_ja + 1, and SL_ja + 2 in the y-axis direction.
そして、ラスタライザ2は、第1階層の描画範囲探索処理S10のステップS15において求めた探索開始位置cx(3)を含むブロックを探索開始ブロックX64BLKSTARTとし、探索終了位置cx(0)を含むブロックを探索終了ブロックX64BLKENDとする。
The
次にラスタライザ2は、スキャン方向に対して垂直な方向(この例ではx軸方向)に並んだ探索開始ブロックX64BLKSTARTから探索終了ブロックX64BLKENDまでの各ブロックを順次選択し(ステップS12)、ステップS13〜S17の処理を繰り返す。このステップS13〜S17の処理内容は、第1階層の描画範囲探索処理S10のステップS13〜S17の処理内容と基本的に同様である。
Next, the
ただし、第2階層の描画範囲探索処理S10_i(i=ia)では、ステップS13において前掲式(1Y)、(2Y)、(3Y)および(4Y)の各関数を利用し、y軸方向のスキャンラインSLTおよびSLBとプリミティブの各辺またはその延長線との交点のy座標を算出する。そして、ステップS14およびS15では、y軸方向の探索開始位置および探索終了位置を求める。 However, in the second-layer drawing range search process S10_i (i = ia), the y-axis direction scan is performed in step S13 by using the above-described functions (1Y), (2Y), (3Y), and (4Y). The y coordinate of the intersection of the lines SLT and SLB and each side of the primitive or its extension is calculated. In steps S14 and S15, a search start position and a search end position in the y-axis direction are obtained.
図4(b)に示す例では、プリミティブの辺とスキャンラインSL_ja+1との交点のy座標cy(3)を探索開始位置、スキャンラインSL_ja+1上のブロック境界のy座標を探索終了位置とする探索範囲がステップS15の処理により求められている。 In the example shown in FIG. 4B, the search range with the y coordinate cy (3) of the intersection of the primitive side and the scan line SL_ja + 1 as the search start position and the y coordinate of the block boundary on the scan line SL_ja + 1 as the search end position. Is obtained by the process of step S15.
第1階層の描画範囲探索処理S10と同様、第2階層の描画範囲探索処理S10_i(i=ia)のステップS16では、ステップS11で分割されたブロックのサイズが描画可能なサイズであるか否かを判断する。本実施形態では、第2階層のブロックサイズは、64×64ピクセルであり、描画可能なブロックサイズではない。そこで、ラスタライザ2は、第2階層の描画範囲探索処理S10_i(i=ia)のステップS16において、第3階層の描画範囲探索処理S10_i_jを実行する。
Similar to the drawing range search process S10 of the first layer, in step S16 of the drawing range search process S10_i (i = ia) of the second layer, whether or not the size of the block divided in step S11 is a drawable size. Judging. In the present embodiment, the block size of the second layer is 64 × 64 pixels and is not a drawable block size. Therefore, the
[3−5.第3階層の描画範囲探索処理]
第2階層でのスキャン方向がy軸方向であった場合、ラスタライザ2は、第3階層の描画範囲探索処理S10_i_jにおけるスキャン方向をx軸方向とする。一方、第2階層でのスキャン方向がx軸方向であった場合、ラスタライザ2は、第3階層の描画範囲探索処理S10_i_jにおけるスキャン方向をy軸方向とする。
[3-5. Third-layer drawing range search process]
When the scan direction in the second layer is the y-axis direction, the
また、スキャンラインSLTが例えば図4(b)のスキャンラインSL_ja、スキャンラインSLBがスキャンラインSL_ja+1であるときに、ステップS16の判断結果が「NO」となった場合、ラスタライザ2は、スキャンラインSLT=SL_jaおよびSLB=SL_ja+1間のブロックにおいて、ステップS15により決定された探索開始位置、探索終了位置を含む領域を処理対象とする第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)を実行する。
Further, when the scan line SLT is, for example, the scan line SL_ja and the scan line SLB is the scan line SL_ja + 1 in FIG. 4B, when the determination result in step S16 is “NO”, the
ここで、図4(c)を参照し、第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)の処理内容の概略を説明する。この第3階層の描画範囲探索処理S10_i_jも、第1階層の描画範囲探索処理S10と同様なステップS11〜S17の処理により構成されている。このため、第3階層の描画範囲探索処理S10_i_jにおいても、第1階層の描画範囲探索処理S10を実行するために利用される演算手段と同じ演算手段が利用される。 Here, with reference to FIG. 4C, an outline of the processing contents of the third-layer drawing range search processing S10_i_j (i = ia, j = ja) will be described. This third-layer drawing range search process S10_i_j is also configured by the processes of steps S11 to S17 similar to the first-layer drawing range search process S10. For this reason, also in the drawing range search process S10_i_j of the third hierarchy, the same calculation means as the calculation means used for executing the drawing range search process S10 of the first hierarchy is used.
第2階層のスキャン方向がy軸方向である場合、第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)のステップS11では、スキャンラインSLT=SL_jaおよびSLB=SL_ja+1間のブロックにおいて、探索により狭められた範囲内の領域をx軸方向のスキャンラインにより所定ピクセル幅のブロックに分割する。図4(c)に示す例では、x軸方向のスキャンラインSL_ka、SL_ka+1、…によりブロックX64BLKSTARTを4×64ピクセルのブロックに分割している。 When the scan direction of the second layer is the y-axis direction, in step S11 of the drawing range search process S10_i_j (i = ia, j = ja) of the third layer, in the block between the scan lines SLT = SL_ja and SLB = SL_ja + 1 The region within the range narrowed by the search is divided into blocks having a predetermined pixel width by a scan line in the x-axis direction. In the example shown in FIG. 4C, the block X64BLKSTART is divided into 4 × 64 pixel blocks by the scan lines SL_ka, SL_ka + 1,.
そして、ラスタライザ2は、第2階層の描画範囲探索処理S10_i(i=ia)のステップS15において求めた探索開始位置cy(3)を含むブロックを探索開始ブロックとし、探索終了位置(この例ではスキャンラインSL_ia+1上のブロック境界)を含むブロックを探索終了ブロックとする。
The
次にラスタライザ2は、スキャン方向に対して垂直な方向(この例ではy軸方向)に並んだ探索開始ブロックから探索終了ブロックまでの各ブロックを順次選択し(ステップS12)、ステップS13〜S17の処理を繰り返す。このステップS13〜S17の処理内容は、第1階層の描画範囲探索処理S10のステップS13〜S17の処理内容と基本的に同様である。そして、ステップS14およびS15では、x軸方向の探索開始位置および探索終了位置を求める。
Next, the
第1階層の描画範囲探索処理S10と同様、第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)のステップS16では、ステップS11で分割されたブロックのサイズが描画可能なサイズであるか否かを判断する。本実施形態において、第3階層のブロックサイズは、4×64ピクセルであり、描画可能なブロックサイズである。 Similar to the drawing range search process S10 in the first layer, in step S16 of the drawing range search process S10_i_j (i = ia, j = ja) in the third layer, the size of the block divided in step S11 is a drawable size. Judge whether there is. In the present embodiment, the block size of the third layer is 4 × 64 pixels, which is a drawable block size.
このため、第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)のステップS16の判断結果は「YES」となり、ラスタライザ2は、ステップS17の描画処理を実行する。
For this reason, the determination result of step S16 of the drawing range search process S10_i_j (i = ia, j = ja) of the third hierarchy is “YES”, and the
この描画処理では、ステップS15において求めた探索開始位置から探索終了位置までの範囲を描画範囲とし、この描画範囲内の各ピクセルの属性値をプリミティブの頂点V0、V1、V2、V3の属性値を用いた補間演算により算出する。そして、算出した各ピクセルの属性値をピクセル処理部3に出力する。
In this drawing processing, the range from the search start position to the search end position obtained in step S15 is set as the drawing range, and the attribute values of the pixels in the drawing range are set to the attribute values of the primitive vertices V0, V1, V2, and V3. It is calculated by the interpolation calculation used. Then, the calculated attribute value of each pixel is output to the
図4(d)は、図4(c)のスキャンラインSL_kaおよびSL_ka+1間の4×64ピクセルのブロックの内容を例示している。この例では、第3階層の描画範囲探索処理S10_i_j(i=ia、j=ja)のステップS15の処理の結果、4×64ピクセルのブロックの中の左から15番目の4×4ピクセルのブロック内の位置が探索開始位置となり、16番目の4×4ピクセルのブロックの右側のブロック境界が探索終了位置となる。そこで、ラスタライザ2は、ステップS17において、この15番目〜16番目までの4×4ピクセルのブロックについて、描画処理を実行する。
FIG. 4D illustrates the contents of a 4 × 64 pixel block between the scan lines SL_ka and SL_ka + 1 in FIG. In this example, the 15th 4 × 4 pixel block from the left in the 4 × 64 pixel block as a result of the processing in step S15 of the third hierarchy drawing range search processing S10_i_j (i = ia, j = ja). The position inside is the search start position, and the block boundary on the right side of the 16th 4 × 4 pixel block is the search end position. Therefore, the
描画処理(ステップS17)が終了すると、ステップS12に戻り、スキャンラインSL_ka+1およびSL_ka+2間の4×64ピクセルのブロックについて同様な処理を実行する。 When the drawing process (step S17) ends, the process returns to step S12, and the same process is executed for the 4 × 64 pixel block between the scan lines SL_ka + 1 and SL_ka + 2.
[3−6.下位階層から上位階層への復帰]
第3階層の描画範囲探索処理において、探索開始ブロックから探索終了ブロックまでの各ブロックについて描画処理(ステップS17)を実行すると、第3階層の描画範囲探索処理から第2階層の描画範囲探索処理S10_i(i=ia)に戻る。
[3-6. Return from lower hierarchy to higher hierarchy]
When the drawing process (step S17) is executed for each block from the search start block to the search end block in the third hierarchy drawing range search process, the third hierarchy drawing range search process S10_i is executed. Return to (i = ia).
第2階層の描画範囲探索処理S10_i(i=ia)では、j=ja+1として(すなわち、SLT=SL_ja+1、SLB=SL_ja+2として)、探索開始ブロックから探索終了ブロックまでの各ブロックについてステップS12〜S16の処理を実行する。そして、ステップS16において第3階層の描画探索処理S10_i_j(i=ia、j=ja+1)を実行し、ブロックX64BLKENDのプリミティブ内の描画処理を実行する(ステップS17)。
In the second hierarchy drawing range search process S10_i (i = ia), j = ja + 1 (ie, SLT =
このようにして第2階層の描画範囲探索処理S10_i(i=ia)が終了すると、第1階層の描画範囲探索処理S10に戻る。そして、第1階層の描画範囲探索処理S10では、i=ia+1として(すなわち、SLT=SL_ia+1、SLB=SL_ia+2として)、探索開始ブロックから探索終了ブロックまでの各ブロックについてステップS12〜S16の処理を実行する。
以下、同様である。
When the second hierarchy drawing range search process S10_i (i = ia) is completed in this manner, the process returns to the first hierarchy drawing range search process S10. Then, in the drawing range search process S10 of the first hierarchy, i = ia + 1 (that is, SLT =
The same applies hereinafter.
ラスタライザ2は、以上のようにして、ブロックを分割しつつ、プリミティブが占めるブロックを探索し、適切なサイズに分割されたブロック内のプリミティブのピクセル列の描画を行う。
As described above, the
[3−7.ジグザグスキャン]
本実施形態においてラスタライザ2は、第2階層の描画範囲探索処理S10_iを実行する際、処理対象であるブロックを図6および図7に例示するようにジグザグにスキャンする。
[3-7. Zigzag scan]
In the present embodiment, when the
図6に示す例では、三角形のプリミティブがy軸方向に長いため、描画矩形範囲の短辺方向であるx軸方向をスキャン方向として、第1階層の描画範囲探索処理S10を実行している。そして、1回目の第2階層の描画範囲探索処理S10_iでは、最上行の2個のブロックを左から右へ処理した後、第2行の第1階層の描画範囲探索処理S10を経て、処理対象を第2行に切り換えて、2回目の第2階層の描画範囲探索処理S10_iを実行するとき、処理対象である2個のブロックを右から左へ順に処理している。そして、図6に示す例では、1回目の第2階層の描画範囲探索処理S10_iを実行した後、第2行の第1階層の描画範囲探索処理S10を経て、2回目の第2階層の描画範囲探索処理S10_iを実行するとき、1回目の最後に処理したブロックとy軸方向に隣接したブロックを2回目の第2階層の描画範囲探索処理S10_iにおいて最初に処理する。第2行から第3行への切り換わり、第3行から第4行への切り換わりについても同様である。 In the example shown in FIG. 6, since the triangular primitive is long in the y-axis direction, the first-layer drawing range search process S10 is executed with the x-axis direction, which is the short side direction of the drawing rectangular range, as the scanning direction. In the first drawing range search process S10_i for the second layer, the two blocks in the top row are processed from left to right, and then the drawing range search process S10 for the first layer in the second row is processed. Is switched to the second row, and the second-layer drawing range search process S10_i is executed for the second time, the two blocks to be processed are sequentially processed from right to left. In the example shown in FIG. 6, after the first second-level drawing range search process S10_i is executed, the second-level second-level drawing process is performed via the first-level drawing range search process S10 of the second row. When the range search process S10_i is executed, the block processed last in the first time and the block adjacent in the y-axis direction are first processed in the second-level drawing range search process S10_i for the second time. The same applies to the switching from the second row to the third row and the switching from the third row to the fourth row.
図7に示す例では、三角形のプリミティブがx軸方向に長いため、描画矩形範囲の短辺方向であるy軸方向をスキャン方向として、第1階層の描画範囲探索処理S10を実行している。そして、1回目の第2階層の描画範囲探索処理S10_iでは、最左列の2個のブロックを上から下へ処理した後、第2列の第1階層の描画範囲探索処理S10を経て、処理対象を第2列に切り換えて、2回目の第2階層の描画範囲探索処理S10_iを実行するとき、処理対象である2個のブロックを下から上へ順に処理している。そして、図7に示す例では、1回目の第2階層の描画範囲探索処理S10_iを実行した後、第2列の第1階層の描画範囲探索処理S10を経て、2回目の第2階層の描画範囲探索処理S10_iを実行するとき、1回目の最後に処理したブロックとx軸方向に隣接したブロックを2回目の第2階層の描画範囲探索処理S10_iにおいて最初に処理する。第2列から第3列への切り換わり、第3列から第4列への切り換わりについても同様である。 In the example shown in FIG. 7, since the triangular primitive is long in the x-axis direction, the first-layer drawing range search process S <b> 10 is executed with the y-axis direction, which is the short side direction of the drawing rectangular range, as the scan direction. Then, in the first drawing range search process S10_i for the second layer, the two blocks in the leftmost column are processed from top to bottom, and then the drawing range search process S10 for the first layer in the second column is performed. When the target is switched to the second column and the second-layer drawing range search process S10_i is executed for the second time, the two blocks to be processed are sequentially processed from the bottom to the top. In the example shown in FIG. 7, after the first second-layer drawing range search process S10_i is executed, the second-layer second-layer drawing process is performed via the first-layer drawing range search process S10 in the second column. When the range search process S10_i is executed, the block processed in the first time and the block adjacent in the x-axis direction are first processed in the second-layer drawing range search process S10_i for the second time. The same applies to the switching from the second column to the third column and the switching from the third column to the fourth column.
このように第2階層の描画範囲探索処理S10_iを繰り返すときに処理対象であるブロックのジグザグスキャンを行うと、常に描画対象としたブロックに隣接するブロックを新たな描画対象とすることになる。従って、フレームメモリ等のアクセス効率を低下させることなく描画処理を実行することができる。 When the zigzag scan of the block to be processed is performed when the drawing range search process S10_i of the second hierarchy is repeated in this way, a block adjacent to the block to be drawn is always set as a new drawing target. Accordingly, the drawing process can be executed without reducing the access efficiency of the frame memory or the like.
[4.本実施形態の効果]
図8および図9は、三角形のプリミティブを処理対象とした描画範囲探索処理の実行例を示すものである。これらの図において、E1は第1階層の描画範囲探索処理S10のステップS11〜S16の処理対象となった範囲、E2は第2階層の描画範囲探索処理S10_iにおいて求められた描画探索範囲、E3は第3階層の描画範囲探索処理において求められた描画探索範囲(すなわち、描画範囲)を示している。このように本実施形態によれば、描画探索範囲の分割および探索を階層的に繰り返して、プリミティブが占める描画範囲を求めるので、フレームメモリのアクセス効率を低下させることなく、少ない処理量で描画処理を実行することができる。また、本実施形態によれば、階層的な描画範囲探索処理を共通の演算手段により実行することができるので、画像処理装置の小規模化を図ることができる。
[4. Effects of this embodiment]
FIG. 8 and FIG. 9 show an execution example of a drawing range search process for processing a triangle primitive. In these drawings, E1 is a range that is a processing target in steps S11 to S16 of the drawing range search process S10 of the first hierarchy, E2 is a drawing search range obtained in the drawing range search process S10_i of the second hierarchy, and E3 is The drawing search range (that is, the drawing range) obtained in the drawing range search process of the third hierarchy is shown. As described above, according to the present embodiment, the drawing search range is divided and searched hierarchically to obtain the drawing range occupied by the primitive, so that the drawing process can be performed with a small processing amount without reducing the access efficiency of the frame memory. Can be executed. In addition, according to the present embodiment, the hierarchical drawing range search process can be executed by a common calculation means, so that the image processing apparatus can be reduced in size.
<第2実施形態>
この発明の第2実施形態による画像処理装置は、アンチエイリアスフィルタ処理に適した描画処理を可能にするものである。まず、図10〜図11を参照し、本実施形態におけるラスタライザによって実行されるアンチエイリアスフィルタ処理について説明する。図10には、描画対象である直線が示されている。本実施形態では、この直線と重複した領域を占める各ピクセルからなる領域を描画範囲とし、この描画範囲の外側にピクセル1個分だけはみ出した範囲を拡張された描画範囲とする。そして、本実施形態では、この拡張された描画範囲の各ピクセルにより描画対象である直線を表現する。
Second Embodiment
The image processing apparatus according to the second embodiment of the present invention enables drawing processing suitable for anti-aliasing filter processing. First, the anti-aliasing filter process executed by the rasterizer in the present embodiment will be described with reference to FIGS. FIG. 10 shows a straight line to be drawn. In the present embodiment, an area composed of pixels that occupy an area overlapping with the straight line is set as a drawing range, and a range protruding by one pixel outside the drawing range is set as an extended drawing range. In this embodiment, a straight line to be drawn is expressed by each pixel in the extended drawing range.
図11には3×3ピクセルの領域を描画対象の直線が横切っている様子が示されている。各ピクセルには、4個のサブピクセルが設定されている。図11において、xマークは、直線の中に含まれていないサブピクセルであり、丸囲みされたxマークは直線の中に含まれているサブピクセルである。 FIG. 11 shows a state in which a straight line to be drawn crosses a 3 × 3 pixel region. Four subpixels are set for each pixel. In FIG. 11, an x mark is a subpixel not included in a straight line, and a circled x mark is a subpixel included in a straight line.
図11では、3×3ピクセルの中央のピクセルがアンチエイリアスフィルタ処理の対象ピクセルとなっている。そして、アンチエイリアスフィルタ処理を実行するため、対象ピクセルを囲むカバレッジ領域R0と、このカバレッジ領域R0を内包するカバレッジ領域R1と、このカバレッジ領域R1を内包するカバレッジ領域R2と、このカバレッジ領域R2を内包するカバレッジ領域R3と、このカバレッジ領域R3を内包するカバレッジ領域R4とが設定されている。 In FIG. 11, the center pixel of 3 × 3 pixels is the target pixel for anti-aliasing filter processing. In order to execute the anti-aliasing filter processing, the coverage area R0 surrounding the target pixel, the coverage area R1 including the coverage area R0, the coverage area R2 including the coverage area R1, and the coverage area R2 are included. A coverage area R3 and a coverage area R4 that includes the coverage area R3 are set.
そして、アンチエイリアスフィルタ処理では、各カバレッジ領域R0〜R4において、当該カバレッジ領域に含まれているサブピクセルの個数と、それらのサブピクセルのうち直線の中に含まれているサブピクセルの個数(すなわち、描画対象サブピクセル個数)との比が求められ、それらの比に基づいて、対象ピクセルのカラーデータに乗算する重み係数Coverageが決定される。より具体的には、次式に従って重み係数Coverageが算出される。
Coverage
= (R0内の描画対象サブピクセル個数/R0内のサブピクセル個数)/5
+(R1内の描画対象サブピクセル個数/R1内のサブピクセル個数)/5
+(R2内の描画対象サブピクセル個数/R2内のサブピクセル個数)/5
+(R3内の描画対象サブピクセル個数/R3内のサブピクセル個数)/5
+(R4内の描画対象サブピクセル個数/R4内のサブピクセル個数)/5
……(5)
In the anti-aliasing filter processing, in each coverage area R0 to R4, the number of subpixels included in the coverage area and the number of subpixels included in the straight line among the subpixels (that is, And the weighting factor Coverage for multiplying the color data of the target pixel is determined based on the ratio. More specifically, the weighting factor Coverage is calculated according to the following equation.
Coverage
= (Number of subpixels to be drawn in R0 / number of subpixels in R0) / 5
+ (Number of subpixels to be drawn in R1 / number of subpixels in R1) / 5
+ (Number of subpixels to be drawn in R2 / number of subpixels in R2) / 5
+ (Number of subpixels to be drawn in R3 / number of subpixels in R3) / 5
+ (Number of subpixels to be rendered in R4 / number of subpixels in R4) / 5
...... (5)
以上の処理を全てのピクセルについて実行し、それにより得られる重み係数Coverageを当該ピクセルのカラーデータに乗算する。これにより描画対象である直線の輪郭のギザギザを緩和し、直線の画像を滑らかにすることができる。以上、直線を例に説明したが、プリミティブに対してもアンチエイリアスフィルタ処理を施すことにより、プリミテティブの集合により近似されたオブジェクトの輪郭線をギザギザの緩和された滑らかな線にすることができる。なお、このアンチエイリアスフィルタ処理は非特許文献1に開示されている。
The above processing is executed for all the pixels, and the weight coefficient Coverage obtained thereby is multiplied by the color data of the pixel. Thereby, the jaggedness of the outline of the straight line to be drawn can be eased, and the straight line image can be smoothed. As described above, a straight line has been described as an example. However, by applying anti-aliasing filter processing to primitives as well, the contour line of an object approximated by a set of primitives can be made a smooth line with reduced jaggedness. This antialiasing filter processing is disclosed in
本実施形態は、以上説明したアンチエイリアスフィルタ処理の実行に適した描画処理を提供するものである。本実施形態におけるアンチエイリアスフィルタ処理では、描画対象のピクセルと、この描画対象ピクセルを囲む8個のピクセルについて、当該ピクセル内のサブピクセルが描画対象範囲内に含まれるか否かの内外判定を行う。そこで、本実施形態では、アンチエイリアスフィルタ処理において内外判定に必要なピクセルを取得するために、描画対象であるプリミティブが占める領域よりも、階層的な描画範囲探索処理により求められる描画範囲を広くし、後者の描画範囲に前者の領域に対する余裕を設ける。 The present embodiment provides a drawing process suitable for the execution of the antialiasing filter process described above. In the anti-aliasing filter processing according to the present embodiment, for the drawing target pixel and the eight pixels surrounding the drawing target pixel, it is determined whether or not the sub-pixels within the pixel are included in the drawing target range. Therefore, in the present embodiment, in order to acquire pixels necessary for the inside / outside determination in the anti-aliasing filter processing, the drawing range obtained by the hierarchical drawing range search process is made wider than the area occupied by the primitive to be drawn, A margin for the former area is provided in the latter drawing range.
図12は本実施形態における描画範囲探索処理の実行例を示す図である。図12に示す例では、描画対象のプリミティブにおいて、x軸方向の探索開始位置となる頂点のx座標IVXMINをIVXMIN−1とし、x軸方向の探索終了位置となる頂点のx座標IVXMAXをIVXMAX+1とし、この2頂点のx軸方向外側への移動に合わせて、プリミティブの各辺を平行移動させている。また、スキャンラインSLTおよびSLBを上下方向外側に1ピクセルだけシフトしている。また、プリミティブの上下の2頂点を各々上方および下方に1ピクセルずつ移動させている。このような操作により、本来のプリミティブの辺の約1ピクセルだけ外側に辺のある多角形が得られる。本実施形態では、このようにして得られた多角形内のピクセルを描画対象とし、その描画処理においてアンチエイリアスフィルタ処理を実行する。このように本実施形態によれば、プリミティブの外周部を通常より拡張し、アンチエイリアスフィルタ処理に必要なピクセルを描画対象とすることができる。
FIG. 12 is a diagram showing an execution example of the drawing range search process in the present embodiment. In the example shown in FIG. 12, in the primitive to be drawn, the x-coordinate IVXMIN that is the search start position in the x-axis direction is IVXMIN-1, and the x-coordinate IVXMAX that is the search end position in the x-axis direction is
<他の実施形態>
以上、この発明の各種の実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
<Other embodiments>
While various embodiments of the present invention have been described above, other embodiments are possible for the present invention. For example:
(1)各階層の描画範囲探索処理において、処理対象のブロックを分割する際のスキャンラインSLTおよびSLB間のピクセル幅を描画対象のプリミティブのサイズ等に応じて可変制御するようにしてもよい。 (1) In the drawing range search process of each layer, the pixel width between the scan lines SLT and SLB when the processing target block is divided may be variably controlled in accordance with the size of the drawing target primitive.
(2)上記第1実施形態の画像処理装置100を例えばパーソナルコンピュータに搭載する際、ジオメトリ処理部1が実行する演算処理の一部または全部をパーソナルコンピュータのCPUに実行させてもよい。
(2) When the
(3)上記各実施形態において、第3階層の描画範囲探索処理S10_i_jのステップS17において実行する描画処理は、処理量が多く、時間の掛かる処理である。そこで、第1〜第3階層の描画範囲探索処理(第3階層では描画処理(ステップS17)を除いた部分)と、第3階層の描画処理(ステップS17)とを例えば異なるハードウェアにより並列実行するようにしてもよい。この態様によれば、描画処理の効率をさらに高めることができる。 (3) In each of the above embodiments, the drawing process executed in step S17 of the drawing range search process S10_i_j of the third hierarchy is a process that requires a large amount of processing and takes time. Therefore, the drawing range search processing in the first to third layers (the portion excluding the drawing processing (step S17) in the third layer) and the third layer drawing processing (step S17) are executed in parallel by different hardware, for example. You may make it do. According to this aspect, the efficiency of the drawing process can be further increased.
(4)上記各実施形態では、階層数を3階層とし、第1階層〜第3階層の描画範囲探索処理を実行したが、階層数を4階層、5階層という具合に3階層より多くしてもよい。また、上記各実施形態では、第1階層においてブロックを64ピクセル幅のブロックに分割し、第2階層では第1階層において分割されたブロックを64プクセル幅のブロックに分割し、第3階層では第2階層において分割されたブロックを4プクセル幅のブロックに分割した。しかし、これは1つの分割例であり、各階層における分割後のブロックのサイズは、ディスプレイのピクセル数やフレームメモリのメモリアクセス単位を考慮して適切に定めればよい。 (4) In each of the above embodiments, the number of hierarchies is three, and the drawing range search process of the first to third hierarchies is performed. However, the number of hierarchies is four hierarchies, five hierarchies, and so on. Also good. Further, in each of the above embodiments, the block is divided into blocks having a width of 64 pixels in the first layer, the block divided in the first layer is divided into blocks having a width of 64 pixels in the second layer, and the blocks in the third layer are divided into the blocks in the third layer. Blocks divided in the two layers were divided into blocks having a width of 4 pixels. However, this is one example of division, and the size of the divided blocks in each layer may be appropriately determined in consideration of the number of display pixels and the memory access unit of the frame memory.
1……ジオメトリ処理部、2……ラスタライザ、3……ピクセル処理部、4……表示制御部、51……メモリ部、52……メモリコントローラ、53……キャッシュメモリ、100……画像処理装置、200……ディスプレイ。
DESCRIPTION OF
Claims (5)
前記プリミティブに属するピクセルを内包するブロックを当該ブロックより小さなサイズのブロックに分割しつつ、分割した各ブロックから前記プリミティブに属するピクセルを内包するブロックを探索する描画範囲探索処理をブロックサイズが描画可能なブロックサイズになるまで階層的に探索範囲を狭めながら繰り返す描画範囲探索手段と、
前記描画範囲探索手段により得られた描画可能なブロックが内包する前記プリミティブのピクセルの描画処理を行う描画処理手段とを具備し、
前記描画範囲探索手段は、上位階層の描画範囲探索処理において分割されたブロックを処理対象とする下位階層の描画範囲探索処理では、上位階層でのブロックの分割方向と直交する方向に下位階層でのブロックの分割を行うことを特徴とする画像処理装置。 In an image processing apparatus that obtains the coordinates of each vertex of a primitive to be drawn and draws pixels belonging to the primitive,
A block size can be drawn in a drawing range search process in which a block containing pixels belonging to the primitive is divided into blocks having a size smaller than the block, and a block containing pixels belonging to the primitive is searched from the divided blocks. Drawing range search means that repeats while narrowing the search range hierarchically until the block size is reached,
Drawing processing means for performing drawing processing of pixels of the primitive included in the drawable block obtained by the drawing range search means ;
In the drawing range search process in the lower hierarchy for processing blocks divided in the drawing range search process in the upper hierarchy, the drawing range search means An image processing apparatus that divides a block .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014092988A JP6361267B2 (en) | 2014-04-28 | 2014-04-28 | Image processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014092988A JP6361267B2 (en) | 2014-04-28 | 2014-04-28 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015210730A JP2015210730A (en) | 2015-11-24 |
JP6361267B2 true JP6361267B2 (en) | 2018-07-25 |
Family
ID=54612844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014092988A Active JP6361267B2 (en) | 2014-04-28 | 2014-04-28 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6361267B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023201102A1 (en) * | 2022-04-15 | 2023-10-19 | Meta Platforms Technologies, Llc | Rasterization optimization for analytic anti-aliasing |
US11882295B2 (en) | 2022-04-15 | 2024-01-23 | Meta Platforms Technologies, Llc | Low-power high throughput hardware decoder with random block access |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7061495B1 (en) * | 2002-11-18 | 2006-06-13 | Ati Technologies, Inc. | Method and apparatus for rasterizer interpolation |
US7505043B2 (en) * | 2004-08-30 | 2009-03-17 | Qualcomm Incorporated | Cache efficient rasterization of graphics data |
JP4568750B2 (en) * | 2007-11-30 | 2010-10-27 | 富士通株式会社 | Drawing apparatus, drawing program, and drawing method |
JP2013025376A (en) * | 2011-07-15 | 2013-02-04 | Fujitsu Semiconductor Ltd | Image drawing device |
-
2014
- 2014-04-28 JP JP2014092988A patent/JP6361267B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023201102A1 (en) * | 2022-04-15 | 2023-10-19 | Meta Platforms Technologies, Llc | Rasterization optimization for analytic anti-aliasing |
US11882295B2 (en) | 2022-04-15 | 2024-01-23 | Meta Platforms Technologies, Llc | Low-power high throughput hardware decoder with random block access |
Also Published As
Publication number | Publication date |
---|---|
JP2015210730A (en) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI616846B (en) | A graphics subsystem, a computer-implemented method and a computing device for enhanced anti-aliasing by varying sample patterns spatially and/or temporally | |
CN108701235B (en) | Performing anti-aliasing operations in a computing system | |
JP6709038B2 (en) | Method and computing device for performing a graphics pipeline | |
KR102122454B1 (en) | Apparatus and Method for rendering a current frame using an image of previous tile | |
US6693637B2 (en) | Method and apparatus for determining bins to be updated for polygons, including lines | |
US9569811B2 (en) | Rendering graphics to overlapping bins | |
US10019802B2 (en) | Graphics processing unit | |
KR20110093404A (en) | Method and apparatus for rendering 3d graphics | |
JP2017054504A (en) | Method and apparatus for performing path stroking | |
JP2009301284A (en) | Drawing device and method | |
JP6361267B2 (en) | Image processing device | |
JP4719603B2 (en) | Drawing apparatus and broken line drawing method | |
JP5172640B2 (en) | Vector drawing equipment | |
JP2006139727A (en) | Three-dimensional figure drawing processor, image display device, three-dimensional figure drawing processing method, control program for executing the method by computer, and computer readable recording medium recorded with the program | |
JP5304443B2 (en) | Drawing data processing method, drawing system, and drawing data creation program | |
US20030122850A1 (en) | Method and apparatus for determining bins to be updated for polygons, including triangles | |
JP2004317878A (en) | Graphics processor, graphics card and graphics processing system | |
JP5738442B2 (en) | Map drawing device, navigation device, and map drawing method | |
JP5151946B2 (en) | Drawing device | |
KR100719480B1 (en) | Fast anti-aliasing method | |
JP5719157B2 (en) | Graphic processing chip | |
US20230195626A1 (en) | Variable dispatch walk for successive cache accesses | |
JP6375683B2 (en) | Image processing device | |
JP5900254B2 (en) | Line drawing apparatus, line drawing method, and line drawing program | |
JP2010086008A (en) | Semiconductor device, graphics controller, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180611 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6361267 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |