CN102693712B - 使用图形处理器的多个显示头的抗混叠 - Google Patents
使用图形处理器的多个显示头的抗混叠 Download PDFInfo
- Publication number
- CN102693712B CN102693712B CN201210172738.7A CN201210172738A CN102693712B CN 102693712 B CN102693712 B CN 102693712B CN 201210172738 A CN201210172738 A CN 201210172738A CN 102693712 B CN102693712 B CN 102693712B
- Authority
- CN
- China
- Prior art keywords
- pixel
- group
- corrected
- input
- gpu
- 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.)
- Expired - Fee Related
Links
- 238000005070 sampling Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 70
- 230000004927 fusion Effects 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 45
- 238000009877 rendering Methods 0.000 claims description 45
- 238000012937 correction Methods 0.000 claims description 10
- 238000013459 approach Methods 0.000 claims 3
- 238000012546 transfer Methods 0.000 abstract description 29
- 238000012545 processing Methods 0.000 abstract description 10
- 239000000203 mixture Substances 0.000 abstract description 3
- 230000007717 exclusion Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 31
- 238000001914 filtration Methods 0.000 description 24
- 238000003860 storage Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000005562 fading Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004040 coloring Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 244000105624 Arachis hypogaea Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 244000283207 Indigofera tinctoria Species 0.000 description 1
- GJWAPAVRQYYSTK-UHFFFAOYSA-N [(dimethyl-$l^{3}-silanyl)amino]-dimethylsilicon Chemical compound C[Si](C)N[Si](C)C GJWAPAVRQYYSTK-UHFFFAOYSA-N 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002939 deleterious effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Image Processing (AREA)
Abstract
利用单个图形处理器的多个显示头以执行抗混叠和其它处理任务。在一个实施例中,同一图形处理器的两个显示头经由像素传送路径以主/从配置彼此耦合。除其自己的像素之外,“主”显示头还从“从”显示头接收像素,且所述主显示头中的像素选择逻辑可掺合所述两种像素或选择任一种像素而将另一种像素排除在外。如果所述两种像素对应于同一显示像素中的不同取样位置,那么所述掺合像素为经抗混叠的像素。
Description
相关申请案的交叉参考
本申请案主张2006年5月12日申请的题为“Antialiasing Using Multiple Display Headsof a Graphics Processor”的第60/747,154号美国临时申请案和2006年5月12日申请的题为“Distributed Antialiasing in a Multiprocessor Graphics System”的共同转让的共同待决第11/383,048号美国专利申请案的优先权。
技术领域
本发明大体上涉及计算机图形,且具体地说,涉及使用图形处理器的多个显示头对图像数据进行抗混叠。
背景技术
如此项技术中已知,计算机生成的图像易受由在将图像数据转换成离散色彩样品(像素)阵列中所使用的有限取样分辨率引起的各种视觉假象影响。此类假象(通常称为“混叠”)包括光滑线中的参差性、规则图案中的不规则性等。
为了减少混叠,通常对色彩进行“过取样”,即在超过组成最终(例如显示或存储的)图像的像素数目的许多取样位置处进行取样。举例来说,可以像素数目的两倍或四倍对图像进行取样。此项技术中已知各种类型的过取样,包括:超取样,其中将每一取样位置视为单独像素;和多取样,其中为覆盖像素的至少一部分的每一图元计算单个色彩值,但在多个位置处确定图元对像素的覆盖率。
抗混叠(AA)滤波器掺合每个像素的多个样品,以确定单个色彩值。常规上,AA滤波器应用于生成像素并将其存储到帧缓冲器的渲染管线内,或应用于从帧缓冲器读取像素并将其传递到显示装置的显示管线内。
发明内容
本发明的实施例提供用于开发单个图像处理器的多个显示头以执行抗混叠和其它处理任务的系统和方法。在一个实施例中,同一图形处理器的两个显示头经由像素传送路径以主/从配置彼此耦合。“主”显示头除其自己的像素之外还从“从”显示头接收像素,且主显示头中的像素选择逻辑可掺合所述两种像素或选择任一种像素而将另一种像素排除在外。如果所述两种像素对应于同一图像中的不同取样位置,那么所掺合的像素为经AA滤波的像素。
根据本发明的一个方面,图形处理装置包括第一显示头、第二显示头和像素传送路径。所述第一显示头经配置以生成第一输出像素且设置在集成电路内。经配置以生成第二输出像素的所述第二显示头也设置在所述集成电路内。第二显示头有利地包括:第一输入路径,其经配置以接收外部像素;第二输入路径,其经配置以接收内部像素;像素组合器,其耦合到所述第一输入路径和所述第二输入路径,且经配置以掺合所述外部像素与所述内部像素以生成掺合像素;和选择电路,其经配置以选择外部像素、内部像素或掺合像素中的一者作为第二输出像素。像素传送路径可经配置以将第一输出像素从第一显示头传递到第二显示头的第一输入路径,以使得第一输出像素由第一输入路径接收作为外部像素。
在一些实施例中,像素传送路径也设置在集成电路内。在其它实施例中,像素传送路径的至少一部分位于集成电路外部。举例来说,像素传送路径可包括可移除连接器。
根据本发明的另一方面,图形子系统包括图形适配器,其具有像素输出连接器和像素输入连接器。可安装在图像适配器上的图像处理器具有:像素输出端口,其可以通信方式耦合到像素输出连接器;和像素输入端口,其可以通信方式耦合到像素输入连接器。所述图形子系统还包括可移除连接器单元,其适于将图形适配器的像素输出连接器连接到图形适配器的像素输入连接器。
根据本发明的又一方面,生成图像的方法包括使用图形处理器的渲染管线来渲染图像的第一组输入像素和第二组输入像素。用于渲染第一组输入像素的第一渲染操作在至少一个方面不同于用于渲染第二组输入像素的第二渲染操作;举例来说,所述两种渲染操作可能关于应用于每一像素的取样图案而不同,或关于正被渲染的图像的视口偏移而不同。将第一组输入像素传递到图形处理器的第一显示头,且将第二组输入像素传递到图形处理器的第二显示头。进一步将第一组输入像素从第一显示头传递到第二显示头。在第二显示头中,第一组输入像素和第二组输入像素的相应像素经掺合以生成一组输出像素。
以下详细描述连同附图将提供对本发明的性质和优势的更好理解。
附图说明
图1是根据本发明实施例的计算机系统的方框图;
图2是可在本发明实施例中使用的图形处理单元(GPU)中的像素输出路径的方框图;
图3A和3B是可在本发明实施例中使用的GPU的显示头中的像素选择逻辑的方框图;
图4A是根据本发明实施例的具有两个GPU的图形子系统的方框图;
图4B是根据本发明实施例展示以主/从配置耦合的两个显示头的GPU的方框图;
图5A-5C说明可在本发明一些实施例中使用的取样图案;
图6说明根据本发明实施例的实施为印刷电路卡且配置有外部像素传送路径的图形适配器;和
图7是根据本发明实施例的具有内部像素传送路径的GPU的方框图。
具体实施方式
本发明的实施例提供用于开发单个图形处理器的多个显示头以执行抗混叠和其它处理任务的系统和方法。在一个实施例中,同一图形处理器的两个显示头经由像素传送路径以主/从配置彼此耦合。“主”显示头除其自己的像素之外还从“从”显示头接收像素,且主显示头中的像素选择逻辑可掺合所述两种像素或选择任一种像素而将另一种像素排除在外。如果所述两种像素对应于同一图像中的不同取样位置,那么所掺合的像素为经AA滤波的像素。
系统概述
图1是根据本发明实施例的计算机系统100的方框图。计算机系统100包括中央处理单元(CPU)102和系统存储器104,所述CPU 102和所述系统存储器104经由包括存储器桥105(例如,北桥芯片)的总线路径进行通信。存储器桥105经由总线或其它通信路径106连接到I/O(输入/输出)桥107(例如,南桥芯片)。I/O桥107从一个或一个以上用户输入装置108(例如,键盘、鼠标)接收用户输入,并经由总线106和存储器桥105将所述输入转发到CPU 102。在基于像素的显示装置110(例如,常规的基于CRT或LCD的监视器)上提供视觉输出,所述基于像素的显示装置110在经由总线或其它通信路径113耦合到存储器桥105的图形子系统112的控制下进行操作。系统盘114也连接到I/O桥107。开关116在I/O桥107与其它组件(例如网络适配器118和各种内插卡120、121)之间提供连接。其它组件(未明确展示)(包括USB或其它端口连接件、CD驱动器、DVD驱动器和类似物)也可连接到I/O桥107。可使用例如PCI(外围组件互连)、PCI Express(PCI-E)、AGP(加速图形端口)、HyperTransport或任何其它总线或点到点协议的协议来实施各种组件间的通信路径,且如此项技术中已知,不同装置之间的连接可使用不同的协议。
图形子系统112包括数目N个(一个或一个以上)图形处理单元(GPU)122。(在本文中,根据需要,用标识对象的参考数字和标识实例的插入数字来表示具有类似对象的多个实例)。每一GPU 122均具有相关联的图形存储器124。可(例如)使用一个或一个以上集成电路装置(例如可编程处理器、专用集成电路(ASIC)和存储器装置)来实施GPU 122和图形存储器124。在一些实施例中,在可插入到系统100中的扩展槽(例如,PCI-E槽)且从所述扩展槽移除的一个或一个以上扩展卡或其它适配器中实施GPU122和图形存储器124。可使用任何数目N的GPU 122。
每一GPU 122可经配置以执行与从由CPU 102和/或系统存储器104经由存储器桥105和总线113供应的图形数据生成像素数据(在本文也称为“像素”)、与各自图形存储器124相互作用以存储并更新像素数据和类似操作有关的各种任务。举例来说,GPU 122可从由在CPU 102上执行的各种程序提供的2-D或3-D场景数据生成像素数据。GPU 122还可在进行或不进行进一步处理的情况下,将经由存储器桥105接收到的像素数据写入到图形存储器124。每一GPU 122还包括扫描输出模块(在本文中也称为显示管线),其可经配置以将像素数据从图形存储器124传递到GPU 122的输出端口,如下文所述。所述输出端口可能连接或可能不连接到监视器或另一GPU 122。
对于以分布式渲染模式进行的操作来说,一个GPU(例如,GPU 122(0))有利地经配置以将扫描输出的像素传递到另一GPU(例如,GPU 122(N-1)),所述另一GPU在来自其自己的显示管线的内部像素与从GPU 122(0)接收到的外部像素之间进行选择。两个以上GPU 122可以“雏菊链”形式进行互连,以使得从GPU 122将其像素传递到中间GPU 122,所述中间GPU 122在其内部像素与来自从GPU的外部像素之间进行选择,接着将所选择的像素转发到另一GPU,如此进行,直到最后的主GPU(即,连接到监视器的GPU)将最终选择的像素传递到显示装置为止。
在一些实施例中,可在不对物理连接作任何改变的情况下,通过调节GPU 122的配置设定,以任一GPU 122均可从属于任一其它GPU 122的方式,使GPU 122彼此互连。举例来说,GPU 122可以单向或双向环拓扑进行连接。
可支持各种分布式渲染模式。举例来说,在分割帧渲染中,分配不同的GPU 122来渲染同一图像的不同部分;在交替帧渲染中,分配不同的GPU 122来渲染待显示的图像序列中的不同图像。特定分布式渲染模式对本发明来说不是关键性的。
根据本发明的实施例,GPU 122还可以“外部分布式”AA模式来进行操作。在此模式下,GPU 122中的像素选择逻辑掺合内部像素和外部像素,而不是选择任一种像素而将另一种像素排除在外。在内部和外部像素代表具有不同取样位置的同一图像的情况下,掺合所述像素的结果对应于AA分辨操作(在本文中也称为AA滤波器)。根据本发明另一实施例,一个GPU 122可以“内部分布式”AA模式进行操作。在此模式下,GPU 122中的像素选择逻辑对由同一GPU 122的两个显示头产生的像素进行掺合。下文描述分布式AA模式(包括内部和外部分布式模式)和相关联的像素选择逻辑的实例。
在一些实施例中,一些或所有GPU 122还可以“独立渲染”模式进行操作,其中GPU122中的不同GPU 122为不同的显示装置渲染图像;在独立渲染模式下由不同GPU 122渲染的图像可能彼此相关或可能彼此不相关。应了解,GPU 122可经配置为以上述或其它模式中的任一模式来进行操作。
CPU 102作为系统100的主处理器进行操作,用于控制和协调其它系统组件的操作。具体来说,CPU 102发布控制GPU 122的操作的命令。在一些实施例中,CPU 102将针对GPU 122的命令流写入到命令缓冲器,所述命令缓冲器可位于系统存储器104、图形存储器124或CPU 102和GPU 122两者均可存取的另一存储位置中。GPU 122从命令缓冲器读取命令流,且与CPU 102的操作异步地执行命令。所述命令可包括用于生成图像的常规渲染命令,以及使在CPU 102上执行的应用程序能够杠杆调节GPU 122用于可能与图像生成无关的数据处理的计算能力的通用计算命令。
将了解,本文所展示的系统是说明性的,且变化和修改是可能的。可根据需要修改互连拓扑,包括桥的数目和布置。举例来说,在一些实施例中,系统存储器104直接连接到CPU 102,而不是通过桥连接到CPU 102,且其它装置经由存储器桥105和CPU 102而与系统存储器104进行通信。在其它替代拓扑中,图形子系统112连接到I/O桥107,而不是连接到存储器桥105。在其它实施例中,I/O桥107和存储器桥105可集成到单个芯片中。本文所展示的特定组件是可选的;举例来说,可支持任何数目的内插卡或外围装置。在一些实施例中,去除开关116,且网络适配器118和内插卡120、121直接连接到I/O桥107。
还可改变GPU 122到系统100的剩余部分的连接。在一些实施例中,将图形系统112实施为一个或一个以上扩展(或内插)卡,所述卡可插入到系统100的扩展槽中。在其它实施例中,用总线桥(例如存储器桥105或I/O桥107)将GPU集成在单个芯片上。
每一GPU可具备任何数量的局部图形存储器(包括没有任何局部存储器),且可以任何组合使用局部存储器和系统存储器。举例来说,在统一存储器结构(UMA)实施例中,不提供任何专用图形存储器装置,且所述GPU中的一些或所有GPU独有地或几乎独有地使用系统存储器。在UMA实施例中,GPU可集成到总线桥芯片中,或作为离散芯片而提供,其中高速总线(例如,PCI-E)将GPU连接到桥芯片和系统存储器。
另外,实施本发明各方面的GPU可并入到多种装置中,包括通用计算机系统、视频游戏控制台和其它专用计算机系统、DVD播放器、例如移动电话或个人数字助理的手持装置等。
具有多个显示头的GPU
图2是可用于实践本发明的GPU 122中的像素输出路径的方框图。尽管本发明的一些实施例不需要多GPU图形系统,但GPU 122有利地经配置以可在此类系统中使用。
具体来说,如图2所示,GPU 122包括显示(或扫描输出)管线202,其耦合到存储器接口204。显示管线202还耦合到显示头206a(“头A”)和206b(“头B”)。GPU 122具有多个输出端口210-213,包括数字输出端口210、211和模拟输出端口212、213。GPU122还具有两个多用途输入/输出(MIO)端口214a(“MIO A”)和214b(“MIO B”),其可经配置以用于各种用途,包括与另一GPU或与另一外部数字装置进行通信。显示头206a和206b每一者均经由纵横结构220耦合到输出端口210-213和MIO端口214a、214b。
存储器接口204耦合到存储器(图2中未图示)(例如图1的图形存储器124),所述存储器存储由GPU 122生成的像素数据。显示管线202与存储器接口204进行通信以存取所存储的像素数据。显示管线202将像素数据传递到显示头206a、206b中的任一者或两者。在一些实施例中,显示管线202可在将像素数据传递到显示头206a、206b之前对像素数据执行各种处理操作,且可能以或可能不以不同于以显示头206b为目的地的像素数据的方式来处理以显示头206a为目的地的像素数据。另外,提供到显示管线202以用于处理并传递到显示头206a的像素数据可与提供到显示管线202以用于处理并传递到显示头206b的像素数据相同或不同。显示管线202和存储器接口204的特定配置对本发明来说不是关键性的,且省略详细描述。
数字输出端口210、211可具有一般常规设计,且可包括修改像素数据以符合数字输出标准的电路。举例来说,在一个实施例中,端口210、211中的每一者均实施针对标准DIV(数字视频接口)连接器的TMDS(跃变最小化差分信令)。类似地,模拟输出端口212、213可具有一般常规设计,且可包括(例如)符合任何模拟视频标准的数字到模拟转换器,其大量实例为此项技术所已知。将了解,特定数字或模拟输出端口的存在、不存在、数目或性质对本发明来说不是关键性的。
MIO A端口214a和MIO B端口214b可配置为输出端口,其将由显示头206a、206b中任一者产生的像素数据驱动到GPU 122的输出线上。MIO A端口214a和MIO B端口214b还可配置为输入端口,其将外部像素数据传递到显示头A 206a或显示头B 206b。在一些实施例中,MIO A端口214a和MIO B 214b每一者可独立地配置为输入端口或输出端口。MIO A端口214a和MIO B端口214b的配置可在系统启动期间确定,或可在系统操作期间的各个时间动态地修改。举例来说,每一MIO端口均可包括控制寄存器,其存储指定端口配置的值,且可根据需要在系统启动时或在其它时间将新值写入到寄存器。
头A 206a和头B 206b每一者均经由纵横结构220耦合到输出端口210-213以及耦合到MIO端口214a、214b。在此实施例中,纵横结构220可经配置以支持从头A 206a到端口210-213、214a或214b中任何一者的任何连接,且同时支持从头B 206b到端口210-213、214a或214b中任何一者(其当前不通过纵横结构220连接到头A 206a)的任何连接。举例来说,GPU 122可(例如经由数字输出端口210、211和/或模拟输出端口212、213中的任何两者)同时将像素数据从头206a、206b驱动到两个不同的监视器。或者,GPU 122可同时经由输出端口210-213中的一者将像素驱动到监视器,且经由MIO A端口214a或MIO B端口214b将像素驱动到另一GPU。在一些情况下,显示头206a、206b中的一者或两者可闲置,即不将像素传递到任何输出端口。
MIO端口214a、214b还可经配置以从GPU 122中的另一者接收像素数据,且将接收到的像素数据传送到显示头206a、206b中。每一GPU 122还在每一显示头206a、206b中具有像素选择逻辑(下文描述),以选择从MIO端口214a、214b中的一者接收到的“外部”像素、从其自己的显示管线202接收到的“内部”像素、或内部与外部像素的组合。
在一些实施例中,在系统启动时配置纵横结构220;在其它实施例中,纵横结构220可经动态配置,以使得可在系统操作期间改变连接。纵横结构220还可经配置以将在MIO端口214a、214b中的一者处接收到的传入像素数据耦合到显示头206a、206b中的任一者。
图3A是根据本发明实施例的GPU 122的显示头206a中的像素选择逻辑300的方框图。应了解,显示头206b可具有类似设计的像素选择逻辑。在一些实施例中,GPU 122的每一显示头206a、206b均具有其自己的像素选择逻辑300。
像素选择逻辑300在第一路径302上从图2的显示管线202接收内部像素。当图2的MIO A端口214a(或在一些实施例中,MIO B端口214b)经配置为输入端口时,像素选择逻辑300还在第二路径304上接收外部像素。
外部像素和内部像素每一者均传播到像素组合器电路306,所述像素组合器电路306掺合所述外部像素与所述内部像素,以产生掺合像素。可(例如)使用常规的运算逻辑电路来实施像素组合器电路306。在一个实施例中,像素组合器电路306包括:第一除法电路308,其将内部像素除以许多候选除数(例如,1、2、4等)中的一者;加法电路310,其将内部像素(在进行除法之后)相加到外部像素以产生总和像素;选择电路312,其响应于控制信号(PSEL1)而在内部像素与总和像素之间进行选择;和第二除法电路314,其将所选择的像素除以许多候选除数(例如,1、2等)中的一者,从而提供结果作为路径316上的掺合像素。
将路径304上的外部像素和路径316上的掺合像素呈现到选择电路318(例如,多路复用器)。响应于控制信号(PSEL2),选择电路318选择内部像素、掺合像素或外部像素以供传递到输出路径320,所述输出路径320连接到图2的纵横结构220。
PSEL1和PSEL2信号有利地由显示头206a中的控制逻辑(未明确展示)生成。在一些实施例中,可具有一般常规设计的此控制逻辑可对由在图1的CPU 102上执行的图形驱动器程序生成的控制信息作出响应。类似的控制信息还可用于(例如)通过在除法电路308、314的候选除数之间进行选择以为特定应用程序产生适当加权的平均数,来控制像素组合器308的操作。可以理解本教示的所属领域的技术人员将能够实施合适的控制逻辑来生成PSEL和像素组合器控制信号;因此,省略所述控制逻辑的详细描述。
图3B是根据本发明替代实施例的像素选择逻辑350的方框图。像素选择逻辑350大体上类似于图3A的像素选择逻辑300,但有利地经设计具有掺合γ校正像素的能力。像素选择逻辑350在第一路径352上从图2的显示管线202接收内部像素。所述内部像素被传播到像素组合器358。当MIO A端口214a经配置为输入端口时,像素选择逻辑350还在第二路径354上接收外部像素。所述外部像素也被传播到像素组合器358。
像素组合器358组合内部像素与外部像素,从而提供掺合像素作为信号路径360上的结果。像素组合器358可包括类似于图3A的除法电路306的除法电路和/或类似于图3A的加法器电路308的加法器。另外(或代替地),像素组合器358可包括用于掺合在路径352和354上接收到的γ校正像素的运算逻辑。如此项技术中已知,γ校正通过将像素值P转换为Pγ(其中γ为常数)来将像素值调节到非线性等级,所述非线性等级将在显示装置中产生线性强度响应。(对于典型的显示装置来说,常数γ约为2.0到2.5)。在一个此类实施例中,对于γ≈2.2来说,可使用以下等式来计算γ校正输出像素Po γ:
Po γ=(4Pi γ+4Pe γ+|Pi γ-Pe γ|)/4,(等式1)
其中Pi γ和Pe γ代表在路径352和354上供应的γ校正像素。所属领域的技术人员将认识到,等式1使用比计算精确结果将需要的硬件更为简单的硬件来提供可接受的近似方式。(举例来说,乘以和除以4可实施为位移位。)还将了解,可用其它近似方式来代替。
再次参看图3B,选择多路复用器362在路径352上接收内部像素,在路径354上接收外部像素且在路径360上接收掺合像素。响应于像素选择信号(PSEL),选择多路复用器362选择这些候选像素中的一者以供传递到输出路径364,所述输出路径364连接到图2的纵横结构220。输出路径364可包括第二除法电路366,其可类似于图3A的除法电路314。在替代实施例中,使用两个选择多路复用器(其类似于图3A所示的那些选择多路复用器)来选择输出像素,且除法电路366可放置在第二选择多路复用器之前。还可使用其它选择电路配置。
在一些实施例中,像素组合器350可经配置以对γ校正像素或非γ校正(线性)像素进行操作,其中当像素未经γ校正时,使用简单的加法。所述配置有利地在设置操作期间(例如,在系统启动时)由图形驱动器建立。应了解,不需要γ校正滤波器;在一些实施例中,可在最终像素选择之后应用任何γ校正。
使用多个GPU进行分布式抗混叠
图2的具有像素选择逻辑300或像素选择逻辑350的GPU 122有利地可用于具有两个或两个以上GPU 122的系统中的分布式抗混叠操作。图4A是主/从读出配置中具有两个GPU 122(0)和122(1)的图形子系统400的简化方框图。(为清楚起见,仅展示作用端口和显示头;在此实例中,每个GPU仅有一个显示头在使用)。从GPU 122(1)将其MIO A端口214a(1)配置为输出端口,而主GPU 122(0)将其MIO A端口214a(0)配置为输入端口。MIO A端口214a(1)耦合到MIO A端口214a(0),从而允许输出像素Po1从从GPU 122(1)流到主GPU 122(0)。
从GPU 122(1)的头A 206a(1)将由从GPU 122(1)的显示管线202(1)提供的像素Pi1作为输出像素转发到MIO A端口214a(1)。来自GPU 122(1)的输出像素Po1由主GPU 122(0)的MIO A端口214a(0)接收,所述MIO A端口214a(0)将所述像素转发到显示头A 206a(0)。在头A 206a(0)中,像素选择逻辑300(0)(图3的像素选择逻辑300的实例)操作以选择来自主GPU 122(0)的显示管线202(0)的内部像素Pi0、起源于从GPU 122(1)的显示管线202(1)的外部像素Po1、或由加法电路308供应的总和(例如,Pi0+Po1)。
主GPU 122(0)的头A 206a(0)将所选择的像素(Pfinal)传递到输出端口,在此情况下,所述输出端口为数字输出端口210(0)。将了解,GPU 122(0)的头A 206a(0)可经配置以将像素数据传递到MIO B端口214b(0)(图2C中未明确展示),所述MIO B端口214b(0)可连接到第三GPU 122的MIO端口;所述第三GPU 122那么将为GPU 122(0)的主机。因此,可以雏菊链方式连接任何数目的GPU 122。
根据本发明的实施例,可在外部分布式抗混叠(AA)模式下使用GPU 122(0)和122(1)。在此模式下,每一GPU 122均渲染同一图像,观看参数或取样参数中具有一些变化,使得由GPU 122(0)使用的取样位置不同于由GPU 122(1)使用的取样位置。举例来说,可能为所述两个GPU 122界定稍微不同的视口或视平面法线,从而在所述两个图像的像素边界中创建较小的偏移。或者,在像素内的取样位置可配置(例如,通过图形驱动器)的情况下,每一GPU 122均可经配置以使用同一组观看参数,但使用每一像素内不同的取样位置。
在分布式AA模式下,由GPU 122(0)的显示头206a(0)中的像素选择逻辑300(0)接收到的外部像素Po1和内部像素Pi0对应于最终图像的同一像素的不同取样位置。求内部和外部像素的平均值会以显示分辨率的两倍提供抗混叠。更具体地说,选择多路复用器310经配置以选择由加法器电路308提供的像素总和Po1+Pi0,且除法电路316经配置以将所选择的像素总和除以2,使得最终像素为Pfinal=(Po1+Pi0)/2。以此方式,像素选择逻辑300可实施2x AA滤波器。
应注意,GPU 122(0)和122(1)还可在其它分布式渲染模式下进行操作,所述其它分布式渲染模式包括其中选择内部像素或外部像素中的一者而将另一者排除在外的模式。特定选择将取决于分布式渲染模式的细节,例如不同GPU 122是渲染同一帧的不同部分还是不同的连续帧,且与本发明无关。另外,在存在两个以上GPU 122的情况下,可实现更高等级的抗混叠。举例来说,任何数目的GPU 122可通过使用其各自的MIO A和MIO B端口以雏菊链的方式进行连接,且雏菊链中的每一GPU均可使用适当的加权因数将其自己的内部像素与从上游GPU接收到的外部像素进行掺合。
将了解,本文描述的显示头、像素选择逻辑和分布式AA操作是说明性的,且变化和修改是可能的。举例来说,本文所涉及的除法电路支持除以较小数目的离散除数。在其它实施例中,除法电路可支持较大数目的除数(包括任意选择的除数),使得可支持较宽范围的抗混叠滤波器。另外,除法电路可放置在与本文所述的那些位置不同的位置,且可修改除法电路的数目。举例来说,除内部像素路径之外或代替内部像素路径,除法电路可放置在外部像素路径上。
还可修改选择电路318的特定配置。所属领域的技术人员将认识到,能够可控制地在内部像素、外部像素和从内部和外部像素两者导出的掺合像素之间进行选择的任何电路元件或电路元件组合均可用作选择电路。
如本文中使用,“像素”大体上指的是在图像内某一位置处取样的色彩值的任何表示,或指的是此类值的组合(例如,如由图3的加法电路308所产生)。GPU中的渲染管线以标称分辨率(其中分辨率指的是图像中像素的数目)生成像素,所述标称分辨率可能与或可能不与显示装置的分辨率相符。在一些实施例中,显示管线执行任何需要的上滤波或下滤波,以将标称分辨率转变成显示分辨率。
将本文的MIO端口和显示头标记为本文的“A”和“B”仅仅是为了方便描述。应了解,可将任何MIO端口连接到任何其它MIO端口,且当所述端口经配置为输出端口时,任一显示头可驱动任一MIO端口。另外,一些GPU可包括两个以上或两个以下MIO端口和/或两个以上或两个以下显示头。
一般来说,使一个GPU能够与另一GPU传送像素数据的任何端口均可用作I/O端口来实践本发明。在一些实施例中,MIO端口还可经配置而用于除与另一GPU进行通信之外的目的,如上文所述。举例来说,MIO端口可经配置以与例如TV编码器或类似物的各种外部装置进行通信;在一些实施例中,可支持DVO(Intel公司的数字视频输出接口)或用于视频输出的其它标准。在一些实施例中,在组装图形适配器时确定每一MIO端口的配置;在系统启动时,适配器通知系统关于其MIO端口的配置。在其它实施例中,可用专用输入或输出端口来代替MIO端口。
可由经配置以与所有图形处理器进行通信的系统设置单元来完成I/O端口、显示头和图形子系统的其它方面的配置。在一些实施例中,在图形驱动器程序中构建系统设置单元,所述图形驱动器程序在包括多处理器图形子系统的系统的CPU上执行。包括硬件和/或软件组件的任何组合在内的任何其它合适代理均可用作系统设置单元。
内部分布式抗混叠
根据本发明的实施例,一个GPU 122的两个显示头206a、206b可以主/从配置彼此耦合。在此配置中,GPU 122可使用作为主机进行操作的显示头(例如,头A 206a)中的像素选择逻辑300来执行“内部分布式”AA滤波。
图4是根据本发明实施例展示显示头206a以主/从配置耦合到显示头206b的GPU122的方框图。应了解,图4的GPU 122可与图2的GPU 122相同;在图4中,仅展示作用I/O端口,且未展示纵横结构220。图4中的显示管线202经展示为具有两个平行部分:显示管线A 402a,其将像素传递到显示头206a;和显示管线B 402b,其将像素传递到显示头206b。显示管线A 402a和B 402b每一者均可具有一般常规设计,且每一者均可经配置以执行各种像素处理操作;所述两个显示管线402a、402b可根据需要执行相同操作或不同操作。
MIO B端口214b经由像素传送路径400而耦合到同一GPU 122的MIO A端口214a。像素传送路径400将由显示头B 206b产生的像素从MIO B端口214b传送到MIO A端口214a;MIO A端口214a将其接收到的像素传递到GPU 122的显示头A 206a。可使用任何合适的信号传送技术来实施像素传送路径400;下文描述实例。
从显示头A 206a的角度来看,从显示头B 206b接收到的像素不能与从不同GPU接收到的像素进行区分。因此,举例来说,显示头A 206a中的像素选择逻辑300可经操作以选择源自头A 206a的“内部”像素(PA)、源自头B 206b的“外部”像素(PB)或由像素组合器电路308从像素PA和PB创建的掺合像素中的任何一者作为输出像素。(在(与像素PA不同)像素PB并非由显示管线A 402a提供到显示头A 206a的意义上,像素PB在显示头A 206a的“外部”)。
在此配置中,GPU 122可用于执行“内部分布式”AA,其中两个显示管线402a、402b供应由显示头A 206中的像素选择逻辑300掺合的样品值。在操作中,GPU 122的渲染管线(未明确展示)渲染同一场景的两个图像,观看参数或取样参数中具有一些变化,使得用于所述两个图像的取样位置彼此不同。举例来说,可为所述两个图像界定稍微不同的视口或视平面法线,从而在两个图像的像素边界中创建较小偏移。或者,在像素内的取样位置可配置(例如,通过图形驱动器)的情况下,可使用同一组观看参数但使用每一像素内的不同取样位置来生成每一图像。
所渲染的图像中的一者存储在帧缓冲器“A”404中,而另一者存储在帧缓冲器“B”406中。帧缓冲器A 404和B 406可在任何存储器装置中实施,包括GPU 122中的芯片上存储器、图1的图形存储器124和/或系统存储器104;所述两个帧缓冲器可根据需要而位于同一存储器装置或不同装置中。
显示管线B 402b从帧缓冲器B 406读取像素,对所述像素执行各种处理操作(其可具有一般常规性质),且将所得像素PB转发到显示头B 206b。显示头B 206b具有像素选择逻辑300,所述像素选择逻辑300操作以选择像素PB;那些像素经由纵横结构220(图4中未明确展示)而转发到MIO B端口214b。像素PB经由像素路径400而传送到同一GPU 122的MIO A端口214a,所述MIO A端口214a将像素PB转发到显示头A 206a。
与此操作并行,显示管线A 206a从帧缓冲器A读取像素,对所述像素执行各种处理操作(其可具有一般常规性质),且将所得像素PA转发到显示头A 206a。显示管线B 402b、显示头B 206b和像素传送路径400有利地以适当时序进行配置,使得对应于同一屏幕像素的像素值PA和PB同时(例如,在同一时钟周期中)传递到显示头A 206a的像素选择逻辑300。
在像素组合器电路308内,加法电路310将像素PA与PB相加,多路复用器312选择总和像素,且除法电路314将总和除以2;因此,路径316上的掺合像素是像素PA和PB的平均。多路复用器318选择所述掺合像素作为输出像素Pfinal。显示头A 206a将所述输出像素Pfinal传递到输出端口(例如,数字输出端口210),以供传输到显示装置。
应注意,因为GPU 122的渲染管线对每一帧进行渲染两次,所以当在本文所述的内部分布式AA模式下操作时,GPU 122的最大帧速率通常低于当在非AA模式下操作时的最大帧速率。在一些实施例中,此内部分布式AA模式的帧速率约为非AA模式的帧速率的一半。对于实时动画来说,只要内部分布式AA模式的帧速率约为30帧每秒(或更高),帧速率的降低便对动画的流畅度具有较少或没有有害影响。另外,在非AA模式下产生的图像质量通常将低于在内部分布式AA模式下产生的图像质量;因此,内部分布式AA用降低的帧速率来交换较高的图像质量。
还应注意,使用本文描述的内部分布式AA模式可获得的帧速率可比得上在单个GPU中使用常规的AA技术(例如,在渲染管线和/或显示管线中进行滤波)可获得的帧速率。具有单个GPU的常规AA需要GPU的渲染管线来生成单个图像,但每个像素具有多个样品。每个像素处理较大数目的样品通常还相对于非AA模式来减小帧速率,以交换改进的图像质量。依据在渲染管线中如何管理双图像的渲染而定,具有内部分布式AA的GPU的处理量可比得上具有常规AA的GPU的处理量。
还可实施较高次AA滤波器,且此类滤波器可采用单管线与内部分布式抗混叠操作的组合。在一个实施例中,显示管线A 402a和显示管线B 402b每一者均包括实施内部Nx AA滤波器的扫描输出滤波器(FOS)模块(未明确展示)。更具体地说,对于被渲染的图像的每一型式来说,GPU 122中的渲染管线(例如)通过使用常规的超取样和/或多取样技术来针对每个像素生成数目N(例如,2、4或任何其它大于1的数目)个样品。所述图像的一种型式的样品存储在帧缓冲器A 404中,而所述图像的另一型式的样品存储在帧缓冲器B 406中。
显示管线402a从帧缓冲器A接收每一像素的所有N个样品。在显示管线402a内,第一扫描输出滤波器(FOS)模块(图4中未明确展示)实施Nx AA滤波器,从而掺合所述N个样品以针对每个像素产生单个色彩值。由FOS模块确定的色彩值被供应(可能在进一步处理之后)到显示头A 206a作为像素PA。
类似地,显示管线402b从帧缓冲器B接收每一像素的所有N个样品。在显示管线402b内,第二FOS模块(图4中也未明确展示)实施Nx AA滤波器,从而掺合所述N个样品以针对每个像素确定单个色彩值。由第二FOS模块确定的色彩值被供应(可能在进一步处理之后)到显示头B 206b作为像素PB。
因此,分别由显示管402a和402b产生的像素PA和PB每一者可为来自Nx过取样的图像的经滤波的像素。只要用于填充帧缓冲器A 404的取样点不与用于填充帧缓冲器B406的那些取样点重合,将每一显示管402a、402b中的Nx AA滤波器与上文所述的内部分布式AA滤波器技术相组合就会导致(2N)x AA滤波器。举例来说,如果每一显示管402a、402b中的FOS模块均提供4x AA滤波器,那么GPU 122可提供8x AA。
特定FOS模块或AA滤波算法对本发明来说不是关键性的,且可使用常规的模块和算法。因此,已省略详细描述。在一些实施例中,显示管线402a和402b中的FOS模块应用相同的滤波算法,使得所得最终图像不依赖于图像的哪一型式由特定显示管线处理。另外,可在图像生成过程中较早执行Nx AA滤波。举例来说,在一个替代实施例中,可使用常规技术在GPU 122的渲染管线内执行Nx AA滤波。
在一些实施例中,用于填充不同帧缓冲器的取样点经选择以使得没有两个取样点是重合的。举例来说,图5A说明应用于像素500的“栅格”取样图案。在像素内的位置501-504处(由圆圈指示),对像素取样四次。图5B说明应用于像素500的“旋转栅格”取样图案。在与位置501-504不同的位置511-514(由菱形指示)处,对像素取样四次。
在一个实施例中,使用图5A的栅格取样图案来生成帧缓冲器A 404中的像素数据,而使用图5B的旋转栅格取样图案来生成帧缓冲器B 406中的像素数据。显示管A 402a中的FOS模块将四个样品值(501-504)滤波为单个值PA,而显示管B 402b中的FOS模块将四个样品值(511-514)滤波为单个值PB。显示头206a中的像素选择逻辑300如上文所述将值PA和PB进行掺合以获得最终像素值,所述最终像素值对应于所有八个样品的平均数。此程序提供与用图5C中所说明的八点图案来对每一像素进行取样的单个渲染过程所提供的抗混叠力相同的抗混叠力。
将了解,本文所述的内部分布式AA技术是说明性的,且变化和修改是可能的。举例来说,如本文所述的GPU 122恰好具有两个显示头,其每一者均能够驱动至多一个输出端口;因此,当所述两个显示头均用于内部分布式抗混叠时,GPU 122可将至多一个像素流传递到显示装置。然而,本发明的实施例可在具有至少两个显示头和合适的像素选择逻辑和I/O端口的任何GPU中实施。在GPU具有两个以上显示头的情况下,GPU可支持内部分布式AA,且还可将独立的像素流供应到两个或两个以上显示装置。另外,在GPU具有两个以上显示头的情况下,有可能以主/从雏菊链的形式将GPU的所有显示头连接在一起,以进一步增加GPU的AA力。
另外,如本文所述的GPU 122具有两个MIO端口,其两者均用于内部分布式AA。在此实施例中,头A 206a或头B 206b均将不可用作任何其它GPU或显示头的主机或从属。在其它实施例中,GPU可具有额外的MIO端口,或MIO端口可具有允许一个端口同时接收像素和发送像素的操作模式,从而允许与结合内部分布式AA的其它GPU的互连性。举例来说,在存在第三MIO端口的情况下,所述端口可经配置为输入端口以将来自另一GPU的外部像素传递到显示头B 206b,或经配置为输出端口以将由显示头A 206a产生的像素传递到另一GPU。此类实施例中的所述另一GPU可经配置或不经配置以执行其自己的内部分布式AA滤波。
像素传送路径
现将描述根据本发明实施例的像素传送路径实施方案的实例。如将变得清楚,像素传送路径可在GPU外部或内部。
图6说明根据本发明实施例的实施为印刷电路卡且配置有外部像素传送路径的图形适配器600。使用符合PCI-E或另一互连标准的印刷电路板(PCB)602来将图形适配器600实施为扩展卡。GPU 122安装在PCB 602上,且经由PCB 602上的线迹(未图示)电耦合到系统连接器604。系统连接器604经设计为插入到PCI-E扩展槽(或任何其它类型的扩展槽)中,从而实现GPU 122与计算机系统的剩余部分(例如图1的系统100)之间的通信。GPU 122还经由PCB 602上的线迹(未图示)电耦合到显示输出连接器606。显示输出连接器606有利地耦合到GPU 122的数字输出端口210、211或模拟输出端口212、213(见图2)中的一者。在一些实施例中,PCB 602可提供多个显示输出连接器606,其每一者均耦合到输出端口210-213中的不同一者,如此项技术中已知。
PCB 602还包括两个图形边缘连接器614a、614b,其可具有相同的设计。图形边缘连接器614a经由线迹616连接到GPU 122的MIO A端口214a,而图形边缘连接器614b经由线迹618连接到GPU 122的MIO B端口214b。每一图形边缘连接器614a、614b均经配置以电或机械连接到可移除互连装置。在一些实施例中,图形边缘连接器614a和614b具有相同配置,从而允许它们可互换使用。
将一个实施例中的图形适配器600设计为在分布式渲染系统中使用,其中两个或两个以上GPU合作以执行渲染任务的不同部分。此类系统可(例如)在分割帧模式(其中每一GPU渲染图像的不同部分)下、在交替帧模式(其中每一GPU渲染图像序列中的不同图像)下或在分布式抗混叠模式下进行操作。在这些模式中的每一者下,一个GPU(主机)从另一GPU(从属)接收像素,且主GPU中的像素选择逻辑300如上文所述选择像素以供显示。不同图形适配器600上的GPU使用合适的互连装置经由各自图形边缘连接器614a、614b有利地进行连接。
在本发明的实施例中,可移除互连装置620经构造和定形以使得其可连接同一图形适配器600的图形边缘连接器614a和614b,如图6所示。互连装置620可为(例如)带状电缆或沿其长度印刷有线迹的PCB,所述互连装置620的任一端处均具有插孔以用于容纳图形边缘连接器614a、614b,从而允许所述两个图形边缘连接器614a、614b彼此连接。
在此实施例中,互连装置620开发由图形适配器600支持的分布式渲染系统的时序特性,以建立像素传送路径400(图4)。更具体地说,在分布式渲染配置中,从GPU 122的MIO B端口214b到不同图形适配器600上的GPU的MIO A端口(或MIO B端口)的像素传送路径具有特性传送时间,其由线迹618和/或616的长度和所述两个适配器之间的互连装置以及可沿传送路径的任何区段所包括的任何电子组件(FIFO、闩锁等)引起。在分布式渲染操作中,有利地协调从从GPU的显示头到主GPU的显示头的像素传送,使得来自从GPU和主GPU的像素大致上同时(例如,在同一时钟周期期间)到达主GPU的显示头。
只要互连装置620提供与连接不同GPU的分布式渲染互连装置的传输时间相匹配的传输时间,那么由互连装置620提供的像素传送路径便以正确时序将信号传递到MIO A端口214a。因此,使用外部互连装置实施内部分布式AA不需要对原来针对分布式渲染而设计的GPU 122或适配器卡600进行内部修改。
将了解,本文所述的图形适配器和互连装置是说明性的,且变化和修改是可能的。适配器和互连装置的形状、布局和材料成分可从本文所展示并描述的那些进行修改,且可实施任何通信协议,以在MIO端口之间传送数据。
在一个替代实施例中,互连装置620可实施为PCB 602的一部分,例如通过使用线迹将路径618连接到路径616。在此实施例中,控制装置(例如,可移除跨接线或驱动器控制的开关)有利地用于启用或禁用从路径618到路径616的数据传送,或反之亦然。
还应注意,在一些实施例中,在同一GPU的两个MIO端口之间存在互连装置620或其它外部连接不会自动启用内部分布式AA。如上文所述,像素选择逻辑300的操作确定是否执行内部分布式AA;经由图形驱动器来控制像素选择逻辑300的操作。
在另一替代实施例中,用于内部分布式AA的像素传送路径建立在GPU内。图7是根据本发明一个此类实施例的GPU 700的方框图。GPU 700大体上类似于图4的GPU122,且相同参考数字已用于标识相应的组件。与GPU 122不同,GPU 700包括内部像素传送路径,其将显示头B 206b的输出路径702连接到显示头A 206a的外部像素输入路径704。
在此实施例中,像素传送路径包括选择单元(例如,多路复用器)706,所述选择单元706在来自显示头B 206b的像素与在路径708上经由纵横结构220从MIO端口中的一者(例如,MIO A端口214a)接收到的像素之间进行选择。将所选择的像素提供到显示头A 206a的外部像素输入路径704。
选择单元706响应于控制信号(未明确展示)而进行操作。所述控制信号将选择单元706配置为在GPU 700在内部分布式AA模式下进行操作的情况下选择路径702上的像素,且在GPU 700的显示头A 206a作为另一GPU的主机进行操作的情况下选择路径708上的像素。此控制信号可响应于由图形驱动器发布的命令而生成,从而使用户(或应用程序开发者)能够通过适当的软件接口来启用或禁用内部分布式AA,而无需接近图形硬件。
应注意,在此实施例中,从显示头B 206b到选择电路706的路径702可包括FIFO、闩锁和其它时序控制装置,以使得来自显示头B 206b的像素以与像素将在分布式渲染模式下从外部GPU到达的时序相同的时序到达选择电路706。在此情况下,显示头B 206b和显示头A 206a的操作时序不依赖于GPU是处于分布式渲染模式下还是内部分布式AA模式下。
内部像素传送路径虽然需要对GPU进行修改,但不需要使用GPU的I/O端口中的任一者。因此,举例来说,GPU 700的显示头A 206a可从属于另一GPU中的显示头,或GPU 700的显示头B 206b可为另一GPU中的显示头的主机,同时GPU 700继续执行内部分布式AA滤波。
将了解,本文所述的内部像素传送路径是说明性的,且变化和修改是可能的。举例来说,除所展示的路径之外,还可提供“反向”像素传送路径(从显示头A 206a到显示头B 206b)。
其它实施例
如上文所述,本发明的实施例提供用于多GPU系统以及具有使用读出技术的能力的单个GPU和通常与多个GPU上的分布式渲染相关联的组件的分布式抗混叠技术,以生成经AA滤波的图像。经由合适的图形驱动器接口,经适当配置的GPU的终端用户可选择为任何图形程序启用内部分布式AA,而不管程序本身中所提供的AA(或其缺乏)。在程序提供AA的情况下,如本文所述的内部分布式AA可用于增加(例如加倍)AA分辨率。
虽然已关于特定实施例描述了本发明,但所属领域的技术人员将认识到,大量修改是可能的。举例来说,尽管已参考AA滤波描述了本发明,但单个GPU的显示头之间或本文所述的多个GPU的显示头之间的耦合可以其它方式来使用。
在一个替代实施例中,分布式滤波可用于生成立体影像。如此项技术中已知,立体影像将场景的左眼视图与右眼视图进行重叠以产生单个图像。通常,将不同的彩色滤光片应用于左眼像素和右眼像素;举例来说,可用红通滤光片来对右眼像素进行滤光,而使用蓝/绿通滤光片来对左眼像素进行滤光。由于左眼视图与右眼视图之间的视口或视点偏移的缘故,对应于场景中的同一点的左眼像素和右眼像素处于影像中的不同位置中。因此,对于裸眼来说,影像呈现为具有失真色彩的双重图像。为了恰当地观看图像,观看者戴上特殊的眼镜,所述眼镜具有滤除用于右眼像素的色彩的左镜片和滤除用于左眼像素的色彩的右镜片。
参看图4A,GPU 122(0)的渲染管线(未图示)可用于生成场景的右眼视图,而GPU122(1)的渲染管线(未图示)生成同一场景的左眼视图。可使用已知技术来确定用于右眼视图和左眼视图的渲染参数。
右眼像素Pi1和左眼像素Pi0有利地在GPU 122(0)和122(1)的各自渲染管线中或在个别显示管线202(0)和202(1)中经彩色滤光。在一个实施例中,使用明显的红、绿和蓝色彩成分来指定像素色彩。可(例如)通过将红色成分减少到零且使绿色和蓝色成分保持不变来对右眼像素进行滤光;类似地,可通过将绿色和蓝色成分减少到零且使红色成分保持不变来对左眼像素进行滤光。
右眼像素Pi1被传递到GPU 122(1)的显示头A 206a(1)。显示头206(a)将像素Pi1转发到MIO A端口214a(1),所述MIO A端口214a(1)将像素Pi1作为像素Po1传递到GPU 122(0)的MIO A端口214a(0)。因此,显示头206a(0)接收右眼像素作为外部像素。
左眼像素Pi0被传递到显示头206a(0)作为内部像素。应注意,由于用于生成右眼和左眼视图的视口或视点之间的偏移,由像素选择逻辑300处理的相应左眼和右眼像素是影像帧中同一位置处的像素;一般来说,相应的左眼和右眼像素代表场景中的不同位置。
在一个实施例中,显示头206a(0)包括图3的像素选择逻辑300。为了生成影像,除法电路306和314两者经设定以选择除数1。加法电路308将左眼像素Pi0与右眼像素Pi1相加,以产生路径310上的总和像素,所述总和像素由于早期彩色滤波而具有左眼像素的红色成分和右眼像素的蓝色和绿色成分。选择多路复用器312选择来自路径310的总和像素,且选择多路复用器316选择路径315上的掺合像素作为输出像素。
在其它实施例中,不使用在像素选择逻辑300之前的彩色滤光片。举例来说,选择多路复用器312和/或316可经配置以使得可针对每一色彩成分独立控制所述选择。在一个此类实施例中,选择多路复用器312使来自路径302的左眼像素Pi0的所有色彩成分通过,而选择多路复用器316使左眼像素Pi0的红色成分和右眼像素Pi1的蓝色和绿色成分通过。结果是路径318上的输出像素,所述输出像素具有左眼像素的红色成分和右眼像素的蓝色和绿色成分。
所属领域的技术人员将了解,两个以上GPU可用于影像渲染。在具有四个GPU的实施例(例如,图4B)中,可使用两个GPU来生成右眼视图,而使用另外两个GPU来生成左眼视图。生成每一视图的两个GPU可采用如上文所述的分布式抗混叠技术来改进影像的图像质量。
还可使用内部分布式滤波来渲染立体影像。参看图4B,GPU 122的渲染管线(未图示)可生成两个视图,将左眼视图存储在帧缓冲器A中,且将右眼视图存储在帧缓冲器B中(或反之亦然)。显示管线B 402b和显示头B 206b将右眼像素传递到显示头A 206a作为像素PB,而显示管线A 402a将左眼像素传递到显示头A 206a作为像素PA。在显示头A 206a中,像素组合器308(图3)适当地掺合所述像素以产生影像。
分布式滤波还可用于生成过渡效果,例如淡入、淡出或叠化。举例来说,在内部分布式情况下,帧缓冲器B可存储淡出的图像,而帧缓冲器A存储淡入的图像。在每一帧处,像素组合器308调节来自帧缓冲器A和帧缓冲器B的像素的相对权数,使得来自帧缓冲器A的图像逐渐地增加到全强度,而帧缓冲器B中的图像渐淡到零强度。(如果帧缓冲器B中的图像为单色段,那么效果为淡入;如果帧缓冲器A中的图像为单色,那么效果为淡出)。过渡的流畅度部分地取决于像素组合器308能够形成的像素PA和PB的不同加权平均数的数目,这是设计选择的问题。具有外部分布式滤波的多个GPU也可用于实现类似效果。
在另一实施例中,可结合每一显示头中的查找表使用分布式滤波来实现此类过渡效果。如此项技术中已知,显示头通常包括查找表,所述查找表将内部像素表示转换成适合于显示装置的色彩强度值,且可加载到所述查找表中的不同值可不时地重新加载。可通过将查找表中的值的色彩强度从一个帧向下一个帧减少(或增加)来实现淡出(或淡入)。因此,为了从帧缓冲器B中的图像叠化到帧缓冲器A中的图像,可在显示头B中应用常规的淡出查找表,而在显示头A中应用常规的淡入查找表。像素组合器308将以恒定(例如,相等)权数来组合所述两个图像,以创建叠化效果。
在其它实施例中,同一GPU的显示头之间的像素传送用于实施不涉及掺合的显示特征。举例来说,显示头之间的像素传送可用于控制LCD过驱动(此项技术中也称为“LCD前馈”或“响应时间补偿(RTC))功能。如此项技术中已知,如果驱动像素的信号部分地基于所需新强度且部分地基于所需新强度与先前强度之间的差异而进行逐帧调节,那么可使LCD屏幕更快地作出响应。
为了实施LCD过驱动功能,帧缓冲器A可用于存储新图像的像素,而帧缓冲器B存储先前图像的像素。显示头B将先前像素值传递到显示头A,且显示头A的像素组合器308可经配置以基于新值和先前值而计算过驱动值,例如通过使用用于计算LCD过驱动信号的常规技术。
GPU的显示头之间的像素传送还可用于生成合成图像。举例来说,帧缓冲器B可含有待重叠在存储于帧缓冲器A中的图像的一部分上的重叠图像的像素。显示头B将重叠像素传递到显示头A,且显示头A中的像素选择逻辑300选择除重叠区域中之外的内部像素,在重叠区域中选择外部像素。
因此,尽管已关于特定实施例描述了本发明,但将了解,本发明希望涵盖所附权利要求书的范围内的所有修改和等效物。
Claims (23)
1.一种用于图形处理器的显示头,其包含:
第一输入路径,其经配置以传播由第一图形处理器生成的第一经γ校正的像素;
第二输入路径,其经配置以传播由第二图形处理器生成的第二经γ校正的像素;
像素组合器,其耦合到所述第一输入路径和所述第二输入路径,且经配置以掺合所述第一经γ校正的像素与所述第二经γ校正的像素以生成掺合像素,其中所述掺合逼近外部线性像素与内部线性像素的经γ校正的掺合;和
选择电路,其经配置以选择所述第一经γ校正的像素、所述第二经γ校正的像素或所述掺合像素中的一者作为输出像素。
2.根据权利要求1所述的用于图形处理器的显示头,其中所述显示头进一步包括:
除法电路,其经配置以将所述掺合像素除以除数。
3.根据权利要求2所述的用于图形处理器的显示头,其中所述除数选自包括除数1和2的候选除数集合中。
4.根据权利要求1所述的用于图形处理器的显示头,其中所述像素组合器包括除法电路,所述除法电路经配置以在掺合所述第一经γ校正的像素与所述第二经γ校正的像素之前将所述第一经γ校正的像素除以除数。
5.根据权利要求2所述的用于图形处理器的显示头,其中所述除数选自包括除数1、2和4的候选除数集合中。
6.根据权利要求1所述的用于图形处理器的显示头,其中所述像素组合器经配置以通过将所述第一经γ校正的像素与所述第二经γ校正的像素相加而生成所述掺合像素。
7.根据权利要求1所述的用于图形处理器的显示头,其中所述像素组合器经配置以通过计算所述第一经γ校正的像素与所述第二经γ校正的像素的经γ校正的掺合而生成所述掺合像素。
8.根据权利要求7所述的用于图形处理器的显示头,其中所述经γ校正的掺合的逼近是根据下式计算得到的:(4Pi+4Pe+|Pi-Pe|)/4,
其中Pi是第一经γ校正的像素,Pe是第二经γ校正的像素。
9.一种图形处理器,其包含:
显示管线,其经配置用于生成第一经γ校正的像素;
输入端口,其经配置用于从外部像素源接收第二经γ校正的像素;以及
显示头,其具有:
耦合到所述显示管线的第一输入路径,其经配置以从所述显示管线接收第一经γ校正的像素;
耦合到所述输入端口的第二输入路径,其经配置以从所述输入端口接收第二经γ校正的像素;
像素组合器,其耦合到所述第一输入路径和所述第二输入路径,且经配置以掺合所述第一经γ校正的像素与所述第二经γ校正的像素以生成掺合像素,其中所述掺合逼近外部线性像素与内部线性像素的经γ校正的掺合;和
选择电路,其经配置以选择所述第一经γ校正的像素、所述第二经γ校正的像素或所述掺合像素中的一者作为输出像素。
10.根据权利要求9所述的图形处理器,其中所述显示管线包括:
滤波器单元,其经配置用于将抗混叠滤波施加到与所述第一经γ校正的像素相关联的多个采样值上。
11.根据权利要求9所述的图形处理器,进一步包括:
多个输出端口;以及
耦合到所述显示头和所述多个输出端口之间的输出电路;
其中所述输出电路经配置用于选择性地将所述输出像素传递到其中一个输出端口。
12.根据权利要求11所述的图形处理器,其中所述多个输出端口包括第一输出端口,其经配置用于连接到另一图形处理器的输入端口。
13.一种生成图像的方法,所述方法包含:
使用第一图形处理器渲染所述图像的第一组经γ校正的输入像素;
使用第二图形处理器渲染所述图像的第二组经γ校正的输入像素,其中由所述第一和第二图形处理器执行的各个渲染操作在至少一个方面是不同的;
将所述第一组经γ校正的输入像素和所述第二组经γ校正的输入像素传递到第一显示头;
在所述第一显示头中,掺合所述第一组经γ校正的输入像素和所述第二组经γ校正的输入像素的相应像素以生成第一组输出像素,其中所述第一组经γ校正的输入像素和所述第二组经γ校正的输入像素的相应像素被掺合以逼近第一组线性输入像素和第二组线性输入像素的相应像素的经γ校正的掺合。
14.根据权利要求13的方法,其中所述第一显示头位于所述第一图形处理器中。
15.根据权利要求13的方法,其中由所述第一和第二图形处理器执行的各个渲染操作相对于施加到每个像素的采样模式来说是不同的。
16.根据权利要求13的方法,其中由所述第一和第二图形处理器执行的各个渲染操作相对于被渲染的图像的视口偏移来说是不同的。
17.根据权利要求13的方法,其中由所述第一和第二图形处理器执行的各个渲染操作的不同在于由所述第一图形处理器执行的渲染操作生成立体影像的左眼视图,由所述第二图形处理器执行的渲染操作生成立体影像的右眼视图。
18.根据权利要求13的方法,其中所述图像包括:
具有在其上定义的应用窗口的工作站桌面,所述应用窗口显示三维计算机生成的图形;
其中由所述第一和第二图形处理器执行的各个渲染操作相对于所述应用窗口中的像素来说是不同的。
19.根据权利要求18的方法,还包括:
为所述应用窗口外部的工作站桌面的区域生成桌面像素;以及
将所述桌面像素传递到所述第一图形处理器和所述第二图形处理器;
其中所述第一组经γ校正的输入像素和所述第二组经γ校正的输入像素的相应像素在所述应用窗口外部的工作站桌面的区域内是相同的。
20.根据权利要求13的方法,还包括:
将所述第一组输出像素传递到显示设备。
21.根据权利要求13的方法,还包括:
使用第三图形处理器渲染所述图像的第三组经γ校正的输入像素;
使用第四图形处理器渲染所述图像的第四组经γ校正的输入像素,其中由所述第一、第二、第三和第四图形处理器执行的各个渲染操作在至少一个方面不同;
将所述第一组输出像素和所述第三组输入像素传递到第二显示头;
在所述第二显示头中,掺合所述第一组输出像素和所述第三组输入像素的相应像素以生成第二组输出像素;
将所述第二组输出像素和所述第四组输入像素传递到第三显示头;以及
在所述第三显示头中,掺合所述第二组输出像素和所述第四组输入像素的相应像素以生成第三组输出像素。
22.根据权利要求21的方法,其中所述第二显示头位于所述第三图形处理器中,所述第三显示头位于所述第四图形处理器中。
23.根据权利要求22的方法,其中:
将所述第一组经γ校正的输入像素和所述第二组经γ校正的输入像素的相应像素掺合的动作包括计算Po1=(Pi1+Pi2)/2的量,其中Pi1是第一组经γ校正的输入像素的像素,Pi2是第二组经γ校正的输入像素的像素,Po1是第一组输出像素的像素;
将所述第一组输出像素和所述第三组输入像素的相应像素掺合的动作包括计算Po2=(Po1+Pi3/2)/2的量,其中Pi3是第三组输入像素的像素,Po2是第二组输出像素的像素;以及
将所述第二组输出像素和所述第四组输入像素的相应像素掺合的动作包括计算Po3=Po2+Pi4/4的量,其中Pi4是第四组输入像素的像素,Po3是第三组输出像素的像素。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74715406P | 2006-05-12 | 2006-05-12 | |
US60/747,154 | 2006-05-12 | ||
US11/383,048 US8130227B2 (en) | 2006-05-12 | 2006-05-12 | Distributed antialiasing in a multiprocessor graphics system |
US11/383,048 | 2006-05-12 | ||
US11/680,554 US20090085928A1 (en) | 2006-05-12 | 2007-02-28 | Antialiasing using multiple display heads of a graphics processor |
US11/680,554 | 2007-02-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100973472A Division CN101086830A (zh) | 2006-05-12 | 2007-05-11 | 使用图形处理器的多个显示头的抗混叠 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102693712A CN102693712A (zh) | 2012-09-26 |
CN102693712B true CN102693712B (zh) | 2015-01-14 |
Family
ID=44147265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210172738.7A Expired - Fee Related CN102693712B (zh) | 2006-05-12 | 2007-05-11 | 使用图形处理器的多个显示头的抗混叠 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP5116125B2 (zh) |
CN (1) | CN102693712B (zh) |
TW (1) | TWI343020B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678775B1 (en) | 2008-04-09 | 2017-06-13 | Nvidia Corporation | Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment |
US9324294B2 (en) * | 2009-04-07 | 2016-04-26 | Nvidia Corporation | Graphics system for supporting multiple digital display interface standards |
GB2497302B (en) * | 2011-12-05 | 2017-04-12 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
US9779534B2 (en) * | 2013-08-28 | 2017-10-03 | Qualcomm Incorporated | Prefixed summed length in graphics processing |
JP7389602B2 (ja) * | 2019-09-30 | 2023-11-30 | 株式会社ソニー・インタラクティブエンタテインメント | 画像表示システム、画像処理装置、および動画配信方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3209632B2 (ja) * | 1993-03-16 | 2001-09-17 | 松下電器産業株式会社 | 荷重平均回路 |
JP2970440B2 (ja) * | 1994-11-29 | 1999-11-02 | 松下電器産業株式会社 | 画像合成方法と画像合成装置 |
JPH10124038A (ja) * | 1996-10-18 | 1998-05-15 | Fujitsu General Ltd | 画像合成装置 |
JP4505866B2 (ja) * | 1998-04-03 | 2010-07-21 | ソニー株式会社 | 画像処理装置および映像信号処理方法 |
JP3816673B2 (ja) * | 1998-07-28 | 2006-08-30 | 日本放送協会 | 立体画像の階調表示制御方法および装置 |
AUPQ593100A0 (en) * | 2000-02-29 | 2000-03-23 | Canon Kabushiki Kaisha | Alpha-channel compositing system |
JP2004247873A (ja) * | 2003-02-12 | 2004-09-02 | Fuji Photo Film Co Ltd | 画像表示プログラム |
JP2004349842A (ja) * | 2003-05-20 | 2004-12-09 | Fuji Photo Film Co Ltd | 合成画像の補正方法及びプログラム |
-
2007
- 2007-05-10 TW TW96116669A patent/TWI343020B/zh active
- 2007-05-11 CN CN201210172738.7A patent/CN102693712B/zh not_active Expired - Fee Related
-
2010
- 2010-12-10 JP JP2010275767A patent/JP5116125B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
TW200816039A (en) | 2008-04-01 |
TWI343020B (en) | 2011-06-01 |
JP5116125B2 (ja) | 2013-01-09 |
CN102693712A (zh) | 2012-09-26 |
JP2011123894A (ja) | 2011-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8130227B2 (en) | Distributed antialiasing in a multiprocessor graphics system | |
US20090085928A1 (en) | Antialiasing using multiple display heads of a graphics processor | |
KR100445209B1 (ko) | 시차변환을통해입력이미지를적어도하나의출력이미지로발생시키기위한이미지처리시스템및이미지변환프로세서 | |
CN109891381A (zh) | 双路径中央凹图形管线 | |
CN102693712B (zh) | 使用图形处理器的多个显示头的抗混叠 | |
US4613852A (en) | Display apparatus | |
US6954223B2 (en) | Stereoscopic image generating apparatus and game apparatus | |
CN104052983A (zh) | 使用显示控制器窗口的高效自动立体支持 | |
US6956964B2 (en) | Apparatus for producing real-time anaglyphs | |
JP5061227B2 (ja) | 映像信号処理装置及び仮想現実感生成システム | |
CN101086830A (zh) | 使用图形处理器的多个显示头的抗混叠 | |
CN104952047A (zh) | 抗锯齿系统及方法 | |
JP2007249398A (ja) | 画像処理システム、表示装置および画像処理方法 | |
CN107784970A (zh) | 定时控制器以及包括其的显示装置 | |
US6157393A (en) | Apparatus and method of directing graphical data to a display device | |
CN106227327A (zh) | 一种显示转换方法、装置及终端设备 | |
CN117198232B (zh) | 彩色墨水屏驱动方法、装置及存储介质 | |
CN105516633B (zh) | 一种图像处理系统 | |
JP5624383B2 (ja) | 映像信号処理装置、仮想現実感生成システム | |
US7091980B2 (en) | System and method for communicating digital display data and auxiliary processing data within a computer graphics system | |
US7397479B2 (en) | Programmable multiple texture combine circuit for a graphics processing system and method for use thereof | |
US7724253B1 (en) | System and method for dithering depth values | |
JP2004201004A (ja) | 3次元映像表示装置、プログラム、及び記録媒体 | |
KR101701766B1 (ko) | 디지털 영상 처리를 위한 서브픽셀 값 및 광원 조정 값의 생성 방법 및 이를 수행하기 위한 영상 처리회로 | |
GB2479067A (en) | Antialiasing Using Multiple Display HeadsOf A Graphics Processor |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150114 Termination date: 20150511 |
|
EXPY | Termination of patent right or utility model |