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

文档序号:9647034阅读:来源:国知局
骤904,索引单元510识别与当前帧号相对应的采样模式表530。在步骤906,索引单元510接收与给定像素相关联的XY坐标。XY坐标反映像素在当前帧内的定位。
[0106]在步骤908,索引单元510生成到所选择的采样模式表的索引。索引指代所选择的采样模式表中的一系列条目。在步骤910,索引单元510基于在步骤908生成的索引从所选择的采样模式表中提取一组采样模式位置。在步骤910,光栅385在所提取的采样位置处针对像素生成覆盖信息。光栅385内的索引单元可以针对帧内每个不同的像素实现方法900,以针对每个这类像素使用不同的采样模式生成覆盖信息。
[0107]总地参考图5-9,可以应用本文所讨论的多帧抗锯齿技术来增强了有效的多重采样模式。经渲染的图形图像的质量可以因此而提高,因为实际上生成了较高分辨率的覆盖数据。此外,采用某些实施例,可以应用本文所讨论的技术来增强由SM 310执行的着色器所实现的有效的超级采样模式。在一个实施例中,可以复制由光栅385所生成的覆盖采样位置,以生成着色器采样位置用于像素着色目的。这样做时,设备驱动程序103可以配置SM 310以针对每个像素调整着色器采样位置,以反映针对每个像素所使用的特定采样模式340。采用该方法,设备驱动程序103可以实现SM内有效的超级采样,而不需要附加的着色器样本,从而提高图像质量。
[0108]通过使用专用滤波器减少因跨帧改变采样模式而潜在地引入的视觉伪影,使用上述技术生成的图像的质量可进一步提高。这些滤波技术,下面称为“时空滤波”,可以应用在包括静止对象、移动对象、或两者组合的图形环境中,如下面结合图10-14更详细描述的。
时空滤波
[0109]图10示出根据本发明的一个实施例的、在其中可以应用时空滤波以提高图像质量的示例性图形场景。如所示的,图形场景的帧1000包括移动对象1010以及静止对象1020和1030。当实现结合图5-9描述的多帧抗锯齿技术来渲染帧1000时,可能至少部分地由于跨相邻像素和在帧之间改变采样模式而出现某些类型的伪影。
[0110]例如,当渲染静止对象1020时,在帧之间改变采样模式可能导致该对象出现轻微地抖动。该抖动例如可能因为跨不同的帧不同的采样模式针对相同的像素产生不同的覆盖信息而出现。因此,静止对象1020的边缘可能出现移动。在另一个示例中,当移动对象1010跨帧1000行进时,在帧之间改变采样模式结合对象1000的运动可能导致该对象的边缘出现锯齿型。也可能出现其他类型的伪影,诸如帧之间移动对象1010的重影。
[0111]为了缓解这些问题,设备驱动程序103实施各种时空滤波操作。具体地,为了减轻与静止对象相关联的伪影,设备驱动程序103实施时间混合,从而其先前帧内的相对应的像素被混合在一起。为了减轻与移动对象相关联的伪影,设备驱动程序103实施空间混合,从而其沿边缘驻留的相邻像素被混合在一起。
[0112]设备驱动程序103可以在每像素的基础上实施时间混合、空间混合或两者的组合,这取决于与像素相关联的运动的量。因此,如果确定给定像素为静止的,则设备驱动程序103发起时间混合。可替代地,如果确定给定像素为移动的,则设备驱动程序103发起空间混合。设备驱动程序103可以使用下面结合图12-14更详细描述的技术来实施组合的时空混合。
[0113]在操作中,设备驱动程序103可配置为通过跨先前帧比较像素值来检测与像素相关联的运动。这样做时,设备驱动程序103通常比较具有相似采样模式配置的先前帧。例如,当光栅385在奇数号帧和偶数号帧之间改变米样模式时,如结合图6A-7D所描述的,设备驱动程序103比较一组偶数号帧内的相对应像素和/或比较一组奇数号帧内的相对应像素。该方法意在消除可能从采样模式的改变而引起的错误的运动检测。
[0114]在实践中,设备驱动程序103比较若干个偶数号帧以确定那些像素值之间的差是否超过第一阈值。设备驱动程序103还比较若干个奇数号帧以确定那些像素值之间的差是否超过第二阈值。如果第一阈值和第二阈值两者均被超过,则设备驱动程序103识别到运动。可以实施该方法来在每像素的基础上识别运动。在一个实施例中,设备驱动程序103可以通过配置SM 310实施前述运动检测功能来实现该方法。下面还结合图11以逐步骤的方式描述本文所讨论的时空滤波技术。
[0115]图11是根据本发明的一个实施例的、用于基于检测到的运动过滤像素数据的方法步骤的流程图。虽然结合图1-7D和图10的系统描述方法步骤,但是本领域技术人员将理解配置为以任何顺序实施方法步骤的任何系统均在本发明的范围内。
[0116]如所示的,方法1100开始于步骤1102,在该步骤,设备驱动程序103比较具有相似采样模式配置的先前帧。例如,如果光栅385在偶数号帧和奇数号帧之间改变采样模式,那么设备驱动程序103可以比较帧N和帧N-2,并且比较帧N-1和帧N-3。在步骤1104,设备驱动程序103确定是否检测到运动。这样做时,设备驱动程序103可以确定先前帧的像素值之间的差是否大于阈值。例如,设备驱动程序103可以确定帧N和帧N-2之间的差是否超过阈值。设备驱动程序103还可确定帧N-1和帧N-3之间的差是否超过另一阈值。如果其中一个超过阈值、或者两个都超过阈值,那么设备驱动程序103检测到运动。
[0117]如果设备驱动程序103在步骤1104未检测到运动,那么方法行进到步骤1106,在该步骤,设备驱动程序103发起时间混合。这样做时,设备驱动程序103可以配置SM 310来实施时间混合。在步骤1108,设备驱动程序103将先前帧中的相对应的像素进行混合。这样做时,设备驱动程序103可以将第一帧内具有特定XY位置的给定像素与来自先前帧的具有相同XY位置的像素进行混合。
[0118]如果设备驱动程序103在步骤1104确实检测到了运动,那么方法1100行进到步骤1110,在该步骤,设备驱动程序103发起空间混合。这样做时,设备驱动程序103可以配置SM 310以实施空间混合。在步骤1112,设备驱动程序103将在图形场景内所检测到的沿着边缘的像素进行混合。在一个实施例中,设备驱动程序103实现边缘检测算法以识别像素附近区域内的边缘。对于沿着检测到的边缘驻留的给定像素,设备驱动程序103随后选择邻近给定像素并且沿着边缘驻留的一个或多个像素。随后,设备驱动程序103可以将给定像素与邻近的像素相混合。
[0119]设备驱动程序103可以针对帧内每个不同的像素实现方法1100。因此,某些像素可能受到时间混合,而其他像素可能受到空间混合。例如,参考图10,与静止对象1020和1030相关联的像素将受到时间混合,而与移动对象1010相关联的像素将受到空间混合。针对每个不同的像素,设备驱动程序103还可实施空间混合和时间混合的混合。例如,设备驱动程序103可以为每个像素指派运动分数,并且随后依赖于运动分数实施时间滤波和空间滤波的结合。为了这样做,设备驱动程序103可以基于运动分数为空间滤波结果加权,并且基于运动分数的倒数(inverse)为时间滤波结果加权。此外,设备驱动程序103可以实施滤波以补偿(account for)每个像素内采样模式的变化,如下面结合图12A-14更详细描述的。
[0120]图12示出根据本发明的一个实施例的、可基于采样移动方向进行混合的示例性像素组。如所示的,跨三个连续的帧描绘像素组1200的实例。实例1200(0)出现在帧0中,实例1200(1)出现在帧1中,并且实例1200(2)出现在帧2中。如还示出的,组1200的中心像素内的采样位置跨帧而改变。在帧0中,采样位置驻留在左上角。在帧1中,采样位置驻留在右下角。在帧2中,采样位置驻留在左上角。此处描述的采样位置的示例性移动可对应于在其中在偶数号帧和奇数号帧之间改变采样位置的多帧抗锯齿模式。
[0121]如此处所引用的,“采样移动方向”是指采样位置在帧之间移动所沿着的像素内的方向。例如,在帧0和帧1之间,采样位置向右下方移动,如那些帧之间的虚线箭头所指示的。类似地,在帧1和帧2之间,采样位置向左上方移动,如那些帧之间的虚线箭头所指示的。
[0122]设备驱动程序103配置为基于采样移动方向在相邻像素之间实施空间混合,以抵消由采样位置的移动所引起的潜在可感知的运动。因此,如实例1200(1)内所示的,为了抵消帧0和帧1之间的右下采样移动,设备驱动程序可以以所示出的方式将中心像素和左上像素相混合。类似地,在实例1200(2)内,为了抵消帧1和帧2之间的左上采样移动,设备驱动程序可以如所示的将中心像素和右下像素相混合。
[0123]可以实现上文所描述的混合技术来使用多帧抗锯齿减少经渲染的帧内的抖动和/或其他伪影。还可将这些技术与上文结合图10-11讨论的时空方法相结合。图13-14阐述用于基于对象运动以及采样移动运动来混合像素的不同的滤波技术。
[0124]图13是根据本发明的一个实施例的、用于基于采样移动方向实施时空滤波的方法步骤的流程图。虽然结合图1-7D、图10和图12的系统描述方法步骤,但是本领域技术人员将理解配置为以任何顺序实施方法步骤的任何系统均在本发明的范围内。
[0125]如所示的,方法1300开始于步骤1302,在该步骤,设备驱动程序103通过将像素的当前值与当前帧内在采样移动相反方向上的相邻像素相混合来计算用于像素的第一颜色。设备驱动程序103可以通过实现与图12中所描绘的类似的技术来实施步骤1302。在步骤1304,设备驱动程序103通过将像素的当前值与先前帧中像素的先前值相混合来计算第二颜色。
[0126]在步骤1306,设备驱动程序103确定是否有任何运动与像素相关联。设备驱动程序103可以比较先前帧来识别运动,如上文结合图11所讨论的。如果设备驱动程序103检测到运动,那么方法1300行进到步骤1308,在该步骤,设备驱动程序103增加针对该像素的运动分数。方法1300随后行进到步骤1310。如果设备驱动程序103在步骤1306未检测到运动,那么方法1300行进到步骤1312,在该步骤,设备驱动程序103减少针对该像素的运动分数。方法1300行进到步骤1310。在步骤1310,设备驱动程序103基于第一颜色、第二颜色和运动分数计算用于该像素的颜色值。在一个实施例中,在步骤1310所实施的操作包括基于运动分数在第一颜色和第二颜色之间插值。
[0127]设备驱动程序103可以反复地实现方法1300以对当前帧内的每个像素着色。这样做时,设备驱动程序103可以配置SM 310来实施任何和所有这类着色操作。采用该方法,设备驱动程序103基于当前所检测到的运动以及先前运动同时也考虑到采样移动方向来过滤像素。在一个实施例中,设备驱动程序103可以基于运动分数对第一颜色和第二颜色进行加权,以依赖于运动分数实现第一颜色和第二颜色之间的平衡。结合图13所描述的技术可以应用到着色器采样位置可配置为匹配覆盖采样位置的场景。
[0128]图14是根据本发明的一个实施例的、用于基于检测到的运动实施时间或空间滤波的方法步骤的流程图。虽然结合图1-7D、图10和图12的系统描述方法步骤,但是本领域技术人员将理解配置为以任何顺序实施方法步骤的任何系统均在本发明的范围内。
[0129]如所示的,方法1400开始于步骤1402,在该步骤,设备驱动程序103比较具有相似采样模式配置的先前帧。在步骤1404,设备驱动程序103确定是否有任何运动与像素相关联。如果检测到运动,那么方法1400行进到步骤1406,在该步骤,设备驱动程序103增加针对该像素的运动分数。在步骤1408,设备驱动程序103基于运动分数将像素与在采样移动的相反方向上的相邻像素相混合。在一个实施例中,在步骤1408所实施的混合操作包括基于运动分数的插值。
[0130]在步骤1404如果设备驱动程序103未检测到运动,那么方法1400行进到步骤1410,在该步骤,设备驱动程序103减少运动分数。在步骤1412,设备驱动程序103基于相反的(reverse)运动分数将像素与先前帧中的对应像素
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1