CN101198982B - 抗锯齿系统及方法 - Google Patents

抗锯齿系统及方法 Download PDF

Info

Publication number
CN101198982B
CN101198982B CN200680018152.8A CN200680018152A CN101198982B CN 101198982 B CN101198982 B CN 101198982B CN 200680018152 A CN200680018152 A CN 200680018152A CN 101198982 B CN101198982 B CN 101198982B
Authority
CN
China
Prior art keywords
antialiasing
vpu
data
video
frame
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
Application number
CN200680018152.8A
Other languages
English (en)
Other versions
CN101198982A (zh
Inventor
A·普雷塔姆
A·波米亚诺夫斯基
R·卡杜里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Priority to CN201510249480.XA priority Critical patent/CN104952047B/zh
Publication of CN101198982A publication Critical patent/CN101198982A/zh
Application granted granted Critical
Publication of CN101198982B publication Critical patent/CN101198982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

在此描述了一种用于改进在视频处理中的抗锯齿的系统和方法。实施例包括系统中的多个视频处理器(VPU)。每个VPU执行像素采样和像素中心采样(也称为多重采样以及超采样)的某种组合。每个VPU对相同的像素或像素中心执行采样,但是每个VPU都会产生的样本的位置与其他VPU的对应样本不同。每个VPU都把已经被多重采样和/或超采样的帧数据输出到合成器中,所述合成器对帧数据进行合成,以产生经过抗锯齿的渲染帧。所述经过抗锯齿的渲染帧具有有效双倍抗锯齿系数。

Description

抗锯齿系统及方法
交叉引用
与本申请同时提交的、由Philip J.Rogers、Jeffrey Cheng、DmitrySemiannokov和Raja Koduri发明的美国申请号为11/139,917的“Multiple Video Processing Unit(VPU)Memory Mapping”;
与本申请同时提交的、由Timothy M.Kelley、Jonathan L.Campbell和David A.Gotwalt发明的美国申请号为11/140,163的“ApplyNon-Homogeneous Properties to Multiple Video Processing Units(VPUs)”;
与本申请同时提交的、由Raja Koduri、Timothy M.Kelley和Dominik Behr所发明的美国申请号为11/140,114的“FrameSynchronization in Multiple Video Processing Unit(VPU)Systems”;
与本申请同时提交的、由Syed Athar Hussain、James Hunkins和Jacques Vallieres所发明的美国申请号为11/139,744的“SynchronizingMultiple Cards in Multiple Video Processing Unit(VPU)Systems”;
与本申请同时提交的、由James Hunkins和Raja Koduri所发明的美国申请号为11/140,165的“Compositing in Multiple Video ProcessingUnit(VPU)Systems”;
与本申请同时提交的、由Jonathan L.Campbell和Maurice Ribble所发明的美国申请号为11/139,893的“Dynamic Load Balancing inMultiple Video Processing Unit(VPU)Systems”;
于2005年5月27日提交的、由Yaoqiang(George)Xie和RoumenSaltchev所发明的美国申请号为11/140,040的“Computing Device withFlexibly Configurable Expansion Slots,and Method of Operation”。
在此将每个上述申请的内容全部引用以供参考。
技术领域
本发明属于图形和视频处理领域。
背景技术
图形和视频处理硬件和软件逐年继续地变得更加有能力并且更加易于获得。图形和视频处理电路典型情况下存在于计算机系统中的附加卡(add-on card)上,但是也可以位于主板本身上。图形处理器负责创建由监视器所显示的图像。在早期的基于文本的个人计算机(PC)中,这是一个相对简单的任务。然而,现代有图形能力的操作系统的复杂性已经显著地增加了要显示的信息量。实际上,现在要由系统的主处理器或中央处理器(CPU)来进行图形处理是不切实际的。结果,显示动作典型情况下已经被移交给越来越智能的图形卡,所述图形卡包括被称为图形处理单元(graphics processing units,GPU)或视频处理单元(VPU)的专用的协处理器。
在理论上,可以由计算机系统利用已知方法来生成非常高质量的复杂视频。然而,在大部分计算机系统中,质量、速度和复杂度受成本的限制。例如,当存储器需求和计算复杂度增加时,成本增加。一些系统是在远高于正常成本限制的情况下创建的,诸如用于军事飞行模拟器的显示系统。这些系统常常是非常少量生产的整体上一种类型一台(one-of-a-kind)的计算机系统。然而,以可接受的速度生成高质量的复杂视频对于相当“高端”的消费者级系统来说也可能会迅速变得价格高得惊人。因此创建还能够大量生产同时还具有不断改进的整体质量和能力的VPU和VPU系统是一个正面临的挑战。
另一挑战是创建这样一种VPU和VPU系统:其可以输送可接受的更高质量的视频、不要求过多的存储器、以所期望的速度操作、并且可与现有的计算机系统无缝兼容。
存在着一般需要在质量与性能之间做出某些折衷的视频处理的各个方面。一个例子就是校正锯齿(aliasing),通常被称作是抗锯齿(anti-aliasing)或“AA”。锯齿是由于渲染处理的人工因素出现在所显示的帧中而产生的公知的效应。渲染由VPU来执行,且包括绘制要显示的像素。锯齿包括边缘锯齿及表面锯齿。边缘锯齿会在应当看上去平滑的边缘中产生阶梯。表面锯齿包括闪现(flashing)或“弹出(poping)”非常细小的多角形,往往被称为莫尔图案(moirepatterns)。用于减轻这些效应的现有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所产生的与图10A相同的屏幕;
图11A显示了不采用SSAA所产生的屏幕;
图11B显示了利用2XSSAA所产生的与图11A相同的屏幕;
图12是根据一个实施例的包括抗锯齿的视频处理系统的框图;
图13是根据一个实施例的包括抗锯齿的视频处理系统的各个组件的框图;
图14是视频处理系统的更详细的框图,其配置与根据实施例的图13的配置相似;
图15是依照一个实施例的单卡视频处理系统的示意图;
图16是依照一个实施例的单卡视频处理系统的示意图;
图17是依照一个实施例的双卡视频处理系统的示意图;
图18是依照一个实施例的双卡视频处理系统的示意图;以及
图19是依照一个实施例的连结模块(interlink module,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(来自Silicon Graphics)。
API 104可以是用于运行视频应用程序的多个可用API中的任何一个。API 104与驱动器106进行通信。驱动器106典型情况下由视频硬件的制造商编写,并且驱动器106将从API接收的标准代码转换为硬件所理解的本地格式。驱动器允许来自例如应用程序、进程或用户直接设置的输入。在此处描述的实施例中,这种设置包括用于选择多重采样系数、超采样系数或其组合的设置。例如,用户可以经由用户接口(UI)来选择设置,所述用户接口包括利用如这里所描述的视频处理硬件和软件向用户所提供的UI。
在一个实施例中,视频硬件包括两个视频处理单元:VPU A 108和VPU B 110。在其它实施例中,可以有少于或多于两个的VPU。在各个实施例中,VPU A 108和VPU B 110是完全相同的。在各个其它实施例中,VPU A 108和VPU B 110不是完全相同的。下面将非常详细地描述包括视频处理系统的不同配置的各个实施例。
驱动器106向VPU A 108和VPU B 110发出命令。同时向VPU A108和VPU B 110发出的命令用于处理将要显示的同一帧。VPU A 108和VPU B 110均执行用于处理该帧的一系列命令,包括以一种可编程的方式,从API中所接收到的样本位置开始相对于像素和/或像素中心偏移样本位置。驱动器106可编程地命令VPUA 108和VPU B 110按照抗锯齿(AA)系数来多重采样和/或超采样像素和/或像素中心。在一个实施例中,VPU A和VPU B相对于相同的像素和/或像素中心偏移样本,但是把它们偏移到不同的样本位置。
当VPU A 108和VPU B 110中的任何一个完成执行用于该帧的命令时,该帧数据被发送到合成器114。合成器114选择性地包括在连结模块112中,如下面更完整地描述。在合成器114中组合或合并或合成来自VPU A 108和VPU B 110中每一个的帧数据,以产生将要被渲染到显示器116的帧。在要显示的帧中,AA采样系数实际上乘以VPU的数目。例如,如果每个VPU执行2X采样,则要显示的帧就包括4X采样。在各个实施例中,驱动器104是可编程的,以指导VPU A 108和VPU B 110来执行按照可选放大系数的多重采样、按照可选放大系数的超采样、或者按照可选放大系数的多重采样与按照可选放大系数的超采样的组合。如这里所用,术语组合、合并、合成、混合或连结指的都是如这里所描述的IM 112和/或合成器114的相同能力。
图2是依照一个实施例的利用AA的视频处理200的示意图。如参考图1所在先描述的那样,VPU A 208和VPU B 210均根据来自可编程驱动器(未示出)的指令来处理视频数据。显示了由VPU A 208所输出的采样图案213的图例。采样图案213是用于表明2X采样的12×12网格。对于每一个像素来说,在12×12网格中放入2个像素样本。12×12的尺寸仅仅是举例的目的,也可以设想任何其他可操作的尺寸。在所示例子中,黑色正方形是像素中心,而“X”是像素样本。像素样本偏离于由API(未示出)所指定的初始默认位置。偏移位置可在驱动器中进行编程,并且在从驱动器到VPU A 208的命令中对其进行指定。
在整个说明书中,为了方便起见,由VPU输出的样本图案还被称为VPU的输出。例如,样本图案213还被称为VPU A 208的输出213。本领域技术人员应当理解并明白,由VPU输出的样本图案(或此处被称为VPU的输出)在大多数实施例中不被输出到显示器中。相反地,由VPU输出的样本图案(或其一部分)用来产生最终要被输出到诸如LCD、平板CRT等等之类的显示器的帧或其一部分。也就是说,所输出的样本图案在当前实施例和大多数实施例中被用作到VPU的另一部分的输入,以产生要输出到显示器的帧(或其一部分)。
由VPU A 208在线性空间中以一种已知的方式对样本进行平均。然而,像素数据一般在伽玛(gamma)空间中,因此必须在进行平均之前用去伽玛(degamma)运算来转换到线性空间。VPUA 208执行去伽玛运算,执行平均运算,然后执行伽玛运算以便使VPU的输出处于伽玛空间中。通常这么做是为了提高所显示图像的质量。因此再次重申,在常规系统中,VPU的输出自动处于伽玛空间中。然而,在此处的各个实施例中,所需要的是具有在线性空间中的输出,以便进行如下所述的组合或合成操作。因此,VPU A 208执行额外的去伽玛运算以把输出213转换到线性空间。在一个实施例中,VPU A 208的视频流水线中的纹理单元用来执行去伽玛运算。在其他实施例中,这个去伽玛运算可在VPU外部执行,例如在合成器212中执行。
作为伽玛校正的一个例子,专利号为5,398,076、题目为“GammaCorrecting Processing of Video Signals”(授权给ATI技术公司)的美国专利中,描述了一种包括像素数据的伽玛校正的处理视频信号的方法。另外,专利号为6,020,921、题目为“Simple Gamma CorrectionCircuit for Multimedia”(授权给ATI技术公司)的美国专利中描述了一种伽玛校正电路。在一个实施例中,根据以下函数来执行伽玛校正:
If(X<=0.00304)
Y=12.92*X;
Else
Y=1.055*pow(x,1.0/2.4)-0.055
在一个实施例中,根据以下函数来执行去伽玛运算
If(X<=0.03928)
Y=X/12.92
Else
Y=pow(X+0.055)/1.055,2.4)
在一个实施例中,由合成器212执行的算法也可以如下所述:对(来自VPUA 208和VPU B 210)两个输入流上的每一个像素的三原色中的每一种进行平整(flatten);把VPU A 208与VPU B 210之间的每种相应颜色相加;除以2并转到下一步(例如,(slave green+master green)/2->预先输出的绿色);以及把预先输出的像素转换回经过伽玛校正的颜色值。在一个实施例中,采用了伽玛校正查找表。
类似地,显示了来自VPU B 210的输出215。输出215是用于表明2X采样的12×12网格。对于每一个像素来说,在12×12网格中放入2个像素样本。12×12的尺寸仅仅是举例的目的,也可以设想任何其他可操作的尺寸。在所示例子中,黑色正方形是像素中心,而“X”是像素样本。像素样本偏离于由API(未显示)指定的初始默认位置。偏移位置可在驱动器中进行编程,并且在从驱动器到VPU B210的命令中对其进行指定。
由VPU B 210在线性空间中以一种已知的方式对样本进行平均。然而,像素数据一般在伽玛空间中,因此必须在进行平均之前用去伽玛运算来转换到线性空间。VPU B 210执行去伽玛运算,执行平均运算,然后执行伽玛运算以便使VPU的输出处于伽玛空间中。通常这么做是为了提高所显示图像的质量。因此再次重申,在常规系统中,VPU的输出自动处于伽玛空间中。然而,在此处的各个实施例中,所需要的是具有在线性空间中的输出,以便进行如下所述的组合或合成操作。因此,VPU B 210执行额外的去伽玛运算以把输出215转换到线性空间。在一个实施例中,VPU B 210的视频流水线中的纹理单元用来执行去伽玛运算。
线性输出213和215在合成器214中组合。合成器214选择性地包括在连结模块212中,如下面更完整地描述。来自VPU A 208和VPU B 210中每一个的帧数据在合成器214中被合并、或组合、或合成以产生要渲染到显示器(未显示)的帧。合成操作是在线性空间中的。合成器214完成合成操作,并且对结果执行伽玛运算以产生要显示的经过伽玛校正的帧数据。输出217包括经过伽玛校正的像素数据,并且显示如何组合输出213和215。每个输出213和215都被2X多重采样,而输出217被4X次多重采样。因此,如视频处理实施例200中所示那样,利用一次通过视频流水线就可获得更为改进的多重采样结果。如下参考图3-8所述的那样,也可以通过编程来选择其他抗锯齿模式,以包括多重采样与超采样(对像素中心进行采样)的各种组合。
参考图3-8,举例说明了根据所描述的实施例的抗锯齿的若干模式。在图3-8的每一个中,VPU A的像素表示为星号,VPU A的像素中心表示为黑色网格方框,VPU B的像素表示为条纹网格方框,以及VPU B的像素中心表示为同心圆。图3是显示先前参考图2所描述的模式的示意图。这种模式称为具有1XSSAA的4XMSAA,或具有1X超采样AA的4X多重采样AA(其中,“4”被称为MS系数,而“1”被称为SS系数)。VPU A和VPU B每一个都分别对313和315中所示的像素进行采样。在把313与315组合或合成之后,要显示的输出是317,如所示。
图4是显示一种具有1XSSAA的8XMSAA的模式或者采用1X超采样AA的8X多重采样AA的示意图。VPU A和VPU B每一个都分别对413和415中所示的像素进行采样。在把413与415组合或合成之后,要显示的输出是417,如所示。
图5是显示一种具有1XSSAA的12XMSAA的模式或者具有1X超采样AA的12X多重采样AA的示意图。VPU A和VPU B每一个都分别对513和515中所示的像素进行采样。在把513与515组合或合成之后,要显示的输出是517,如所示。
图6是显示一种具有2XSSAA的4XMSAA的模式或者具有2X超采样AA的4X多重采样AA的示意图。VPU A和VPU B每一个都分别对613和615中所示的像素进行采样。在这种模式中,由VPUA和VPU B中的每一个对样本进行不同地偏移。在把613与615组合或合成之后,要显示的输出是617,如所示。
图7是显示一种具有2XSSAA的8XMSAA的模式或者具有2X超采样AA的8X多重采样AA的示意图。VPU A和VPU B每一个都分别对713和715中所示的像素进行采样。在这种模式中,由VPUA和VPU B中的每一个对像素样本进行不同地偏移。在把713与715组合或合成之后,要显示的输出是717,如所示。
图8是显示一种具有2XSSAA的12XMSAA的模式或者具有2X超采样AA的12X多重采样AA的示意图。VPU A和VPU B每一个都分别对813和815中所示的像素进行采样。在这种模式中,由VPUA和VPU B中的每一个对像素样本进行不同地偏移。在把813与815组合或合成之后,要显示的输出是817,如所示。
图3-8作为可被配置的AA模式的例子而被给出。也可设想任何其他的组合。例如MS系数与SS系数的不同组合、或者没有MS仅有SS也都是可能的。未明确显示的AA系数与MS系数都是可以设想的。
图9和11是AA结果的示意图。图9A和9B分别显示了6XMSAA和12XMSAA的结果。如所看到的那样,当MS系数提高时边缘锯齿效应减小。
图10A和10B是举例说明由于SS所造成的表面锯齿的降低而导致质量提高的示意图。图10A显示了在没有SSAA的情况下所产生的屏幕。图10B显示了利用2XSSAA所产生的与图10A相同的屏幕。在图10B中显著地降低了莫尔效应。
图11A和11B分别是图10A和10B的屏幕的局部放大图的示意图。图11A显示了不用SSAA所产生的屏幕。图11B显示了利用2XSSAA所产生的屏幕。
所描述的抗锯齿方法和设备还适用于未特别描述的其他类型的采样,包括二次采样和过采样(oversampling)。所描述的方法和设备还适用于时间域抗锯齿(temporal antialiasing)。例如,在一个实施例中,多个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通信。API 1204可以是可用的图形或视频或3D API(包括DirectX(来自Microsoft)和OpenGL(来自Silicon Graphics))中的任何一个。
API 1204与驱动器1206通信。驱动器1206是为系统1200专门编写的,驱动器1206将从API 1204所接收的标准代码转换为VPU组件所理解的本地格式,下面将更完整地进行解释。
在一个实施例中,系统1200还包括两个VPU:VPU A 1208和VPU B 1210。本发明不局限于两个VPU。如这里所描述的本发明的各个方面可以在进行了对于本领域技术人员显而易见的修改之后采用一个VPU来实行。然而,所述系统在一个VPU的情况下将会没有采用一个以上VPU的情况高效。各个实施例还包括两个以上的VPU。在进行了对于本领域技术人员显而易见的修改后,可以实现具有两个以上VPU的系统,并且在至少一些情况下可能会比具有两个VPU的系统提供更好的效能。在各个实施例中,VPUA 1208和VPU B 1210可以是视频卡上,其每一个都包括视频处理器以及其他的相关硬件。如下面将进一步解释,本发明并不局限于此。例如,一个以上的VPU可以位于一个卡或板上。然而,如这里所提及,VPU旨在至少包含视频处理器。
VPU A 1208和VPU B 1210通过相应的环形缓冲器(ring buffer)A 1222和B 1224接收来自驱动器1 206的命令和数据。所述命令指示VPUA 1208和VPU B 1210对该数据执行各种操作,以便最终生成用于显示器1230的渲染帧。
驱动器1206可以访问共享存储器1205。在一个实施例中,共享存储器1205或系统存储器1205是计算机系统上的存储器,其可由计算机系统总线上的其它组件访问,但是本发明并不局限于此。
在一个实施例中,共享存储器1205、VPUA 1208和VPU B 1210都可以访问共享通信总线1234,由此可以访问所述总线1234上的其它组件。在一个实施例中,共享通信总线1234是外围组件接口快速(peripheral component interface express,PCIE)总线,但是本发明并不局限于此。
在以下文献中具体地描述了PCIE总线,这里通过将其全部引用加以结合以供参考:
PCI ExpressTM,Base Specification,修订版1.1,2005年3月28日;
PCI ExpressTM,Card Electromechanical Specification,修订版1.1,2005年3月28日;
PCI ExpressTM,Base Specification,修订版1.a,2003年4月15日;和
PCI ExpressTM,Card Electromechanical Specification,修订版1.0a,2003年4月15日。
所有上述文献的版权为PCI-SIG所有。
在一个实施例中,VPU A 1208和VPU B 1210经由总线1234使用对等(peer-to-peer)协议来直接互相通信,但是本发明并不局限于此。在其它实施例中,在VPU A 1208和VPU B 1210之间可以有直接的专用通信机制。
VPU A 1208和VPU B 1210均分别具有可用的本地视频存储器1226和1228。在各个实施例中,其中一个VPU作为主VPU,而其它VPU作为从VPU,但是本发明并不局限于此。在其它实施例中,所述多个VPU可以是在另一组件的中央控制下的对等体。在一个实施例中,VPU A 1208充当主VPU并且VPU B 1210充当从VPU。
在一个这种实施例中,各种协调和组合功能由连结模块(interlinkmodule,IM)1212来执行,所述连结模块1212与VPU A 1208位于同一个卡上。这被示为用实线封闭的IM 1212。在这个实施例中,VPUA 1208和VPU B 1210经由总线1234相互通信,总线1234用于传送VPU之间的通信(例如,命令和控制)和数据。例如,当VPU B 1210向VPU A 1208上的IM 1212传送输出帧以便进行合成时(例如图1和2所示),该帧经由总线1234进行传送。
在各个其它实施例中,IM 1212并不位于VPU卡上,而是一个VPUA 1208和VPU B 1210均与其进行通信的独立组件。一个这种实施例包括“保护装置(dongle)”中的IM 1212,该“保护装置”易于被连接到VPU A 1208和VPU B 1210。这在图中由虚线封闭的IM1212来表示。在这个实施例中,VPUA 1208和VPU B 1210经由IM连接1232来至少执行一些通信。例如,VPU A 1208和VPU B 1210可以使用总线1234来传送命令和控制信息,并且经由IM连接1232来传送诸如帧数据之类的数据。
存在作为本发明不同实施例所设想的系统1200的许多配置。例如,如下所述的图13-17只图示了一些实施例。
图13是依照一个实施例的系统1300的各个组件的框图。系统1300包括主VPU卡1352和从VPU卡1354。主VPU卡1352包括主VPU1308,并且从VPU卡1354包括从VPU B 1310。在一个实施例中,VPU 1308和1310均经由PICE总线1334来通信。在一个实施例中,PCIE总线1334是被划分成两个X8 PCIE总线1335的X16总线。VPUA 1308和B 1310中的每一个都被连接到总线1335。在一个实施例中,VPU A 1308和VPU B 1310只经由总线1335通信。在一个候选实施例中,VPU A 1308和VPU B 1310部分经由总线1335并且部分经由专用卡间连接1337来通信。在其它实施例中,VPUA 1308和VPU B 1310专门地经由连接1337来通信。
主VPU卡1352包括IM 1512。在VPU A 1308和VPU B 1310经由总线1335通信的一个实施例中,每个VPU处理一个帧,包括参考图1和2所阐述的采样。作为图13中的一个例子,显示为由系统1300执行4XMSAA。主VPU A 1308产生输出1309并且从VPU B 1310产生输出1311。输出1309和1311被输入到IM 1312以便进行如上所述的合成。在一个实施例中,从VPU B 1310经由如同点划线路径1363所示的总线1335和1334将其输出1311传送到IM 1312。在一个实施例中,从VPU B 1310经由如同点划线路径1361所示的专用卡间连接1337将其输出1311传送到IM 1312。IM 1312按照如上所述的那样组合所述输出1309和1311,以便生成用于显示的帧,其包括4XMSAA。此帧被IM 1312经由连接器1341输出到显示器1330。
主VPU卡1352包括连接器1340和1341。从VPU卡1354包括连接器1342和1343。连接器1340、1341、1342和1343是本领域中公知的用于发送所需信号的连接器。例如,在一个实施例中,连接器1341是“数字视频输入(digital video in,DVI)”连接器。可以有多于或少于在图1300中所示出的连接器数量。
在一个实施例中,这里所描述的各个配置可由用户来配置,以便使用任意数量个可用的VPU进行视频处理。例如,系统1300包括两个VPU,但是在穿越(pass-through)模式下,用户可以选择只使用一个VPU。在这种配置中,其中一个VPU可以是有效的,而另一个可能是无效的。在这种配置中,如这里所描述的抗锯齿可能是不可用的。然而,所启用的VPU可以执行常规的抗锯齿。从VPU卡B 1354到显示器1330的点划线路径1365表示在穿越模式中可以单独使用从VPU B 1310进行视频处理。类似地,在穿越模式中可以单独使用主VPU A 1308进行视频处理。
图14是系统1400的更详细的框图,所述系统1400是与依照一个实施例的图13的系统相类似的配置。所述系统1400包括两个VPU卡,主VPU卡1452和从VPU卡1454。主VPU卡1452包括主VPUA 1408,并且从VPU卡1454包括从VPU B 1410。
主VPU卡1452还包括接收器1448和发送器1450,其在一个实施例中用于接收和发送TDMS信号。在一个实施例中,双重连接器1445是DMS连接器。主卡还包括用于向显示器输出数字视频信号的DVI连接器1446,所述数字视频信号包括帧数据。主VPU卡1452还包括视频数模转换器(DAC)。如同所示,连结模块(IM)1412连接在VPU 1408和发送器以及接收器之间。VPU A 1408包括集成的收发器(被标记为“集成”)和数字视频输出(DVO)连接器。
从VPU卡1454包括两个DVI连接器1447和1448。从VPU B1454包括DVO连接器和集成收发器。作为经由PCIE总线(未示出)进行通信的候选实施例,主VPU卡1408和从VPU卡1410经由专用的卡间连接1437来通信。
图15-17是系统配置的其他实施例的图。图15是依照一个实施例的单卡系统1500的图。所述系统1500包括“超级卡(supercard)”或“巨卡(monstercard)”1558,其包括一个以上的VPU。在一个实施例中,超级卡1558包括两个VPU,主VPU A 1508和从VPU B 1510。超级卡1558还包括IM 1512,IM 1512包括如先前所述的用于组合或合成来自两个VPU的数据的合成器,。在其它实施例中还可以用专用的卡上VPU间连接来进行VPU间通信(未示出)。在一个实施例中,主VPU A 1508和从VPU B 1510均被连接到X8 PCIE总线1535,所述X8 PCIE总线1535源自X16 PCIE总线1534。
所述系统1500包括先前所描述的多个VPU(还被称为多VPU)的功能中的全部功能。例如,主VPUA 1508对所采样的帧1509进行处理并且将其输出到IM 1512。从VPU B 1510处理并输出所采样的帧1511,其被传送到IM 1512以进行组合或合成。如前面参考图1300所述,所述传送经由PCIE总线1534或经由专用的VPU间连接(未示出)来执行。无论哪种情况,都将所合成的帧从IM 1512输出到显示器1530。
在穿越模式中,还可以禁止多VPU能力并且使用其中一个VPU来独自执行视频处理。这例如由短划线路径1565来示出,所述短划线路径1565图示了被连接到显示器1530以输出用于显示的帧数据的从VPU B 1510。在穿越模式中,主VPU A 1508还可以通过在路径1566上输出帧数据来单独工作。
图16是依照一个实施例的单卡系统1600的图。所述系统1600包括“超级卡”或“巨卡”1656,其包括一个以上的VPU。在一个实施例中,超级卡1656包括两个VPU,主VPU A 1608和从VPU B1610。超级卡1656还包括IM 1612,IM 1612包括先前所述的用于组合或合成来自两个VPU的数据的合成器。在其它实施例中,还可以用专用的卡上VPU间连接来进行VPU间通信(未示出)。在一个实施例中,主VPU A 1608和从VPU B 1610均经由卡上桥(on-cardbridge)1681连接到X16 PCIE总线1634。
系统1600包括先前所述的多VPU功能中的全部功能,包括所描述的抗锯齿能力。例如,主VPU A 1608对所采样的帧1609进行处理并且将其输出到IM 1612。从VPU B 1610处理并输出所采样的帧1611,其被传送到IM 1612以进行组合或合成。如参考图1300先前所述的,经由PCIE总线1634或经由专用VPU间连接(未示出)来执行传送。无论哪种情况,都将所合成的帧从IM 1612输出到显示器(未示出)。
在穿越模式中,还可以禁止多VPU能力并且使用其中一个VPU来独自执行视频处理。这例如借助短划线路径1665来示出,所述短划路径1665图示了被连接到输出端以便传送将要显示的帧的从VPUB 1610。在穿越模式中,主VPU A 1608还可以通过在路径1666上输出帧数据来单独工作。
图17是依照一个实施例的双卡系统1700的图。所述系统1700包括两个对等的VPU卡1760和1762。VPU卡1760包括VPUA 1708,并且VPU卡1762包括VPU 1710。在一个实施例中,VPUA 1708和VPU 1710是完全相同的。在其它实施例中,VPU A 1708和VPU B1710不是完全相同的。VPU A 1708和VPU 1710均被连接到从X16PCIE总线1734划分出来的X8 PCIE总线1735。VPUA 1708和VPU1710还均被连接,以便经由卡连接器向连结模块(IM)1712输出数据。在一个实施例中,IM 1712是“保护装置”中的集成电路,所述“保护装置”可被容易地连接到VPU卡1760和VPU卡1762。在一个实施例中,IM 1712是一个专门设计成包括这里所描述的所有合成功能的集成电路。IM 1712合并或合成由VPU A 1708和VPU 1710所输出的帧数据并且向显示器1730输出可显示的合成帧。
图18是依照一个实施例的双卡系统1800的图。所述系统1800类似于系统1700,但是被配置为在旁路模式下操作。系统1800包括两个对等体VPU卡1860和1862。VPU卡1860包括VPU A 1808,并且VPU卡1862包括VPU B 1810。在一个实施例中,VPU A 1808和VPU 1810是完全相同的。在其它实施例中,VPU A 1808和VPU B1810不是完全相同的。VPU A 1808和VPU B 1810均被连接到从X16PCIE总线1834划分出来的X8 PCIE总线1835。VPUA 1808和VPU1810还均被经由卡连接器连接,以便向连结模块(IM)1812输出数据。在一个实施例中,IM 1812是“保护装置”中的集成电路,所述“保护装置”可被容易地连接到VPU卡1860和VPU卡1862。在一个实施例中,IM 1812是一个专门设计成包括先前所述的所有合成功能的集成电路。IM 1812还可配置为在穿越模式下操作,在所述穿越模式下,一个VPU独自操作而其它VPU未被启用。在这种配置中,如这里所描述的抗锯齿将会是不可用的。然而,启用的VPU可以执行常规的抗锯齿。在图18中,VPU A 1808被启用并且VPU B 1810被禁止,但是在旁路模式中,任何一个VPU可以工作,以便向显示器1830输出。
例如在图13-18中,如这里所示的配置目的是作为可能实施例的非限制性例子。其它配置也在如权利要求所定义的本发明的范围之内。例如,其它实施例包括在计算设备上安装或并入的第一VPU,所述计算设备诸如个人计算机(PC)、笔记本计算机、个人数字助理(PDA)、TV、游戏控制台、手持式设备等。第一VPU可以是集成VPU(也称为集成图形处理器或IGP)或者为非集成VPU。第二VPU被安装或并入到坞站(docking station)或外部封装单元。第二VPU可以是集成VPU或非集成VPU。
在一个实施例中,坞站专用于支撑第二VPU。第二VPU和第一VPU如这里所描述的进行通信,以便如所描述地协作执行视频处理并且生成输出。然而在这种实施例中,第二VPU和第一VPU经由一根或多根电缆或者易于连接和分离的其它机制来进行通信。这种实施例对于使计算设备能够通过与另一VPU协作来显著地增强其能力来说是特别有用的,所述计算设备在物理上可能很小并且具有有限的视频处理能力。
本领域普通技术人员应当理解,其他候选实施例可以包括在单片(single die)上的多个VPU(例如,单片上的两个VPU),或者在单个硅芯片上有多个核心。
图19是依照一个实施例的连结模块(IM)1912的框图。所有渲染命令都由系统中的每个VPU取出。在依照这里所描述的任何一个多VPU配置中,在VPU执行了所取出的命令之后,IM 1912合并来自多个VPU的像素和控制线路的流并且输出单个数字视频输出(DVO)流。
IM 1912包括主输入端口,用于接收来自主VPU的DVO流。在诸如在图17和18中所示出的那些配置的“保护装置”配置中,主VPU输入可以来自TDMS接收器。作为替代,在例如图13和14中所示的多卡配置中,主VPU输入可以来自主VPU卡上的主VPU。同步寄存器1902接收来自主VPU的DVO数据。
IM 1912还包括从输入端口,用于接收来自从VPU的DVO流。在“保护装置”配置中,诸如在图17和18中所示出的配置或者在图13和14中所述的卡配置中,从VPU输入可以来自TDMS接收器。作为替代,在例如图15和16中所示的“超级”VPU卡配置中,从VPU输入可以来自“超级”VPU卡结构上的从VPU。IM 1912包括从端口上的FIFO 1904,以便帮助在主VPU和从VPU之间同步输入流。
来自主VPU和从VPU的输入数据被传送给扩展模式混合器1914和多路复用器(MUX)1916。在一个实施例中,扩展模式混合器提供合成功能,以根据此处描述的实施例来执行抗锯齿。此处描述的抗锯齿功能还被称为“superAA”。IM 1912可配置为以多种合成模式来进行操作,包括此处描述的superAA抗锯齿模式。在一个实施例中,superAA模式是多个“扩展”模式之一。合成模式包括交替的帧渲染(alternate frame rendering,AFR)模式,在模式中,由不同的VPU交替地渲染帧。合成模式还包括“变黑(blacking)”模式,在该模式中,每个VPU被给予帧的不同部分以进行处理。未处理的帧的部分被指定为包含“变黑”像素。当通过扩展模式混合器1914或者通过仅选择不黑的像素而将由两个VPU处理的帧的部分组合时,显示整个帧。
控制逻辑确定IM 1912在哪种合成模式下操作,控制逻辑包括黑色寄存器1906和MUX路径逻辑与黑色比较器1908。MUX路径逻辑与黑色比较器1908的输出是对MUX 1916和扩展模式混合器1914的一个选择输入,并且决定这些组件中哪一个输出数据。数据被输出到TDMS传送器1918或DAC 1920。
在一个实施例中,在多个VPU以及IM 1912之间的组件间通信包括多种I2C总线和协议。
如表6所示,通过I2C寄存器比特1924和TMDS控制比特1922的组合,来设置包括多种合成模式在内的多种操作模式。
表1:操作模式和控制比特
类别
I2C比特 TMDS Cntr比特 注释
穿越 Slave(从) INTERLINK_ENABLE=0CONTROL_BITS_2:Bit3=x n/a 使用第一I2C访问来确定路径
穿越 Master(主) INTERLINK_ENABLE=0CONTROL_BITS_2:Bit3=x n/a 使用第一I2C访问来确定路径
连结 AFR_MANUAL INTERLINK_ENABLE=1CONTROL_BITS_2:Bit3=0 AFR_MAN_ON*=0AFR_AUTO*=1 xAFR_MAS状态改变控制下一个数据路径
连结 AFR_AUTO INTERLINK_ENABLE=1CONTROL_BITS_2:Bit3=0 AFR_MAN_ON*=0AFR_AUTO*=0
连结 BLACKING INTERLINK_ENABLE=1CONTROL_BITS_2:Bit3=0 AFR_MAN_ON*=1AFR_AUTO*=x 使用黑色像素来确定数据路径
连结 SuperAA INTERLINK_ENABLE=xCONTROL_BITS_2:Bit3=1 n/a CONTROL_BITS_2:Bit 4-7决定扩展模式
依照一个实施例,存在经由IM 1912的两个独立的数据路径。来自各个VPU的两个输入像素流中任意一个通过MUX 1916(在穿越模式或“标准”连结模式中)进行处理,或者在扩展模式(包括超级AA模式)中通过混合器1214进行处理。如此处所采用的那样,“连结”或连结模式暗示了并非穿越模式的任何多VPU模式。在MUX 1916中,选择来自VPUA或VPUB中任意一个的仅一个像素通过,并且不涉及任何像素处理。在扩展模式混合器1914中,在逐个像素基础上进行处理。然而,对所述像素进行处理、平均在一起、并且再次进行处理。在一个实施例中,处理步骤包括使用一个或多个查找表来产生中间或最终结果。
由I2C寄存器比特和控制比特来确定在MUX 1916路径和混合器1914路径之间的选择。例如,如果出现以下条件则选择混合器1914路径:
ENABLE_INTERLINK=1(I2C寄存器)
并且CONTROL_BITS_2:Bit 3和Bit 4=1(ExtendedModes和SuperAA)
(否则MUX)。
本发明的上述方面可以被实现为编程到任何种类电路中的功能,所述电路包括但不局限于可编程逻辑器件(PLD),诸如现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)器件、电可编程序逻辑与存储设备、以及基于标准单元的设备、以及专用集成电路(ASIC)和完全定制的集成电路。用于实现本发明方面的其它可能选择包括:具有存储器(诸如电可擦可编程只读存储器(EEPROM))的微控制器、嵌入式微处理器、固件、软件等。此外,可以在微处理器中实现本发明的各个方面,所述微处理器具有基于软件的电路仿真、离散逻辑(顺序的和组合的)、定制器件、模糊(神经)逻辑、量子器件和以上任何器件类型的混合。当然,可以采用各种组件类型来提供基础的器件技术,例如,像互补金属氧化物半导体(CMOS)之类的金属氧化物半导体场效应晶体管(MOSFET)技术、像发射极耦合逻辑(ECL)之类的双极技术、聚合物技术(例如,硅共轭聚合物和金属共轭聚合物-金属结构)、混合的模拟与数字、等等。
除非上下文清楚地要求否则遍及说明书和权利要求,词“包括”、“包含”等将依照相容意义来解释,而不是排除或穷举意义;即在“包括但不限于”的意义上。使用单数或复数的词还分别包括复数和单数。另外,词“这里”、“在此”、“以上”、“以下”和类似输入的词当在本申请中使用时,指的是本申请的整体而不是本申请的任何特定部分。当就两个或多个项的列表使用词“或”时,该词覆盖了此词的所有以下解释:列表中的任何项、列表中的所有项和所述列表中项的任何组合。
本发明所举例说明的实施例的上述描述,并不意图对本发明进行穷举或将其限制为所公开的形式。虽然,为了说明性目的描述了本发明的具体实施例和例子,然而相关领域内分技术人员将认识到,在本发明的范围内可以进行各种等效的修改。这里所提供的本发明教导可以应用于其它系统,而不仅是用于包括如上所述的图形处理或视频处理的系统。
例如,按照在此的描述而生成的抗锯齿图像可以被输出到各种显示设备,包括用于显示运动图像的计算机显示器和用于打印静态图像的打印机。
所描述的各种操作可以在各种体系结构中实行,并且可以与所描述的内容相比不同地分布。作为一个例子,在分布式系统中,服务器可以执行一些或所有渲染处理。另外,尽管这里描述了许多配置,然而都并不意在是限制性或排他性的。例如,还可以在包括集成图形处理器(IGP)或视频处理器以及分立式图形或视频处理器的系统中实现本发明,其中,如所描述来合并或合成由集成和分立处理器中的每一个所处理的帧数据。此外,还可以在包括一个或多个IGP器件与一个或多个分立图形或视频处理器的组合的系统中实现本发明。
在未示出的其它实施例中,VPU的数量可以大于二。
在其它实施例中,这里所描述的一些或所有硬件和软件能力可以存在于打印机、照相机、电视、手持式设备、移动电话或其它设备中。这里所描述的抗锯齿技术可以被应用为从视频序列中构造动画的过程的一部分。
可以组合上述各个实施例中的元素和动作,以便提供其他实施例。按照上述详细说明,可以对本发明进行这些及其它改变。
通常在附带的权利要求中,所使用的术语不应当被解释为把抗锯齿方法及其系统限制为在说明书和权利要求中所公开的具体实施例,而是应当解释为包括根据这些权利要求进行工作以提供抗锯齿的任何处理系统。因此,抗锯齿方法和系统并不受此公开的限制,而且作为替代,所述抗锯齿方法和系统的范围将完全由权利要求来确定。
虽然在附带的权利要求中依照特定的权利要求形式给出了用于抗锯齿的方法和设备的某些方面,但是发明人意在给出采用任何数量的权利要求形式的用于抗锯齿的方法及其设备的各个方面。例如,虽然仅仅将用于抗锯齿的方法和设备的一个方面陈述为将其具体化在计算机可读介质中,然而其它方面同样也可以被具体化到计算机可读介质中。因此,发明人保留在提交本申请之后增加附加权利要求的权力,以便追求这种用于抗锯齿的方法和设备的其它方面的附加要求形式。

