通过在空间上和/或在时间上改变采样模式增强抗锯齿的制作方法

文档序号:9647034阅读:386来源:国知局
通过在空间上和/或在时间上改变采样模式增强抗锯齿的制作方法
【技术领域】
[0001]本发明的实施例总地涉及图形处理,并且更具体地,涉及通过在空间上和/或在时间上改变采样模式(sample pattern)增强抗锯齿。
【背景技术】
[0002]在图形处理管线中,光栅化器典型地负责基于与图形场景相关联的几何体计算用于像素的覆盖信息。例如,针对给定像素,光栅化器可以确定图形场景中的三角形覆盖该像素。于是稍后在管线中,可以基于三角形的颜色为像素着色。光栅化器通过确定几何体是否在像素内的一个或多个覆盖采样位置处覆盖像素来计算用于像素的覆盖信息。
[0003]在采样配置中,通过测试几何体是否覆盖像素的中心来确定覆盖,此处使用像素的中心作为覆盖采样位置。然而,这种形式的采样可能不准确,尤其是对于复杂的形状。因此,现代着色器常采用多采样方法,其中在多个不同的覆盖采样位置处测试像素内的覆盖。多个采样的位置通常是固定的并且从像素到像素是完全相同的,以反映已在经验上被确定为针对一系列图形场景产生准确覆盖信息的具体采样模式。
[0004]上述方法的一个缺点是经由常规多采样产生的图像的质量依赖于每像素所使用的采样位置的数目。因此,为了生成较高质量的图像,必须实现较多的采样位置。然而,这些附加的采样位置引发显著的开销。特别地,必须分配附加的帧缓冲空间以容纳颜色、z数据、以及与附加采样相关联的其他类型的信息。总之,图像的质量以及必备的开销随着采样的数目而变化。
[0005]如前所述,本领域需要用于在不导致与增加每像素的采样数目相关联的开销的情况下提高图像质量的技术。

【发明内容】

