Sample culling based on linearized 5D edge equations
Summary by NHIP
Five-Dimensional Edge Culling
The method generates an affine hyperplane approximation for a tile to cull samples based on triangle edges. It picks the hypercube corner farthest from the negative direction of the hyperplane normal and evaluates bounds in uvxyt space where u and v are lens coordinates, t is time, and x and y are screen space spatial coordinates.
Claim Score by NHIP
Abstract
Thin invention introduces a five-dimensional rasterization technique that uses a test based on triangle edges in order to obtain high efficiency. A compact formulation of five-dimensional edge equations is used to derive a conservative triangle edge versus tile test in five dimensions, expressed as an affine hyperplane.

Term
Projected expiry 18 May 2033.
- Priority and filed
- Granted
- Today
- Projected expiry
31 claims: 3 independent, 28 dependent
- 1Broadest claimClaim Score 87, very broad(NHIP)A method comprising:using a processor to generate an affine hyperplane approximation for a tile to cull samples;using a processor to cull a tile if a hypercube of valid samples is entirely outside the hyperplane;andusing a processor to pick a corner of the hypercube farthest from the negative direction of the hyperplane normal.
- 12A non-transitory computer readable medium storing instructions executed by a graphics processor to:generate an affine hyperplane approximation for a tile to cull samples;cull a tile if a hypercube of valid samples is entirely outside the hyperplane;andpick a corner of the hypercube farthest from the negative direction of the hyperplane normal.
- 22An apparatus comprising:a graphics processor to generate an affine hyperplane approximation for a tile to cull samples, cull a tile if a hypercube of valid samples is entirely outside the hyperplane, pick a corner of the hypercube farthest from the negative direction of the hyperplane normal;anda storage coupled to said processor.
Independent claims3
47 paragraphs in 3 sections, as filed
BACKGROUND
This relates to graphics processing and particularly to the graphical depiction of motion blur and depth of field.
Motion blur is an important visual effect that reduces temporal aliasing and makes moving content appear smoother. However, efficient rendering of motion blur in real-time three-dimensional graphics is nontrivial. In stochastic rasterization of motion blur, moving geometric primitives are sampled in both space and time, using a large set of samples to obtain high-quality motion-blurred images with low noise levels. For each of the sample positions, an inside test is executed to determine whether the moving primitive covers the sample. This overlap test in x, y and t space is generally more expensive than an inside test in traditional rasterizers.
Depth of field is an effect stemming from the finite aperture of a real camera, and makes out-of-focus objects appear blurry. In stochastic rasterization of depth of field, geometric primitives are sampled in both space and over the camera lens.
A stochastic rasterizer that supports simultaneous motion blur and depth of field executes visibility tests for each triangle in a five dimensional (5D) domain (x,y,u,v,t). This domain consists of spatial positions (x,y), lens coordinates (u,v) and time t. These visibility tests are computationally much more expensive than a single visibility test in standard 2D rasterization. Additionally, for each triangle, many (e.g. 16-64) such tests are executed per pixel to obtain images with low noise levels.
BRIEF DESCRIPTION OF THE DRAWINGS
Some embodiments are described with respect to the following figures:
<figref idref="DRAWINGS">FIG. 1</figref> is a flow chart for one embodiment; and
<figref idref="DRAWINGS">FIG. 2</figref> is a schematic depiction for one embodiment.
DETAILED DESCRIPTION
A five-dimensional rasterization technique includes a tile test based on triangle edges. With this test, many visibility tests can be avoided, increasing the rasterization efficiency with some embodiments. A compact formulation of five-dimensional edge equations is used to derive a conservative triangle edge versus tile test in five dimensions.
A 5D edge equation from a triangle with linear vertex motion and depth of field can be written as: <br /><i>e</i>(<i>x,y,u,v,t</i>)=(<i>n</i>(<i>t</i>)+<i>m</i>(<i>t</i>)×(<i>u,k u,</i>0))·(<i>x,y,</i>1) (1) (1)<br /> where n(t) and m(t) are quadratic vectors in t and all computations are performed in 2D homogeneous (2DH) coordinates, with a vertex defined as p=(p<sub>x</sub>,p<sub>y</sub>,p<sub>w</sub>). The derivation follows below.
We assume linear vertex motion in world space, so that a vertex moves according to p(t)=(1−t)q+t r. Depth of field is a shear in clip-space, parameterized on the lens coordinates (u,v), and can be seen as applying the vector c(t)(u,k v,0) to the vertex position. The function c(t)=(1−t)c<sup>0</sup>+t c<sup>1 </sup>is the clip space circle of confusion for vertex p, and k>0 is a scalar coefficient correcting for non-square aspect ratios. Note that c(t) is signed circle of confusion and may be negative.
The clip space vertex position with defocus and motion blur is then given by: <br /><i>p</i>′(<i>t</i>)=<i>p</i>(<i>t</i>)+<i>c</i>(<i>t</i>)(<i>u,k v,</i>0).
The normal of a 5D edge equation in 2DH is defined by:
<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mrow><mrow><mrow><msubsup><mi>p</mi><mn>0</mn><mi>′</mi></msubsup><mo></mo><mrow><mo>(</mo><mrow><mi>u</mi><mo>,</mo><mi>v</mi><mo>,</mo><mi>t</mi></mrow><mo>)</mo></mrow></mrow><mo>×</mo><mrow><msubsup><mi>p</mi><mn>1</mn><mi>′</mi></msubsup><mo></mo><mrow><mo>(</mo><mrow><mi>u</mi><mo>,</mo><mi>v</mi><mo>,</mo><mi>t</mi></mrow><mo>)</mo></mrow></mrow></mrow><mo>=</mo><mrow><mrow><mrow><mo>(</mo><mrow><mrow><msub><mi>p</mi><mn>0</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>+</mo><mrow><mrow><msub><mi>c</mi><mn>0</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo></mo><mrow><mo>(</mo><mrow><mi>u</mi><mo>,</mo><mi>k</mi><mo>,</mo><mi>v</mi><mo>,</mo><mn>0</mn></mrow><mo>)</mo></mrow></mrow></mrow><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mrow><mrow><msub><mi>p</mi><mn>1</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>+</mo><mrow><msub><mi>c</mi><mn>1</mn></msub><mo></mo><mrow><mo>(</mo><mrow><mi>u</mi><mo>,</mo><mi>kv</mi><mo>,</mo><mn>0</mn></mrow><mo>)</mo></mrow></mrow></mrow><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mrow><mrow><msub><mi>p</mi><mn>0</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>×</mo><mrow><msub><mi>p</mi><mn>1</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mrow><mo>+</mo><mrow><mrow><mo>(</mo><mrow><mrow><mrow><msub><mi>c</mi><mn>1</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo></mo><mrow><msub><mi>p</mi><mn>0</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mrow><mo>-</mo><mrow><mrow><msub><mi>c</mi><mn>0</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo></mo><mrow><msub><mi>p</mi><mn>1</mn></msub><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mrow></mrow><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mrow><mi>u</mi><mo>,</mo><mi>kv</mi><mo>,</mo><mn>0</mn></mrow><mo>)</mo></mrow></mrow></mrow></mrow></mrow></math></maths>
The first term p<sub>0</sub>(t)×p<sub>1</sub>(t) can be expressed as: <br /><i>p</i><sub>0</sub>(<i>t</i>)×<i>p</i><sub>1</sub>(<i>t</i>)=(<i>at</i><sup>2</sup><i>+bt+c</i>)=<i>n</i>(<i>t</i>)<br /> This is the time-dependent edge equation from motion blur rasterization.
If we introduce m(t)=c<sub>1</sub>(t)p<sub>0</sub>(t)−c<sub>0</sub>(t)p<sub>1</sub>(t) which is quadratic in t, we can write the edge equation as e(x,y,u,v,t)=(n(t)+m(t)×(u,k v,0))·(x,y,1). For the purpose of this description, we define e>0 as outside the edge, i.e., samples that can be culled.
We search for a lower bound of the 5D edge equation, expressed as an affine hyperplane P: a·x=0 in xyuvt space, where x=(1,x,y,u,v,t), valid within a screen space tile R: [x<sub>min</sub>,x<sub>max</sub>]×[y<sub>min</sub>,y<sub>max</sub>], so that e(x,y,u,v,t)>a·x for all samples within the screen space tile. The tile R can be a smaller axis-aligned region in screen space, or even the entire bounding box of the moving and defocused triangle.
We recompute the hyperplane approximation for each tile, and use the plane to cull samples within the valid xyuvt domain. A tile can be culled if the hypercube of valid samples is entirely outside the hyperplane. More precisely, pick the corner c of the hypercube farthest in the negative direction of the hyperplane normal. If a·c>0, the tile can be safely culled. Testing a point in xyuvt space against a hyperplane amounts to five multiply-add operations (which can be executed in fixed-point arithmetic). This can be done both at the tile and sample level.
In one embodiment, the algorithm hierarchically culls samples in screen space tiles R of different size. The computations and result from a coarse level in the hierarchy may be reused as a starting point for the computations performed at tiles at finer levels.
In one embodiment, to avoid computing o=a<sub>const</sub>+a<sub>x</sub>c<sub>x</sub>+a<sub>y</sub>c<sub>y </sub>per sample, o can be computed conservatively per tile and may be reused at the sample level. Testing an individual uvt sample against the hyperplane then cost three multiply-add operations (which can be executed in fixed-point arithmetic), but gives lower culling rates compared to evaluating the full hyperplane.
We can also refine the bounds for each component x,y,u,v,t using the hyperplane. In general:
<maths id="MATH-US-00002" num="00002"><math overflow="scroll"><mrow><mrow><mrow><mrow><mi>a</mi><mo>·</mo><mi>x</mi></mrow><mo>></mo><mn>0</mn></mrow><mo>⇔</mo><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>></mo><mrow><mrow><mo>-</mo><mfrac><mn>1</mn><msub><mi>a</mi><mi>k</mi></msub></mfrac></mrow><mo></mo><mrow><munder><mo>∑</mo><mrow><mi>i</mi><mo>≠</mo><mi>k</mi></mrow></munder><mo></mo><mrow><msub><mi>a</mi><mi>i</mi></msub><mo></mo><msub><mi>x</mi><mi>i</mi></msub></mrow></mrow></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><br /> which gives bounds for each coordinate axis. For example, if we want to refine the temporal bounds, we use the hypercube corner c from above, and we get an inequality on the form
<maths id="MATH-US-00003" num="00003"><math overflow="scroll"><mrow><mi>t</mi><mo>></mo><mrow><mrow><mo>-</mo><mfrac><mn>1</mn><msub><mi>a</mi><mi>t</mi></msub></mfrac></mrow><mo></mo><mrow><mo>(</mo><mrow><msub><mi>a</mi><mi>const</mi></msub><mo>+</mo><mrow><msub><mi>a</mi><mi>x</mi></msub><mo></mo><msub><mi>c</mi><mi>x</mi></msub></mrow><mo>+</mo><mrow><msub><mi>a</mi><mi>y</mi></msub><mo></mo><msub><mi>c</mi><mi>y</mi></msub></mrow><mo>+</mo><mrow><msub><mi>a</mi><mi>u</mi></msub><mo></mo><msub><mi>c</mi><mi>u</mi></msub></mrow><mo>+</mo><mrow><msub><mi>a</mi><mi>v</mi></msub><mo></mo><msub><mi>c</mi><mi>v</mi></msub></mrow></mrow><mo>)</mo></mrow></mrow></mrow></math></maths><br /> for each triangle edge. The sum to the right can be reused from the trivial reject test above, and the additional cost is a division per edge per tile.
To obtain the hyperplane approximation, in one embodiment we compute a lower linear bound of the n(t)·(x,y,1) and (m(t)×(u,kv,0))·(x,y,1) terms individually. These bounds are recomputed per screen space tile R. The complete approximation results in a hyperplane in xyuvt space. All samples outside this plane can be rejected. The plane is a valid culling plane for all samples within a screen space tile.
The first term of the 5D equation: n(t)·(x,y,1) is linearized using a known technique from motion blur rasterization [Munkberg et al., “Hierarchical Stochastic Motion Blur Rasterization”, HPG 2011] such that <br /><i>e</i><sub>n</sub><i>=n</i>(<i>t</i>)·(<i>x,y,</i>1)><i>o</i>·(<i>x,y,</i>1)+<i>yt.</i> (2)
To bound e<sub>m</sub>=(m(t)×(u,kv,0)<sup>T</sup>)·(x,y,1)=d·(u,kv,0), we first bound each component of m(t) and express d=(x,y,1)×m(t) as a vector of intervals {circumflex over (d)}=({circumflex over (d)}<sub>x</sub>,{circumflex over (d)}<sub>y</sub>·). A lower bound of e<sub>m </sub>can be written as <br /><i>e</i><sub>m</sub>>min(<i>{circumflex over (d)}</i><sub>x</sub><i>u+{circumflex over (d)}</i><sub>y</sub><i>k v</i>)>α<i>u+βv+ζ,</i> (3)<br /> for all (u, v) within the valid region of the lens. This is a lower bound for e<sub>m</sub>, and is conservative for all times and sample positions within the tile R.
To derive the α, β, ζ coefficients, we evaluate min({circumflex over (d)}<sub>x</sub>u+{circumflex over (d)}<sub>y</sub>kv) at the four corners of the lens and choose coefficients α,β, ζ such that Equation 3 holds. In one embodiment, a coarse set of coefficients are given by α=avg({circumflex over (d)}<sub>x</sub>),β=k avg({circumflex over (d)}<sub>y</sub>) and ζ=0.5(|{circumflex over (d)}<sub>x</sub>|+k|{circumflex over (d)}<sub>y</sub>|), where avg({circumflex over (x)})=0.5(<o ostyle="single">x</o>+<u style="single">x</u>) and |{circumflex over (x)}|=<o ostyle="single">x</o>−<u style="single">x</u>. Other implementations are possible, exploiting the fact that the u and v are in the range [−1,1].
Intuitively, for a triangle in focus, |m(t)| is small, and the edge function is only slightly perturbed when moving over the lens.
In one embodiment m(t) may be bounded by expressing it as a quadratic Bezier function: <br /><i>m</i>(<i>t</i>)=(1−<i>t</i>)<sup>2</sup><i>b</i><sub>0</sub>+2(1<i>−t</i>)<i>tb</i><sub>1</sub><i>+t</i><sup>2</sup><i>b</i><sub>2</sub>,<br /> where:
<maths id="MATH-US-00004" num="00004"><math overflow="scroll"><mrow><mrow><msub><mi>b</mi><mn>0</mn></msub><mo>=</mo><mrow><mrow><msubsup><mi>c</mi><mn>1</mn><mn>0</mn></msubsup><mo></mo><msub><mi>q</mi><mn>0</mn></msub></mrow><mo>-</mo><mrow><msubsup><mi>c</mi><mn>0</mn><mn>0</mn></msubsup><mo></mo><msub><mi>q</mi><mn>1</mn></msub></mrow></mrow></mrow><mo>,</mo><mstyle><mtext></mtext></mstyle><mo></mo><mrow><msub><mi>b</mi><mn>1</mn></msub><mo>=</mo><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><mo></mo><mrow><mo>(</mo><mrow><mrow><msubsup><mi>c</mi><mn>1</mn><mn>0</mn></msubsup><mo></mo><msub><mi>r</mi><mn>0</mn></msub></mrow><mo>+</mo><mrow><msubsup><mi>c</mi><mn>1</mn><mn>1</mn></msubsup><mo></mo><msub><mi>q</mi><mn>0</mn></msub></mrow><mo>-</mo><mrow><msubsup><mi>c</mi><mn>0</mn><mn>0</mn></msubsup><mo></mo><msub><mi>r</mi><mn>1</mn></msub></mrow><mo>-</mo><mrow><msubsup><mi>c</mi><mn>0</mn><mn>1</mn></msubsup><mo></mo><msub><mi>q</mi><mn>1</mn></msub></mrow></mrow><mo>)</mo></mrow></mrow></mrow><mo>,</mo><mstyle><mtext></mtext></mstyle><mo></mo><mrow><msub><mi>b</mi><mn>2</mn></msub><mo>=</mo><mrow><mrow><msubsup><mi>c</mi><mn>1</mn><mn>1</mn></msubsup><mo></mo><msub><mi>r</mi><mn>0</mn></msub></mrow><mo>-</mo><mrow><msubsup><mi>c</mi><mn>0</mn><mn>1</mn></msubsup><mo></mo><mrow><msub><mi>r</mi><mn>1</mn></msub><mo>.</mo></mrow></mrow></mrow></mrow></mrow></math></maths><br /> The convex hull property lets us bound m(t) by simply computing an axis aligned bounding box (AABB) containing b<sub>0</sub>,b<sub>1 </sub>and b<sub>2</sub>. This bounding computation can be done once per triangle edge in the triangle setup. If we have bounds on t, the Bernstein expansion can be reparameterized (using de Casteljau subdivisions) for tighter bounds.
Combining Equation 2 and 3, we have shown that for (x,y)εR, (u,v)εΩ and tε[0,1], e(x,y,u,v,t)=e<sub>n</sub>+e<sub>m</sub>>a·x, where x=(1,x,y,u,v,t) and a=(ζ+o<sub>z</sub>,o<sub>x</sub>,o<sub>y</sub>,α,β,γ).
Culling using the hyperplanes can be selectively enabled by estimating the culling potential for each edge.
We can derive a more accurate approximation for the temporal bounds compared to first finding a hyperplane and then intersecting the hyperplane against the xyuvt cube. The new approximation expresses the edge equation as a quadratic scalar function in t, using bounds for u,v,x and y.
The second term of the 5D edge equation can be written as: <br />φ(<i>u,v,t</i>)=<i>m</i>(<i>t</i>)·((<i>u,kv,</i>0)×(<i>x,y,</i>1)).<br /> For a certain screen space tile, we define the interval vector <br /><i>ŝ</i>=(<i>û,k{circumflex over (v)},</i>0)×(<i>{circumflex over (x)},ŷ,</i>1)=(<i>k{circumflex over (v)},−û,ûŷ−k{circumflex over (v)}{circumflex over (x)}</i>),<br /> where {circumflex over (x)} and ŷ denote the tile extents for a screen space tile R and (û,{circumflex over (v)})<u style="single">⊂</u>[−1,1]×[−1,1] represent the valid lens region. Furthermore, let m(t)=ft<sup>2</sup>+gt+h. Now introduce:
<maths id="MATH-US-00005" num="00005"><math overflow="scroll"><mrow><mrow><mover><mi>ϕ</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mrow><mrow><mrow><mo>(</mo><mrow><mi>f</mi><mo>·</mo><mover><mi>s</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mo></mo><msup><mi>t</mi><mn>2</mn></msup></mrow><mo>+</mo><mrow><mrow><mo>(</mo><mrow><mi>g</mi><mo>·</mo><mover><mi>s</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mo></mo><mi>t</mi></mrow><mo>+</mo><mrow><mo>(</mo><mrow><mi>h</mi><mo>·</mo><mover><mi>s</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mrow><msub><mover><mi>α</mi><mo>^</mo></mover><mi>m</mi></msub><mo></mo><msup><mi>t</mi><mn>2</mn></msup></mrow><mo>+</mo><mrow><msub><mover><mi>β</mi><mo>^</mo></mover><mi>m</mi></msub><mo></mo><mi>t</mi></mrow><mo>+</mo><mrow><msub><mover><mi>γ</mi><mo>^</mo></mover><mi>m</mi></msub><mo>.</mo></mrow></mrow></mrow></mrow></math></maths><br /> Note that {circumflex over (φ)}(t) is a scalar function in t, where each of the coefficients is an interval that depends on the screen space extents, the valid lens region, and the coefficients for the m(t) vector.
Similarly, we can derive a scalar function bounding n(t)·(x,y,1) over the screen space tile: <br />φ(<i>u,v,t</i>)=<i>n</i>(<i>t</i>)·(<i>x,y,</i>1)<br />{circumflex over (φ)}(<i>t</i>)={circumflex over (α)}<sub>n</sub><i>t</i><sup>2</sup>+{circumflex over (β)}<sub>n</sub><i>t+{circumflex over (γ)}</i><sub>n</sub>.<br /> We add the bounds {circumflex over (φ)}(t) and {circumflex over (φ)}(t) together so that we express the entire edge equation as a quadratic function in t as: <br />{circumflex over (ψ)}(<i>t</i>)={circumflex over (φ)}(<i>t</i>)+{circumflex over (φ)}(<i>t</i>).<br /> We search for solutions to ψ(u,v,t)=0, and follow the same approach as in previous work for tile overlap test using edge equations for motion blur. We derive a lower linear bound <u style="single">ψ</u>(t)=at+b, that is conservative for all (u,v)ε[−1,1]×[−1,1] and for all (x,y) within the active screen space tile. Using this lower bounds, we solve for t, where <u style="single">ψ</u>(t)=0.
Note that f, g and h can be computed in the triangle setup, and the added cost per-tile is to derive ŝ, <u style="single">f·ŝ</u>, <u style="single">g·ŝ</u> and <u style="single">f·ŝ</u> per tile. The computation of <u style="single">ψ</u>(t)=<u style="single">φ</u>(t)+<u style="single">φ</u>(t) is a few added instructions, as {circumflex over (φ)}(t) and the lower linear bound are already part of the hyperplane bounding setup.
This alternative approximation may be preferable in case of large motion blur and only slight depth of field. In cases where depth of field is the dominating effect, the first test is more efficient.
In contrast to previous methods, our test extracts a correlation between u, v and t by linearizing the 5D edge equation. Instead of extracting bounds on the form of intervals in each of u, v and t individually (which gives an axis-aligned box in uvt space), our bounds are formulated as an affine hyperplane per triangle edge in the general case.
In the case of modest motion and defocus, the linearization is very efficient, and removes a large set of potential sampling points.
Referring to <figref idref="DRAWINGS">FIG. 1</figref>, a sequence for sample culling <b>10</b>, may be implemented in software, firmware and/or hardware. In software and firmware embodiments it may be implemented by computer executed instructions stored in a non-transitory computer readable medium such as a semiconductor, magnetic or optical storage. For example the sequence may be integral with a graphics processor or may be stored in a memory associated with the graphics processor such as a system memory to mention two examples.
The sequence <b>10</b>, according to one embodiment, begins by searching for a lower bound of the five dimensional edge equation, valid within a screen region, as indicated in block <b>12</b>. Then a plane in xyuvt is derived as indicated in block <b>14</b>. Next, samples on one side of the hyperplane are culled as indicated in block <b>16</b>. A complete or full visibility test is only done for samples that are not culled, as indicated in block <b>18</b>.
The computer system <b>130</b>, shown in <figref idref="DRAWINGS">FIG. 2</figref>, may include a hard drive <b>134</b> and a removable medium <b>136</b>, coupled by a bus <b>104</b> to a chipset core logic <b>110</b>. A keyboard and mouse <b>120</b>, or other conventional components, may be coupled to the chipset core logic via bus <b>108</b>. The core logic may couple to the graphics processor <b>112</b>, via a bus <b>105</b>, and the main or host processor <b>100</b> in one embodiment. The graphics processor <b>112</b> may also be coupled by a bus <b>106</b> to a frame buffer <b>114</b>. The frame buffer <b>114</b> may be coupled by a bus <b>107</b> to a display screen <b>118</b>. In one embodiment, a graphics processor <b>112</b> may be a multi-threaded, multi-core parallel processor using single instruction multiple data (SIMD) architecture.
In the case of a software implementation, the pertinent code may be stored in any suitable semiconductor, magnetic, or optical memory, including the main memory <b>132</b> or any available memory within the graphics processor. Thus, in one embodiment, the code to perform the sequences of <figref idref="DRAWINGS">FIG. 1</figref> may be stored in a non-transitory machine or computer readable medium, such as the memory <b>132</b> or the graphics processor <b>112</b>, and may be executed by the processor <b>100</b> or the graphics processor <b>112</b> in one embodiment.
<figref idref="DRAWINGS">FIG. 1</figref> is a flow chart. In some embodiments, the sequences depicted in this flow chart may be implemented in hardware, software, or firmware. In a software embodiment, a non-transitory computer readable medium, such as a semiconductor memory, a magnetic memory, or an optical memory may be used to store instructions and may be executed by a processor to implement the sequences shown in <figref idref="DRAWINGS">FIG. 1</figref>.
The graphics processing techniques described herein may be implemented in various hardware architectures. For example, graphics functionality may be integrated within a chipset. Alternatively, a discrete graphics processor may be used. As still another embodiment, the graphics functions may be implemented by a general purpose processor, including a multicore processor.
References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Contents3
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both waysCites: the store holds 21 of 22
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN1695151A | Cites | China | Applicant |
| US2004179600A1 | Cites | United States of America | Applicant |
| JP2007221581A | Cites | Japan | Applicant |
| US2007239779A1 | Cites | United States of America | Applicant |
| TW200803521A | Cites | Taiwan Province of China | Applicant |
| US2009322881A1 | Cites | United States of America | Applicant |
| JP2010307809A | Cites | Japan | Applicant |
| TW201120812A | Cites | Taiwan Province of China | Applicant |
| US5914753A | Cites | United States of America | Applicant |
| US7917342B2 | Cites | United States of America | Applicant |
| JPH10307809A | Cites | Japan | Applicant |
| US20040179600A1 | Cites | United States of America | Applicant |
| US20070239779A1 | Cites | United States of America | Applicant |
| US20090322881A1 | Cites | United States of America | Applicant |
| CN1695151 | Cites | China | Applicant |
| JP10307809 | Cites | Japan | Applicant |
| JP2007221581 | Cites | Japan | Applicant |
| JP2010307809 | Cites | Japan | Applicant |
| TW200803521 | Cites | Taiwan Province of China | Applicant |
| TW201120812 | Cites | Taiwan Province of China | Applicant |
| TW201120812A1 | Cites | Taiwan Province of China | Applicant |
9 members in 4 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 2011063837 | United States of America | W | |
| PCTUS2011063837 | – | – | – |
| WO2011US63837 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| WO2013085514A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW201331887A | Taiwan Province of China | A | |
| US2013265301A1 | United States of America | A1 | |
| CN103999443A | China | A | |
| TWI490816B | Taiwan Province of China | B | |
| TW201531999A | Taiwan Province of China | A | |
| US9569878B2This record | United States of America | B2 | |
| CN103999443B | China | B | |
| TWI633519B | Taiwan Province of China | B |
102 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections and 1 RCE.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Dispatch to FDCD1935 | D1935 | |
| Reasons for AllowanceEX.R | EX.R | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail PUB Notice of non-compliant IDSMM327-B | MM327-B | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| PUB Notice of non-compliant IDSM327-B | M327-B | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail PUB Notice of non-compliant IDSMM327-B | MM327-B | |
| PUB Notice of non-compliant IDSM327-B | M327-B | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reasons for AllowanceEX.R | EX.R | |
| After Final Consideration Program Additional Consideration and/or updated searchAFAC | AFAC | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Incoming Letter Pertaining to the DrawingsLTDR | LTDR | |
| Response after Final ActionA.NE | A.NE | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice of DO/EO Acceptance MailedM903 | M903 | |
| 371 Completion Date371COMP | 371COMP | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Cleared by OIPE CSRL194 | L194 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 09569878
- Publication, DOCDB
- 9569878
- Publication, EPODOC
- US9569878
- Application
- 13993729
- Application, DOCDB
- 201113993729
- Application, EPODOC
- US201113993729
Titles
- English
- Sample culling based on linearized 5D edge equations
Classification
- CPC, 3
- G06T15/00
- G06T15/005
- G06T15/40
- IPC, 2
- G06T15 00
- G06T15 40
- USPC, 1
- 001001000