Claims (37)

1.一种用于执行抗锯齿的系统,包括:
至少一个驱动器,用于从视频应用程序接收视频数据;
多个视频处理单元VPU,耦合于所述至少一个驱动器且用于从所述至少一个驱动器中接收命令和同一组视频数据以处理来自所述视频应用程序的所述视频数据,其中,所述命令包括向每一个所述VPU发出的不同的抗锯齿命令,所述抗锯齿命令指导每一个所述VPU对所述同一组视频数据执行不同的抗锯齿操作;
一个或多个连结模块,其耦合于所述多个VPU中的每一个,其中,所述连结模块用于在线性空间中合成对所述同一组视频数据所执行的不同抗锯齿操作的结果,以产生要显示的帧数据,并且其中,所述要显示的帧数据实现了基于所述多个VPU的数量,在对所述多个VPU的一次通过中对所述同一组视频数据的抗锯齿操作。
2.如权利要求1所述的系统,其中,所述不同的抗锯齿操作包括:每一个所述VPU从相同像素数据中产生不同的样本从而使得所述不同的样本至少在样本位置方面不同。
3.如权利要求1所述的系统,其中,所述不同的抗锯齿操作包括以下一种或多种:多重采样、超采样以及时间域抗锯齿。
4.如权利要求3所述的系统,其中,所述不同的抗锯齿操作的结果包括:
多重采样操作;以及
超采样操作。
5.如权利要求3所述的系统,其中,所述多重采样操作包括多重采样系数或超采样系数。
6.如权利要求5所述的系统,其中,所述要显示的帧数据的多重采样系数或超采样系数是所述多重采样系数或超采样系数与在所述多个VPU中包含的VPU数量的乘积。
7.如权利要求1到3中任意一项所述的系统,还包括:用户接口,用于接收来自用户、应用程序、进程中至少一个的输入,所述输入包括进行输入以选择要在所述多个VPU之中执行的所述不同的抗锯齿操作的合成。
8.如权利要求1到3中任意一项所述的系统,其中,所述多个VPU中的每一个用于在伽玛空间与线性空间之间变换视频数据。
9.如权利要求1到3中任意一项所述的系统,其中,所述多个VPU中的每一个VPU包括纹理单元,所述纹理单元用于把平均采样视频数据变换到线性空间以便由该VPU输出。
10.如权利要求9所述的系统,其中,所述连结模块用于从所述多个VPU中的每一个VPU接收在线性空间中的所述平均采样视频数据,以进行合成。
11.如权利要求1到3中任意一项所述的系统,其中,所述连结模块还用于对从所述多个VPU接收的数据进行合成以产生合成数据,并对所述合成数据进行伽玛校正以产生经过伽玛校正的输出帧数据。
12.一种用于处理视频数据的方法,所述方法包括:
为多个视频处理单元VPU产生命令,其中,所述命令包括用于处理相同特定视频帧的数据和指令,并且其中,所述指令中的至少一些专用于一个或多个特定VPU,所述指令包括抗锯齿指令;
所述多个VPU中的每一个VPU根据所述命令并行地处理所述相同特定视频帧的视频数据,所述处理包括对所述视频数据执行至少一种抗锯齿操作,以产生用于所述特定视频帧的输出数据,其中,在对所述多个VPU的一次通过中对所述相同特定视频帧执行抗锯齿操作;以及
在线性空间中合成来自每个所述VPU的所述输出数据,以产生输出视频帧,其中,所述输出视频帧的抗锯齿系数大于来自任何一个所述VPU的任何所述输出数据的抗锯齿系数。
13.如权利要求12所述的方法,其中,所述抗锯齿指令包括从包含以下各项的组中选出的至少一个指令:根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿。
14.如权利要求12或13所述的方法,其中,所述专用于一个或多个特定VPU的指令包括用于从特定像素数据中产生像素数据样本的指令,其中,所述多个VPU中不同的VPU会从相同的特定像素数据中产生不同的样本。
15.如权利要求14所述的方法,其中,所述不同样本在以下的一个或多个方面上不同:位置和时间。
16.如权利要求12或13中任意一项所述的方法,其中,产生命令的步骤包括:
形成命令缓冲器,所述命令缓冲器包括所述数据和指令,所述数据和指令用于按照应用程序的指导来处理所述特定视频帧,其中,所述应用程序包括终端用户应用程序,其中,所述命令缓冲器可用于所述多个VPU。
17.如权利要求16所述的方法,其中,产生命令的步骤还包括:
接收与所述多个VPU的抗锯齿操作相关的配置输入,包括来自用户接口的用户配置输入;以及
利用所述输入形成所述命令缓冲器,其中,所述配置输入包括为每个所述VPU选择抗锯齿操作类型以及抗锯齿系数。
18.如权利要求12或13所述的方法,其中,为所述特定视频帧产生所述输出数据的步骤包括:
执行去伽玛操作,以把所接收数据转换到线性空间;
对像素数据的样本进行平均,以产生平均样本数据;
执行伽玛操作,以把所述平均样本数据转换到伽玛空间;以及
执行去伽玛操作,以把所述平均样本数据转换到线性空间。
19.如权利要求12或13所述的方法,其中,合成还包括:对合成数据进行伽玛校正,以产生经过伽玛校正的输出视频帧。
20.一种用于在包括多个处理单元的系统中执行抗锯齿的方法,所述方法包括:
所述多个处理单元中的每一个处理单元并行地对相同的视频数据执行不同的抗锯齿操作,从而在对所述多个处理单元的一次通过中对相同的视频帧执行抗锯齿操作;以及
把所述不同的抗锯齿操作的结果在线性空间中进行合成,以产生帧数据。
21.如权利要求20所述的方法,还包括:为所述多个处理单元中的每一个处理单元产生一组命令,以并发地执行该组命令来产生所述结果。
22.如权利要求20或21所述的方法,其中,所述视频数据包括用于产生要显示的帧的像素数据,并且其中,所述多个处理单元中的每一个处理单元对以下各项执行不同的抗锯齿操作:
所述视频数据的不同子集;
所述视频数据的同一子集;或者,
全部所述视频数据。
23.如权利要求20或21所述的方法,其中,所述视频数据包括至少一个要显示的帧的像素数据,并且其中,所述像素数据被划分为用于由所述多个处理单元来处理的多个部分,其中,所述划分包括剪裁和交替的帧渲染。
24.如权利要求23所述的方法,其中,所述多个处理单元中的每一个对同一部分进行操作。
25.如权利要求20或21中任意一项所述的方法,其中,所述多个处理单元包括至少一个集成视频处理单元VPU和至少一个分立式VPU。
26.一种用于执行抗锯齿的设备,包括:
至少一个驱动器,用于从应用程序接收视频数据;
多个专用处理单元,耦合于所述至少一个驱动器,并且用于从所述至少一个驱动器接收命令和数据以处理来自所述应用程序的相同视频数据,其中,所述命令包括向所述多个处理单元中的每一个处理单元发出的不同的抗锯齿命令,所述命令指导所述多个处理单元中的每一个处理单元对所述视频数据执行不同的抗锯齿操作;以及
至少一个合成器,用于接收所述不同抗锯齿操作的结果,并且将其在线性空间中进行合成以便在对所述多个处理单元的一次通过中产生帧数据,其中,所述不同抗锯齿操作合成来提供所产生的帧数据的抗锯齿系数。
27.如权利要求26所述的设备,其中,所述设备可经由用户接口来配置。
28.如权利要求26或27所述的设备,其中,所述至少一个驱动器和所述至少一个合成器还耦合于在所述设备之外的至少一个专用处理单元。
29.如权利要求28的设备,其中,所述视频数据包括至少一个要显示的帧的像素数据,并且其中,所述像素数据被划分为用于由所述多个处理单元来处理的多个部分,其中,所述划分包括剪裁和交替的帧渲染。
30.如权利要求29所述的设备,其中,所述视频数据包括用于产生要显示的帧的像素数据,并且其中,所述多个处理单元中的每一个对以下各项执行不同的抗锯齿操作:
所述视频数据的不同子集;
所述视频数据的同一子集;或者,
全部所述视频数据。
31.一种处理器设备,包括:
视频处理电路,用于:
接收命令和数据,所述命令和数据包括用于帧的像素数据和处理命令;
在一次通过中对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出:根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及
将所述抗锯齿操作的结果传送给合成器,以便与由其他视频处理电路与所述视频处理电路并行地对相同的所述像素数据执行的其他抗锯齿操作结果在线性空间中进行合成,以便基于所述其他抗锯齿操作和所述抗锯齿操作的结果来实现合成抗锯齿系数。
32.如权利要求31所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括:对帧的一部分的像素数据执行所述抗锯齿操作。
33.如权利要求31所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括:对帧的一部分的像素数据执行第一抗锯齿操作,而另一个视频处理电路对所述帧的所述部分的像素数据执行第二抗锯齿操作。
34.如权利要求31所述的处理器设备,其中,对所述像素数据执行所述抗锯齿操作的步骤包括:对帧的第一部分的像素数据执行第一抗锯齿操作,而另一个视频处理电路对所述帧的第二部分的像素数据执行第二抗锯齿操作。
35.一种用于使用视频处理电路处理视频数据的方法,所述方法包括:
接收命令和数据,所述命令和数据包括用于相同帧的像素数据和处理命令;
对所述像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出:根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及
将所述抗锯齿操作的结果传送给合成器,以便与由其他视频处理电路与所述视频处理电路并行地对相同的所述像素数据所执行的其他抗锯齿操作结果在线性空间中进行合成,从而在对所述视频处理电路和所述其他视频处理电路的一次通过中对相同的所述像素数据执行抗锯齿操作。
36.一种用于处理视频数据的方法,所述方法包括:
对像素数据执行抗锯齿操作,其中,所述抗锯齿操作可从包含以下各项的组中选出:根据可选抗锯齿系数的多重采样、根据可选抗锯齿系数的超采样、以及时间域抗锯齿;以及
接收并行地对相同的所述像素数据所执行的其他抗锯齿操作的结果,以便与所述执行的抗锯齿操作的结果在线性空间中进行合成,从而在一次通过中执行所述抗锯齿操作和所述其他抗锯齿操作。
37.如权利要求36所述的方法,还包括:
将所述执行的抗锯齿操作的结果与所述接收的其他抗锯齿操作的结果进行合成,以产生帧数据。
CN200680018152.8A 2005-05-27 2006-05-29 抗锯齿系统及方法 Active CN101198982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510249480.XA CN104952047B (zh) 2005-05-27 2006-05-29 抗锯齿系统及方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/140,156 US8212838B2 (en) 2005-05-27 2005-05-27 Antialiasing system and method
US11/140,156 2005-05-27
PCT/IB2006/001469 WO2006126093A2 (en) 2005-05-27 2006-05-29 Antialiasing system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510249480.XA Division CN104952047B (zh) 2005-05-27 2006-05-29 抗锯齿系统及方法

Publications (2)

Publication Number Publication Date
CN101198982A CN101198982A (zh) 2008-06-11
CN101198982B true CN101198982B (zh) 2015-06-17

Family

ID=36928445

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200680018152.8A Active CN101198982B (zh) 2005-05-27 2006-05-29 抗锯齿系统及方法
CN201510249480.XA Active CN104952047B (zh) 2005-05-27 2006-05-29 抗锯齿系统及方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201510249480.XA Active CN104952047B (zh) 2005-05-27 2006-05-29 抗锯齿系统及方法

Country Status (4)

Country Link
US (2) US8212838B2 (zh)
EP (2) EP1883901A2 (zh)
CN (2) CN101198982B (zh)
WO (1) WO2006126093A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8217950B2 (en) * 2005-05-27 2012-07-10 Advanced Micro Devices, Inc. Video processing across multiple graphics processing units
US7612783B2 (en) 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US20090085928A1 (en) * 2006-05-12 2009-04-02 Nvidia Corporation Antialiasing using multiple display heads of a graphics processor
GB2479067B (en) * 2006-05-12 2012-10-03 Nvidia Corp Antialiasing using multiple display heads of a graphics processor
SG137754A1 (en) * 2006-05-12 2007-12-28 Nvidia Corp Antialiasing using multiple display heads of a graphics processor
US8130227B2 (en) * 2006-05-12 2012-03-06 Nvidia Corporation Distributed antialiasing in a multiprocessor graphics system
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
US8547378B2 (en) * 2008-08-28 2013-10-01 Adobe Systems Incorporated Time-based degradation of images using a GPU
US9129441B2 (en) 2010-06-21 2015-09-08 Microsoft Technology Licensing, Llc Lookup tables for text rendering
GB2497302B (en) 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
CN103299347B (zh) * 2011-12-31 2016-11-02 华为技术有限公司 基于云应用的在线渲染方法和离线渲染方法及相关装置
US9235926B2 (en) * 2012-12-24 2016-01-12 Intel Corporation Techniques for improving MSAA rendering efficiency
US9262797B2 (en) 2013-03-15 2016-02-16 Nvidia Corporation Multi-sample surface processing using one sample
US20140292774A1 (en) * 2013-03-26 2014-10-02 Nvidia Corporation System and method for performing sample-based rendering in a parallel processor
US9251731B2 (en) * 2013-05-10 2016-02-02 Intel Corporation Multi-sampling anti-aliasing compression by use of unreachable bit combinations
US9665958B2 (en) 2013-08-26 2017-05-30 Nvidia Corporation System, method, and computer program product for redistributing a multi-sample processing workload between threads
CN105574817A (zh) * 2014-10-17 2016-05-11 华为技术有限公司 图像的抗锯齿方法和装置
US11113790B2 (en) * 2018-04-12 2021-09-07 Nvidia Corporation Adding greater realism to a computer-generated image by smoothing jagged edges

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1309198C (en) 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
US5428754A (en) 1988-03-23 1995-06-27 3Dlabs Ltd Computer system with clock shared between processors executing separate instruction streams
US5459835A (en) 1990-06-26 1995-10-17 3D Labs Ltd. Graphics rendering systems
EP0541534A1 (en) 1990-08-03 1993-05-19 Du Pont Pixel Systems Limited Data-array processing systems
GB2247596B (en) 1990-08-28 1995-03-01 Avesco Plc Video image formation
US5434970A (en) 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
US5398076A (en) 1993-12-16 1995-03-14 Ati Technologies, Inc. Gamma correcting processing of video signals
US6359624B1 (en) 1996-02-02 2002-03-19 Kabushiki Kaisha Toshiba Apparatus having graphic processor for high speed performance
US6278645B1 (en) 1997-04-11 2001-08-21 3Dlabs Inc., Ltd. High speed video frame buffer
US6020921A (en) 1997-05-05 2000-02-01 Ati Technologies Inc. Simple gamma correction circuit for multimedia
US6377266B1 (en) 1997-11-26 2002-04-23 3Dlabs Inc., Ltd. Bit BLT with multiple graphics processors
US6476816B1 (en) 1998-07-17 2002-11-05 3Dlabs Inc. Ltd. Multi-processor graphics accelerator
US6518971B1 (en) 1998-07-17 2003-02-11 3Dlabs Inc. Ltd. Graphics processing system with multiple strip breakers
US6243107B1 (en) 1998-08-10 2001-06-05 3D Labs Inc., Ltd. Optimization of a graphics processor system when rendering images
US6191800B1 (en) 1998-08-11 2001-02-20 International Business Machines Corporation Dynamic balancing of graphics workloads using a tiling strategy
US6677952B1 (en) 1999-06-09 2004-01-13 3Dlabs Inc., Ltd. Texture download DMA controller synching multiple independently-running rasterizers
US6816561B1 (en) 1999-08-06 2004-11-09 3Dlabs, Inc., Ltd Phase correction for multiple processors
US6674479B2 (en) * 2000-01-07 2004-01-06 Intel Corporation Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion
US6574753B1 (en) * 2000-01-10 2003-06-03 Emc Corporation Peer link fault isolation
US6781585B2 (en) * 2000-01-11 2004-08-24 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer and having single sample per pixel support
US20010015753A1 (en) * 2000-01-13 2001-08-23 Myers Kenneth J. Split image stereoscopic system and method
AU2001239926A1 (en) * 2000-02-25 2001-09-03 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
US6756989B1 (en) * 2000-08-25 2004-06-29 Microsoft Corporation Method, system, and computer program product for filtering a texture applied to a surface of a computer generated object
US20030158886A1 (en) * 2001-10-09 2003-08-21 Walls Jeffrey J. System and method for configuring a plurality of computers that collectively render a display
US6720975B1 (en) * 2001-10-17 2004-04-13 Nvidia Corporation Super-sampling and multi-sampling system and method for antialiasing
US6920618B2 (en) * 2001-12-21 2005-07-19 Hewlett-Packard Development Company, L.P. System and method for configuring graphics pipelines in a computer graphical display system
US6924799B2 (en) * 2002-02-28 2005-08-02 Hewlett-Packard Development Company, L.P. Method, node, and network for compositing a three-dimensional stereo image from a non-stereo application
US20040066388A1 (en) * 2002-07-16 2004-04-08 Leather Mark M. Method and apparatus for improved transform functions for non gamma corrected graphics systems
ATE425517T1 (de) * 2002-12-20 2009-03-15 Ericsson Telefon Ab L M Kostengünstige supersampling-aufrasterung
JP2004222236A (ja) * 2002-12-26 2004-08-05 Casio Comput Co Ltd 撮像装置、画像編集方法及びプログラム
US6885376B2 (en) 2002-12-30 2005-04-26 Silicon Graphics, Inc. System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
US7283686B2 (en) * 2003-04-14 2007-10-16 Hewlett-Packard Development Company, L.P. Image processor
US7120816B2 (en) 2003-04-17 2006-10-10 Nvidia Corporation Method for testing synchronization and connection status of a graphics processing unit module
US7119808B2 (en) 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US6956579B1 (en) 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
US6967663B1 (en) * 2003-09-08 2005-11-22 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
CN100364328C (zh) * 2004-02-18 2008-01-23 华亚微电子(上海)有限公司 一种视频图像的结构特征检测方法
CN100369478C (zh) * 2004-02-18 2008-02-13 华亚微电子(上海)有限公司 基于方向性插值的图像边缘平滑方法
US20050206645A1 (en) * 2004-03-22 2005-09-22 Hancock William R Graphics processor with gamma translation
US7505399B2 (en) * 2004-08-13 2009-03-17 Hewlett-Packard Development Company, L.P. Receive load balancing on multiple network adapters

Also Published As

Publication number Publication date
WO2006126093A3 (en) 2007-02-08
US8212838B2 (en) 2012-07-03
WO2006126093A2 (en) 2006-11-30
CN101198982A (zh) 2008-06-11
US20120274655A1 (en) 2012-11-01
EP1883901A2 (en) 2008-02-06
US20060267991A1 (en) 2006-11-30
CN104952047A (zh) 2015-09-30
EP2270745A1 (en) 2011-01-05
CN104952047B (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN101198982B (zh) 抗锯齿系统及方法
CN101218562B (zh) 一种多处理器方法和装置
US8203564B2 (en) Efficient 2-D and 3-D graphics processing
US8130227B2 (en) Distributed antialiasing in a multiprocessor graphics system
EP2082373B1 (en) Programmable blending in a graphics processing unit
US6924808B2 (en) Area pattern processing of pixels
CN101198988A (zh) 在多个视频处理单元(vpu)的系统中的帧同步
WO2007113471A1 (en) System and method for scaling digital images
EP1980998A2 (en) Programmable graphics processing element
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
US20080024510A1 (en) Texture engine, graphics processing unit and video processing method thereof
US20080284793A1 (en) Hue and saturation control module
EP0485535A1 (en) Image computing system
US7576746B1 (en) Methods and systems for rendering computer graphics
US8619077B1 (en) Efficient execution of color space processing functions in a graphics processing unit
KR100890702B1 (ko) 그래픽 프로세서의 다중 디스플레이 헤드를 이용한안티앨리어싱
US6778188B2 (en) Reconfigurable hardware filter for texture mapping and image processing
JP2005077522A (ja) 画像処理装置および画像処理方法
US20030164842A1 (en) Slice blend extension for accumulation buffering
JP3642952B2 (ja) 画像合成方法及び装置、並びに情報処理システム
CN117453170B (zh) 一种显示控制方法、装置及存储介质
JPH1125289A (ja) 3次元画像処理装置

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