抗锯齿系统及方法

文档序号:6567552阅读:289来源:国知局

专利名称::抗锯齿系统及方法
技术领域
:本发明属于图形和视频处理领域。
背景技术
:图形和视频处理硬件和软件逐年继续地变得更加有能力并且更加易于获得。图形和视频处理电路典型情况下存在于计算机系统中的附加卡(add-oncard)上,但是也可以位于主板本身上。图形处理器负责创建由监视器所显示的图像。在早期的基于文本的个人计算机(PC)中,这是一个相对简单的任务。然而,现代有图形能力的操作系统的复杂性已经显著地增加了要显示的信息量。实际上,现在要由系统的主处理器或中央处理器(CPU)来进行图形处理是不切实际的。结果,显示动作典型情况下己经被移交给越来越智能的图形卡,所述图形卡包括被称为图形处理单元(graphicsprocessingunits,GPU)或视频处理单元(VPU)的专用的协处理器。在理论上,可以由计算机系统利用已知方法来生成非常高质量的复杂视频。然而,在大部分计算机系统中,质量、速度和复杂度受成本的限制。例如,当存储器需求和计算复杂度增加时,成本增加。一些系统是在远高于正常成本限制的情况下创建的,诸如用于军事飞行模拟器的显示系统。这些系统常常是非常少量生产的整体上一种类型一台(one-of-a-kind)的计算机系统。然而,以可接受的速度生成高质量的复杂视频对于相当"高端"的消费者级系统来说也可能会迅速变得价格高得惊人。因此创建还能够大量生产同时还具有不断改进的整体质量和能力的VPU和VPU系统是一个正面临的挑战。另一挑战是创建这样一种VPU和VPU系统其可以输送可接受的更高质量的视频、不要求过多的存储器、以所期望的速度操作、并且可与现有的计算机系统无缝兼容。存在着一般需要在质量与性能之间做出某些折衷的视频处理的各个方面。一个例子就是校正锯齿(aliasing),通常被称作是抗锯齿(anti-aliasing)或"AA"。锯齿是由于渲染处理的人工因素出现在所显示的帧中而产生的公知的效应。渲染由VPU来执行,且包括绘制要显示的像素。锯齿包括边缘锯齿及表面锯齿。边缘锯齿会在应当看上去平滑的边缘中产生阶梯。表面锯齿包括闪现(flashing)或"弹出(poping)"非常细小的多角形,往往被称为莫尔图案(moirepattems)。用于减轻这些效应的现有AA技术包括多重采样(multisampling)及超采样(supersampling))。多重采样通过创建像素的多个样本解决边缘锯齿,所述像素的多个样本用于产生像素之间的中间点。对所述多个样本进行平均以确定所显示像素的色值。多重采样的图像中的所显示边缘具有柔化的阶梯效应。多重采样对于表面锯齿没有效果。超采样既解决边缘锯齿又解决表面锯齿。然而,超采样比多重采样在计算上更加耗时,很少在消费者系统中使用。像素中心携带纹理信息,而不是像素。在超采样中,利用不同的像素中心来多次渲染每一个像素以产生多个颜色值,然后对所述颜色值进行平均,以给出最终的像素颜色。这为整个图像给出一种柔化效应。在传统系统中进行多重采样或进行超采样效率差的原因之一在于,像素数据必须不止一次地穿过在VPU中的视频处理流水线以创建对于像素或者像素中心的偏移样本。这增加了计算量并且增加了处理时间。
发明内容根据本发明的第一方面,一种视频处理设备,包括多个视频处理单元(VPU),其中,每个VPU处理与一个或多个视频帧相对应的数据,所述处理包括所述对一个或多个帧的像素进行采样以产生多个样本从而使得每个VPU产生不同的样本;以及连结模块,用于从每个VPU中接收所述多个样本,并且在输出视频帧中组合所述样本。根据本发明的第二方面,一种系统包括至少一个驱动器,用于从视频应用程序接收视频数据;多个视频处理单元(VPU),耦合于所述至少一个驱动器,且用于从所述至少一个驱动器中接收命令和数据以处理来自所述视频应用程序的所述视频数据,其中,所述命令包括向每一个所述VPU的发出的不同的抗锯齿命令,所述抗锯齿命令指导每一个所述VPU对同一组视频数据执行不同的抗锯齿操作。根据本发明的第三方面,提出了一种用于处理视频数据的方法,该方法包括为多个视频处理单元(VPU)产生命令,其中,所述命令包括用于处理特定视频帧的数据和指令,并且其中,所述指令中的至少一些专用于一个或多个特定VPU,所述指令包括抗锯齿指令;所述多个VPU中的每一个根据所述命令处理所述视频数据,所述处理包括对所述视频数据执行至少一种抗锯齿操作,以产生用于所述特定视频帧的输出数据;以及组合来自每个所述VPU的所述输出数据,以产生输出视频帧,其中,所述输出视频帧的抗锯齿系数大于来自任何一个所述VPU的任何所述输出数据的抗锯齿系数。根据本发明的第四方面,提出了一种用于在包括多个处理单元的系统中执行抗锯齿的方法,该方法包括所述多个处理单元中的每一个都对视频数据执行不同的抗锯齿操作;以及把所述不同抗锯齿操作的结果进行组合,以产生帧数据。根据本发明的第五方面,一种用于执行抗锯齿的设备,包括至少一个驱动器,用于从应用程序接收视频数据;多个专用处理单元,耦合于所述至少一个驱动器,并且用于从所述至少一个驱动器接收命令和数据以处理来自所述应用程序的所述视频数据,其中,所述命令包括向所述多个处理单元中的每一个发出的不同的抗锯齿命令,所述命令指导所述多个处理单元中的每一个对所述视频数据执行不同的抗锯齿操作;以及至少一个合成器,用于接收所述不同抗锯齿操作的结果,并且将其进行组合以产生帧数据。根据本发明的第六方面,一种处理器设备,包括视频处理电路,用于接收命令和数据,所述命令和数据包括用于帧的像素数据和处理命令;对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及将所述抗锯齿操作的结果传送给合成器,以便与由其他视频处理电路对所述像素数据执行的其他操作结果进行组合。根据本发明的第七方面,一种用于控制抗锯齿操作的用户接口方法,包括接收用户输入,以配置多个视频处理单元(VPU)来允许抗锯齿;接收用户输入,以配置多个视频处理单元(VPU)来禁止抗锯齿;以及接收用户输入,以配置多个视频处理单元(VPU)来执行抗锯齿,包括每一个所述VPU对像素数据执行不同的抗锯齿操作。根据本发明的第八方面,提供了视频处理单元(VPU),包括至少一个驱动器,用于从视频应用程序接收视频数据,以构成用于产生帧数据的命令和数据,所述命令和数据包括抗锯齿命令和数据,其中,所述抗锯齿命令和数据包括与产生像素数据的第一子集相关的第一子集,以及与产生像素数据的后续子集相关的至少一个后续子集,其中,使所述至少一个后续子集可用于由在该VPU外部的至少一个视频处理流水线进行的处理,以产生像素数据的至少一个后续子集;视频处理流水线,用于接收所述的命令和数据的第一子集,以进行处理来产生所述的像素数据的第一子集;至少一个合成器,用于对所述的像素数据的第一子集和所述的像素数据的至少一个第二子集进行接收及组合,以产生所述帧数据来进行显示。根据本发明的第九方面,提供了一种视频处理单元(VPU),包括视频处理流水线,用于接收包含抗锯齿命令和数据在内的命令和数据的子集,以进行处理来产生像素数据的相应子集,其中,所述视频处理流水线还用于向合成器传送所述的像素数据的子集,以与像素数据的另一个子集相结合来产生帧数据。根据本发明的第十方面,一种其上存储有指令的计算机可读介质,当被处理时,所述指令用于创建可执行以下方法的电路,所述方法包括接收命令和数据,所述命令和数据包括用于帧的像素数据和处理命令;对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及将所述抗锯齿操作的结果传送给合成器,以便与其他视频处理电路对所述像素数据所执行的操作的结果进行组合。根据本发明的第十一方面,提供了一种其上存储有指令的计算机可读介质,当被处理时所述指令用于创建能够执行下述方法的电路,所述方法包括对像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及接收其他抗锯齿操作的结果,以便与所述执行的抗锯齿操作的结果进行组合。通过参考来加以结合这里通过在相同程度上进行参考来结合在此说明书中所提及的所有公布和专利申请,就好像每个相应公布或专利申请被专门地且分别地表明为通过参考进行结合。图1是根据一个实施例的视频处理系统的框图2是根据一个实施例的利用抗锯齿的视频处理的示意图3-8是根据各个实施例举例说明抗锯齿的几种模式的像素示意图9A和9B分别显示了6XMSAA和12XMSAA的结果;图10A显示了不采用SSAA所产生的屏幕;图10B显示了利用2XSSAA所产生的与图IOA相同的屏幕;图11A显示了不采用SSAA所产生的屏幕;图11B显示了利用2XSSAA所产生的与图IIA相同的屏幕;图12是根据一个实施例的包括抗锯齿的视频处理系统的框图13是根据一个实施例的包括抗锯齿的视频处理系统的各个组件的框图14是视频处理系统的更详细的框图,其配置与根据实施例的图13的配置相似;图15是依照一个实施例的单卡视频处理系统的示意图16是依照一个实施例的单卡视频处理系统的示意图17是依照一个实施例的双卡视频处理系统的示意图18是依照一个实施例的双卡视频处理系统的示意图;以及图19是依照一个实施例的连结模块(interlinkmodule,IM)的框图。具体实施例方式在此描述了一种可减轻边缘锯齿效应和表面锯齿效应的抗锯齿(AA)的系统和方法。实施例包括在具有至少一个图形处理单元(GPU)或视频处理单元(VPU)的系统中应用多重采样技术与超采样技术的组合。如这里所用,GPU和VPU是可交换的术语。在一个实施例中,所述系统是可编程的,从而使得由一个或多个VPU将样本位置相对于初始位置在像素内进行可编程地偏移。初始位置例如由系统的公共视频驱动器来确定。在一个实施例中,多个VPU中的每一个都并行地处理同一视频帧,并且在每个VPU中将相同的像素内的样本偏移到不同的可编程位置。合并(或组合或合成)由多个VPU中的每一个所处理的视频帧,以便生成将要显示的帧。在要显示的帧中,AA采样系数实际上乘以VPU的数目。例如,如果每个VPU执行2X采样,则要显示的帧就包括4X采样。在各个实施例中,驱动器是可编程的,以指导VPU来执行按照可选放大系数的多重采样、按照可选放大系数的超采样、或者按照可选放大系数的多重采样与按照可选放大系数的超采样的组合。图1是依照实施例的视频处理系统100的框图。所述系统100包括应用程序102。应用程序102是要求视频处理能力的最终用户应用程序,诸如视频游戏应用程序。应用程序102与应用程序编程接口(API)104通信。几个API可用于在视频处理环境中使用。API被开发为在诸如应用程序102之类的应用软件与运行所述应用程序的视频硬件之间的中介物。随着新的芯片组甚至全新的硬件技术不断出现,应用程序开发者很难考虑并利用最新的硬件功能。为每种可预见的硬件组专门编写应用程序也是不可能的。API防止应用程序必须过于具体到硬件。应用程序可以依照标准化格式向API而不是直接向硬件输出图形数据和命令。可用API的例子包括DirectX(来自Microsoft)禾口OpenGL(来自SiliconGraphics)。API104可以是用于运行视频应用程序的多个可用API中的任何一个。API104与驱动器106进行通信。驱动器106典型情况下由视频硬件的制造商编写,并且驱动器106将从API接收的标准代码转换为硬件所理解的本地格式。驱动器允许来自例如应用程序、进程或用户直接设置的输入。在此处描述的实施例中,这种设置包括用于选择多重采样系数、超采样系数或其组合的设置。例如,用户可以经由用户接口(UI)来选择设置,所述用户接口包括利用如这里所描述的视频处理硬件和软件向用户所提供的UI。在一个实施例中,视频硬件包括两个视频处理单元VPUA108和VPUB110。在其它实施例中,可以有少于或多于两个的VPU。在各个实施例中,VPUA108和VPUB110是完全相同的。在各个其它实施例中,VPUA108和VPUB110不是完全相同的。下面将非常详细地描述包括视频处理系统的不同配置的各个实施例。驱动器106向VPUA108和VPUB110发出命令。同时向VPUA108和VPUB110发出的命令用于处理将要显示的同一帧。VPUA108和VPUB110均执行用于处理该帧的一系列命令,包括以一种可编程的方式,从API中所接收到的样本位置开始相对于像素和/或像素中心偏移样本位置。驱动器106可编程地命令VPUA108和VPUB110按照抗锯齿(AA)系数来多重采样和/或超采样像素和/或像素中心。在一个实施例中,VPUA和VPUB相对于相同的像素和/或像素中心偏移样本,但是把它们偏移到不同的样本位置。当VPUA108和VPUB110中的任何一个完成执行用于该帧的命令时,该帧数据被发送到合成器114。合成器114选择性地包括在连结模块112中,如下面更完整地描述。在合成器114中组合或合并或合成来自VPUA108和VPUB110中每一个的帧数据,以产生将要被渲染到显示器116的帧。在要显示的帧中,AA采样系数实际上乘以VPU的数目。例如,如果每个VPU执行2X采样,则要显示的帧就包括4X采样。在各个实施例中,驱动器104是可编程的,以指导VPUA108和VPUB110来执行按照可选放大系数的多重采样、按照可选放大系数的超采样、或者按照可选放大系数的多重采样与按照可选放大系数的超采样的组合。如这里所用,术语组合、合并、合成、混合或连结指的都是如这里所描述的IM112和/或合成器114的相同能力。图2是依照一个实施例的利用AA的视频处理200的示意图。如参考图1所在先描述的那样,VPUA208和VPUB210均根据来自可编程驱动器(未示出)的指令来处理视频数据。显示了由VPUA208所输出的采样图案213的图例。采样图案213是用于表明2X采样的12X12网格。对于每一个像素来说,在12X12网格中放入2个像素样本。12X12的尺寸仅仅是举例的目的,也可以设想任何其他可操作的尺寸。在所示例子中,黑色正方形是像素中心,而"X"是像素样本。像素样本偏离于由API(未示出)所指定的初始默认位置。偏移位置可在驱动器中进行编程,并且在从驱动器到VPUA208的命令中对其进行指定。在整个说明书中,为了方便起见,由VPU输出的样本图案还被称为VPU的输出。例如,样本图案213还被称为VPUA208的输出213。本领域技术人员应当理解并明白,由VPU输出的样本图案(或此处被称为VPU的输出)在大多数实施例中不被输出到显示器中。相反地,由VPU输出的样本图案(或其一部分)用来产生最终要被输出到诸如LCD、平板CRT等等之类的显示器的帧或其一部分。也就是说,所输出的样本图案在当前实施例和大多数实施例中被用作到VPU的另一部分的输入,以产生要输出到显示器的帧(或其一部分)。由VPUA208在线性空间中以一种已知的方式对样本进行平均。然而,像素数据一般在伽玛(gamma)空间中,因此必须在进行平均之前用去伽玛(degamma)运算来转换到线性空间。VPUA208执行去伽玛运算,执行平均运算,然后执行伽玛运算以便使VPU的输出处于伽玛空间中。通常这么做是为了提高所显示图像的质量。因此再次重申,在常规系统中,VPU的输出自动处于伽玛空间中。然而,在此处的各个实施例中,所需要的是具有在线性空间中的输出,以便进行如下所述的组合或合成操作。因此,VPUA208执行额外的去伽玛运算以把输出213转换到线性空间。在一个实施例中,VPUA208的视频流水线中的纹理单元用来执行去伽玛运算。在其他实施例中,这个去伽玛运算可在VPU外部执行,例如在合成器212中执行。作为伽玛校正的一个例子,专利号为5,398,076、题目为"GammaCorrectingProcessingofVideoSignals"(授权给ATI技术公司)的美国专利中,描述了一种包括像素数据的伽玛校正的处理视频信号的方法。另外,专利号为6,020,921、题目为"SimpleGammaCorrectionCircuitforMultimedia"(授权给ATI技术公司)的美国专利中描述了一种伽玛校正电路。在一个实施例中,根据以下函数来执行伽玛校正If(X<=0.00304)Y=12.92*X;ElseY=1.055*pow(x,1.0/2.4)-0.055在一个实施例中,根据以下函数来执行去伽玛运算If(X<=0.03928)Y=X/12.92ElseY=pow(X+0.055)/1.055,2.4)在一个实施例中,由合成器212执行的算法也可以如下所述对(来自VPUA208和VPUB210)两个输入流上的每一个像素的三原色中的每一种进行平整(flatten);把VPUA208与VPUB210之间的每种相应颜色相加;除以2并转到下一步(例如,(slave—green+master—green)/2-〉预先输出的绿色);以及把预先输出的像素转换回经过伽玛校正的颜色值。在一个实施例中,采用了伽玛校正査找表。类似地,显示了来自VPUB210的输出215。输出215是用于表明2X采样的12X12网格。对于每一个像素来说,在12X12网格中放入2个像素样本。12X12的尺寸仅仅是举例的目的,也可以设想任何其他可操作的尺寸。在所示例子中,黑色正方形是像素中心,而"X"是像素样本。像素样本偏离于由API(未显示)指定的初始默认位置。偏移位置可在驱动器中进行编程,并且在从驱动器到VPUB210的命令中对其进行指定。由VPUB210在线性空间中以一种已知的方式对样本进行平均。然而,像素数据一般在伽玛空间中,因此必须在进行平均之前用去伽玛运算来转换到线性空间。VPUB210执行去伽玛运算,执行平均运算,然后执行伽玛运算以便使VPU的输出处于伽玛空间中。通常这么做是为了提高所显示图像的质量。因此再次重申,在常规系统中,VPU的输出自动处于伽玛空间中。然而,在此处的各个实施例中,所需要的是具有在线性空间中的输出,以便进行如下所述的组合或合成操作。因此,VPUB210执行额外的去伽玛运算以把输出215转换到线性空间。在一个实施例中,VPUB210的视频流水线中的纹理单元用来执行去伽玛运算。线性输出213和215在合成器214中组合。合成器214选择性地包括在连结模块212中,如下面更完整地描述。来自VPUA208和VPUB210中每一个的帧数据在合成器214中被合并、或组合、或合成以产生要渲染到显示器(未显示)的帧。合成操作是在线性空间中的。合成器214完成合成操作,并且对结果执行伽玛运算以产生要显示的经过伽玛校正的帧数据。输出217包括经过伽玛校正的像素数据,并且显示如何组合输出213和215。每个输出213和215都被2X多重采样,而输出217被4X次多重采样。因此,如视频处理实施例200中所示那样,利用一次通过视频流水线就可获得更为改进的多重采样结果。如下参考图3-8所述的那样,也可以通过编程来选择其他抗锯齿模式,以包括多重采样与超采样(对像素中心进行采样)的各种组合。参考图3-8,举例说明了根据所描述的实施例的抗锯齿的若干模式。在图3-8的每一个中,VPUA的像素表示为星号,VPUA的像素中心表示为黑色网格方框,VPUB的像素表示为条纹网格方框,以及VPUB的像素中心表示为同心圆。图3是显示先前参考图2所描述的模式的示意图。这种模式称为具有1XSSAA的4XMSAA,或具有IX超采样AA的4X多重采样AA(其中,"4"被称为MS系数,而"1"被称为SS系数)。VPUA和VPUB每一个都分别对313和315中所示的像素进行采样。在把313与315组合或合成之后,要显示的输出是317,如所示。图4是显示一种具有1XSSAA的8XMSAA的模式或者采用IX超采样AA的8X多重采样AA的示意图。VPUA和VPUB每一个都分别对413和415中所示的像素进行采样。在把413与415组合或合成之后,要显示的输出是417,如所示。图5是显示一种具有1XSSAA的12XMSAA的模式或者具有IX超采样AA的12X多重采样AA的示意图。VPUA和VPUB每一个都分别对513和515中所示的像素进行采样。在把513与515组合或合成之后,要显示的输出是517,如所示。图6是显示一种具有2XSSAA的4XMSAA的模式或者具有2X超采样AA的4X多重采样AA的示意图。VPUA和VPUB每一个都分别对613和615中所示的像素进行采样。在这种模式中,由VPUA和VPUB中的每一个对样本进行不同地偏移。在把613与615组合或合成之后,要显示的输出是617,如所示。图7是显示一种具有2XSSAA的8XMSAA的模式或者具有2X超采样AA的8X多重采样AA的示意图。VPUA和VPUB每一个都分别对713和715中所示的像素进行采样。在这种模式中,由VPUA和VPUB中的每一个对像素样本进行不同地偏移。在把713与715组合或合成之后,要显示的输出是717,如所示。图8是显示一种具有2XSSAA的12XMSAA的模式或者具有2X超采样AA的12X多重采样AA的示意图。VPUA和VPUB每一个都分别对813和815中所示的像素进行采样。在这种模式中,由VPUA和VPUB中的每一个对像素样本进行不同地偏移。在把813与815组合或合成之后,要显示的输出是817,如所示。图3-8作为可被配置的AA模式的例子而被给出。也可设想任何其他的组合。例如MS系数与SS系数的不同组合、或者没有MS仅有SS也都是可能的。未明确显示的AA系数与MS系数都是可以设想的。图9和11是AA结果的示意图。图9A和9B分别显示了6XMSAA和12XMSAA的结果。如所看到的那样,当MS系数提高时边缘锯齿效应减小。图IOA和10B是举例说明由于SS所造成的表面锯齿的降低而导致质量提高的示意图。图10A显示了在没有SSAA的情况下所产生的屏幕。图IOB显示了利用2XSSAA所产生的与图IOA相同的屏幕。在图10B中显著地降低了莫尔效应。图IIA和IIB分别是图IOA和10B的屏幕的局部放大图的示意图。图11A显示了不用SSAA所产生的屏幕。图11B显示了利用2XSSAA所产生的屏幕。所描述的抗锯齿方法和设备还适用于未特别描述的其他类型的采样,包括二次采样和过采样(oversampling)。所描述的方法和设备还适用于时间域抗锯齿(temporalantialiasing)。例如,在一个实施例中,多个VPU中的每一个都及时处理不同的帧。然后如此处描述的那样对帧进行合成。各个其他实施例还包括,多个VPU中的每一个以不同方式渲染同一帧。例如,一个VPU执行按照一个系数的多重采样而另一个VPU执行按照另一个系数的采样。同样,一个VPU能够对一个帧执行多重采样而另一个VPU能够对一个帧执行超采样。由每个VPU所产生的帧如在此所述的那样被合成。在又一个实施例中,一个VPU能够执行按照一个采样系数的采样(其中采样可以是任何类型的采样)而另一个VPU执行按照另一个系数的采样。由每个VPU所产生的帧如在此所述的那样被合成。每个VPU的采样系数是可配置的。在一个实施例中,每个VPU的采样行为可由用户经由UI来配置。在一个实施例中,所采用的釆样配置的效率可构成由用户经由UI所进行配置或自动配置的基础。或者,相关VPU的性能可构成由用户经由UI所进行配置或自动配置的基础。现在描述能够体现在此描述的抗锯齿方法的各个系统。图2是依照一个实施例的系统1200的框图。系统1200包括可以存在于有视频能力的计算机系统的各个组件上的组件或元件。在一个实施例中,应用程序1202、驱动器1204和共享存储器1205存在于主机系统上,而其余组件存在于专用于视频的组件上,所述专用于视频的组件包括一个或多个视频卡,但是本发明并不局限于此。所示出的任何组件可以存在于任何地方,或者作为选择,各个组件可以经由有线或无线网络来远程访问其它组件。应用程序1202是要求视频处理能力的最终用户应用程序,诸如视频游戏应用程序。应用程序1202与应用程序编程接口(API)1204通信。API1204可以是可用的图形或视频或3DAPI(包括DirectX(来自Microsoft)和OpenGL(来自SiliconGraphics))中的任何一个。API1204与驱动器1206通信。驱动器1206是为系统1200专门编写的,驱动器1206将从API1204所接收的标准代码转换为VPU组件所理解的本地格式,下面将更完整地进行解释。在一个实施例中,系统1200还包括两个VPU:VPUA1208和VPUB1210。本发明不局限于两个VPU。如这里所描述的本发明的各个方面可以在进行了对于本领域技术人员显而易见的修改之后采用一个VPU来实行。然而,所述系统在一个VPU的情况下将会没有采用一个以上VPU的情况高效。各个实施例还包括两个以上的VPU。在进行了对于本领域技术人员显而易见的修改后,可以实现具有两个以上VPU的系统,并且在至少一些情况下可能会比具有两个VPU的系统提供更好的效能。在各个实施例中,VPUA1208和VPUB1210可以是视频卡上,其每一个都包括视频处理器以及其他的相关硬件。如下面将进一步解释,本发明并不局限于此。例如,一个以上的VPU可以位于一个卡或板上。然而,如这里所提及,VPU旨在至少包含视频处理器。VPUA1208和VPUB1210通过相应的环形缓冲器(ringbuffer)A1222和B1224接收来自驱动器1206的命令和数据。所述命令指示VPUA1208和VPUB1210对该数据执行各种操作,以便最终生成用于显示器1230的渲染帧。驱动器1206可以访问共享存储器1205。在一个实施例中,共享存储器1205或系统存储器1205是计算机系统上的存储器,其可由计算机系统总线上的其它组件访问,但是本发明并不局限于此。在一个实施例中,共享存储器1205、VPUA1208和VPUB1210都可以访问共享通信总线1234,由此可以访问所述总线1234上的其它组件。在一个实施例中,共享通信总线1234是外围组件接口快速(peripheralcomponentinterfaceexpress,PCIE)总线,{1是本发明并不局限于此。在以下文献中具体地描述了PCIE总线,这里通过将其全部引用加以结合以供参考PCIExpress,BaseSpecification,修订版U,2005年3月28曰;PCIExpress,CardElectromechanicalSpecification,修订版l.l,2005年3月28日;PCIExpress,BaseSpecification,修订版l.a,2003年4月15曰;和PCIExpress,CardElectromechanicalSpecification,修订版l.Oa,2003年4月15日。所有上述文献的版权为PCI-SIG所有。在一个实施例中,VPUA1208和VPUB1210经由总线1234使用对等(peer-to-peer)协议来直接互相通信,但是本发明并不局限于此。在其它实施例中,在VPUA1208和VPUB1210之间可以有直接的专用通信机制。VPUA1208和VPUB1210均分别具有可用的本地视频存储器1226和1228。在各个实施例中,其中一个VPU作为主VPU,而其它VPU作为从VPU,但是本发明并不局限于此。在其它实施例中,所述多个VPU可以是在另一组件的中央控制下的对等体。在一个实施例中,VPUA1208充当主VPU并且VPUB1210充当从VPU。在一个这种实施例中,各种协调和组合功能由连结模块(interlinkmodule,IM)1212来执行,所述连结模块1212与VPUA1208位于同一个卡上。这被示为用实线封闭的IM1212。在这个实施例中,VPUA1208和VPUB1210经由总线1234相互通信,总线1234用于传送VPU之间的通信(例如,命令和控制)和数据。例如,当VPUB1210向VPUA1208上的IM1212传送输出帧以便进行合成时(例如图1和2所示),该帧经由总线1234进行传送。在各个其它实施例中,IM1212并不位于VPU卡上,而是一个VPUA1208和VPUB1210均与其进行通信的独立组件。一个这种实施例包括"保护装置(dongle)"中的IM1212,该"保护装置"易于被连接到VPUA1208和VPUB1210。这在图中由虚线封闭的IM1212来表示。在这个实施例中,VPUA1208和VPUB1210经由IM连接1232来至少执行一些通信。例如,VPUA1208和VPUB1210可以使用总线1234来传送命令和控制信息,并且经由IM连接1232来传送诸如帧数据之类的数据。存在作为本发明不同实施例所设想的系统1200的许多配置。例如,如下所述的图13-17只图示了一些实施例。图13是依照一个实施例的系统1300的各个组件的框图。系统1300包括主VPU卡1352和从VPU卡1354。主VPU卡1352包括主VPU1308,并且从VPU卡1354包括从VPUB1310。在一个实施例中,VPU1308和1310均经由PICE总线1334来通信。在一个实施例中,PCIE总线1334是被划分成两个X8PCIE总线1335的X16总线。VPUA1308和B1310中的每一个都被连接到总线1335。在一个实施例中,VPUA1308和VPUB1310只经由总线1335通信。在一个候选实施例中,VPUA1308和VPUB1310部分经由总线1335并且部分经由专用卡间连接1337来通信。在其它实施例中,VPUA1308和VPUB1310专门地经由连接1337来通信。主VPU卡1352包括IM1512。在VPUA1308和VPUB1310经由总线1335通信的一个实施例中,每个VPU处理一个帧,包括参考图l和2所阐述的采样。作为图13中的一个例子,显示为由系统1300执行4XMSAA。主VPUA1308产生输出1309并且从VPUB1310产生输出1311。输出1309和1311被输入到IM1312以便进行如上所述的合成。在一个实施例中,从VPUB1310经由如同点划线路径1363所示的总线1335和1334将其输出1311传送到IM1312。在一个实施例中,从VPUB1310经由如同点划线路径1361所示的专用卡间连接1337将其输出1311传送到IM1312。IM1312按照如上所述的那样组合所述输出1309和1311,以便生成用于显示的帧,其包括4XMSAA。此帧被IM1312经由连接器1341输出到显示器1330。主VPU卡1352包括连接器1340和1341。从VPU卡1354包括连接器1342和1343。连接器1340、1341、1342和1343是本领域中公知的用于发送所需信号的连接器。例如,在一个实施例中,连接器1341是"数字视频输入(digitalvideoin,DVI)"连接器。可以有多于或少于在图1300中所示出的连接器数量。在一个实施例中,这里所描述的各个配置可由用户来配置,以便使用任意数量个可用的VPU进行视频处理。例如,系统1300包括两个VPU,但是在穿越(pass-through)模式下,用户可以选择只使用一个VPU。在这种配置中,其中一个VPU可以是有效的,而另一个可能是无效的。在这种配置中,如这里所描述的抗锯齿可能是不可用的。然而,所启用的VPU可以执行常规的抗锯齿。从VPU卡B1354到显示器1330的点划线路径1365表示在穿越模式中可以单独使用从VPUB1310进行视频处理。类似地,在穿越模式中可以单独使用主VPUA1308进行视频处理。图14是系统1400的更详细的框图,所述系统1400是与依照一个实施例的图13的系统相类似的配置。所述系统1400包括两个VPU卡,主VPU卡1452和从VPU卡1454。主VPU卡1452包括主VPUA1408,并且从VPU卡1454包括从VPUB1410。主VPU卡1452还包括接收器1448和发送器1450,其在一个实施例中用于接收和发送TDMS信号。在一个实施例中,双重连接器1445是DMS连接器。主卡还包括用于向显示器输出数字视频信号的DVI连接器1446,所述数字视频信号包括帧数据。主VPU卡1452还包括视频数模转换器(DAC)。如同所示,连结模块(IM)1412连接在VPU1408和发送器以及接收器之间。VPUA1408包括集成的收发器(被标记为"集成")和数字视频输出(DVO)连接器。从VPU卡1454包括两个DVI连接器1447和1448。从VPUB1454包括DVO连接器和集成收发器。作为经由PCIE总线(未示出)进行通信的候选实施例,主VPU卡1408和从VPU卡1410经由专用的卡间连接1437来通信。图15-17是系统配置的其他实施例的图。图15是依照一个实施例的单卡系统1500的图。所述系统1500包括"超级卡(supercard)"或"巨卡(monstercard)"1558,其包括一个以上的VPU。在一个实施例中,超级卡1558包括两个VPU,主VPUA1508和从VPUB1510。超级卡1558还包括IM1512,IM1512包括如先前所述的用于组合或合成来自两个VPU的数据的合成器,。在其它实施例中还可以用专用的卡上VPU间连接来进行VPU间通信(未示出)。在一个实施例中,主VPUA1508和从VPUB1510均被连接到X8PCIE总线1535,所述X8PCIE总线1535源自X16PCIE总线1534。所述系统1500包括先前所描述的多个VPU(还被称为多VPU)的功能中的全部功能。例如,主VPUA1508对所采样的帧1509进行处理并且将其输出到IM1512。从VPUB1510处理并输出所采样的帧1511,其被传送到IM1512以进行组合或合成。如前面参考图1300所述,所述传送经由PCIE总线1534或经由专用的VPU间连接(未示出)来执行。无论哪种情况,都将所合成的帧从IM1512输出到显示器1530。在穿越模式中,还可以禁止多VPU能力并且使用其中一个VPU来独自执行视频处理。这例如由短划线路径1565来示出,所述短划线路径1565图示了被连接到显示器1530以输出用于显示的帧数据的从VPUB1510。在穿越模式中,主VPUA1508还可以通过在路径1566上输出帧数据来单独工作。图16是依照一个实施例的单卡系统1600的图。所述系统1600包括"超级卡"或"巨卡"1656,其包括一个以上的VPU。在一个实施例中,超级卡1656包括两个VPU,主VPUA1608和从VPUB1610。超级卡1656还包括IM1612,IM1612包括先前所述的用于组合或合成来自两个VPU的数据的合成器。在其它实施例中,还可以用专用的卡上VPU间连接来进行VPU间通信(未示出)。在一个实施例中,主VPUA1608和从VPUB1610均经由卡上桥(on-cardbridge)1681连接到X16PCIE总线1634。系统1600包括先前所述的多VPU功能中的全部功能,包括所描述的抗锯齿能力。例如,主VPUA1608对所采样的帧1609进行处理并且将其输出到IM1612。从VPUB1610处理并输出所采样的帧1611,其被传送到IM1612以进行组合或合成。如参考图1300先前所述的,经由PC正总线1634或经由专用VPU间连接(未示出)来执行传送。无论哪种情况,都将所合成的帧从IM1612输出到显示器(未示出)。在穿越模式中,还可以禁止多VPU能力并且使用其中一个VPU来独自执行视频处理。这例如借助短划线路径1665来示出,所述短划路径1665图示了被连接到输出端以便传送将要显示的帧的从VPUB1610。在穿越模式中,主VPUA1608还可以通过在路径1666上输出帧数据来单独工作。图17是依照一个实施例的双卡系统1700的图。所述系统1700包括两个对等的VPU卡1760和1762。VPU卡1760包括VPUA1708,并且VPU卡1762包括VPU1710。在一个实施例中,VPUA1708和VPU1710是完全相同的。在其它实施例中,VPUA1708和VPUB1710不是完全相同的。VPUA1708和VPU1710均被连接到从X16PC正总线1734划分出来的X8PCIE总线1735。VPUA1708和VPU1710还均被连接,以便经由卡连接器向连结模块(IM)1712输出数据。在一个实施例中,IM1712是"保护装置"中的集成电路,所述"保护装置"可被容易地连接到VPU卡1760和VPU卡1762。在一个实施例中,IM1712是一个专门设计成包括这里所描述的所有合成功能的集成电路。IM1712合并或合成由VPUA1708和VPU1710所输出的帧数据并且向显示器1730输出可显示的合成帧。图18是依照一个实施例的双卡系统1800的图。所述系统1800类似于系统1700,但是被配置为在旁路模式下操作。系统1800包括两个对等体VPU卡1860和1862。VPU卡1860包括VPUA1808,并且VPU卡1862包括VPUB1810。在一个实施例中,VPUA1808和VPU1810是完全相同的。在其它实施例中,VPUA1808和VPUB1810不是完全相同的。VPUA1808和VPUB1810均被连接到从X16PCIE总线1834划分出来的X8PCIE总线1835。VPUA1808和VPU1810还均被经由卡连接器连接,以便向连结模块(IM)1812输出数据。在一个实施例中,IM1812是"保护装置"中的集成电路,所述"保护装置"可被容易地连接到VPU卡1860和VPU卡1862。在一个实施例中,IM1812是一个专门设计成包括先前所述的所有合成功能的集成电路。IM1812还可配置为在穿越模式下操作,在所述穿越模式下,一个VPU独自操作而其它VPU未被启用。在这种配置中,如这里所描述的抗锯齿将会是不可用的。然而,启用的VPU可以执行常规的抗锯齿。在图18中,VPUA1808被启用并且VPUB1810被禁止,但是在旁路模式中,任何一个VPU可以工作,以便向显示器1830输出。例如在图13-18中,如这里所示的配置目的是作为可能实施例的非限制性例子。其它配置也在如权利要求所定义的本发明的范围之内。例如,其它实施例包括在计算设备上安装或并入的第一VPU,所述计算设备诸如个人计算机(PC)、笔记本计算机、个人数字助理(PDA)、TV、游戏控制台、手持式设备等。第一VPU可以是集成VPU(也称为集成图形处理器或IGP)或者为非集成VPU。第二VPU被安装或并入到坞站(dockingstation)或外部封装单元。第二VPU可以是集成VPU或非集成VPU。在一个实施例中,坞站专用于支撑第二VPU。第二VPU和第一VPU如这里所描述的进行通信,以便如所描述地协作执行视频处理并且生成输出。然而在这种实施例中,第二VPU和第一VPU经由一根或多根电缆或者易于连接和分离的其它机制来进行通信。这种实施例对于使计算设备能够通过与另一VPU协作来显著地增强其能力来说是特别有用的,所述计算设备在物理上可能很小并且具有有限的视频处理能力。本领域普通技术人员应当理解,其他候选实施例可以包括在单片(singledie)上的多个VPU(例如,单片上的两个VPU),或者在单个硅芯片上有多个核心。图19是依照一个实施例的连结模块(IM)1912的框图。所有渲染命令都由系统中的每个VPU取出。在依照这里所描述的任何一个多VPU配置中,在VPU执行了所取出的命令之后,IM1912合并来自多个VPU的像素和控制线路的流并且输出单个数字视频输出(DVO)流。IM1912包括主输入端口,用于接收来自主VPU的DVO流。在诸如在图17和18中所示出的那些配置的"保护装置"配置中,主VPU输入可以来自TDMS接收器。作为替代,在例如图13和14中所示的多卡配置中,主VPU输入可以来自主VPU卡上的主VPU。同步寄存器1902接收来自主VPU的DVO数据。IM1912还包括从输入端口,用于接收来自从VPU的DVO流。在"保护装置"配置中,诸如在图17和18中所示出的配置或者在图13和14中所述的卡配置中,从VPU输入可以来自TDMS接收器。作为替代,在例如图15和16中所示的"超级"VPU卡配置中,从VPU输入可以来自"超级"VPU卡结构上的从VPU。IM1912包括从端口上的FIFO1904,以便帮助在主VPU和从VPU之间同歩输入流。来自主VPU和从VPU的输入数据被传送给扩展模式混合器1914和多路复用器(MUX)1916。在一个实施例中,扩展模式混合器提供合成功能,以根据此处描述的实施例来执行抗锯齿。此处描述的抗锯齿功能还被称为"superAA"。IM1912可配置为以多种合成模式来进行操作,包括此处描述的superAA抗锯齿模式。在一个实施例中,superAA模式是多个"扩展"模式之一。合成模式包括交替的帧渲染(alternateframerendering,AFR)模式,在模式中,由不同的VPU交替地渲染帧。合成模式还包括"变黑(blacking)"模式,在该模式中,每个VPU被给予帧的不同部分以进行处理。未处理的帧的部分被指定为包含"变黑"像素。当通过扩展模式混合器1914或者通过仅选择不黑的像素而将由两个VPU处理的帧的部分组合时,显示整个帧。控制逻辑确定IM1912在哪种合成模式下操作,控制逻辑包括黑色寄存器l卯6和MUX路径逻辑与黑色比较器1908。MUX路径逻辑与黑色比较器1908的输出是对MUX1916和扩展模式混合器1914的一个选择输入,并且决定这些组件中哪一个输出数据。数据被输出到TDMS传送器1918或DAC1920。在一个实施例中,在多个VPU以及IM1912之间的组件间通信包括多种12C总线和协议。如表6所示,通过I2C寄存器比特1924和TMDS控制比特1922的组合,来设置包括多种合成模式在内的多种操作模式。表l:操作模式和控制比特<table>complextableseeoriginalpage33</column></row><table><table>complextableseeoriginaldocumentpage34</column></row><table>依照一个实施例,存在经由IM1912的两个独立的数据路径。来自各个VPU的两个输入像素流中任意一个通过MUX1916(在穿越模式或"标准"连结模式中)进行处理,或者在扩展模式(包括超级AA模式)中通过混合器1214进行处理。如此处所采用的那样,"连结"或连结模式暗示了并非穿越模式的任何多VPU模式。在MUX1916中,选择来自VPUA或VPUB中任意一个的仅一个像素通过,并且不涉及任何像素处理。在扩展模式混合器1914中,在逐个像素基础上进行处理。然而,对所述像素进行处理、平均在一起、并且再次进行处理。在一个实施例中,处理步骤包括使用一个或多个查找表来产生中间或最终结果。由I2C寄存器比特和控制比特来确定在MUX1916路径和混合器1914路径之间的选择。例如,如果出现以下条件则选择混合器1914路径ENABLE—INTERLINK=1(I2C寄存器)并且C.ONTROL—BITS—2:Bit3禾nBit4=1(ExtendedModes和SuperAA)(否则MUX)。本发明的上述方面可以被实现为编程到任何种类电路中的功能,所述电路包括但不局限于可编程逻辑器件(PLD),诸如现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)器件、电可编程序逻辑与存储设备、以及基于标准单元的设备、以及专用集成电路(ASIC)和完全定制的集成电路。用于实现本发明方面的其它可能选择包括具有存储器(诸如电可擦可编程只读存储器(EEPROM))的微控制器、嵌入式微处理器、固件、软件等。此外,可以在微处理器中实现本发明的各个方面,所述微处理器具有基于软件的电路仿真、离散逻辑(顺序的和组合的)、定制器件、模糊(神经)逻辑、量子器件和以上任何器件类型的混合。当然,可以采用各种组件类型来提供基础的器件技术,例如,像互补金属氧化物半导体(CMOS)之类的金属氧化物半导体场效应晶体管(MOSFET)技术、像发射极耦合逻辑(ECL)之类的双极技术、聚合物技术(例如,硅共轭聚合物和金属共轭聚合物-金属结构)、混合的模拟与数字、等等。除非上下文清楚地要求否则遍及说明书和权利要求,词"包括"、"包含"等将依照相容意义来解释,而不是排除或穷举意义;即在"包括但不限于"的意义上。使用单数或复数的词还分别包括复数和单数。另夕卜,词"这里"、"在此"、"以上"、"以下"和类似输入的词当在本申请中使用时,指的是本申请的整体而不是本申请的任何特定部分。当就两个或多个项的列表使用词"或"时,该词覆盖了此词的所有以下解释列表中的任何项、列表中的所有项和所述列表中项的任何组合。本发明所举例说明的实施例的上述描述,并不意图对本发明进行穷举或将其限制为所公开的形式。虽然,为了说明性目的描述了本发明的具体实施例和例子,然而相关领域内分技术人员将认识到,在本发明的范围内可以进行各种等效的修改。这里所提供的本发明教导可以应用于其它系统,而不仅是用于包括如上所述的图形处理或视频处理的系统。例如,按照在此的描述而生成的抗锯齿图像可以被输出到各种显示设备,包括用于显示运动图像的计算机显示器和用于打印静态图像的打印机。所描述的各种操作可以在各种体系结构中实行,并且可以与所描述的内容相比不同地分布。作为一个例子,在分布式系统中,服务器可以执行一些或所有渲染处理。另外,尽管这里描述了许多配置,然而都并不意在是限制性或排他性的。例如,还可以在包括集成图形处理器(IGP)或视频处理器以及分立式图形或视频处理器的系统中实现本发明,其中,如所描述来合并或合成由集成和分立处理器中的每一个所处理的帧数据。此外,还可以在包括一个或多个IGP器件与一个或多个分立图形或视频处理器的组合的系统中实现本发明。在未示出的其它实施例中,VPU的数量可以大于二。在其它实施例中,这里所描述的一些或所有硬件和软件能力可以存在于打印机、照相机、电视、手持式设备、移动电话或其它设备中。这里所描述的抗锯齿技术可以被应用为从视频序列中构造动画的过程的一部分。可以组合上述各个实施例中的元素和动作,以便提供其他实施例。按照上述详细说明,可以对本发明进行这些及其它改变。通常在附带的权利要求中,所使用的术语不应当被解释为把抗锯齿方法及其系统限制为在说明书和权利要求中所公开的具体实施例,而是应当解释为包括根据这些权利要求进行工作以提供抗锯齿的任何处理系统。因此,抗锯齿方法和系统并不受此公开的限制,而且作为替代,所述抗锯齿方法和系统的范围将完全由权利要求来确定。虽然在附带的权利要求中依照特定的权利要求形式给出了用于抗锯齿的方法和设备的某些方面,但是发明人意在给出采用任何数量的权利要求形式的用于抗锯齿的方法及其设备的各个方面。例如,虽然仅仅将用于抗锯齿的方法和设备的一个方面陈述为将其具体化在计算机可读介质中,然而其它方面同样也可以被具体化到计算机可读介质中。因此,发明人保留在提交本申请之后增加附加权利要求的权力,以便追求这种用于抗锯齿的方法和设备的其它方面的附加要求形式。权利要求1.一种视频处理设备,包括多个视频处理单元(VPU),其中,每个VPU处理与一个或多个视频帧相对应的数据,所述处理包括对所述一个或多个帧的像素进行采样以产生多个样本从而使得每个VPU产生不同的样本;以及连结模块,用于从每个VPU中接收所述多个样本,并且在输出视频帧中组合所述样本。2.—种系统,包括至少一个驱动器,用于从视频应用程序接收视频数据;多个视频处理单元(VPU),耦合于所述至少一个驱动器且用于从所述至少一个驱动器中接收命令和数据以处理来自所述视频应用程序的所述视频数据,其中,所述命令包括向每一个所述VPU发出的不同的抗锯齿命令,所述抗锯齿命令指导每一个所述VPU对同一组视频数据执行不同的抗锯齿操作。3.如权利要求2所述的系统,还包括一个或多个连结模块,其耦合于所述多个VPU中的每一个,其中,所述连结模块用于组合对所述同一组视频数据所执行的不同抗锯齿操作的结果,以产生要显示的帧数据。4.如权利要求2或3所述的系统,其中,所述不同的抗锯齿操作包括每一个所述VPU从相同像素数据中产生不同的样本从而使得所述不同的样本至少在样本位置方面不同。5.如权利要求2到4中任意一项所述的系统,其中,所述不同的抗锯齿操作包括以下一种或多种多重采样、超采样以及时间域抗锯齿。6.如权利要求2到5中任意一项所述的系统,其中,所述不同的抗锯齿操作的结果包括多重采样操作;以及超采样操作。7.如权利要求2到6中任意一项所述的系统,其中,所述多重采样操作包括多重采样系数或超采样系数。8.如权利要求7所述的系统,其中,所述要显示的帧数据的多重采样系数或超采样系数是所述不同的抗锯齿操作的相应多重采样系数或超采样系数的乘积。9.如权利要求2到8中任意一项所述的系统,还包括用户接口,用于接收来自用户、应用程序、进程中至少一个的输入,所述输入包括进行输入以选择要在所述多个VPU之中执行的不同抗锯齿操作的组合。10.如权利要求2到9中任意一项所述的系统,其中,所述多个VPU中的每一个用于在伽玛空间与线性空间之间变换视频数据。11.如权利要求2到10中任意一项所述的系统,其中,所述多个VPU中的每一个包括纹理单元,所述纹理单元用于把平均采样视频数据变换到线性空间以便由该VPU输出。12.如从属于权利要求3或权利要求3的任何从属权利要求的权利要求ll所述的系统,其中,所述连结模块用于从所述多个VPU中的每一个接收在线性空间中的所述平均采样视频数据,以进行组合。13.如权利要求3或从属于权利要求3的任何权利要求所述的系统,其中,所述连结模块还用于对从所述多个VPU接收的数据进行组合以产生组合数据,并对所述组合数据进行伽玛校正以产生经过伽玛校正的输出帧数据。14.一种用于处理视频数据的方法,所述方法包括-为多个视频处理单元(VPU)产生命令,其中,所述命令包括用于处理特定视频帧的数据和指令,并且其中,所述指令中的至少一些专用于一个或多个特定VPU,所述指令包括抗锯齿指令;所述多个VPU中的每一个根据所述命令处理所述视频数据,所述处理包括对所述视频数据执行至少一种抗锯齿操作,以产生用于所述特定视频帧的输出数据;以及组合来自每个所述VPU的所述输出数据,以产生输出视频帧,其中,所述输出视频帧的抗锯齿系数大于来自任何一个所述VPU的任何所述输出数据的抗锯齿系数。15.如权利要求14所述的方法,其中,所述抗锯齿指令包括从包含以下各项的组中选出的至少一个指令根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿。16.如权利要求14或15所述的方法,其中,所述专用于一个或多个特定VPU的指令包括用于从特定像素数据中产生像素数据样本的指令,其中,所述多个VPU中不同的VPU会从同一特定像素数据中产生不同的样本。17.如权利要求16所述的方法,其中,所述不同样本在以下的一个或多个方面上不同位置和时间。18.如权利要求14到17中任意一项所述的方法,其中,产生命令的步骤包括形成命令缓冲器,所述命令缓冲器包括所述数据和指令,所述数据和指令用于按照应用程序的指导来处理所述特定视频帧,其中,所述应用程序包括终端用户应用程序,其中,所述命令缓冲器可用于所述多个VPU。19.如权利要求18所述的方法,其中,产生命令的步骤还包括:接收与所述多个VPU的抗锯齿操作相关的配置输入,包括来自用户接口的用户配置输入;以及利用所述输入形成所述命令缓冲器,其中,所述配置输入包括为每个所述VPU选择抗锯齿操作类型以及抗锯齿系数。20.如权利要求14到19中任意一项所述的方法,其中,为所述特定视频帧产生所述输出数据的步骤包括-执行去伽玛操作,以把所接收数据转换到线性空间;对像素数据的样本进行平均,以产生平均样本数据;执行伽玛操作,以把所述平均样本数据转换到伽玛空间;以及执行去伽玛操作,以把所述平均样本数据转换到线性空间。21.如权利要求14到20中任意一项所述的方法,其中,所述组合步骤还包括对组合数据进行伽玛校正,以产生经过伽玛校正的输出视频帧。22.—种其上存储指令的计算机可读介质,所述指令当在视频处理系统中执行时,使得所述系统执行如权利要求14到21中任意一项所述的方法。23.如权利要求22所述的计算机可读介质,其中,产生命令的步骤包括形成命令缓冲器,所述命令缓冲器包括数据和指令,所述数据和指令用于按照应用程序的指导来处理所述特定视频帧,其中,所述应用程序包括终端用户应用程序;以及把所述命令缓冲器广播给所述多个VPU。24.—种用于在包括多个处理单元的系统中执行抗锯齿的方法,所述方法包括所述多个处理单元中的每一个都对视频数据执行不同的抗锯齿操作;以及把所述不同抗锯齿操作的结果进行组合,以产生帧数据。25.如权利要求24所述的方法,还包括为所述多个处理单元中的每一个产生一组命令,以并发地执行该组命令来产生所述结果。26.如权利要求24或25所述的方法,其中,所述视频数据包括用于产生要显示的帧的像素数据,并且其中,所述多个处理单元中的每一个对以下各项执行不同的抗锯齿操作所述视频数据的不同子集;所述视频数据的同一子集;或者,全部所述视频数据。27.如权利要求24或25所述的方法,其中,所述视频数据包括至少一个要显示的帧的像素数据,并且其中,所述像素数据被划分为用于由所述多个处理单元来处理的多个部分,其中,所述划分包括剪裁和交替的帧渲染。28.如权利要求27所述的方法,其中,所述多个处理单元中的每一个对同一部分进行操作。29.如权利要求24到28中任意一项所述的方法,其中,所述多个处理单元包括至少一个集成视频处理单元(VPU)和至少一个分立式VPU。30.—种用于执行抗锯齿的设备,包括至少一个驱动器,用于从应用程序接收视频数据;多个专用处理单元,耦合于所述至少一个驱动器,并且用于从所述至少一个驱动器接收命令和数据以处理来自所述应用程序的所述视频数据,其中,所述命令包括向所述多个处理单元中的每一个发出的不同的抗锯齿命令,所述命令指导所述多个处理单元中的每一个对所述视频数据执行不同的抗锯齿操作;以及至少一个合成器,用于接收所述不同抗锯齿操作的结果,并且将其进行组合以产生帧数据。31.如权利要求30所述的设备,其中,所述设备可经由用户接口来配置。32.如权利要求30或31所述的设备,其中,所述至少一个驱动器和所述至少一个合成器还耦合于在所述设备之外的至少一个专用处理单元。33.如权利要求32的方法,其中,所述视频数据包括至少一个要显示的帧的像素数据,并且其中,所述像素数据被划分为用于由所述多个处理单元来处理的多个部分,其中,所述划分包括剪裁和交替的帧渲染。34.如权利要求33所述的设备,其中,所述视频数据包括用于产生要显示的帧的像素数据,并且其中,所述多个处理单元中的每一个对以下各项执行不同的抗锯齿操作所述视频数据的不同子集;所述视频数据的同一子集;或者,全部所述视频数据。35.—种处理器设备,包括视频处理电路,用于接收命令和数据,所述命令和数据包括用于帧的像素数据和处理命令;对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超釆样、以及时间域抗锯齿;以及将所述抗锯齿操作的结果传送给合成器,以便与由其他视频处理电路对所述像素数据执行的其他操作结果进行组合。36.如权利要求35所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括对帧的一部分的像素数据执行所述抗锯齿操作。37.如权利要求35所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括对帧的一部分的像素数据执行第一抗锯齿操作,而另一个视频处理电路对所述帧的所述部分的像素数据执行第二抗锯齿操作。38.如权利要求35所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括对帧的第一部分的像素数据执行第一抗锯齿操作,而另一个视频处理电路对所述帧的第二部分的像素数据执行第二抗锯齿操作。39.—种用于控制抗锯齿操作的用户接口方法,所述方法包括接收用户输入,以配置多个视频处理单元(VPU)来允许抗锯齿;接收用户输入,以配置多个视频处理单元(VPU)来禁止抗锯齿;以及接收用户输入,以配置多个视频处理单元(VPU)来执行抗锯齿,包括每一个所述VPU对像素数据执行不同的抗锯齿操作。40.如权利要求39所述的用户接口方法,还包括接收用户输入,以配置所述多个视频处理单元(VPU)中的每一个来执行从包含以下各项的组中选出的抗锯齿操作多重采样、超采样、以及时间域抗锯齿。41.如权利要求40所述的用户接口方法,还包括接收用户输入,以指定以下各项中的至少一个多重采样的抗锯齿系数、超采样的抗锯齿系数、以及时间域抗锯齿的时间系数。42.如权利要求41所述的用户接口方法,其中,为所述多个VPU中的每一个指定所述多重采样的抗锯齿系数、所述超采样的抗锯齿系数、以及所述时间域抗锯齿的时间系数。43.如权利要求39到42中任意一项所述的用户接口方法,其中,所述像素数据是针对一帧的,所述方法还包括接收用户输入,以指定将所述帧的像素数据划分为要由所述多个VPU中的不同VPU操作的多个部分的方式,并且其中,所述划分方式包括交替的帧渲染和剪裁。44.如权利要求43所述的用户接口方法,还包括接收用户输入,以为每个VPU指定要用于对该部分数据进行操作的特定抗锯齿操作和特定抗锯齿系数。45.—种视频处理单元(VPU),包括至少一个驱动器,用于从视频应用程序接收视频数据,以构成用于产生帧数据的命令和数据,所述命令和数据包括抗锯齿命令和数据,其中,所述抗锯齿命令和数据包括与产生像素数据的第一子集相关的第一子集,以及与产生像素数据的后续子集相关的至少一个后续子集,其中,使所述至少一个后续子集可用于由在该VPU外部的至少一个视频处理流水线进行的处理,以产生像素数据的至少一个后续子集;视频处理流水线,用于接收所述的命令和数据的第一子集,以进行处理来产生所述的像素数据的第一子集;至少一个合成器,用于对所述的像素数据的第一子集和所述的像素数据的至少一个第二子集进行接收及组合,以产生所述帧数据来进行显示。46.—种视频处理单元(VPU),包括视频处理流水线,用于接收包含抗锯齿命令和数据在内的命令和数据的子集,以进行处理来产生像素数据的相应子集,其中,所述视频处理流水线还用于向合成器传送所述的像素数据的子集,以与像素数据的另一个子集相结合来产生帧数据。47.—种其上存储有指令的计算机可读介质,当被处理时,所述指令用于创建可执行以下方法的电路,所述方法包括接收命令和数据,所述命令和数据包括用于帧的像素数据和处理命令;对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及将所述抗锯齿操作的结果传送给合成器,以便与其他视频处理电路对所述像素数据所执行的其他操作结果进行组合。48.—种其上存储有指令的计算机可读介质,当被处理时所述指令用于创建能够执行下述方法的电路,所述方法包括对像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及接收其他抗锯齿操作的结果,以便与所述执行的抗锯齿操作的结果进行组合。49.如权利要求60所述的计算机可读介质,其中,存储在其上的所述指令在被处理时,用于创建能够执行下述方法的处理器,所述方法还包括将所述执行的抗锯齿操作的结果与所述接收的其他抗锯齿操作的结果进行组合,以产生帧数据。50.由如权利要求14到21、24到29或39到44中任意一项所述的方法所产生的数字图像。全文摘要在此描述了一种用于改进在视频处理中的抗锯齿的系统和方法。实施例包括系统中的多个视频处理器(VPU)。每个VPU执行像素采样和像素中心采样(也称为多重采样以及超采样)的某种组合。每个VPU对相同的像素或像素中心执行采样,但是每个VPU都会产生的样本的位置与其他VPU的对应样本不同。每个VPU都把已经被多重采样和/或超采样的帧数据输出到合成器中,所述合成器对帧数据进行合成,以产生经过抗锯齿的渲染帧。所述经过抗锯齿的渲染帧具有有效双倍抗锯齿系数。文档编号G06T5/00GK101198982SQ200680018152公开日2008年6月11日申请日期2006年5月29日优先权日2005年5月27日发明者A·普雷塔姆,A·波米亚诺夫斯基,R·卡杜里申请人:Ati技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1