[0006]本发明的一个实施例阐述图形子系统,该图形子系统包括第一米样模式表和索引单元,其中第一采样模式表包括第一多个条目,并且索引单元配置为生成到第一采样模式表的第一索引,第一索引引用第一多个条目中所包括的条目的第一子集;以及从第一采样模式表中提取条目的第一子集,其中条目的第一子集中所包括的第一条目指示第一帧的第一像素内的第一位置,第一样本将在第一位置处生成。
[0007]所公开的技术的至少一个优点是仅采用每像素N/M个采样位置,就可以跨Μ个帧生成Ν个覆盖样本,这产生具有看上去与每像素Ν个覆盖样本一致的质量的图像。
【附图说明】
[0008]因此,可以详细地理解本发明的上述特征,并且可以参考实施例得到对如上面所简要概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了本发明的典型实施例,因此不应被认为是对其范围的限制,本发明可以具有其他等效的实施例。
[0009]图1是示出了配置为实现本发明的一个或多个方面的计算机系统的框图;
[0010]图2是根据本发明的一个实施例的、图1的并行处理子系统中所包括的并行处理单元的框图;
[0011]图3A是根据本发明的一个实施例的、图2的并行处理单元中所包括的的通用处理集群的框图;
[0012]图3B是根据本发明的一个实施例的、可在图2的并行处理单元内实现的图形处理管线的概念图;
[0013]图4是根据本发明的一个实施例的、图3B的图形处理管线可经配置以生成并处理的高速缓存块的概念图;
[0014]图5是根据本发明的一个实施例的、更详细示出图3B的光栅单元的框图;
[0015]图6A-6B是根据本发明的各实施例的、图5的光栅单元在生成采样模式时所实施的操作的概念图;
[0016]图7A-7D示出根据本发明的各实施例的、可由图5的光栅单元生成的示例性采样模式;
[0017]图8是根据本发明的一个实施例的、用于跨不同帧针对相邻像素生成不同的采样模式的方法步骤的流程图;
[0018]图9是根据本发明的一个实施例的、用于针对像素生成采样模式的方法步骤的流程图;
[0019]图10示出根据本发明的一个实施例的、在其中可以应用时空滤波以提高图像质量的示例性图形场景;
[0020]图11是根据本发明的一个实施例的、用于基于所检测的运动来过滤像素数据的方法步骤的流程图;
[0021]图12示出根据本发明的一个实施例的、可基于采样移动方向进行混合的示例性像素组;
[0022]图13是根据本发明的一个实施例的、用于基于采样移动方向实施时空滤波的方法步骤的流程图;以及
[0023]图14是根据本发明的一个实施例的、用于基于所检测的运动实施时间或空间滤波的方法步骤的流程图。
【具体实施方式】
[0024]在下面的描述中,将阐述大量的具体细节以提供对本发明更透彻的理解。然而,本领域的技术人员应该清楚,本发明可以在没有一个或多个这些具体细节的情况下得以实施。
系统概述
[0025]图1为示出了配置为实现本发明的一个或多个方面的计算机系统100的框图。如所示的,计算机系统100包括但不限于中央处理单元(CPU) 102和系统存储器104,系统存储器104经由存储器桥105和通信路径113耦连到并行处理子系统112。存储器桥105进一步经由通信路径106耦连到I/O (输入/输出)桥107,并且I/O桥107转而耦连到交换器116。
[0026]在操作中,I/O桥107可配置为从诸如键盘或鼠标的输入设备108接收用户输入信息,并经由通信路径106和存储器桥105将输入信息转发到CPU 102用于处理。交换器116配置为提供I/O桥107与计算机系统100的诸如网络适配器118以及各种插卡120和121的其他部件之间的连接。
[0027]如还示出的,I/O桥107耦连到系统盘114,系统盘114可配置为存储用于由CPU 102和并行处理子系统112所使用的内容和应用和数据。作为通用物件,系统盘114提供用于应用和数据的非易失性存储,并可包括固定或移动硬盘驱动器、闪存设备、以及CD-ROM (压缩光盘只读存储器)、DVD-ROM (数字视频光盘-ROM)、蓝光光碟、HD-DVD (高清晰度DVD)、或其他磁性的、光学的、或固态的存储设备。最后,虽未明确示出,但诸如通用串行总线或其他端口连接、压缩光盘驱动器、数字视频光盘驱动器、胶片录制设备等的其他部件也可以连接到I/O桥107。
[0028]在各实施例中,存储器桥105可以是北桥芯片,并且I/O桥107可以是南桥芯片。此外,通信路径106和113以及计算机系统100内的其他通信路径可以使用任何技术上合适的协议来实现,包括但不限于AGP (加速图形端口 )、超传输、或本领域中已知的任何其他总线或点对点通信协议。
[0029]在一些实施例中,并行处理子系统112包括将像素传递到显示设备110的图形子系统,显示设备可以是任何常规的阴极射线管、液晶显示器、发光二极管显示器等等。在这样的实施例中,并行处理子系统112包含经优化用于图形和视频处理的电路,包括例如视频输出电路。如下面在图2中所更详细描述的,可以跨并行处理子系统112内所包括的一个或多个并行处理单元(PPU)包含这类电路。在其他实施例中,并行处理子系统112包含经优化用于通用和/或计算处理的电路。另外,可以跨并行处理子系统112内所包括的配置为实施这类通用和/或计算操作的一个或多个PPU包含这类电路。在又一个实施例中,并行处理子系统112内所包括的一个或多个PHJ可以配置为实施图形处理、通用处理、以及计算处理操作。系统存储器104包括至少一个设备驱动程序103,其配置为管理并行处理子系统112内的一个或多个PPU的处理操作。
[0030]在各实施例中,可以集成并行处理子系统112与图1的一个或多个其他元件以形成单个子系统。例如,可以将并行处理子系统112与CPU 102和其他连接电路集成在单个芯片上,以形成片上系统(SoC)。
[0031]应该理解,本文所示系统是示例性的,并且变化和修改都是可能的。连接拓扑,包括桥的数目和布置、CPU 102的数目以及并行处理子系统112的数目,可根据需要修改。例如,在一些实施例中,系统存储器104可以直接连接到CPU 102而不是通过存储器桥105,并且其他设备将经由存储器桥105和CPU 102与系统存储器104通信。在其他替代性拓扑中,并行处理子系统112可以连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。而在其他实施例中,I/O桥107和存储器桥105可能被集成到单个芯片上而不是作为一个或多个分立设备存在。最后,在某些实施例中,可以不存在图1中所示出的一个或多个部件。例如,交换器116可以被去掉,网络适配器118和插卡120、121将直接连接到1/
0桥 107。
[0032]图2示出了根据本发明的一个实施例的、图1的并行处理子系统112中所包括的并行处理单元(PPU)202的框图。虽然图2描绘了一个PPU 202,但是如上文所指出的,并行处理子系统112可以包括任何数目的PPU 202。如所示的,PHJ 202耦连到本地并行处理(PP)存储器204。PPU 202和PP存储器204可使用一个或多个集成电路设备来实现,诸如可编程处理器、专用集成电路(ASIC)或存储器设备,或者以任何其他技术可行的方式来实现。
[0033]在一些实施例中,PPU 202包括图形处理单元(GPU),其可配置为实现图形渲染管线以实施与基于由CPU 102和/或系统存储器104所供应的图形数据生成像素数据相关的各种操作。当处理图形数据时,可以使用PP存储器204作为图形存储器,其存储一个或多个常规帧缓冲区,并且如果需要,还存储一个或多个其他渲染目标。此外,可以使用PP存储器204来存储和更新像素数据,并将最终的像素数据或显示帧传递到显示设备110用于显示。在一些实施例中,PPU 202还可配置用于通用处理和计算操作。
[0034]在操作中,CPU 102是计算机系统100的主处理器,控制和协调其他系统部件的操作。具体地,CPU 102发出控制PPU 202的操作的命令。在一些实施例中,CPU 102写入用于PPU 202的命令流到数据结构中(在图1或图2中未明确示出),该数据结构可位于系统存储器104、PP存储器204、或CPU 102和PPU 202都可访问的其他存储位置中。将指向数据结构的指针写到入桟缓冲区(pushbuffer)以发起对数据结构中的命令流的处理。PPU202从入栈缓冲区读取命令流,然后相对于CPU 102的操作异步地执行命令。在生成多个入栈缓冲区的实施例中,可以经由设备驱动程序103由应用程序为每个入栈缓冲区指定执行优先级以控制对不同入栈缓冲区的调度。
[0035]如还示出的,PHJ 202包括经由通信路径113和存储器桥105与计算机系统100的其余部分通信的1/0(输入/输出)单元205。I/O单元205生成用于在通信路径113上传送的包(或其他信号),并且还从通信路径113接收所有传入的包(或其他信号),将传入的包引导到PPU 202的适当部件。例如,可将与处理任务相关的命令引导到主机接口 206,而将与存储器操作相关的命令(例如,对PP存储器204的读取或写入)引导到交叉开关单元210。主机接口 206读取每个入栈缓冲区,并且将存储在入栈缓冲区中的命令流传送到前端 212。
[0036]如上文结合图1所提到的,PPU 202到计算机系统100的其余部分的连接可以改变。在一些实施例中,包括至少一个PPU 202的并行处理子系统112实现为可插入到计算机系统100的扩展槽中的插卡。在其他实施例中,PPU 202可以和诸如存储器桥105或1/0桥107的总线桥集成在单个芯片上。而在其他实施例中,PHJ 202的一些或所有元件可以和CPU 102包括在单个集成电路或片上系统(SoC)中。
[0037]在操作中,前端212将从主机接口 206所接收的处理任务传送到任务/工作单元207内的工作分布单元(未示出)。工作分布单元接收指向编码为任务元数据(TMD)并存储在存储器中的处理任务的指针。指向TMD的指针包括在存储为入栈缓
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1