CN103003839B - 反锯齿样本的拆分存储 - Google Patents
反锯齿样本的拆分存储 Download PDFInfo
- Publication number
- CN103003839B CN103003839B CN201180035304.6A CN201180035304A CN103003839B CN 103003839 B CN103003839 B CN 103003839B CN 201180035304 A CN201180035304 A CN 201180035304A CN 103003839 B CN103003839 B CN 103003839B
- Authority
- CN
- China
- Prior art keywords
- sample
- group
- memory
- pixel
- reverse sawtooth
- 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
- 238000003860 storage Methods 0.000 title claims description 64
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000009877 rendering Methods 0.000 claims abstract description 27
- 238000011002 quantification Methods 0.000 claims description 11
- 238000000151 deposition Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 abstract 1
- 238000005070 sampling Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000013507 mapping Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000012805 post-processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005194 fractionation Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004040 coloring Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
Abstract
本发明的实施例涉及提高反锯齿图像渲染的性能。一个实施例是渲染来自反锯齿图像的像素的方法。所述方法包括:将来自像素的多个反锯齿样本中的第一组样本和第二组样本分别存储在第一存储器和第二存储器中;以及渲染来自仅第一组或者第一组和第二组中的一个的确定数量的所述样本。还公开了对应的系统和计算机程序产品的实施例。
Description
技术领域
本发明的实施例涉及反锯齿(anti-aliased)图像的显示。
背景技术
因为现实世界的平滑边缘不能精确地显示于监控器中,所以会发生显示图像中的诸如不平坦边缘之类的边缘效应。监控器显示像素,像素是屏幕上的离散的点。边缘效应可能在视觉上不吸引人。因此,反锯齿(AA)技术常用于减少这种边缘效应。超采样和多采样是两种反锯齿技术。在超采样时,以较高的分辨率来渲染图像,并且对于每个像素存储多个样本。在多采样时,在多个位置处对原始像素进行采样,并且对于每个像素存储样本。当渲染待显示图像时,能够通过取对于该像素存储的样本的平均值来确定实际的像素值。在4×反锯齿图像,即4×AA图像中,对于反锯齿图像的每个像素取4个样本。样本可以包括颜色值、深度值、和/或与显示图像或场景相关的其它属性。
经渲染的图像能够存储在计算机系统的图形处理器单元(GPU)存储器、系统存储器或其它存储器中。当使能反锯齿时,图像的存储器占板面积(footprint)显著增加。例如,当正在使用4×AA时,通常,每个像素需要四个样本,从而使得存储图像所需的存储器显著增加。所需存储器占板面积的增加会由于可伸缩性限制、带宽限制和渲染帧的延迟而导致性能降级。例如,除了大的存储器占板面积之外,存取存储器中同一图像的多个样本会导致存储器带宽拥塞。
于是,所需要的是当使用反锯齿时提高存储器带宽的利用率的方法和系统。
发明内容
本发明的实施例涉及提高反锯齿图像渲染的性能。一个实施例是渲染来自反锯齿图像的像素的方法。所述方法包括:将来自所述像素的多个反锯齿样本的第一组和第二组分别存储在第一存储器和第二存储器中;以及渲染来自所述第一组或者所述第一组和所述第二组的确定数量的所述样本。
另一实施例是渲染来自反锯齿图像的像素的系统。所述系统包括:至少一个处理器;第一存储器和第二存储器,其与所述处理器耦合;以及拆分式反锯齿样本写入器。所述拆分式反锯齿样本写入器被配置为将像素的多个反锯齿样本的第一组和第二组分别存储在第一存储器和第二存储器中。所述系统还可以包括拆分式反锯齿样本读取器。反锯齿样本读取器可被配置为渲染来自仅所述第一组或者所述第一组和第二组中的一个的确定数量的所述样本。
再一实施例是存储指令的计算机可读介质,其中当被执行时所述指令适于通过渲染方法使用至少一个处理器渲染来自反锯齿图像的像素。所述渲染方法包括:将像素的多个反锯齿样本的第一组和第二组分别存储在第一存储器和第二存储器中;以及渲染来自仅所述第一组或者所述第一组和第二组中的一个的确定数量的所述样本。
下面将参照附图详细地说明本发明的另外的实施例、特征和优势,以及本发明的各个实施例的结构和操作。
附图说明
合并于本文中并构成说明书的一部分的附图图示出了本发明的实施例,并且连同说明书一起进一步用于解释本发明的原理并使相关领域的技术人员能够实现并使用本发明的实施例。
图1示出了根据本发明的实施例的图形计算环境的框图。
图2示出了根据本发明的实施例的将多采样的像素样本分配到存储器的示例。
图3是图示出根据本发明的实施例的反锯齿图像渲染的流程图。
将参照附图对本发明进行说明。一般地,在附图中,部件首次出现的附图通常由相应标记中最左侧的数字表示。
具体实施方式
应当理解的是,发明详述部分,而不是发明内容和摘要部分,旨在用于解释权利要求。发明内容和摘要部分可阐述发明人所构思的本发明的示例性实施例的一个或多个而不是全部的示例性实施例,并且因此不旨在以任何方式限制本发明及随附的权利要求。
执行反锯齿处理以减少图像显示中的边缘效应。图像帧的反锯齿处理,诸如通过超采样或多采样,对于图像的每个像素产生多个样本。在超采样中,以高的分辨率来渲染原始图像,并且将来自高分辨率图像的多个样本组合(或平均)以便以期望的分辨率渲染图像。在多采样中,在多个位置处对像素进行采样。例如,在4×AA多采样的图像中,对于每个像素取4个样本。对于每个像素存储这些多个样本会在存储反锯齿图像所需的存储器占板面积和由于在图像渲染期间对多个样本的取回所产生的附加存储器传输量这两方面变得昂贵。
此外,在大多数像素的情况下,实际上在渲染时仅使用几个样本。本发明的实施例涉及基于图像以高效渲染图像的方式组织反锯齿样本。根据实施例,像素的反锯齿样本存储在不同的存储器中。不同的存储器可具有不同的存储和存取特性。可以基于例如在渲染图像时实际将使用样本的可能性来选择待存储在不同存储器中的相应一个存储器中的样本。通过仅将最多使用的样本存储在本地存储器中,诸如GPU的图形存储器中,更多像素的样本能够容纳在图形存储器内,从而导致执行速度的整体提高和存储器传输量的减少,因为例如GPU能够存取本地图形存储器中渲染所需的全部图像数据。
在下面的说明中,主要针对多采样来描述本发明的实施例。然而,本领域技术人员将认识到还能够使用AA的其它方法。
拆分式存储反锯齿像素样本的系统
图1示出了根据本发明的实施例的计算环境。例如,计算环境100包括与GPU104耦合的中央处理单元(CPU)102。相关领域技术人员基于本文的描述将理解到,本发明的实施例可以包括一个或多个所示的GPU。GPU104可与诸如存储器、显示器等另外的部件耦合。GPU104接收来自CPU102的图形相关任务,诸如图形处理(例如,渲染)或显示任务。本领域普通技术人员将理解的是,如图所示的,GPU104可以为离散部件(即,分离的装置)、集成部件(例如,集成到诸如单集成电路(IC)、容纳多个IC的单个封装件之类的单个装置中,集成到其它IC(例如,CPU或北桥(Northbridge)中)并且可以不相同(例如,具有一些不同的能力,诸如例如性能)。
GPU104可以包括命令处理器112、存储器控制器114、本地图形存储器116和着色器核(shader core)118。命令处理器112控制GPU104上的命令执行。例如,命令处理器112能够控制和/或协调将要在GPU104中处理的来自CPU102的命令和数据的接收。命令处理器112还能够控制和/或协调图形存储器116中存储器的分配(通常是通过存储器控制器114)。存储器控制器114能够控制为了读取和写入数据而对图形存储器116的存取。在一些实施例中,存储器控制器114还能够在系统存储器108和图形存储器116之间进行仲裁,以使能够从任一存储器获得处理所需的数据。存储器控制器114、着色器核118和/或命令处理器112能够访问对像素样本存储位置保持跟踪的存储器映像134。一般地,图形存储器116为快速随机存取存储器,诸如例如嵌入式DRAM(EDRAM)。一般而言,当与系统存储器进行比较时,图形存储器116使能对GPU进行快速存取。着色器核118包括执行各种处理任务(诸如图形处理线程)的处理单元。例如,着色器核118中的处理单元可以包括多个单指令多数据(SIMD)处理单元。在着色器核118上执行的图形处理线程可以包括着色器程序(有时也简称为“着色器”),诸如顶点着色器、几何形状着色器和像素着色器。诸如渲染线程等其它图形处理线程还能够在着色器核118上执行。将要在着色器核118中执行的任务可由例如命令处理器112来分配。
根据实施例,GPU104还可以包括其它模块,诸如渲染操作块(ROP)120、纹理映像程序122、拆分式AA样本写入器124和拆分式AA样本读取器126。ROP120、纹理映像程序122、拆分式AA样本写入器124和拆分式AA样本读取器126的逻辑可利用硬件、固件、软件或它们的组合来实现。ROP120包括为存储器和/或其它位置提供屏幕的逻辑。例如,ROP120可以包括从像素处理着色器的输出将图形提供给存储器的逻辑。根据实施例,ROP120可以调用拆分式AA样本写入器124以将像素的反锯齿样本写入到存储器中。
纹理映像程序122包括使用存储在存储器中的多采样的样本来执行图形的纹理映像和/或渲染的逻辑。例如,纹理映像程序122可以从存储器中读取多采样的样本,从而对图形对象进行纹理映像,以便描绘各种采光效果。与在非反锯齿实例的情况下对于每个像素不得不仅读取单个样本相比,在反锯齿样本的情况下从存储器读取四个单独的样本会导致额外的存储器传输量。此外,许多应用涉及多遍渲染和纹理映像,从而导致存储器传输量增加。根据实施例,纹理映像程序122能够调用拆分式AA样本读取器124以读取存储在单独的存储器中的多采样的样本。
拆分式AA样本写入器124包括在将每个像素的反锯齿样本组存储在存储器中之前对其进行拆分的逻辑。样本可存储在系统存储器、图形存储器和/或另外的存储器中。根据各种存储方案,样本可存储在不同的存储器中。将样本存储在图形存储器中使得当进行渲染和/或纹理映像时能够更快地存取这些样本。图2图示出应用于一组反锯齿样本的存储器之间的样本的示例性拆分。下面将参照图2和图3进一步描述拆分的样本在多个存储器之间的存储。
拆分式AA样本读取器126包括读取在多个存储器之间分布的反锯齿样本。根据实施例,拆分式AA样本读取器126被配置为将对于一个或多个像素样本的请求取为指定像素标识符以及可选地样本标识符的输入,并且返回对应于该一个或多个样本的值。拆分式AA样本读取器126可被配置为:通过确定待取回以进行渲染的样本的数量和位置来读取样本。在接收到对于像素样本的请求时,拆分式AA样本读取器126能够确定对于请求像素待读取样本的数量并且判定是否从图形存储器和/或系统存储器取回样本。在一些实施例中,要取回多少样本的判定能够逐像素地进行。在一些实施例中,逐帧或者以更高的粒度级别来进行要取回多少样本的判定。AA样本的读取会受到据以将样本存储在存储器中的存储方案的影响。下文将针对图2和图3进一步描述AA样本的读取。
计算环境100还包括系统存储器108。系统存储器108可用于保持在GPU104和CPU102之间传递的命令和数据。在一些实施例中,系统存储器还可以包括样本存储器134。在使用图形操作处理数据之后,经处理的数据可通过GPU104写回到系统存储器。例如,在一些实施例中,来自图形处理器116的经处理数据可在用于进一步处理或在诸如屏幕110的屏幕上显示之前写到系统存储器108。在一些实施例中,在GPU104中处理的帧数据通过显示引擎109写到屏幕110上。显示引擎109能够以硬件和/或软件或者它们的组合来实现,并且可以包括基于屏幕110的特性来优化数据显示的功能。在另一实施例中,显示引擎109能够接收直接来自GPU存储器116和/或GPU存储器122的经处理的显示数据。
计算系统100的各个装置由通信基础结构106来耦合。例如,通信基础结构106可以包括一个或多个通信总线,其包含快速外围部件互连(PCI-E)。通信基础结构106还可以包括例如以太网(Ethernet)、火线(Firewire)、或其它互连装置。
在上文的描述中,GPU104已被描述为包含所选的部件和功能。然而,本领域技术人员将理解的是,一个或两个GPU104可以包括其它部件,诸如但不限于基元组件、定序器、着色器出口存储器、寄存器等等。
图2示出了在两个存储器之间分配样本的示例。根据实施例,像素的反锯齿样本能够存储在GPU的图形存储器116中以及系统存储器108中。对于每个像素,要存储在每个存储器中的样本组能够基于各种标准来确定,诸如例如,在渲染时实际使用样本的可能性和/或在渲染中极可能使用样本的频繁程度。根据实施例,最有可能取回以用于渲染的一个或多个样本可以存储在更快的存储器中,诸如GPU存储器116,并且其它样本可以存储在更慢的存储器中,诸如系统存储器108。图示的示例示出了像素p的四个样本,样本0和1(即(p,0)和(p,1))存储在GPU存储器116中,而样本2和3(即(p,2)和(p,3))存储在系统存储器中。
分配到每个存储器的样本可根据任何方案进行布置,诸如例如提高存取速度和/或存储效率。根据实施例,相应像素的第0个样本可以存储在邻近的存储器块中,随后是相应块的第1个样本,等等。包括所有像素的具体样本位置的样本的整个表面可以存储在邻近的存储器区域中。GPU存储器能够存储第0个和第1个样本的表面,并且第2个和第3个样本可以存储在系统存储器中。存储器映像134可以包括对于每个表面的其基地址以及表面是否存储在GPU存储器或系统存储器中。特定样本(例如,像素p的第1个样本)的位置可基于第1个样本表面的基地址和步幅来确定。例如,实际位置可以距第1个样本的基地址为步幅乘以p的偏差,其中步幅对应于由一个样本占据的存储器空间。通过使用基地址和步幅来存取相应存储的样本,当与对于相应样本位置存储单独的位置相比时,减少了存储器映像134存储样本位置的地址所需的存储器的量。
在另一实施例中,在每个存储器内,从像素分配给该存储器的全部样本存储在邻近存储器中。例如,每个像素的第0个和第1个样本可以存储在邻近的GPU存储器中,并且第2个和第3个样本可以存储在邻近的系统存储器中。在另一实施例中,样本可以与其它样本无任何特定关系地存储在存储位置中。每个存储器中的样本可以被存储和组织为最适于该存储器。能够以不需要每个存储器位置的整个地址存储在存储器映像中的方式在存储器映像134中指定相应样本的地址。
拆分存储反锯齿像素样本的方法
图3是图示出根据本发明的实施例的在多个存储器之间拆分存储像素的相应反锯齿样本的过程的流程图。在步骤302中,确定据以在每个存储器中存储样本的比率。根据实施例,确定分别存储在GPU存储器和系统存储器中的样本的数量。要存储在GPU存储器中的样本的数量可以基于各种因素来确定,诸如GPU存储器的尺寸、样本尺寸、每个表面的尺寸、不同图像的数量和/或要存储表面的屏幕,等等。通常期望的是,对于每个图像和/或屏幕,存储对应于预期最频繁使用的样本的表面。根据实施例,对于同时使用的每个图像和/或屏幕,第0个和第1个样本表面可以存储在GPU存储器中,并且其它样本可以存储在系统存储器中。
在步骤304中,AA图像提供给存储器。在实施例中,通过根据之前确定的诸如步骤302中确定的比率等标准在GPU存储器和系统存储器之间拆分对于每个像素的样本组,将多采样的反锯齿图像提供给存储器。例如,ROP渲染图像的渲染目标可以基于每个像素的多采样样本标识符而在GPU存储器和系统存储器之间拆分。
在步骤306中,在将图像提供给存储器的过程中,图像的每个像素的一个或多个多采样样本提供给GPU存储器的相应表面上。可以根据例如上述步骤302来确定待提供给GPU存储器的样本的数量。优选的是,将最频繁用于渲染和/或纹理映像的样本存储在GPU存储器中,以使得当在将最后的图像提供给屏幕时发生的一遍或多遍渲染和/或纹理映像的过程中存取那些样本时能够高效地存取相应的样本。相应样本所提供到的存储器地址能够基于例如GPU存储器中对应表面的基地址和待渲染像素的标识符来确定。例如,对应于在进行4×AA多采样时生成的四个样本中的每个,单独的表面可以存储在GPU存储器或系统存储器中。来自具体像素的样本的对应表面内的位置能够基于每个样本的尺寸以及像素的数值序列标识符来确定。
在另一实施例中,对于每个像素,存储在GPU存储器中的样本的数量可以基于该特定像素的特性而与步骤302中确定的比率相同或不同。例如,应用程序可以确定待显示图像的具体部分和/或像素要经过多遍渲染和/或纹理处理,并且因此那些像素的样本将要存储在GPU存储器中。在对于各个像素可以存储不同数量的样本的实施例中,样本的存储以及对存储样本的存取会变得更加复杂,但是可以获得性能效率。在又一实施例中,对于选定的像素,存储在系统存储器中的样本中的一个或多个还可以存储在GPU存储器中。包括这些选择性存储的样本的一个或多个表面能够保持在GPU存储器中,并且能够实现存储器映像功能以适当地存取这些选择性存储的样本。
在步骤308中,在将图像提供给存储器的过程中。图像的各个像素的一个或多个多采样样本被提供给系统存储器中的对应表面。待提供给系统存储器的样本的数量能够根据例如上文步骤302来确定。如之前所述,存储在系统存储器中的样本优选地比存储在GPU存储器中的那些样本被更不频繁地存取。被提供各个样本的存储器地址能够基于例如系统存储器中对应表面的基地址和被渲染像素的标识符来确定。例如,如上所述,对应于在进行4×AA多采样时生成的四个样本中的每个,单独表面可以存储在GPU存储器或系统存储器中。来自具体像素的样本的对应表面内的位置能够基于每个样本的尺寸以及像素的序列数值标识符来确定。
步骤306和308能够顺序地或并行地发生以对于图像的每个像素将各个样本存储在对应的存储器中。在步骤308结束时,根据实施例,对于图像的全部像素中的每个像素的多个样本存储在GPU存储器和系统存储器中的对应表面中。
在步骤310中,确定待读取像素。像素的读取可以发生于在多采样反锯齿渲染目标的初始渲染(步骤304-308)和图像显示在屏幕上之间发生的一遍或多遍渲染和/或纹理映像中的任一遍中。例如,像素可被读取以作为渲染显示图像的解析运算的部分。为了反映复杂的虚像以及诸如采光效果等各种效果,许多应用执行多遍渲染和纹理映像。根据实施例,在从多采样反锯齿渲染目标的渲染过程中,通过从左到右以及从上到下的光栅扫描模式读取图像的像素。
在步骤312中,确定对于选定像素待读取的样本。在从多采样反锯齿渲染目标的渲染过程中,对于每个像素可以确定在渲染显示图像时要使用何种样本。对于像素要显示的样本的数量可以基于例如诸如触及像素的对象的数量、像素是否被任何单对象覆盖以及每个对象触及像素的深度等各种标准来确定。例如,在4×AA多采样时,如果像素完全被单对象覆盖,则为了将该像素呈现给显示图像,仅需要读取一个样本。如果一个对象正触及像素,而未覆盖,则可以读取两个样本以将该像素呈现给显示图像。类似地,可以基于触及像素的对象和这些对象的可视性来判定是否读取三个或四个样本。
在步骤314中,对于每个样本,判定样本是否在GPU存储器或系统存储器中。关于样本位于哪个存储器中的判定可以基于之前确定的指示存储在GPU存储器中的样本的数量的参数来进行。例如,如步骤302中所判定,任何像素的第0个和第1个样本可以在GPU存储器中存取,并且其它样本可以在系统存储器中存取。在另一实施例中,判定可以在每个像素的基础上基于动态标准进行。例如,如关于上面的步骤306中所述,所选的像素可以具有存储在GPU存储器中的不同数量的样本。
基于步骤314中的判定,在GPU存储器(在步骤316中)或者系统存储器(在步骤318中)存取样本。样本所在的存储器地址可以基于对应于样本的表面的基地址和该表面内的偏差。每个表面的基地址可以在将样本分配和/或写入到存储器中时预先配置和/或预先确定。偏差可以基于以存储样本的大小为基础的已知步幅以及标识光栅扫描存取模式的序列中的像素的数值标识符来确定。在另一实施例中,各个样本的位置可以基于指定该样本在存储器中的位置的存储器映像来确定。例如,在对于每个像素可以存储不同数量的样本的实施例中,存储器映像可用于标识具体样本的位置。
在步骤320中,判定是否将更多的样本存储在渲染目标中。例如,在4×AA多采样中,对于每个像素,四个样本可以存储在渲染目标中。如果要存储更多的样本,则方法300返回到步骤312。如果对于当前的像素不再存储更多的样本,则方法300继续到步骤322。
在步骤322中,判定当前像素是否为在当前图像中方法300要处理的最后一个像素。如果为是,则方法300的处理完成。如果当前像素不是当前图像中要呈现给渲染目标的最后一个像素,则方法300的处理返回到步骤310。
由执行本发明的方案的逻辑执行的指令可以各种编程语言进行编码,诸如C和C++、汇编、和/或硬件描述语言(HDL),并且汇编到能够由逻辑或其它器件执行的对象代码中。
上面所述的实施例可以诸如Verilog、RTL、netlists等硬件描述语言来描述,并且,通过生成掩膜工件/光掩膜,这些描述能够用于最终配置制造过程,以生成具体实现如本文所述的本发明的方案的一个或多个硬件装置。
本发明的方案可以整体地或部分地存储在计算机可读介质中。存储在计算机可读介质上的指令可使处理器适于整体地或部分地执行本发明的实施例。
上文已经借助于图示出指定功能的实现及其关系的功能构建块描述了本发明。为了方便描述,本文已经任意地限定了这些功能构建块的界限。能够限定可选的界限,只要适当地执行指定功能及其关系即可。
尽管上文已经说明了本发明的各个实施例,应当理解的是,仅通过举例的方式而不是限制的方式提供了这些实施例。相关领域的技术人员显知的是,可以在不偏离本发明的精神和范围的情况下对其进行形式和细节的各种变型。因此,本发明的广度和范围不应受上述任一示例性实施例所限制,而应当仅依照随后的权利要求及其等同方案进行限定。
具体实施例的前面的描述将如此全面地展示了本发明的一般本质,以使得其它人能够通过应用本领域技术内的知识以对于各种应用容易地修改和/或改进这些具体的实施例,无需过多的实验,且不会偏离本发明的总构思。因此,基于本文提供的教导和指导,这些改进和修改应当在所公开的实施例的等同实施例的含义和范围内。应当理解的是,本文的用语或术语是为了描述而不是为了限制的目的,使得应由技术人员根据教导和指导来解释本说明书的术语或者用语。
Claims (23)
1.一种渲染来自反锯齿图像的像素的方法,包括:
将来自所述像素的多个反锯齿样本拆分成第一组和第二组,其中所述第一组中的样本中的至少一个和所述第二组中的样本中的至少一个是不同的;
将来自所述像素的多个反锯齿样本的所述第一组和所述第二组分别存储在第一存储器和第二存储器中;以及
渲染来自仅所述第一组或者所述第一组和所述第二组中的一个的确定数量的所述样本,
其中将样本拆分成所述第一组和所述第二组是基于样本在渲染中使用的可能性和/或样本可能使用的频繁程度。
2.如权利要求1所述的方法,其中,预先确定所述第一组中的样本的数量。
3.如权利要求1所述的方法,其中,基于所述图像的特性来确定所述第一组中的样本的数量。
4.如权利要求1所述的方法,其中,基于样本的尺寸和所述第一存储器的尺寸来确定所述第一组中的样本的数量。
5.如权利要求1所述的方法,其中,基于触及所述像素的对象来确定待渲染样本的所述数量。
6.如权利要求1所述的方法,其中,所述第一存储器能以比所述第二存储器快的速率朝处理器存取。
7.如权利要求1所述的方法,其中,所述第一存储器是与图形处理器单元(GPU)耦合的图形存储器,并且所述第二存储器是系统存储器。
8.如权利要求1所述的方法,其中,对所述反锯齿样本进行多采样。
9.如权利要求1所述的方法,其中,渲染包括:
根据预定序列渲染来自所述第一组的所述样本,直至所述确定数量的样本被渲染。
10.如权利要求9所述的方法,进一步包括:如果所述第一组具有小于所述确定数量的样本,则渲染来自所述第二组的样本。
11.如权利要求1所述的方法,其中,所述样本中的每个均被存储在相应的表面。
12.如权利要求1所述的方法,进一步包括:
确定待渲染的所述样本的所述数量。
13.一种渲染来自反锯齿图像的像素的系统,其包括:
至少一个处理器;
第一存储器和第二存储器,其与所述处理器耦合;
拆分式反锯齿样本写入器,其被配置为:
基于样本在渲染中使用的可能性和/或样本可能使用的频繁程度将来自所述像素的多个反锯齿样本拆分成第一组和第二组,其中所述第一组中的样本中的至少一个和所述第二组中的样本中的至少一个是不同的;以及
将来自所述像素的多个反锯齿样本的所述第一组和所述第二组分别存储在第一存储器和第二存储器。
14.如权利要求13所述的系统,进一步包括:
拆分式反锯齿样本读取器,其被配置为:
渲染来自仅所述第一组或者所述第一组和所述第二组中的一个的确定数量的所述样本。
15.如权利要求14所述的系统,所述拆分式反锯齿样本读取器被进一步配置为:
确定待渲染的所述样本的数量。
16.如权利要求13所述的系统,所述拆分式反锯齿样本读取器被进一步配置为:
根据预定序列渲染来自所述第一组的所述一个或多个样本,直至所述确定数量的样本被渲染。
17.如权利要求13所述的系统,其中所述拆分式反锯齿样本读取器被进一步配置为:如果所述第一组具有小于所述确定数量的样本,则渲染来自所述第二组的样本。
18.如权利要求13所述的系统,其中,所述第一存储器为与图形处理器单元(GPU)耦合的图形存储器,并且所述第二存储器为系统存储器。
19.如权利要求13所述的系统,其中,所述第一存储器被配置为比所述第二存储器的存取速度快。
20.一种渲染来自反锯齿图像的像素的装置,所述装置包括:
用于基于样本在渲染中使用的可能性和/或样本可能使用的频繁程度将来自所述像素的多个反锯齿样本拆分成第一组和第二组的装置,其中所述第一组中的样本中的至少一个和所述第二组中的样本中的至少一个是不同的;
用于将来自所述像素的多个反锯齿样本的所述第一组的样本和所述第二组的样本分别存储在第一存储器和第二存储器中的装置;以及
用于渲染来自仅所述第一组或者所述第一组和所述第二组中的一个的确定数量的所述样本的装置。
21.如权利要求20所述的装置,其中,所述装置进一步包括:
用于根据预定序列渲染来自所述第一组的所述样本直至所述确定数量的样本被渲染的装置。
22.如权利要求20所述的装置,其中,所述装置进一步包括:用于在如果所述第一组具有小于所述确定数量的样本的情况下渲染来自所述第二组的样本的装置。
23.如权利要求22所述的装置,其中,所述第一存储器为与图形处理器单元(GPU)耦合的图形存储器,并且所述第二存储器为系统存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36570310P | 2010-07-19 | 2010-07-19 | |
US61/365,703 | 2010-07-19 | ||
PCT/US2011/044563 WO2012012451A1 (en) | 2010-07-19 | 2011-07-19 | Split storage of anti-aliased samples |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103003839A CN103003839A (zh) | 2013-03-27 |
CN103003839B true CN103003839B (zh) | 2017-02-08 |
Family
ID=44629206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180035304.6A Active CN103003839B (zh) | 2010-07-19 | 2011-07-19 | 反锯齿样本的拆分存储 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20120013624A1 (zh) |
EP (1) | EP2596471B1 (zh) |
JP (1) | JP5808407B2 (zh) |
KR (1) | KR101824665B1 (zh) |
CN (1) | CN103003839B (zh) |
WO (1) | WO2012012451A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9953455B2 (en) * | 2013-03-13 | 2018-04-24 | Nvidia Corporation | Handling post-Z coverage data in raster operations |
US9299181B2 (en) * | 2013-08-28 | 2016-03-29 | Qualcomm Incorporated | Target independent stenciling in graphics processing |
US9747658B2 (en) * | 2013-09-06 | 2017-08-29 | Apple Inc. | Arbitration method for multi-request display pipeline |
US9230363B2 (en) * | 2013-09-11 | 2016-01-05 | Nvidia Corporation | System, method, and computer program product for using compression with programmable sample locations |
US9230362B2 (en) * | 2013-09-11 | 2016-01-05 | Nvidia Corporation | System, method, and computer program product for using compression with programmable sample locations |
US9437040B2 (en) * | 2013-11-15 | 2016-09-06 | Nvidia Corporation | System, method, and computer program product for implementing anti-aliasing operations using a programmable sample pattern table |
CN105225264B (zh) * | 2014-06-27 | 2020-11-10 | 三星电子株式会社 | 基于运动的自适应渲染 |
KR102251444B1 (ko) | 2014-10-21 | 2021-05-13 | 삼성전자주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법 |
US10169887B2 (en) * | 2016-06-10 | 2019-01-01 | Apple Inc. | Accelerated blits of multisampled textures on GPUs |
US10163184B2 (en) * | 2016-08-17 | 2018-12-25 | Adobe Systems Incorporated | Graphics performance for complex user interfaces |
CN111798365B (zh) * | 2020-06-12 | 2023-09-01 | 完美世界(北京)软件科技发展有限公司 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6188394B1 (en) * | 1998-08-28 | 2001-02-13 | Ati Technologies, Inc. | Method and apparatus for video graphics antialiasing |
US6429876B1 (en) * | 1998-08-28 | 2002-08-06 | Ati International Srl | Method and apparatus for video graphics antialiasing with memory overflow optimization |
CN101065784A (zh) * | 2004-11-29 | 2007-10-31 | Arm挪威股份有限公司 | 计算机图形处理 |
US7511717B1 (en) * | 2005-07-15 | 2009-03-31 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4148377B2 (ja) * | 1997-10-28 | 2008-09-10 | 松下電器産業株式会社 | 画像生成装置、画像生成方法、画像生成プログラム記録媒体、画像合成装置、画像合成方法、および画像合成プログラム記録媒体 |
US6483504B1 (en) * | 1998-02-17 | 2002-11-19 | Sun Microsystems, Inc. | Graphics system having a super sampled-sample buffer with efficient storage of sample position information |
AU2868199A (en) * | 1998-02-17 | 1999-08-30 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
US6795081B2 (en) * | 2001-05-18 | 2004-09-21 | Sun Microsystems, Inc. | Sample cache for supersample filtering |
US6967663B1 (en) * | 2003-09-08 | 2005-11-22 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
US8294731B2 (en) * | 2005-11-15 | 2012-10-23 | Advanced Micro Devices, Inc. | Buffer management in vector graphics hardware |
US8212832B2 (en) * | 2005-12-08 | 2012-07-03 | Ati Technologies Ulc | Method and apparatus with dynamic graphics surface memory allocation |
US7564456B1 (en) * | 2006-01-13 | 2009-07-21 | Nvidia Corporation | Apparatus and method for raster tile coalescing |
US8325203B1 (en) * | 2007-08-15 | 2012-12-04 | Nvidia Corporation | Optimal caching for virtual coverage antialiasing |
TWI425440B (zh) * | 2008-07-03 | 2014-02-01 | Nvidia Corp | 複合多重樣本/超樣本抗頻疊 |
-
2011
- 2011-07-19 WO PCT/US2011/044563 patent/WO2012012451A1/en active Application Filing
- 2011-07-19 JP JP2013520817A patent/JP5808407B2/ja active Active
- 2011-07-19 EP EP11738118.6A patent/EP2596471B1/en active Active
- 2011-07-19 KR KR1020137004196A patent/KR101824665B1/ko active IP Right Grant
- 2011-07-19 US US13/186,256 patent/US20120013624A1/en not_active Abandoned
- 2011-07-19 CN CN201180035304.6A patent/CN103003839B/zh active Active
-
2016
- 2016-09-30 US US15/282,336 patent/US9934551B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6188394B1 (en) * | 1998-08-28 | 2001-02-13 | Ati Technologies, Inc. | Method and apparatus for video graphics antialiasing |
US6429876B1 (en) * | 1998-08-28 | 2002-08-06 | Ati International Srl | Method and apparatus for video graphics antialiasing with memory overflow optimization |
CN101065784A (zh) * | 2004-11-29 | 2007-10-31 | Arm挪威股份有限公司 | 计算机图形处理 |
US7511717B1 (en) * | 2005-07-15 | 2009-03-31 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
Non-Patent Citations (1)
Title |
---|
The SAGE graphics architecture;Michael Deering等;《ACM Transactions on Graphics(TOG)》;20020731;第21卷(第3期);683-692 * |
Also Published As
Publication number | Publication date |
---|---|
KR101824665B1 (ko) | 2018-02-01 |
US20170018053A1 (en) | 2017-01-19 |
JP2013539095A (ja) | 2013-10-17 |
US20120013624A1 (en) | 2012-01-19 |
US9934551B2 (en) | 2018-04-03 |
EP2596471A1 (en) | 2013-05-29 |
JP5808407B2 (ja) | 2015-11-10 |
KR20130141445A (ko) | 2013-12-26 |
EP2596471B1 (en) | 2016-04-06 |
WO2012012451A1 (en) | 2012-01-26 |
CN103003839A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103003839B (zh) | 反锯齿样本的拆分存储 | |
KR101349171B1 (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
JP5956770B2 (ja) | タイルベースのグラフィックスシステム及びこのようなシステムの動作方法 | |
US9064468B2 (en) | Displaying compressed supertile images | |
CN101236661B (zh) | 在计算机中管理纹理数据的系统与方法 | |
CN104424621B (zh) | 基于图块的图形处理流水线和操作图形处理流水线的方法 | |
US7969444B1 (en) | Distributed rendering of texture data | |
US8963931B2 (en) | Tiling compaction in multi-processor systems | |
EP3751507B1 (en) | Graphics processing units and methods using render progression checks | |
CN104134183A (zh) | 图形处理系统 | |
US9886735B2 (en) | Hybrid engine for central processing unit and graphics processor | |
US8941669B1 (en) | Split push buffer rendering for scalability | |
DE102013020613A1 (de) | Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung | |
US8212825B1 (en) | System and method for geometry shading | |
CN103150699A (zh) | 图形指令生成装置和图形指令生成方法 | |
CN109978977A (zh) | 使用预取的图形数据执行基于图块的渲染的装置和方法 | |
US8982134B2 (en) | Area-based dependency chain analysis of shaders and command stream | |
US6778175B2 (en) | Method of arbitration of memory request for computer graphics system | |
CN108510430A (zh) | 基于分块渲染的gpu中一种资源共享的实现方法 | |
US10115222B2 (en) | Data processing systems | |
WO2021237441A1 (en) | Device and method for data packing in memory | |
KR20230101835A (ko) | 데이터 프로세싱 시스템들 | |
US10290287B1 (en) | Visualizing operation of a memory controller | |
CN118052694A (zh) | 图形处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |