CN102609975A - 使用多图形处理单元的改进的图形去阶梯 - Google Patents

使用多图形处理单元的改进的图形去阶梯 Download PDF

Info

Publication number
CN102609975A
CN102609975A CN2011104140750A CN201110414075A CN102609975A CN 102609975 A CN102609975 A CN 102609975A CN 2011104140750 A CN2011104140750 A CN 2011104140750A CN 201110414075 A CN201110414075 A CN 201110414075A CN 102609975 A CN102609975 A CN 102609975A
Authority
CN
China
Prior art keywords
rectangular block
pixel
gpu
compression
fully
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.)
Granted
Application number
CN2011104140750A
Other languages
English (en)
Other versions
CN102609975B (zh
Inventor
R·柯杜里
G·艾尔德
J·高尔德斯
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
Publication of CN102609975A publication Critical patent/CN102609975A/zh
Application granted granted Critical
Publication of CN102609975B publication Critical patent/CN102609975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • 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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Abstract

一种用于在系统中执行基于多采样图形去阶梯的方法和设备,所述系统包括第一和第二图形处理单元(GPU),其减少在GPU之间所传送的数据量并且提高了这种数据传送的效率。所述第一GPU使用第一多采样模式绘制画面的第一版本,所述第二GPU使用第二多采样模式绘制第二GPU中的画面的第二版本。所述第二GPU在所述画面的所述第二版本中识别非边缘像素。然后在所述画面的所述第一版本中的所述像素与那些仅在所述画面的所述第二版本中已经被识别为边缘像素的像素结合起来以生成结合的画面。

Description

使用多图形处理单元的改进的图形去阶梯
本申请是PCT申请日为2007年5月1日、PCT申请号为PCT/IB2007/001231、国家申请号为200780016634.4、申请人为ATI技术无限责任公司的PCT发明专利申请的分案申请。
技术领域
本发明总体上涉及图形处理系统。特别地,本发明涉及在实现多图形处理单元(GPU)的图形处理系统中用于执行图形去阶梯操作的方法。
背景技术
已知的用于增加图形处理系统的处理能力的方法是并行地操作多图形处理单元(GPU)或者视频处理单元(VPU),其中每个处理单元与其它的单元在共用总线上进行通信。在此,词语GPU和VPU可互换使用。多GPU系统的一个优点是它可以补充现有微处理技术以实现增强的性能,因此提供了更便宜的替代方案以投资新的、更快的GPU。多GPU系统通过在多图形元件上并行地执行计算实现增强的性能。
使用图形处理系统的一个例子是利用多GPU以提供提高的性能,在共有的、同时待审的U.S.专利申请No.11/140,156(公开号20060267991)中描述,标题是“Antialiasing Method and System”,发明人为Preetham等人,于2005年5月27日提交,这里引入参考其全部内容。前述的申请部分地描述了一种图形处理系统,其中多GPU被并行地操作以在相同的图形画面上执行图形去阶梯。
阶梯是在所显示的画面中由绘制过程的不希望的缺陷的出现所造成的公知效应。边缘阶梯是一种特定类型的阶梯,其在应当看上去平滑的边缘造成阶梯。现有的用于减轻边缘阶梯效应的图形去阶梯技术是多采样技术。多采样技术通过获得被用于在像素之间生成中间点的像素的多个采样解决了边缘阶梯。采样(或者“子像素”)被平均以确定所显示的像素颜色值。所显示的在多采样图像中的边缘具有柔和化的阶梯效应。
前述的U.S.专利申请No.11/140,156描述了一种图形处理系统,其中两个GPU分别对相同的画面应用不同的多采样模式。即每个GPU使用不同的采样位置用于在相同的画面中采样和绘制像素。然后这种采样/绘制的结果在总线上(例如PCI-Express总线)从一个GPU被传送到另一个GPU,其结果被混合以生成将被显示的画面。最终结果是将被显示的画面的图形去阶梯采样因子被有效地加倍了。例如,如果每个GPU执行2X多采样,将被显示的画面包括4X多采样。
关于上述方法,其中结果在总线上从一个GPU被传送到另一个GPU的步骤可能由于在连接这两个GPU的总线上可获得的带宽量有限而造成瓶颈。例如,在其中总线是PCI Express(PCIE)总线的实施例中,带宽可以被限制于大约1千兆比特每秒(Gb/sec)。然而,在执行该方法的系统中在总线上传送的数据量是非常大的,特别是当将被显示的画面是由大量像素组成的高解析率画面时。此外,上述方法本身是低效率的,因为尽管基于多采样的图形去阶梯是一种用于边缘增强的技术,但在两个GPU之间传送的大量数据与边缘像素完全无关。
那么想要的是一种用于在使用多GPU的图形处理系统中执行图形去阶梯的改进的方法和设备。改进的方法和设备应该减少在多个GPU之间所传送的数据量和/或提高这种数据传送的效率。改进了的方法和设备应该还提供区分与边缘像素相关联的数据和与边缘数据不相关联的数据的手段。
发明内容
本发明提供了一种用于在使用多GPU的图形处理系统中执行图形去阶梯的改进了的方法和设备。改进了的方法和设备减少了在多GPU之间所传送的数据量并且提高了这种数据传送的效率。本发明还提供了一种区分在所绘制的图像中的边缘和非边缘像素的手段。
一种根据本发明的特别实施例的方法可以被用于在包括第一GPU和第二GPU的系统中执行基于多采样的图形去阶梯。该方法包括在第一GPU中使用第一多采样模式绘制画面的第一版本,在第二GPU中使用第二多采样模式绘制该画面的第二版本。然后边缘像素在该画面的第二版本中被识别。然后在该画面的第一版本中的像素仅与那些在该画面的第二版本中的已经被识别为边缘像素的像素相结合以生成结合的画面。
一种根据本发明的特别实施例的系统包括被配置为使用第一多采样模式绘制画面的第一版本的第一GPU、被配置为使用第二多采样模式绘制画面的第二版本的第二GPU和连接第一GPU和第二GPU的总线。第二GPU还被配置为识别在该画面的第二版本中的边缘像素并且仅把那些在该画面的第二版本中已经识别为边缘像素的像素通过总线传送到第一GPU。第一GPU还被配置为把在画面的第一版本中的像素与从第二GPU传送的像素结合以生成结合的画面。
一种根据本发明的特别实施例的方法可以被用于识别在由多个矩形块组成的绘制图像中的边缘像素,所述多个矩形块中的每个由多个像素组成。该方法包括访问数据以确定在多个矩形块中所选择的矩形块是否被完全压缩,识别所选择的矩形块为仅包括对应于确定所选择的矩形块完全压缩的非边缘像素,和识别所选择的矩形块为包括对应于确定所选择的矩形块未完全压缩的一个或多个非边缘像素。
一种根据本发明的特别实施例的方法可以被用于在包括第一GPU和第二GPU的系统中执行基于多采样的图形去阶梯。该方法包括在第一GPU中使用第一多采样模式绘制画面的第一版本和在第二GPU中使用第二多采样模式绘制与画面的第二版本相关联的边缘像素。然后边缘像素从第二GPU被传送到第一GPU。然后从第二GPU传送的边缘像素与在该画面的第一版本中的像素结合以生成结合的画面。
本发明的其它特征和优点以及本发明的各实施例的结构和操作将在以下参考附图详细描述。需要注意的是本发明不限于这里所描述的特定实施例。这里呈现的这些实施例仅是为了说明的目的。对于本领域和相关领域的技术人员来说附加的实施例基于这里包含的指导是清楚的。
附图说明
这里引入并作为说明书的一部分的附图和描述了本发明,还用于解释本发明的主旨并使本领域的技术人员能够实现和使用本发明。
图1是在包括多GPU的图形处理系统中用于执行图形去阶梯的方法的流程图。
图2是根据本发明的实施例的执行图形去阶梯的图形处理系统的框图。
图3是根据本发明的实施例的在包括多GPU的图形处理系统中用于执行图形去阶梯的方法的流程图。
图4是根据本发明的实施例的第一多采样模式的例子。
图5是根据本发明的实施例的第二多采样模式的例子。
图6是根据本发明的实施例的结合的第一和第二多采样模式的例子。
图7是根据本发明的实施例的用于压缩多采样的图形去阶梯的颜色数据的示例性处理器和存储器配置。
图8是根据本发明的实施例的用于部分压缩多采样的图形去阶梯颜色数据的指针格式的例子。
图9是根据本发明的实施例的用于确定一个矩形块是否仅包含非边缘像素或者包含至少一个边缘像素的方法的流程图。
图10A和10B分别是根据本发明的实施例对在2-采样边缘检测图形去阶梯缓冲器中像素的矩形块进行解析操作的应用。
图11描述了可以被用于实现本发明的示例计算机系统。
本发明的特征和优点从以下阐明的详细具体实施方式并与附图结合将变得更加明显,其中相似的附图标记表示通篇中对应的元件。在附图中,相似的附图标记总体上表示相同、功能相似的和/或结构相似的元件。其中元件第一次出现的附图由在对应的附图标记中最左边的数字表示。
具体实施方式
A.一种用于在包括多GPU的图形处理系统中执行图形去阶梯的方法
图1的流程图100表示在包括多GPU的图形处理系统中执行图形去阶梯的方法。在图1中,流程图的左手边代表由第一GPU执行的处理步骤,由“GPU 0”表示,而右手边代表由第二GPU执行的处理步骤,由“GPU 1”表示。为了该例子的目的,假设每个GPU都具有到它自己的本地存储器的访问入口,用于缓冲诸如在绘制过程期间使用的采样数据的数据。
现在将描述由GPU 0执行的头三个步骤。首先,在步骤102,GPU 0建立用于在所要绘制的画面中堆每个像素进行多采样的第一模式,其中该模式由“多采样模式A”表示。其次,在步骤106,GPU 0绘制画面,其中绘制画面包括在GPU 0的本地多采样图形去阶梯(AA)缓冲器中存储对应于每个像素的多个采样。如在此所使用的,词组“存储采样”是指存储如颜色值等与每个采样相关联的数据。基于多采样模式A选择每个像素的多个采样位置。第三,在步骤110,GPU 0把在AA缓冲器中存储的多个采样的每个集合解析为存储在GPU 0的由“绘图缓冲器A”表示的本地绘图缓冲器中的单个采样。一种把多个采样解析成单个采样的方法需要在线性空间中平均多个样品点。
除了使用由“多采样模式B”表示的多采样模式来绘制画面外,由GPU1执行的头三个处理步骤(步骤104、108和112)与由GPU 0执行的头三个处理步骤并行地执行并且基本上相同,多个采样的集合被存储在位于GPU 1的本地存储器中的AA缓冲器中,并且该画面被解析到由“绘图缓冲器B”表示的也位于GPU 1的本地存储器中的绘图缓冲器中。
在步骤114,GPU 1把绘图缓冲器B的内容复制到由“临时缓冲器A”表示的GPU 0的本地临时缓冲器。在步骤116,和GPU 0位于相同的图形卡上的合成器执行把在绘图缓冲器A中呈现的每个像素与在临时缓冲器A中呈现的对应像素线性混合以生成将被显示的画面。作为替代,这种线性混合可以由没有位于图像卡上但是GPU 0和GPU1都与之相通信的独立部件的合成器来执行。在步骤118,将被显示的画面被输出到显示装置。画面有效地把由每个单个GPU应用的多采样的数量加倍。
关于上述的方法,步骤114(其中绘图缓冲器B的内容被复制到临时缓冲器A)可能由于在把GPU 0连接到GPU 1的总线上可获得的带宽的数量有限而造成瓶颈。例如,在其中总线是PIC Express(PCIE)总线的实施例中,带宽可以被限制在大约1兆比特每秒(Gb/sec)。然而,在执行流程图100的方法的系统中在总线上传送的数据的量是非常大的,特别是当将被显示的画面是由大量的像素组成的高解析率画面时。此外,上述的流程图100的方法本身是低效率的,因为尽管基于多采样的图形去阶梯是一种用于边缘增强的技术,在两个GPU之间传送的大量数据与边缘像素完全无关。
以下描述一种用于在使用多GPU的图形处理系统中执行图形去阶梯的改进的方法和设备。改进的方法和设备减少了在多个GPU之间所传送的数据量和/或改进了这种数据传送的效率。改进了的方法和设备还提供了区别与边缘像素相关联的数据和与边缘数据不相关联的数据的手段。
B.根据本发明的实施例的图形处理系统
图2是根据本发明的实施例的使用多GPU执行图形去阶梯的示例图形处理系统200的框图。图形处理系统200包括各种在主机计算机系统上执行并且与图形硬件单元、如第一GPU A208和第二GPUB210交互以绘制用于输出到显示器230的画面的软件单元,如应用程序202、应用程序编程接口(API)204和驱动程序206。图形硬件单元位于安装在主机计算机系统上的一个或多个图形卡上,尽管本发明不仅局限与此。现在将详细描述系统200的各个单元。
如在图2中所示,系统200包括应用程序202。应用程序202是需要图形处理能力的终端用户应用程序,如视频游戏应用程序。应用程序202使用API 204通信。在图形处理环境中多个API是可用的。API作为应用程序软件、如应用程序202和其上运行应用程序软件的图形硬件之间的中介而被开发。使用新的芯片集和甚至以增长的速度显现的全新的硬件技术,对于应用程序开发者来说考虑并且利用最新的硬件特征是困难的。特别是为每个可预知的硬件的集合编写应用程序变得不可能。API避免了应用程序变得太过对于硬件特定。应用程序可以把图形数据和命令以标准化的格式输出到API,而不是直接输出到硬件。可用的API的例子包括
Figure BDA0000119024130000071
或者
Figure BDA0000119024130000072
API204可以是用于运行图形应用程序的可用的API中的任意一种。
API 204与驱动程序206相通信。驱动程序206通常由图形硬件的制造商编写的,并且把从API接收的标准代码翻译成可被图形硬件理解的本机格式。驱动程序还接收输入以指导图形硬件的性能设置。例如,用户可以通过用户接口(UI)、如和驱动程序206一起被提供给用户的图形用户接口(GUI)提供输入。与这里描述的实施例特别相关的一个性能设置是图形硬件使用用于执行图形去阶梯的多采样因子。
图形硬件包括两个图形处理单元,GPU A 208和GPU B 210。在该实施例中,GPU A 208和GUP B 210是分别包括一个图形处理器和其它相关联硬件的图形卡,尽管本发明不仅局限于此。而是,如在此所使用的,词语GPU泛指任何装置、装置的集合或者被配置为执行图形处理任务的装置的子集(例如在集成电路芯片中的处理内核)。
驱动器206发布命令和数据到GPU A 208和GPU B 210。GPU A208和GPU B 210从驱动器206通过各自的环形缓冲器A 222和B 224接收命令和数据。这些命令指示GPU A 208和GPU B 210执行各种对数据的操作,从而最终产生用于输出到显示器230的绘制画面。如在图2中所示,GPU A 208和GPU B 210均具有到各自的本地图形存储器A 226和B 228的访问入口,用于执行这种操作。此外,驱动程序206、GPU A 208和GPU B 210均具有到共享存储器205的访问入口。GUP和共享存储器205之间的通信在PCI Express(PCIE)总线234上被执行。此外,GPU A 208和GPU B 210彼此间可以使用点到点协议在PCIE总线234上直接通信。
这里将更加详细地进行描述,由GPU A 208和GPU B 210在驱动程序206的指令下执行地操作包括基于多采样图形去阶梯地操作。根据这个操作,GPU A 208和GPU B 210中的每个并行地处理将要显示的相同画面。特别地,GPU A 208和GPU B 210中的每个通过不同的多采样模式的各个应用程序绘制相同画面的不同版本,其中由驱动器206选择不同的多采样模式。在该实施例中,驱动器206可编程为指导GPU A 208和GPU B 210通过可选择的加倍因子执行多采样。
还根据该基于多采样的图形去阶梯操作,由GPU B 210所执行的绘制过程得到的画面数据通过PCIE总线234被传送到GPU A 208。作为位于GPU A 208上的互连模块(IM)212的部件的合成器操作用于经由线性混合把从GPU B 210传送的画面数据与由GUP A 208生成的画面数据相结合,以获得将要显示的最终画面。在将要被显示的画面中,多采样因子由GPU的数目有效地相乘。例如,如果每个GPU执行2X多采样,将被显示的画面包括4X多采样。
这里将更加详细地进行描述,在PCIE总线234上传送由绘制过程产生的画面数据之前,GPU B 210首先在绘制画面中执行识别边缘像素和非边缘(或者“内部”)像素的操作。当画面数据被从GPU B210传送到GPU A 208时,与边缘像素相关联的采样数据被传送但是与非边缘像素相关联的采样数据不被传送。与非边缘像素相关联的采样数据可以被排除,因为这里描述的多采样操作被用于边缘增强,这样仅影响边缘像素的呈现。因此,在由GPU B 210所绘制的画面中的非边缘像素将与在由GPU A 208所绘制的画面中的非边缘像素相同。因此,没有必要传送和结合与这些像素相关联的数据。
上述把与边缘像素相关联的采样数据从GPU B 210传送到GPUA 208、但是排除了与非边缘像素相关联的采样数据的技术将在以下更加详细地描述。该技术是有益的,因为它可操作用于减少将要在PCIE总线234上传送的数据量,从而增加了传送操作的速度,使得该操作不会变成处理瓶颈。另外,通过减少将要在PCIE总线234上传送的数据量,其它共用相同总线的部件可使用更多带宽。
需要注意的是,示例图形处理系统200已经通过例子的方式进行了描述,并且不试图限制本发明。基于这里提供的指导,本领域的技术人员应理解本发明可以在任何多GPU彼此通信并且被用于执行图形去阶梯的系统中实现。该类型的各种系统详细地在共有的、同时待审的U.S.专利申请No.11/140,156中描述,其标题是“AntialiasingSystem and Method”,发明人为Preetham等,申请日为2005年5月27日,这里引入参考其全部内容。基于这里提供的指导,本领域的技术人员可以修改在该申请中描述的每个系统以执行这里描述的图形去阶梯技术。
C.根据本发明的实施例的图形去阶梯方法图3是根据本发明的实施例的在使用多GPU的图形处理系统中用于执行图形去阶梯的方法300的流程图。将参考以上参考图2描述的示例图形处理系统200描述方法300,尽管本发明不仅局限于此。在图3中,流程图的左手边表示由GPU A 208执行的处理步骤,而右手边表示由GPU B 210执行的处理步骤。
现在将描述由GPU A 208执行的头四个处理步骤。在步骤302中,GPU A 208建立在将要绘制的画面中对每个像素进行多采样的第一模式,其中该模式由“多采样模式A”表示。图4表示可以用作多采样模式A的多采样模式400。多采样模式400用于对由12×12个采样位置组成的像素进行2X多采样。在图4中,像素的中心被表示为固体黑框,而为2X采样所选择的采样位置用斜线填充。本领域的技术人员应理解可以使用其它多种像素尺寸和采样位置。
在步骤306,GPU A绘制画面,其中绘制画面包括把针对多采样图形去阶梯(AA)缓冲器中的每个像素所选择的采样存储到本地图形存储器A中。如在此所使用的,词组“存储采样”包括存储诸如与采样相关联的颜色数据等的数据。
在步骤310,GPU A 208把存储在AA缓冲器中的多个采样的每个集合解析成由“绘图缓冲器A”表示的位于本地图形存储器A 226内的绘图缓冲器中的单个采样。一种用于把多个采样解析成单个采样的方法需要在线性空间中平均多个采样,尽管本发明不仅局限于此。该操作的更多细节在共有的、同时待审的U.S.专利申请No.11/140,156中提供,标题是“Antialiasing Method and System”,发明人为Preetham,申请日为2005年5月27日,这里引入参考其全部内容。
在步骤314,GPU A 208执行识别在绘图缓冲器A中所呈现的像素中哪些是边缘像素的操作。下面将参考图7-9,10A和10B详细描述用于执行这种操作的一种特定方法,尽管本发明不仅局限于该特定方法。该操作的输出是一个数据集合,这里称为“边缘数据掩码”,其被存储在本地图形存储器A 226中并且识别在绘图缓冲器A中存储的画面中哪些像素是边缘像素。如在此所使用的,词组“识别边缘像素”可以包括在一个像素接一个像素的基础上识别边缘像素或者识别包括至少一个边缘像素的像素的矩形方块或者“矩形块”。
现在将描述由GPU B 210执行的头四个处理步骤。优选地,这头四个步骤基本上与由GPU A 208执行的头四个处理步骤并行地被执行。尽管本发明不仅局限于此。
由GPU B 210执行的头三个处理步骤(步骤304、308和312)与由GPU A 208执行的头三个处理步骤(步骤302、306和310)基本上相同,除了使用由“采样模式B”表示的不同的多采样模式来绘制画面,对每个像素所选择的采样被存储在位于本地图形存储器B 228内的AA缓冲器中,并且画面被解析到由“绘图缓冲器B”表示的绘图缓冲器其位于本地图形存储器B 228内。图5表示可以被用作多采样模式B的示例多采样模式500。多采样模式500用于对由12×12个采样位置组成的像素进行2X多采样。在图5中,像素的中心被表示为实心的黑框,而为2X多采样所选择的采样位置用棋盘形图案填充。
在步骤316,GPU B 210执行识别在绘图缓冲器B中呈现的哪些像素是边缘像素的操作。下面将参考图7-9,10A和10B详细描述用于执行这种操作的一种特别方法,尽管本发明不仅局限于该特别方法。该操作的输出是存储在本地图形存储器B 228中的边缘数据掩码并且识别存储在绘图缓冲器B中的画面中哪些像素是边缘像素。
在此处,GPU A 208已经生成识别存储在绘图缓冲器A中的画面中哪些像素是边缘像素的边缘像素掩码,并且GPU B 210已经生成识别存储在绘图缓冲器B中的画面中哪些像素是边缘像素的边缘像素掩码。在步骤318,GPU A 208把它的边缘像素掩码传送到GPU B 210,以及在步骤320,来自GPU A 208的边缘像素掩码与来自GPU B 210的边缘掩码在本地存储器中结合,以生成结合的边缘像素掩码。该结合的边缘像素掩码是单个边缘像素掩码的合并(与相交相反),因为它把一个像素识别为边缘像素,如果该像素已经由GPU A 208或者GPU B 210识别为边缘像素。在优选实施例中,这种结合通过把从GPUA 208传送的边缘像素掩码直接叠加到由GPU B 210存储在本地存储器中的边缘像素上来实现,使得步骤318和320实际上结合成一个步骤。
在步骤322,GPU A 208在位于本地图形存储器A 226内的临时缓冲器(由“临时缓冲器A”表示)中存储绘图缓冲器A的内容的拷贝。在步骤324,GPU B 210仅经由PCIE总线234传送在绘图缓冲器B中由结合的边缘像素掩码识别为边缘像素的那些像素的拷贝以叠加到存储在临时缓冲器A中的数据上。实际上,GPU B 210从对应于由结合的边缘像素掩码所指定的非边缘像素的该传送数据排除或者“屏蔽”。该处理步骤的最终结果是临时缓冲器A保持由GPU B 210绘制的画面的完整表示。这是因为由GPU A 208绘制的非边缘像素,其拷贝位于临时缓冲器A并且在步骤318期间不被重叠,这些非边缘像素与由GPU B 210绘制的非边缘像素相同,因为多采样/解析操作仅改变边缘像素的颜色。
现在将描述由GPU A 210执行的最后两个步骤。在步骤326,位于与GPU A 208相同的图形卡上的IM 212的合成器部分执行在绘图缓冲器A中呈现的每个像素与在临时缓冲器A中呈现的对应像素的线性混合以生成将被显示的画面。在步骤328,将被显示的画面被输出到显示装置230。画面有效地把由每个GPU应用的多采样的数目加倍。这在图6中被示出,其示出了从把使用2X多采样模式400的像素与使用2X多采样模式500的结合得到的4X多采样模式600。
因为方法300不把与非边缘像素相关联的采样数据从GPU B 210传送到GPU A 208,它有益地减少了在PCIE总线234上传送的数据量。因此,传送操作的速度被加快了,使得操作不会变成处理的瓶颈。此外,该方法使其它共用相同总线的部件可使用更多带宽。D.根据本发明的实施例识别边缘像素的方法
如上述参考图3的流程图所讨论的,在步骤314,GPU A 208执行识别存储在绘图缓冲器A中的画面中的边缘像素的操作,以及在步骤316,GPU B 210执行识别存储在绘图缓冲器B中的画面中的边缘像素的操作。在一个实施例中,GPU A 208和GPU B 210均使用图形处理器内部的存储器、这里被称为矩形块格式表(TFT)执行该操作,其跟踪在与将被显示的画面中的每个像素相关联的采样颜色数据是被完全压缩、部分压缩还是未压缩。该压缩方案的完整描述和TFT的使用在共有的、同时待审的U.S.专利申请No.10/672,707中阐述,标题是“Method and Apparatus for Compression of Multi-SampleAnti-Aliasing Color Data”,申请日为2003年9月26日,这里引入参考其全部内容。
1.根据本发明的实施例的采样颜色数据压缩
图7示出了根据U.S.专利申请No.10/672,707的指导的示例性处理器和存储器配置700。在本发明的一个实施例中,该配置未由多GPU系统中的至少一个GPU使用并且被补充以通过将在下面更加详细描述的方式把边缘像素从非边缘像素区分出来。
如在图7中所示,图形处理器703可通信地被连接到高速缓冲存储器702,其接着可通信地被连接到主存储器701。在绘制用于显示的画面的过程期间,像素数据被从主存储器701传送到高速缓冲存储器702供图形处理器703使用。如U.S.专利申请No.10/672,707中所阐述的,像素数据被作为多个相邻像素的矩形方块或者“矩形块”传送。在图7中所示的例子中,像素以相邻像素的2×2矩形块传送,其中像素由A、B、C和D表示。然而,对于本领域的技术人员来说,明显可以使用其它尺寸的矩形块。
在矩形块中的每个像素都已经被多采样了,这样与每个像素相关联的数据包括对应于在像素中的每个采样的颜色值。在U.S.专利申请No.10/672,707中阐述的一个例子中,每个像素包括四个采样,并且每个采样与一个颜色值相关联。颜色值的长度可以是一个字。
在从主存储器701到高度缓冲存储器702的传送期间,每个矩形块被分析,并且基于分析的结果,在矩形块中与每个像素相关联的颜色值可以被压缩。根据申请No.10/672,707中所描述的实施例,所分析的矩形块可以以三种方式之一处理:它可以是“完全压缩”、“部分压缩”或者它可以保持未压缩。
如果在每个多采样的像素中的所有采样颜色相同,选择完全压缩。例如,这可能是当矩形块被单个三角形完全覆盖时发生。当矩形块被完全压缩时,为矩形块中的每个像素仅存储一个颜色值。
如果在每个多采样的像素中的所有采样是仅有的两种颜色之一,选择部分压缩。例如,这可能是当矩形块由不多于两个三角形覆盖时发生。当矩形块被部分压缩时,由矩形块中的每个像素存储两个颜色值,并且使用指针对压缩进行编码。图8示出了4×多采样像素A、B、C和D的部分压缩2×2的矩形块的示例指针的比特位。在指针中的每个比特或者是“0”,其意味对于那个像素使用第一颜色(称为“原始颜色”),或者是“1”,其意味对于那个像素使用第二颜色(称为“替代颜色”)。例如在像素A中,对于像素A所有四个采样都是原始颜色。因此所有四个比特位被编码为“0”。在像素C中,对于像素C头三个采样都是原始颜色。这样头三个比特位被编码为“0”。最后一位被编码为“1”,以表示像素C的第四个采样使用替代颜色。同样的逻辑对于像素B和C适用。使用该指针,每个像素仅需存储两个颜色值,其中一个颜色值针对原始颜色和另一个针对替代颜色。
如果在多采样的像素的任何一个中的子像素可以多于两种颜色,颜色数据保持未压缩。例如,如果矩形块由超过两种颜色覆盖这可能会发生。在该例子中,为矩形块中的每个像素中的每个采样存储单个颜色值。
根据申请No.10/672,707的指导,图形处理器703包括称作矩形块格式表(TFT)704的片上存储器,以跟踪存储在高速缓冲存储器702中的矩形块数据的格式。存储在高速缓冲存储器702中的矩形块当需要处理时被传送到图形处理器703。在图形处理器703中矩形块不需要解压缩,因为图形处理器703使用TFT 704跟踪到来的矩形块的格式。图形处理器703可以对矩形块以它的压缩格式操作,从而加速整个操作。
在一个实施例中,对于给定画面中的每个矩形块存在TFT 704中的条目。每个条目具有两位比特压缩编码,以表明特定矩形块的格式。在一个实施例中,两位比特对以下四个状态进行编码:
1.清零
2.完全压缩
3.部分压缩
4.未压缩。
在TFT中的两位比特压缩编码提醒处理器来自高速缓冲存储器的矩形块数据的格式。第一状态表明其中高速缓冲存储器被置于对应于缺省空数据状态的“清零值”的状态。TFT条目的第二、第三和第四状态描述矩形块的前述三种压缩级别:完全压缩、部分压缩和未压缩。通过两比特编码,图形处理器703可以适当地处理从高速缓冲存储器702接收到的数据。
如上所述,在图2中所示的实施例种的GPU A 208和GPU B 210执行解析操作以把多个采样结合在一起以得到代表给定像素的单个采样(例如参见图3中的步骤310和312和相关的文本)。换句话说,在解析操作期间,数据从本地存储器被拉出,然后把每个像素仅剩余的像素数据写回本地存储器(即没有子像素或者采样数据剩余)
使用上述的压缩方案,解析操作更加有效地被执行。其中解析操作被执行的方式取决于矩形块的压缩级别。第一,如果矩形块被完全压缩,即每个像素仅有一种颜色,不需要作什么,并且在矩形块中的每个像素被简单地写回到存储器中。第二,如果矩形块被部分地压缩或者未压缩,即在每个像素中存在不同的颜色采样,那么采样被结合以解析成最终像素颜色。在一个实施例中,具有相同颜色的采样对被处理一次。例如,对于由图8的指针所表示的矩形块,像素C具有一种颜色的三个采样和另一种颜色的另一个采样。解析操作将把与头三个采样相关联的单个颜色值乘以三,并且把它与剩余采样的颜色值结合一次。然后,把所结合的值除以四,以获得最终像素颜色值。这节省了不得不读取相同的颜色值多次的过程。对于未压缩的矩形块,与每个采样相关联的颜色值被加在一起并且结果以常规的方式被采样的数目除。
2.根据本发明的实施例的矩形块格式表(TFT)的使用和区分边缘和非边缘像素的解析操作
在本发明的一个实施例中,在多GPU系统中的至少一个GPU补充TFT和解析在上述部分中讨论的用于区分在将被显示的画面中的边缘和非边缘像素的解析操作。该区分允许GPU的避免当执行如这里其它部分所描述的基于多GPU图形去阶梯操作时把与非边缘像素相关联的数据发送到另一个GPU。
TFT 704包括关于将在将被显示的画面中的矩形块是完全压缩、部分压缩或者未压缩的信息。当矩形块被完全压缩时,保证在那个矩形块中的所有像素是内部的或者非边缘像素。相反,当矩形块仅是部分压缩或者未压缩时,这意味在那个矩形块中的至少一些像素是边缘像素。因此,存储在TFT中的信息可以辅助确定矩形块是否仅包含非边缘像素或者包含一个或多个边缘像素。然而,因为TFT 704作为图形处理器703的片上存储器被实现,不容易直接读取。
图9示出了用于使用前述的解析命令从TFT 704获取用于确定矩形块是否仅包含非边缘像素或者包含至少一个边缘像素的信息的方法的流程图900。流程图900的方法可以由图2的GPU A 208使用,以执行流程图300的步骤314,和/或由图2的GPU A 210使用,以执行流程图300的步骤316。
在步骤902,“边缘检测”图形去阶梯(AA)缓冲器被置入到本地图形存储器中。边缘检测AA缓冲器不被置入表示要显示的实际画面的数据(其被存储在绘图缓冲器A或者绘图缓冲器B中)。而是,边缘检测AA缓冲器被置入预定的多采样的像素数据,其当根据存储在TFT 704中数据解析时,如果在TFT 704中的矩形块条目表明矩形块被完全压缩,则将导致某种特定的颜色值,以及如果在TFT 704中的矩形块条目表明矩形块被部分压缩,则或者未压缩将导致不同的颜色值。因为边缘检测AA缓冲器不包含代表要显示的实际画面的数据,它还可以被认为是“伪(dummy)”缓冲器。
根据本发明的一个实施例,2-采样边缘检测AA缓冲器被用作与将被显示的画面具有相同的尺寸和深度。对于在2-采样边缘检测AA缓冲器中的每个像素,“0”被存储在第一采样位置“1”被存储在第二采样位置。2-采样边缘检测AA缓冲器可以被使用,不管其中将被显示的画面被存储的绘图缓冲器B的采样深度。尽管这里2-采样边缘检测AA缓冲器已经通过例子被描述了,这种描述不试图局限本发明,并且本领域的技术人员应理解也可以使用具有不同采样深度的边缘缓冲器(例如4-采样边缘检测缓冲器)。
在步骤904,GPU B 210使用存储在TFT 704中的数据把边缘检测AA缓冲器解析到位于本地图形存储器中的临时缓冲器。为了更好地解释该步骤,图10A示出了在上述的2-采样边缘检测AA缓冲器中的像素1002的2×2矩形块的解析操作的应用,其中在TFT 704中的条目表明在将被显示的画面中的相应矩形块被完全压缩。如在图10A中所示,其中两个采样位置中的第一个具有分配的颜色值“0”,两个采样位置中的第二个具有分配的颜色值“1”。在解析操作的应用之后,每对采样被解析成在临时缓冲器内的所解析的2×2矩形块1004中的对应的代表性采样。因为TFT 704表明将被显示的画面中的对应的矩形块被压缩,图形处理器703通过假设与第一采样位置相关联的颜色值也是第二采样位置的颜色值而应用解析命令,这样每个像素的所解析的采样颜色是零。
相反,图10B示出了在上述的2-采样边缘检测AA缓冲器中的像素1006的2×2矩形块的解析操作的应用,其中在TFT 704中的相关条目表明在将被显示的画面中的对应的矩形块被部分压缩或者未压缩。就像图10A的矩形块1002,在矩形块1006中的每个像素A、B、C和D具有2个采样位置,其中两个采样位置中的第一个具有分配的颜色值“0”,两个采样位置中的第二个具有分配的颜色值“1”。在解析操作应用之后,每对采样被解析成在临时缓冲器内的所解析的2×2矩形块1008中的对应的代表性采样。因为TFT 704表明在将被显示的画面中对应的矩形块被部分压缩或者未压缩,由图形处理器702对解析命令的应用包括把与第二采样位置相关联的颜色值与第一采样位置的颜色值平均。结果,在所解析的矩形块1008中的每个像素的至少一个所得到的颜色将为非零。图10B表示其中在将被显示的画面中的对应的矩形块中的每个像素是边缘像素。结果,在所解析的矩形块1008中的每个像素的每个颜色值是非零。
在步骤906,存储在临时缓冲器中的数据被用作边缘像素掩码。如上参考图3所述,GPU A 208和GPU B 210中的每个生成一个这样的边缘像素掩码。通过把由GPU A 208所生成的边缘像素掩码叠加到由GPU B 210生成的边缘像素掩码上从而将前一个边缘像素掩码与后一个边缘像素掩码结合起来。然后所结合的边缘像素掩码被用于把矩形块从存储在绘图缓冲器B中的画面复制到位于本地图形存储A 226中的临时缓冲器A。如果在所结合的边缘像素掩码中的矩形块具有全零的颜色值,那么在绘图缓冲器B中对应的矩形块从从绘图缓冲器B到临时缓冲器A的复制中被“屏蔽”或者被排除。相反,如果在所结合的边缘像素掩码中的矩形块具有至少一个非零颜色值,那么在绘图缓冲器B中的对应的矩形块被从绘图缓冲器B“传递”或复制到临时缓冲器A。这一步骤的最终结果是只有在包含一个或多个边缘像素的绘图缓冲器B中的矩形块或者对应于包含一个或多个边缘像素的绘图缓冲器A的矩形块的矩形块被从绘图缓冲器B复制到临时缓冲器A上。需要注意的是,在其中TFT 704不包含在将被显示的画面中的每个矩形块的条目的实施例中,没有条目的矩形块应该被当作它们包括边缘像素来对待,并且应该整体地从绘图缓冲器B被传送到临时缓冲器A上。
如上所述,本发明的实施例分配具有绘制目标的尺寸和深度的2-采样边缘检测AA缓冲器。然而,这种实施例可能消耗大量的存储资源。据此,替代实施例使用具有小于绘制目标的尺寸的2-采样边缘检测AA缓冲器。例如,2-采样边缘检测AA缓冲器可能只有128×128像素。根据这种实施例,步骤904被重复多次,有效地滑动解析“窗口”以生成临时缓冲器的每个128×128部分。另一个替代实施例使用小的2-采样边缘检测AA缓冲器并且使用存储器映射硬件把该缓冲器映射到较大的解析缓冲器上(即临时缓冲器)。
在本发明的一个特别的实施例中,为了减少在图3的流程图的步骤318中种GPU A 208和GPU B 210之间发送的数据量,由GPU A208和GPU B 210所生成的边缘像素掩码被置于高压缩数据格式中。例如,假设为GPU A 208存储边缘像素掩码的临时缓冲器是32比特每像素(bpp)。根据使用2×2矩形块的示例性实施例,以及其中图形硬件不能够简单地辨别在每个2×2矩形块中的哪些像素是边缘像素,这种缓冲器被下采样,使得每个2×2矩形块由单个像素代表。然后黑色的像素将对应于不包含边缘像素的2×2矩形块。当下采样时,还进行从32bpp到8bpp的格式转换,以在后续保留带宽。然后第二下采样被执行,使得现在单个像素对应于在原始像素掩码中的4×4矩形块。在一个实施例中,希望其中压缩在4×4矩形块上进行并且在单个矩形块中的像素以一种与原始AA缓冲器中相似的方式被编码。然后这种双下采样和所转换的缓冲器被用作在步骤318中从GPU A 208传送到GPU B 210的边缘像素掩码。当然,只传送非零的像素,因为这种非零像素代表具有边缘的4×4矩形块。这种传送的目标是包括GPU B 210自己的双下采样和所转换的边缘像素掩码的临时缓冲器,使得GPU A 208的边缘被加到GPU B 210的边缘。这种重叠导致在图3的流程图300的步骤324中被用于从GPU A 208到GPU B 210传送颜色数据的结合的边缘像素掩码。
需要注意的是,把边缘像素从非边缘像素中区别开来的上述方法的有效性不局限于在多GPU系统中执行基于多抽样的图形去阶梯。例如,该方法可以被有益地用在任何试图在所绘制的图像中有效地辨别和增强边缘的图形处理系统中。此外,该方法可以被用于收集关于在给定画面中边缘的数量的统计。这些例子不试图限制,对于本领域的技术人员来说前述方法的其它应用应该是明显的。
E.示例计算机系统实施例
图11描述了可以被利用以实现本发明的示例计算机系统1100。示例计算机系统1100可以包括例如基于标准个人计算机(PC)的系统或者如笔记本或者手提计算机装置的移动装置。然而,仅通过例子但不局限于此,提供计算机系统1100的以下描述。
如在图11中所示,示例计算机系统1100包括用于执行软件例程的处理器1104。尽管为了清楚起见示出单个处理器,但计算机系统1100也可以包括多处理器系统。处理器1104被连接到通信基础设施1106,用于与计算机系统1100的其它部件通信。通信基础设施1106可以例如包括通信总线、交叉开关(cross bar)或者网络。
计算机系统100还包括主存储器1108,如随机访问存储器(RAM)和辅助存储器1110。辅助存储器1110例如可以包括硬盘驱动器1112和/或可移动存储器驱动器1114,其可以包括软盘驱动器、磁带驱动器、光盘驱动器或类似设备。可移动存储器驱动器1114以一种公知的方式从可移动存储单元1118读取和/或写入其中。可移动存储单元1118可以包括软盘、磁带、光盘或者类似的被从可移动存储器驱动器1114读取或者写入其中的介质。本领域的技术人员应该理解可移动存储单元1118包括计算机可用存储介质,其中存储计算机软件和/或数据。
在替代实施例中,辅助存储器1110可以包括其它类似的用于允许计算机程序或者其它指令被载入计算机系统1100的装置。这种装置例如可以包括可移动存储单元1122和接口1120。可移动存储单元1122和接口1120的例子包括程序盒和盒式接口(如在视频游戏控制台装置中所使用的),可移动存储芯片(如EPROM或者PROM),以及相关联的插槽和其它可移动存储单元1122和允许软件和数据从可移动存储单元1122被传送到计算机系统1100的接口1120。
计算机系统1100还包括至少一个通信接口1124。通信接口1124允许软件和数据在计算机系统1100和外部装置之间经由通信路径1126传送。特别地,通信接口1124允许数据在计算机系统1100和如公共数据或私有数据通信网络的数据通信网络之间被传送。通信接口1124的例子可以包括调制解调器、网络接口(如以太网卡)、通信端口等。经由通信接口1124传送的软件和数据以可以是电子的、电磁的、光的或能够由通信接口1124接收的其它信号的信号形式。这些信号经由通信路径1126被提供给通信接口。
如在图11中所示,计算机系统1100包括音频接口1132,用于执行用于经由相关联的扬声器1134播放音频内容的操作。
计算机系统1100还包括图形处理系统1102,其执行用于把图像绘制到相关联的显示器1130上的操作。图形处理系统1102可以包括上述参考图2描述的图形硬件单元,如第一GPU A 208和第二GPU B210,尽管本发明不仅局限于此。在一个实施例中,图形处理系统1102被配置为执行本发明的特征,如图3的流程图300的步骤和/或图9的流程图900的步骤。图形处理系统1102可以在由处理器1104执行的计算机程序的指导下和/或在由图形处理系统1102中的一个或者多个图形处理器执行的计算机程序的指导下执行这些步骤。
如在此使用的,术语“计算机程序产品”可以部分指可移动存储单元1118、可移动存储单元1122、在硬盘驱动器1112中安装的硬盘或者在通信路径1126(无线链接或者电缆)上有把软件加载到通信接口1124的载波。计算机可用介质可以包括磁介质、光介质或者其它可读介质或发送载波或者其它信号的介质。这些计算机产品是用于给计算机1100提供软件的装置。
计算机程序(也被称作计算机控制逻辑)可以被存储在主存储器1108、辅助存储器1110或者在图形处理系统1102内的存储器中。计算机程序还可以经由通信接口1124被接收。当执行这种计算机程序时能够使计算机系统1100、特别是图形处理系统1102执行这里讨论的本发明的一个或多个特征。特别地,当执行计算机程序时能够使计算机系统1100、特别是图形处理系统1102执行本发明的特征。因此,这种计算机程序代表计算机系统1100的控制器。
用于实现本发明的软件可以使用可移动存储驱动器1114、硬盘驱动器1112或者接口1120被存储在计算机产品中并且被载入到计算机系统1100中。作为替代,计算机程序产品可以在通信路径1126上被下载到计算机系统1100。当由处理器1104和/或在图形处理系统1102中的部件执行软件时,使得那些部件执行在此描述的本发明的功能。
F.结论
已经描述了本发明的各种实施例,应该理解它们仅通过例子的方式被呈现,而不局限于此。相关领域的技术人员应该理解这里可以进行各种形式和细节的改变而不偏离如在附加的权利要求中所限定的本发明的实质或者范围。因此,本发明的外延和范围应该不由任何上述的示例性实施例限制,但是仅应该根据以下的权利要求和它们的等价被定义。

Claims (17)

1.一种用于在所绘制的图像中识别边缘像素的方法,所绘制的图像由多个矩形块组成,其中所述多个矩形块中的每个由多个像素组成,所述方法包括:
通过使用处理器访问数据以确定在所述多个矩形块中所选择的矩形块是否被完全压缩;
响应于确定所选择的矩形块被完全压缩,使用所述处理器把所选择的矩形块识别为仅包含非边缘像素,或者,响应于确定所选择的矩形块未被完全压缩,使用所述处理器把所选择的矩形块识别为包含一个或多个边缘像素。
2.如权利要求1中所述的方法,其中通过使用处理器访问数据以确定所选择的矩形块是否被完全压缩包括:
访问对应于所选择的矩形块的表中的条目,其中所述条目表明所述选择的矩形块是被完全压缩、部分压缩还是未压缩。
3.如权利要求2中所述的方法,其中通过使用处理器访问数据以确定是否所选择的像素块被完全压缩还包括:
根据在所述表中的所述条目解析预定的多采样像素数据以生成经过解析的矩形块;和
基于与在经过解析的矩形块中的像素相关联的一个或多个颜色值确定选择的矩形块是否被完全压缩。
4.如权利要求1中所述的方法,其中所述识别基于经过解析的矩形块中的像素的颜色值,并且其中基于所选择的矩形块确定经过解析的矩形块的颜色值。
5.如权利要求1中所述的方法,还包括:
响应于识别所选择的矩形块包括一个或多个边缘像素,从第一图形处理单元向第二图形处理单元拷贝基于所选择的矩形块的经过解析的矩形块。
6.如权利要求3中所述的方法,其中所述解析包括:
响应于确定所选择的矩形块被完全压缩,将经过解析的矩形块的像素设置为基于两个或更多个相应像素样本中的一个的颜色值的颜色值。
7.如权利要求3中所述的方法,其中所述解析包括:
响应于确定所选择的矩形块未被完全压缩,将经过解析的选择的矩形块的像素设置为基于两个或更多个样本的颜色值的组合的颜色值。
8.一种用于在所绘制的图像中识别边缘像素的设备,所绘制的图像由多个矩形块组成,其中所述多个矩形块中的每个由多个像素组成,所述设备包括:
用于通过使用处理器访问数据以确定在所述多个矩形块中所选择的矩形块是否被完全压缩的装置;
用于响应于确定所选择的矩形块被完全压缩,使用所述处理器把所选择的矩形块识别为仅包含非边缘像素,或者,响应于确定所选择的矩形块未被完全压缩,使用所述处理器把所选择的矩形块识别为包含一个或多个边缘像素的装置。
9.如权利要求8中所述的设备,其中用于通过使用处理器访问数据以确定所选择的矩形块是否被完全压缩的装置包括:
用于访问对应于所选择的矩形块的表中的条目的装置,其中所述条目表明所述选择的矩形块是被完全压缩、部分压缩还是未压缩。
10.如权利要求9中所述的设备,其中用于通过使用处理器访问数据以确定是否所选择的像素块被完全压缩的装置还包括:
用于根据在所述表中的所述条目解析预定的多采样像素数据以生成经过解析的矩形块的装置;和
用于基于与在经过解析的矩形块中的像素相关联的一个或多个颜色值确定选择的矩形块是否被完全压缩的装置。
11.如权利要求8中所述的设备,其中所述识别基于经过解析的矩形块中的像素的颜色值,并且其中基于所选择的矩形块确定经过解析的矩形块的颜色值。
12.如权利要求8中所述的设备,还包括:
用于响应于识别所选择的矩形块包括一个或多个边缘像素,从第一图形处理单元向第二图形处理单元拷贝基于所选择的矩形块的经过解析的矩形块的装置。
13.如权利要求10中所述的设备,其中所述解析包括:
响应于确定所选择的矩形块被完全压缩,将经过解析的矩形块的像素设置为基于两个或更多个相应像素样本中的一个的颜色值的颜色值。
14.如权利要求10中所述的设备,其中解析包括:
响应于确定所选择的矩形块未被完全压缩,将经过解析的选择的矩形块的像素设置为基于两个或更多个样本的颜色值的组合的颜色值。
15.一种用于在所绘制的图像中识别边缘像素的系统,所绘制的图像由多个矩形块组成,其中所述多个矩形块中的每个由多个像素组成,所述系统包括:
至少一个图形处理器;
存储器,所述存储器耦合到所述图形处理器并且被配置为具有对应于所述多个矩形块中所选择的矩形块的表中的条目,其中所述条目表明所述选择的矩形块是被完全压缩、部分压缩还是未压缩;
第一逻辑模块,所述第一逻辑模块被配置为:
访问数据以确定在所述多个矩形块中所选择的矩形块是否被完全压缩;以及
响应于确定所选择的矩形块被完全压缩,把所选择的矩形块识别为仅包含非边缘像素,或者,响应于确定所选择的矩形块未被完全压缩,把所选择的矩形块识别为包含一个或多个边缘像素。
16.如权利要求15中所述的系统,其中所述第一逻辑模块还被配置为访问对应于所选择的矩形块的表中的条目。
17.如权利要求16中所述的系统,其中所述第一逻辑模块还被配置为:
根据在所述表中的所述条目解析预定的多采样像素数据以生成经过解析的矩形块;和
基于与在经过解析的矩形块中的像素相关联的一个或多个颜色值确定选择的矩形块是否被完全压缩。
CN201110414075.0A 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯 Active CN102609975B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/429,078 2006-05-08
US11/429,078 US7612783B2 (en) 2006-05-08 2006-05-08 Advanced anti-aliasing with multiple graphics processing units
CN2007800166344A CN101438319B (zh) 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2007800166344A Division CN101438319B (zh) 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯

Publications (2)

Publication Number Publication Date
CN102609975A true CN102609975A (zh) 2012-07-25
CN102609975B CN102609975B (zh) 2017-12-19

Family

ID=38660805

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110414075.0A Active CN102609975B (zh) 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯
CN2007800166344A Active CN101438319B (zh) 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007800166344A Active CN101438319B (zh) 2006-05-08 2007-05-01 使用多图形处理单元的改进的图形去阶梯

Country Status (4)

Country Link
US (2) US7612783B2 (zh)
EP (2) EP2016560B1 (zh)
CN (2) CN102609975B (zh)
WO (1) WO2007129216A2 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8749561B1 (en) 2003-03-14 2014-06-10 Nvidia Corporation Method and system for coordinated data execution using a primary graphics processor and a secondary graphics processor
US8743019B1 (en) 2005-05-17 2014-06-03 Nvidia Corporation System and method for abstracting computer displays across a host-client network
US8775704B2 (en) 2006-04-05 2014-07-08 Nvidia Corporation Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US7612783B2 (en) * 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US8130227B2 (en) * 2006-05-12 2012-03-06 Nvidia Corporation Distributed antialiasing in a multiprocessor graphics system
US9047123B2 (en) * 2007-06-25 2015-06-02 International Business Machines Corporation Computing device for running computer program on video card selected based on video card preferences of the program
US9047040B2 (en) * 2007-06-25 2015-06-02 International Business Machines Corporation Method for running computer program on video card selected based on video card preferences of the program
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
US8711153B2 (en) * 2007-12-28 2014-04-29 Intel Corporation Methods and apparatuses for configuring and operating graphics processing units
CN102016916B (zh) 2008-04-04 2014-08-13 先进微装置公司 用于抗混叠的过滤方法和装置
US20100013854A1 (en) * 2008-07-18 2010-01-21 Microsoft Corporation Gpu bezier path rasterization
US8736617B2 (en) * 2008-08-04 2014-05-27 Nvidia Corporation Hybrid graphic display
US8799425B2 (en) 2008-11-24 2014-08-05 Nvidia Corporation Configuring display properties of display units on remote systems
US8325177B2 (en) * 2008-12-29 2012-12-04 Microsoft Corporation Leveraging graphics processors to optimize rendering 2-D objects
US9075559B2 (en) 2009-02-27 2015-07-07 Nvidia Corporation Multiple graphics processing unit system and method
US9135675B2 (en) 2009-06-15 2015-09-15 Nvidia Corporation Multiple graphics processing unit display synchronization system and method
US8766989B2 (en) 2009-07-29 2014-07-01 Nvidia Corporation Method and system for dynamically adding and removing display modes coordinated across multiple graphics processing units
US20110063305A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation Co-processing techniques on heterogeneous graphics processing units
US9111325B2 (en) 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US8780122B2 (en) 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US9041719B2 (en) 2009-12-03 2015-05-26 Nvidia Corporation Method and system for transparently directing graphics processing to a graphical processing unit (GPU) of a multi-GPU system
US9524138B2 (en) * 2009-12-29 2016-12-20 Nvidia Corporation Load balancing in a system with multi-graphics processors and multi-display systems
WO2012010968A1 (en) * 2010-07-19 2012-01-26 Ati Technologies Ulc Displaying compressed supertile images
CN101969552B (zh) * 2010-11-17 2013-04-10 广东威创视讯科技股份有限公司 一种视频数据并行处理系统及其方法
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
GB2496394B (en) 2011-11-08 2014-12-17 Imagination Tech Ltd A method and system for implementing multisample antialiasing
GB2497302B (en) 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
US20130148947A1 (en) * 2011-12-13 2013-06-13 Ati Technologies Ulc Video player with multiple grpahics processors
US9330475B2 (en) * 2012-05-01 2016-05-03 Qualcomm Incorporated Color buffer and depth buffer compression
US9449359B2 (en) * 2012-09-13 2016-09-20 Ati Technologies Ulc Rendering settings in a multi-graphics processing unit system
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9262797B2 (en) * 2013-03-15 2016-02-16 Nvidia Corporation Multi-sample surface processing using one sample
US9286659B2 (en) * 2013-03-15 2016-03-15 Nvidia Corporation Multi-sample surface processing using sample subsets
US9965876B2 (en) * 2013-03-18 2018-05-08 Arm Limited Method and apparatus for graphics processing of a graphics fragment
US9659342B2 (en) * 2013-06-29 2017-05-23 Intel Corporation Mid command buffer preemption for graphics workloads
US9818379B2 (en) 2013-08-08 2017-11-14 Nvidia Corporation Pixel data transmission over multiple pixel interfaces
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
US9842532B2 (en) 2013-09-09 2017-12-12 Nvidia Corporation Remote display rendering for electronic devices
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
US9679347B2 (en) * 2014-02-18 2017-06-13 Qualcomm Incorporated Shader pipeline with shared data channels
AU2014201243B2 (en) 2014-03-06 2015-11-26 Canon Kabushiki Kaisha Parallel image compression
US10147203B2 (en) * 2014-09-10 2018-12-04 Nvidia Corporation Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
US10096086B2 (en) * 2014-09-10 2018-10-09 Nvidia Corporation Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
CN107111185A (zh) * 2014-12-22 2017-08-29 3M创新有限公司 降频转换膜元件
GB2536964B (en) * 2015-04-02 2019-12-25 Ge Aviat Systems Ltd Avionics display system
US10650024B2 (en) * 2015-07-30 2020-05-12 Google Llc System and method of replicating data in a distributed system
JP6992005B2 (ja) * 2016-01-18 2022-01-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンピューティングシステムにおけるアンチエイリアシング動作の実行
US10319063B2 (en) 2017-02-24 2019-06-11 Ati Technologies Ulc System and method for compacting compressed graphics streams for transfer between GPUs
US9912957B1 (en) 2017-04-01 2018-03-06 Intel Corporation Lossless compression for multisample render targets alongside fragment compression
US10691392B2 (en) 2017-04-17 2020-06-23 Intel Corporation Regional adjustment of render rate
US10402937B2 (en) * 2017-12-28 2019-09-03 Nvidia Corporation Multi-GPU frame rendering
US11430172B2 (en) * 2018-12-14 2022-08-30 Nvidia Corporation Generation of sample points in rendering applications using elementary interval stratification
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler
WO2023108619A1 (en) * 2021-12-17 2023-06-22 Qualcomm Incorporated Physical subsampled rgb format subpixel tile render system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684895A (en) * 1995-05-11 1997-11-04 Xerox Corporation Method for decoding a compressed image
CN1377009A (zh) * 2001-03-26 2002-10-30 矽统科技股份有限公司 使用区块内边缘资讯进行区块图纹压缩与解压缩的方法与系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379129A (en) * 1992-05-08 1995-01-03 Apple Computer, Inc. Method for compositing a source and destination image using a mask image
AU5652700A (en) * 1999-09-24 2001-03-29 Nintendo Co., Ltd. Method and apparatus for providing non-photorealistic cartoon outlining within a 3D vodeographic system
JP3915652B2 (ja) * 2002-10-09 2007-05-16 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
KR100503085B1 (ko) * 2003-01-20 2005-07-21 삼성전자주식회사 이차원 그래픽 가속방법 및 장치
US8111928B2 (en) 2003-02-13 2012-02-07 Ati Technologies Ulc Method and apparatus for compression of multi-sampled anti-aliasing color data
US7289125B2 (en) 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
US8212838B2 (en) 2005-05-27 2012-07-03 Ati Technologies, Inc. Antialiasing system and method
US7612783B2 (en) 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684895A (en) * 1995-05-11 1997-11-04 Xerox Corporation Method for decoding a compressed image
CN1377009A (zh) * 2001-03-26 2002-10-30 矽统科技股份有限公司 使用区块内边缘资讯进行区块图纹压缩与解压缩的方法与系统

Also Published As

Publication number Publication date
CN102609975B (zh) 2017-12-19
WO2007129216A2 (en) 2007-11-15
US20070257935A1 (en) 2007-11-08
US20100008572A1 (en) 2010-01-14
EP2016560B1 (en) 2013-04-03
CN101438319B (zh) 2012-02-22
EP2355044A1 (en) 2011-08-10
US7612783B2 (en) 2009-11-03
US8199164B2 (en) 2012-06-12
EP2355044B1 (en) 2017-03-29
EP2016560A2 (en) 2009-01-21
WO2007129216A3 (en) 2008-10-16
CN101438319A (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
CN101438319B (zh) 使用多图形处理单元的改进的图形去阶梯
US10297046B2 (en) Techniques for reducing accesses for retrieving texture images
CN104272740A (zh) 颜色缓冲和深度缓冲压缩
CN104978760A (zh) 映射多速率着色到单片程序
KR20070112735A (ko) 프레임 버퍼 병합
KR101711775B1 (ko) 그래픽스 프로세싱을 위한 그래픽스 메모리 로드 마스크
CN103262531B (zh) 用于在图块编码中在像素值缓冲器中存储压缩比率指示的方法和设备
CN111062858A (zh) 高效的提前渲染方法、装置及计算机存储介质
CN107886466B (zh) 一种图形处理器图像处理单元系统
US9679530B2 (en) Compressing graphics data rendered on a primary computer for transmission to a remote computer
US6459498B2 (en) Data transmission method and apparatus that discriminates whether data is to be developed into bitmap data
CN102903094A (zh) 电子文档栅格化方法和电子文档栅格化装置
CN111222611A (zh) 一种基于颜色的堆叠式三维码编码方法、编码装置、解码方法、解码装置以及存储介质
US11250611B1 (en) Graphics processing
US10269168B2 (en) Graphics processing systems
AU2009212933A1 (en) Methods of storing and retrieving images
CN111383314A (zh) 一种验证着色器函数的方法、装置及计算机存储介质
CN111541901B (zh) 图片解码的方法和装置
JP2003189108A (ja) 画像圧縮方法
CN115563426A (zh) 一种用浏览器解析展示3d文件的系统和方法
CN114037795A (zh) 一种不可见像素的剔除方法、装置及存储介质
KR100801317B1 (ko) 3차원 그래픽 처리를 위한 가변 버퍼 시스템 및 그 방법
JP2008067133A (ja) 画像処理装置および画像処理のプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant