纹理处理方法和单元与流程

文档序号:14394312阅读:212来源:国知局

本申请要求于2016年11月2日提交到韩国知识产权局的第10-2016-0145215号韩国专利申请的优先权,所述申请的公开通过引用完整地包含于此。

本发明构思的至少一些示例实施例涉及一种纹理处理方法和单元。



背景技术:

纹理化(texturing)或纹理映射被用于获取三维(3d)图形系统中的更真实的图像。纹理化或纹理映射指的是由纹理处理单元执行的用于定义3d对象的表面上的二维(2d)图像以便将纹理应用于3d对象的表面的方法。术语“纹理”指的是应用于对象的图像。在纹理映射中,包括基本纹理和其缩小尺寸的纹理的位图图像集被称为细化贴图(mipmap)。

由于存储在纹理处理单元中的细化贴图的数量有限,所以纹理处理单元可执行纹理过滤以使用细化贴图通过插值来更准确地表现对象的表面。

在这种情况下,纹理处理单元可通过使用多个细化贴图来执行纹理过滤。在这种情况下,随着使用的细化贴图的数量增加,对象的表面会被更准确地表现,然而纹理处理单元的用于处理各种细化贴图的区域、计算量和功耗会增加。



技术实现要素:

本发明构思的至少一些示例实施例提供一种纹理处理方法和单元,用于通过以下操作执行纹理过滤:根据第一细化贴图和第二细化贴图对纹理过滤的影响,以用于执行纹理处理的区域、计算和/或功耗的量可被减小的这样的方式,改变对第一细化贴图执行的计算的精度和对第二细化贴图执行的计算的精度,同时保持从纹理处理得到的三维(3d)图形的质量等级。

根据本发明构思的至少一些示例实施例,一种纹理处理单元包括:控制器,被配置为基于指示第一细化贴图和第二细化贴图对纹理过滤的影响的细节层次(lod)权重确定对第一细化贴图执行计算的第一计算器和对第二细化贴图执行计算的第二计算器,其中,所述影响基于图形的lod值;纹理过滤器,被配置为通过使用第一计算器和第二计算器执行纹理过滤,其中,第一计算器的计算精度与第二计算器的计算精度不同。

根据本发明构思的至少一些示例实施例,一种纹理处理方法包括:基于指示第一细化贴图和第二细化贴图对纹理过滤的影响的细节层次(lod)权重确定对第一细化贴图执行计算的第一计算器和对第二细化贴图执行计算的第二计算器,其中,所述影响根据图形的lod值来确定;通过使用第一计算器和第二计算器执行纹理过滤,其中,第一计算器的计算精度与第二计算器的计算精度不同。

根据本发明构思的至少一些示例实施例,一种纹理处理设备包括:控制器;纹理过滤器电路,包括分别具有多个不同精度的多个计算器,控制器被配置为:确定图像的细节层次(lod)值;基于lod值确定lod权重;基于lod权重选择具有第一精度的第一计算器和具有第二精度的第二计算器;控制第一计算器对第一细化贴图执行第一计算,并控制第二计算器对第二细化贴图执行第二计算,其中,第一计算器和第二计算器为所述多个计算器之中的计算器,第一精度和第二精度为不同的精度。

附图说明

通过参照附图详细描述本发明构思的示例实施例,本发明构思的示例实施例的以上和其他特征和优点将变得更加清楚。附图意在描绘本发明构思的示例实施例,而不应被解释为限制权利要求的意图范围。除非明确指出,否则附图将不被视为按比例绘制。

图1是根据本发明构思的至少一个示例实施例的图形处理设备的示图;

图2是用于说明由图形处理设备执行的处理三维(3d)图形的过程的示图;

图3是用于说明纹理映射的示图;

图4是用于说明细化贴图(mipmap)的示图;

图5a是用于说明根据本发明构思的至少一个示例实施例的使用一个细化贴图的纹理过滤的示图;

图5b是用于说明根据本发明构思的至少一个示例实施例的使用两个细化贴图的纹理过滤的示图;

图6是用于说明用于执行纹理过滤所执行的计算的量的示图;

图7是用于说明根据本发明构思的至少一个示例实施例的基于细节层次(lod)权重来确定第一计算器和第二计算器的方法的曲线图;

图8是用于说明根据另一实施例的基于lod权重来确定第一计算器和第二计算器的方法的曲线图;

图9是示出根据本发明构思的至少一个示例实施例的纹理处理单元的配置的框图;

图10是示出根据本发明构思的至少一个示例实施例的图形处理设备的配置的框图;

图11是用于说明根据另一实施例的基于lod权重来确定第一计算器和第二计算器的方法的曲线图;

图12a和图12b是用于说明根据本发明构思的至少一个示例实施例的当lod权重被包括在包括lod权重的最大值或最小值的范围中时确定第一计算器和第二计算器的方法的曲线图;

图13是用于说明根据本发明构思的至少一个示例实施例的纹理过滤的计算量的改变的示图;

图14是根据本发明构思的至少一个示例实施例的纹理处理方法的流程图;

图15是根据本发明构思的至少一个示例实施例的纹理处理方法的详细流程图。

具体实施方式

作为在本发明构思的领域中的传统,根据功能块、单元和/或模块在附图中描述和示出实施例。本领域技术人员将理解,这些块、单元和/或模块通过可使用基于半导体的制造技术或其他制造技术而形成的电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬线电路、存储器元件、线路连接等)被物理实现。在块、单元和/或模块为通过微处理器或类似物实现的情况下,可使用软件(例如,微代码)对它们进行编程以执行这里讨论的各种功能,并且可由固件和/或软件可选择地驱动它们。可选地,每个块、单元和/或模块可通过专用硬件来实现,或者可被实现为用于执行一些功能的专用硬件和用于执行其他功能的处理器(例如,一个或多个编程的微处理器和关联电路)的组合。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可被物理分开为两个或更多个相互作用且分立的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可被物理组合成更复杂的块、单元和/或模块。

图1是根据本发明构思的至少一个示例实施例的图形处理设备100的示图。

本领域普通技术人员将理解,图形处理设备100还可包括除图1中示出的元件之外的元件。

参照图1,图形处理设备100可包括光栅器110、着色器核120、纹理处理单元130、像素处理单元140和图块缓冲器150。图形处理设备100可经由总线170向图形处理设备100外部的存储器160发送数据/从存储器160接收数据。根据本发明构思的至少一些示例实施例,图形处理设备100(及其元件)可由处理器实现。例如,根据至少一些示例实施例,图形处理设备100为图形处理器(gpu)。根据至少一些示例实施例,图形处理设备100可由执行计算机可执行程序代码的处理器(例如,中央处理器(cpu)、gpu、微处理器、多核处理器、专用集成单元(asic)和/或多处理器)实现。

在图1中,用于处理三维(3d)图形的图形处理设备100可使用基于图块的渲染(tbr)。换言之,为产生与一帧对应的3d图形,图形处理设备100可允许被划分为具有期望的(或可选地,预定的)大小的多个图块通过光栅器110、着色器核120和像素处理单元140,并可允许处理结果被存储在图块缓冲器150中。图形处理设备100可通过使用均包括光栅器110、着色器核120和像素处理单元140的多个通道来并行处理组成帧的所有图块。一旦与一帧对应的多个图块被处理,图形处理设备100就可将存储在图块缓冲器150中的处理结果发送到存储器160的帧缓冲器(未示出)。

光栅器110可通过几何变换将从顶点着色器产生的图元光栅化。

着色器核120可接收由光栅器110光栅化的图元并可执行像素着色。着色器核120可执行像素着色以确定组成包括光栅化的图元的片元的图块的所有像素的颜色。在像素着色期间,着色器核120可使用通过使用纹理产生的像素值以产生立体和真实的3d图形。

着色器核120可包括像素着色器。此外,着色器核120可为还包括顶点着色器或统一着色器的类型,在统一着色器中,顶点着色器与像素着色器被彼此组合。当着色器核120起顶点着色器的作用时,着色器核120可产生表示对象的图元并可将图元发送到光栅器110。

当着色器核120请求纹理处理单元130发送与期望像素对应的像素值时,纹理处理单元130可发送通过处理预先准备的纹理而产生的像素值。纹理可被存储在纹理处理单元130的内部或外部的期望的(或可选地,预定的)空间中,或被存储在图形处理设备100外部的存储器160中。当用于产生由着色器核120请求的像素值的纹理未存储在纹理处理单元130的内部的期望的(或可选地,预定的)空间中时,纹理处理单元130可从纹理处理单元130的外部的期望的(或可选地,预定的)空间或从存储器160取来和使用纹理。

像素处理单元140可通过对与一个图块中的同一位置对应的像素执行诸如深度测试的处理,确定将被最终显示的像素值,并可确定与所述一个图块对应的所有像素值。

图块缓冲器150可存储从像素处理单元140发送的与所述一个图块对应的所有像素值。当完成对组成一帧的所有图块的图形处理时,存储在图块缓冲器150中的处理结果可被发送到存储器160的帧缓冲器。

图2是用于说明由图形处理设备100执行的处理3d图形的过程的示图。

处理3d图形的过程可被大致划分成三个过程,即,几何变换、光栅化和像素着色,现在将参照图2进行更详细的说明。参照图2,通过使用操作11至操作18来执行处理3d图形的过程。

操作11是产生顶点的操作。产生顶点以表示包括在3d图形中的对象。

操作12是对产生的顶点着色的操作。顶点着色器可通过指定在操作11中产生的顶点的位置来对顶点执行着色。

操作13是产生图元的操作。术语“图元”是指通过使用一个或多个顶点形成的点、线或多边形。例如,图元可为通过连接三个顶点所形成的三角形。

操作14是将图元光栅化的操作。当图元被光栅化时,意味着图元被划分成片元。术语“片元”可为用于对图元执行图形处理的基本单位。由于图元仅包括关于顶点的信息,因此在光栅化期间,可通过在顶点之间产生片元来执行3d图形处理。

操作15是对像素着色的操作。组成图元并且在光栅化期间产生的片元可为像素。在本领域,术语“片元”和“像素”可被互换使用。例如,像素着色器可被称为片元着色器。通常,图形处理中的组成图元的基本单位可被称为片元,图形处理中的在像素着色之后的基本单位可被称为像素。在像素着色期间,可确定像素的值、属性(例如,颜色)等。

操作16是执行用于确定像素的颜色的纹理化的操作。术语“纹理化”是指通过使用预先准备的图像(即,纹理)来确定像素的颜色的处理。在这种情况下,当计算并确定每个像素的颜色以表现真实世界的各种颜色和图案时,图形处理所需的数据计算的数量和图形处理时间增加。因此,图形处理设备可通过使用预先准备的纹理来确定像素的颜色。

操作17是执行测试和混合的操作。通过执行诸如深度测试、卷曲(curling)或裁剪(clipping)的处理来确定将最终显示的像素值。

操作18是在操作11至操作17中产生的帧被存储在帧缓冲器中并且被显示在显示装置上的操作。

已简要说明了图2的处理3d图形的过程,更详细的过程对于本领域普通技术人员而言是显而易见的。

图3是用于说明纹理映射的示图。

参照图3,当屏幕空间中的像素301在光栅化期间产生时,纹理处理单元可将纹理302确定为映射到像素301。在这种情况下,纹理302被定义为具有关于3d对象的颜色、表面纹理和图案的信息的图像并包括纹理空间中的纹理元素。

由于对象的大小在屏幕空间中持续改变,因此准备与所有的像素301对应的纹理302是困难的。因此,纹理处理单元可通过使用一个纹理或多个纹理的插值来执行用于估计像素301的值的纹理过滤。现在将说明用于执行纹理过滤的细化贴图(mipmap)。

图4是用于说明细化贴图的示图。

纹理处理单元可使用预先准备的纹理,以便适应在屏幕空间中改变的对象的大小。在这种情况下,包括基本纹理和其缩小尺寸的纹理的位图图像集被称为细化贴图。

在这种情况下,不同级别的细化贴图可具有不同的分辨率。参照图4,作为纹理之中具有最高分辨率的纹理的级别0的细化贴图410可为基本纹理。大小为基本纹理的大小的1/4的细化贴图为级别1的细化贴图411。大小为基本纹理的大小的1/16的细化贴图为级别2的细化贴图412。在图4所示的示例中,级别0的细化贴图410包括8×8的纹理元素,此外,级别1的细化贴图411包括4×4的纹理元素,此外,级别2的细化贴图412包括2×2的纹理元素。

随着视点与像素之间的距离改变,映射到该像素的纹理可改变。例如,当一条路径的图块显示在屏幕空间中时,映射到与接近视点的图块对应的像素的纹理可为高分辨率的级别0的细化贴图410。此外,将被映射到与该路径的远离视点的图块对应的像素的纹理可为低分辨率的级别2的细化贴图412。例如,当使用多个细化贴图时,在远距离处的对象以低分辨率表示,图形处理设备可自然地表示3d图形。另外,当对不同的纹理所映射到的像素之间的边界执行纹理过滤时,可改善3d图形的质量。

在这种情况下,可基于图形的细节层次(lod)来确定将被映射到屏幕空间中的像素的纹理。lod是指3d图形图像的精度。纹理处理单元可接收像素信息,可确定图形(例如,与接收的像素信息对应的图像)的lod值,并可基于确定的lod值确定使用哪个或哪些细化贴图以执行纹理过滤。虽然纹理处理单元可以以均包括例如2×2个像素的四边形为单位计算图形的lod值,但是用于计算lod值的像素的数量不限于这个2×2的示例。

纹理处理单元可通过使用一个细化贴图或多个细化贴图来执行纹理过滤。虽然纹理处理单元可执行例如点过滤、双线性过滤和三线性过滤,但是由纹理处理单元执行的纹理过滤的示例不限于此。现在将参照图5a和图5b详细说明纹理过滤。

图5a是用于说明根据本发明构思的至少一个示例实施例的使用一个细化贴图的纹理过滤的示图。

纹理处理单元可通过使用一个细化贴图执行点过滤和双线性过滤。点过滤可输出纹理坐标下最接近像素的纹理元素的值作为结果值。例如,用于执行点过滤的纹理元素的数量为1。

参照图5a,由于位于像素p周围的第一纹理元素t1至第四纹理元素t4之中的第一纹理元素t1最接近像素p,因此像素p的点过滤结果为第一纹理元素t1。

双线性过滤是用于通过使用纹理坐标下接近像素的四个纹理元素的值和两个权重计算像素值的纹理过滤。例如,用于执行双线性过滤的纹理元素的数量为4。

参照图5a,像素p的像素值可通过使用权重u、权重v和第一纹理元素t1至第四纹理元素t4的值来计算。在这种情况下,可通过使用等式1来定义双线性过滤bilerp。

bilerp(t1,t2,t3,t4,wu,wv)=lerp(lerp(t1,t2,wu),lerp(t3,t4,wu),wv)(1)

在等式1中,wu和wv可分别为权重u和权重v,并且可均为范围从0到1的值。t1至t4分别为第一纹理元素t1至第四纹理元素t4的值。此外,作为线性插值的函数lerp可通过使用等式2来定义。

lerp(t1,t2,wu)=(1-wu)×t1+wu×t2(2)

参照等式2,线性插值是根据两个坐标值之间的线性距离线性地计算这两个坐标值之间的任意坐标的方法。例如,双线性过滤为对包括在一个细化贴图中的两个纹理元素对执行线性插值并基于线性插值的结果再次执行线性插值的纹理过滤。

图5b是用于说明根据本发明构思的至少一个示例实施例的使用两个细化贴图的纹理过滤的示图。

纹理处理单元可通过使用两个细化贴图执行三线性过滤。三线性过滤是用于通过使用对两个细化贴图执行双线性过滤之后获得的结果和lod权重来计算像素值的纹理过滤。例如,用于执行三线性过滤的纹理元素的数量为8。术语“lod权重”可指的是指示确定的两个细化贴图根据图形lod值对纹理过滤的影响的值。

参照图5b,当像素p位于第一细化贴图510与第二细化贴图520之间时,纹理处理单元可基于等式3执行三线性过滤trilerp。

trilerp=lerp(bilerp1,bilerp2,wlod)(3)

bilerp1和bilerp2分别为对第一细化贴图510和第二细化贴图520执行双线性过滤之后获得的结果,wlod是lod权重。在这种情况下,lod权重可为范围从0到1的值。

参照图5b,当第一细化贴图510对纹理过滤的影响大于第二细化贴图520对纹理过滤的影响时,像素p可具有大于0.5的lod权重。

虽然为便于说明,假设lod权重随着第二细化贴图520对纹理过滤的影响增大而减小并且lod权重随着第一细化贴图510对纹理过滤的影响增大而增大,但是实施例不限于此。

虽然为便于说明假设使用三线性过滤来描述以下内容,但实施例不限于此。

图6是用于说明用于执行纹理过滤所执行的计算的量的示图。

参照图6,在点过滤中,由于纹理坐标下最接近像素的一个纹理元素的值被输出,因此线性插值不被执行。

在双线性过滤中,对一个细化贴图执行双线性插值。在这种情况下,参照等式1,双线性插值包括三个线性插值处理。因此,纹理处理单元可通过执行三次线性插值获得双线性过滤的结果值。

参照式子3,在三线性过滤中,包括对两个细化贴图执行的两次双线性插值,并且包括对双线性插值结果执行的线性插值。因此,纹理处理单元可通过执行七次线性插值获得三线性过滤的结果值。

例如,随着纹理处理单元的三线性过滤的计算量减小,总体计算量的减小可大于当其他纹理过滤类型(即,点过滤和双线性过滤)的计算量减小时总体计算量的减小。

图7是用于说明根据本发明构思的至少一个示例实施例的基于lod权重来确定第一计算器和第二计算器的方法的曲线图。

纹理处理单元可基于lod权重确定对第一细化贴图510执行计算的第一计算器和对第二细化贴图520执行计算的第二计算器,并可通过使用第一计算器和第二计算器执行纹理过滤。具体地,纹理处理单元可根据第一细化贴图510和第二细化贴图520对纹理过滤的影响,通过从具有不同计算精度的计算器之中确定第一计算器和第二计算器来减小三线性过滤的计算量。

术语“精度”可指用于表示期望的(或可选地,预定的)变量的比特的数量。例如,opengl中的颜色值可以以rgba类型存储,颜色值的分量(例如,红色、绿色、蓝色和透明度)可被表示为8比特整数。在这种情况下,纹理元素的精度可为8比特。

第一计算器和第二计算器可包括乘法器,以便执行多个线性插值处理。参照等式1和等式2,乘法器可接收纹理元素值以及权重u和权重v,并可执行乘法。在这种情况下,计算器的区域(area)和计算器的计算量可根据输入到乘法器的变量的精度而变化。例如,当输入变量的精度为8比特时,乘法器的范围和计算量可分别为当输入变量的精度为4比特时的乘法器的范围和计算量的4倍。另外,随着计算器的计算量增大,计算器的功耗也会增大。

由计算器执行的计算的精度可为用于计算的权重的比特数量。例如,当用于对细化贴图执行计算的权重u和权重v的精度为4比特时,计算的精度可为4比特。换言之,当计算的精度为4比特时,可意味着输入到计算器的乘法器的权重的精度为4比特。

参照图5b,当第一细化贴图510对纹理过滤的影响大于第二细化贴图520对纹理过滤的影响时,lod权重大于0.5。在这种情况下,随着lod权重增大,图7的纹理处理单元可将具有高于第二计算器的计算精度的计算精度的计算器确定为第一计算器。

此外,随着第一细化贴图510对纹理过滤的影响增大,纹理处理单元可将具有高计算精度的计算器确定为第一计算器。

此外,随着第一细化贴图510与第二细化贴图520对纹理过滤的影响之间的差异增大,第一计算器的计算精度与第二计算器的计算精度之间的差异可增大。

使用多个细化贴图的纹理过滤的示例可不仅包括三线性过滤,还包括各向异性(anisotropic)过滤。本领域普通技术人员将理解,虽然为便于说明假设使用三线性过滤来描述以下内容,但是使用多个细化贴图的纹理过滤而不是三线性过滤可被使用。

图8是用于说明根据另一实施例的基于lod权重来确定第一计算器和第二计算器的方法的曲线图。

纹理处理单元可将lod权重的范围划分为多个范围并可根据包括lod权重的范围来确定第一计算器和第二计算器。此外,纹理处理单元可包括具有不同计算精度的计算器。

参照图8,纹理处理单元可通过使用具有8比特和4比特的计算精度的两个计算器来执行纹理过滤。具体地,当lod权重大于0.5时,纹理处理单元可将具有8比特的计算精度的计算器确定为第一计算器并可将具有4比特的计算精度的计算器确定为第二计算器。换言之,当lod权重大于0.5时,在对第一细化贴图510执行的计算中使用的权重u和权重v的精度可为8比特,在对第二细化贴图520执行的计算中使用的权重u和权重v的精度可为4比特。

相反,当lod权重小于0.5时,纹理处理单元可将具有8比特的计算精度的计算器确定为第二计算器并可将具有4比特的计算精度的计算器确定为第一计算器。

图9是示出根据本发明构思的至少一个示例实施例的纹理处理单元900的配置的框图。

参照图9,纹理处理单元900可包括控制器910和纹理过滤器920。本领域普通技术人员将理解,纹理处理单元900还可包括除了图9所示的元件之外的通用元件。根据至少一些示例实施例,控制器910和纹理过滤器920均为电路并可被称为控制器电路910和纹理过滤器电路920。

控制器910可从外部接收纹理并可执行用于控制纹理处理单元900的一个或多个计算。控制器910可通过控制纹理过滤器920来控制纹理处理单元900的总体操作。

此外,控制器910可基于指示第一细化贴图510和第二细化贴图520对纹理过滤的影响的lod权重来确定对第一细化贴图510执行计算的第一计算器和对第二细化贴图520执行计算的第二计算器,所述影响根据图形的lod值来确定。在这种情况下,第一计算器的计算精度可与第二计算器的计算精度不同。

例如,根据本发明构思的至少一些示例实施例,控制器910可接收图像的像素信息,确定图像的lod值,并基于确定的lod值来确定指示第一细化贴图510和第二细化贴图520的影响的lod权重。

根据本发明构思的至少一些示例实施例,纹理过滤器电路920可包括分别具有多个不同精度的多个计算器。此外,控制器910可被配置为确定图像的细节层次(lod)值,基于lod值确定lod权重,基于lod权重选择具有第一精度的第一计算器和具有第二精度的第二计算器,控制第一计算器对第一细化贴图执行第一计算,并控制第二计算器对第二细化贴图执行第二计算。由控制器910选择的第一计算器和第二计算器可为包括在纹理过滤器电路920中的多个计算器之中的计算器,选择的第一计算器的第一精度和第二计算器的第二精度可分别为不同的精度。

此外,在对第一细化贴图510执行的计算中所使用的权重和在对第二细化贴图520执行的计算中所使用的权重可根据lod权重而变化。

此外,控制器910可将lod权重的范围划分成多个范围,并可根据包括lod权重的范围来确定第一计算器和第二计算器。

此外,控制器910可基于根据包括在纹理过滤器920中的计算器的计算精度的组合的数量来划分lod权重的范围。

此外,随着第一细化贴图510对纹理过滤的影响增大,控制器910可将具有高计算精度的计算器确定为第一计算器。

此外,随着第一细化贴图510对纹理过滤的影响增大到高于第二细化贴图520对纹理过滤的影响,控制器910可将具有高于第二计算器的计算精度的计算精度的计算器确定为第一计算器。

随着第一细化贴图510与第二细化贴图520对纹理过滤的影响之间的差异增大,第一计算器的计算精度与第二计算器的计算精度之间的差异可增大。

第一计算器与第二计算器中的每个的区域可与计算精度成正比。

此外,纹理过滤器920可通过使用第一计算器和第二计算器执行纹理过滤。

此外,当包括lod权重的范围为包括lod权重的最大值或最小值的范围时,第一计算器与第二计算器之中的任何一个可输出第一细化贴图510和第二细化贴图520之中对纹理过滤具有更小影响的细化贴图所包括的纹理元素值。

此外,控制器910可基于lod权重确定对第一细化贴图510执行的计算的精度和对第二细化贴图520执行的计算的精度,纹理过滤器920可基于确定的计算的精度来改变第一计算器的计算精度和第二计算器的计算精度。根据本发明构思的至少一些示例实施例,纹理过滤器920可包括多个计算器(例如,计算器电路),所述多个计算器中的至少一些计算器具有彼此不同的精度,控制器910可基于lod权重从所述多个计算器中进行选择。图10是示出根据本发明构思的至少一个示例实施例的图形处理设备的配置的框图。

参照图10,纹理处理单元1010可包括控制器1011、纹理过滤器1012和纹理缓存1013。纹理处理单元1010可处理着色器核1020所请求的纹理,并可将处理的纹理发送到着色器核1020。纹理处理单元1010可接收着色器核1020的包括与将被处理的像素对应的纹理坐标的纹理请求。例如,像素可以以四边形为单位包括在纹理请求中。纹理处理单元1010可从存储器1030取来未存储在纹理缓存1013中的纹理。

根据至少一个示例实施例,纹理处理单元1010是图9的纹理处理单元900的示例移植。控制器1011和纹理过滤器1012分别对应于图9的控制器910和纹理过滤器920,因此将不给出其详细说明。

纹理缓存1013可存储纹理。纹理缓存1013可存储从存储器1030接收的一些纹理,以便减少(或可选地,最小化)根据纹理处理单元1010与存储器1030之间的数据传输的图形处理延迟时间。

纹理缓存1013可作为与纹理处理单元1010分开的模块而存在。例如,纹理缓存1013可位于纹理处理单元1010与存储器1030之间作为单独模块。

图11是用于说明根据另一实施例的基于lod权重来确定第一计算器和第二计算器的方法的曲线图。

随着包括在纹理处理单元900中的计算器的数量增加,纹理处理单元900可根据lod权重更精确地选择第一计算器和第二计算器,但是纹理处理单元900的区域会增大。

参照图11,纹理处理单元900可通过使用具有9比特至1比特的计算精度的九个计算器来执行纹理过滤。例如,当lod权重为0.15时,纹理处理单元900可将具有2比特的计算精度的计算器确定为第一计算器并可将具有8比特的计算精度的计算器确定为第二计算器。当lod权重为0.95时,纹理处理单元900可将具有9比特的计算精度的计算器确定为第一计算器并可将具有1比特的计算精度的计算器确定为第二计算器。

由于图11的纹理处理单元900包括比图8的纹理处理单元900更多的计算器,因此图11的纹理处理单元900可根据lod权重更精确地确定第一计算器和第二计算器。然而,图11的纹理处理单元900的区域可比图8的纹理处理单元900的区域更大。

图12a和图12b是用于说明根据本发明构思的至少一个示例实施例的当lod权重被包括在包括lod权重的最大值或最小值的范围中时确定第一计算器和第二计算器的方法的曲线图。

纹理处理单元900可根据lod权重改变纹理过滤。具体地,根据本发明构思的至少一些示例实施例,当lod权重为(i)低于较低阈值(或可选地,最小值)或者(ii)高于较高阈值(或可选地,最大值)时,第一计算器与第二计算器之中的任何一个可针对第一细化贴图510和第二细化贴图520之中对纹理过滤具有较小影响的细化贴图执行点过滤。例如,第一计算器与第二计算器之中的任何一个可例如响应于控制器910的控制,输出第一细化贴图510和第二细化贴图520之中对纹理过滤具有较小影响的细化贴图中所包括的纹理元素值。

参照图12a,纹理处理单元900可包括具有8比特、4比特以及无比特(nobit)的计算精度的三个计算器。在这种情况下,当lod权重小于0.1时,纹理处理单元900可将具有无比特的计算精度的计算器确定为第一计算器。当计算精度为无比特时,意味着用于执行双线性过滤的权重u和权重v的精度为无比特。换言之,具有无比特的计算精度的计算器是指用于执行点过滤而不是双线性过滤的计算器。

因此,当lod权重小于0.1时,纹理处理单元900可对第一细化贴图510执行点过滤并可通过使用具有8比特的计算精度的第二计算器对第二细化贴图520执行双线性过滤。此外,当lod权重大于0.9时,纹理处理单元900可对第二细化贴图520执行点过滤,并可通过使用具有8比特的计算精度的第一计算器对第一细化贴图510执行双线性过滤。

纹理处理单元900可在不单独添加用于执行点过滤的计算器的情况下通过使用具有4比特的计算精度的计算器执行点过滤。

由于图12a的纹理处理单元900对一个细化贴图执行点过滤而不是双线性过滤,因此图12a的纹理处理单元900可具有比图9的纹理处理单元900的计算量小的计算量。此外,当图12a的纹理处理单元900通过使用4比特的计算精度的计算器执行点过滤时,图12a的纹理处理单元900可具有分别与图9的纹理处理单元900的区域相同的区域以及比图9的纹理处理单元900的计算量更小的计算量。

与图12a的纹理处理单元900相同,图12b的纹理处理单元900可通过根据lod权重改变对细化贴图执行的计算来更精确地选择第一计算器和第二计算器。

参照图12b,纹理处理单元900可通过使用具有8比特、6比特、4比特、2比特以及无比特的计算精度的五个计算器来执行纹理过滤。例如,当lod权重为0.25时,纹理处理单元900可将具有4比特的计算精度的计算器确定为第一计算器并可将具有8比特的计算精度的计算器确定为第二计算器。此外,当lod权重为0.95时,纹理处理单元900可将具有8比特的计算精度的计算器确定为第一计算器并可将具有无比特的计算精度的计算器确定为第二计算器。在这种情况下,纹理处理单元900可对第二细化贴图执行点过滤而不是双线性过滤。纹理处理单元900可在不添加用于执行点过滤的计算器的情况下通过使用其他计算器来执行点过滤。

与图12a的纹理处理单元900不同,由于图12b的纹理处理单元900还包括具有不同计算精度的两个计算器,因此图12b的纹理处理单元900可根据lod权重更精确地选择第一计算器和第二计算器。然而,图12b的纹理处理单元900的区域可比图12a的纹理处理单元900的区域大。

虽然为便于说明在图12a和图12b中假设用于确定将对第一细化贴图执行点过滤的第一阈值为0.1并且确定将对第二细化贴图执行点过滤的第二阈值为0.9,但是第一阈值和第二阈值不限于此。

图13是用于说明根据本发明构思的至少一个示例实施例的纹理过滤的计算量的改变的示图。

图13示出当使用具有8比特的计算精度的两个计算器的三线性过滤的最终计算量为100%时的最终计算量(比率)与计算器配置之间的关系。当使用opengl的rgba类型时,分量(例如,红色、绿色、蓝色和透明度)可被表示为8比特整数。因此,为比较计算量,假设在纹理过滤中使用的纹理元素的精度为8比特并且两个计算器之中的任何一个的计算精度为8比特。

参照图13,在每个计算器配置中的“a×b”中,a和b分别表示纹理元素的精度和计算精度。此外,在“a+b”中,a和b分别表示计算器的精度。换言之,由于在图13中假设纹理处理单元使用两个计算器,因此可示出“a×b+c×d”。例如,当计算器配置为“8×8+8×6”时,计算器的计算精度可为8比特和6比特。

当计算器配置为“8×8和8×4”时,通过根据lod权重改变第一计算器和第二计算器,纹理过滤的最终计算量可为78.5%。因此,计算量可比当使用具有8比特的计算精度的两个计算器时的计算量少21.5%。

此外,当计算器配置为“8×8和8×0”时,通过根据lod权重改变第一计算器和第二计算器,纹理过滤的最终计算量可为57.1%。根据本发明构思的至少一些示例实施例,最终计算量指示例如由纹理处理单元900执行以完成纹理处理操作(例如,纹理过滤操作)的总的计算量。

参照图13,当包括在纹理处理单元900中的一个计算器的计算精度减小时,最终计算量可减小。此外,一旦最终计算量减小,功耗就可降低。另外,由于计算器的区域可与计算精度成比例,因此纹理处理单元900可包括根据计算精度具有小的区域的计算器。

此外,纹理处理单元900可例如基于控制器910的控制通过使用现有硬件通过仅将一些部件应用于具有相同计算精度的两个计算器来实现。

当最终计算量减小时,纹理过滤的准确度可降低。例如,当包括在计算器配置中的计算器的计算精度降低时,误差的数量增大。参照图13,当执行opengles3.2一致性测试时,误差最大值为与具有落到由变量的最小值和最大值限定的范围之外的值的变量对应的误差的数量。当rgba类型的分量为8比特时,在误差的数量等于或小于8时,该分量可通过opengles3.2一致性测试。

因此,当考虑最终计算量(比率)和误差最大值时,包括具有4比特的计算精度的计算器的计算器配置1310可被确定为满足opengles3.2一致性测试的条件并具有最小的计算量。纹理处理单元900的计算器配置可基于期望的质量来确定。例如,针对进一步减小最终计算量的计算器配置可应用于纹理处理单元900并且针对进一步减小误差的数量的计算器配置可应用于纹理处理单元900。

图14是根据本发明构思的至少一个示例实施例的纹理处理方法的流程图。

在操作1410,控制器910可基于指示第一细化贴图510和第二细化贴图520对纹理过滤的影响的lod权重确定对第一细化贴图510执行计算的第一计算器和对第二细化贴图520执行计算的第二计算器,所述影响根据图形的lod值来确定。在这种情况下,第一计算器的计算精度可与第二计算器的计算精度不同。

此外,在对第一细化贴图510执行的计算中所使用的权重和在对第二细化贴图520执行的计算中所使用的权重可根据lod权重而变化。

此外,控制器910可将lod权重的范围划分成多个范围,并可根据包括lod权重的范围来确定第一计算器和第二计算器。

此外,控制器910可基于根据包括在纹理过滤器920中的计算器的计算精度的组合(例如,不同计算精度的组合)的总的(或可选地,期望的)数量来划分lod权重的范围。例如,控制器910可被配置为基于包括在纹理过滤器920中的多个计算器的计算精度之中的计算精度的组合的总的(或可选地,期望的)数量来划分lod权重的范围。

此外,随着第一细化贴图510对纹理过滤的影响增大,控制器910可将具有高计算精度的计算器确定为第一计算器。

此外,随着第一细化贴图510对纹理过滤的影响增大到高于第二细化贴图520对纹理过滤的影响,控制器910可将具有高于第二计算器的计算精度的计算精度的计算器确定为第一计算器。

随着第一细化贴图510与第二细化贴图520对纹理过滤的影响之间的差异增大,第一计算器的计算精度与第二计算器的计算精度之间的差异可增大。

在操作1420,纹理过滤器920可通过使用第一计算器和第二计算器执行纹理过滤。

此外,根据本发明构思的至少一些示例实施例,当lod权重为(i)低于较低阈值(或可选地,最小值)或者(ii)高于较高阈值(或可选地,最大值)时,第一计算器与第二计算器之中的任何一个可输出第一细化贴图510和第二细化贴图520之中对纹理过滤具有较小影响的细化贴图中所包括的纹理元素值。

此外,控制器910可基于lod权重确定对第一细化贴图510执行的计算的精度和对第二细化贴图520执行的计算的精度,纹理过滤器920可基于确定的计算的精度来改变第一计算器的计算精度和第二计算器的计算精度。

图15是根据本发明构思的至少一个示例实施例的纹理处理方法的详细流程图。

图15是用于说明由图12a和图12b的纹理处理单元900执行以处理纹理的方法的详细流程图。本领域普通技术人员将理解,执行纹理过滤的方法可根据纹理处理单元900的计算器配置而变化。

在操作1510,控制器910可接收四边形信息。在这种情况下,四边形可为纹理将被映射到的像素的单位并可包括2×2个像素的集合。此外,四边形信息可包括在纹理请求中并可从着色器核1020接收。

在操作1520,控制器910可基于四边形信息计算lod权重并可确定用于纹理过滤的第一细化贴图510和第二细化贴图520。

在操作1530,控制器910可确定lod权重是否小于0.1。如果在操作1530确定lod权重小于0.1,则可执行操作1540。否则,可执行操作1550。

在操作1540,纹理处理单元900可通过使用具有8比特的计算精度的计算器对第二细化贴图520执行双线性过滤,并可对第一细化贴图510执行点过滤。例如,如果确定lod权重小于0.1,则纹理处理单元900可仅对具有对纹理过滤相对大影响的第二细化贴图520执行双线性过滤并可对第一细化贴图510执行点过滤,以便减小计算量。

在操作1550,控制器910可确定lod权重是否大于0.9。如果在操作1550确定lod权重大于0.9,则可执行操作1560。否则,可执行操作1570。

在操作1560,纹理处理单元900可通过使用具有8比特的计算精度的计算器对第一细化贴图510执行双线性过滤,并可对第二细化贴图520执行点过滤。例如,如果确定lod权重大于0.9,则纹理处理单元900可仅对具有对纹理过滤相对大影响的第一细化贴图510执行双线性过滤并可对第二细化贴图520执行点过滤,以便减小计算量。

在操作1570,控制器910可根据lod权重确定第一计算器和第二计算器。第一计算器是指对第一细化贴图510执行计算的计算器,第二计算器是指对第二细化贴图520执行计算的计算器。在这种情况下,第一计算器的计算精度可与第二计算器的计算精度不同。此外,在对第一细化贴图510执行的计算中使用的权重的精度可与在对第二细化贴图520执行的计算中使用的权重的精度不同。当每个权重的精度改变时,该权重的比特的数量可改变,因此将在计算中使用的该权重的值可改变。

例如,如果确定lod权重大于0.5,则具有8比特的计算精度的计算器可被确定为第一计算器并且具有4比特的计算精度的计算器可被确定为第二计算器。

在操作1580,纹理过滤器920可通过使用第一计算器和第二计算器对第一细化贴图510和第二细化贴图520执行双线性过滤。

在操作1590,纹理过滤器920可通过使用lod权重和第一细化贴图510与第二细化贴图520的过滤结果,执行三线性过滤。

根据一个或多个实施例,例如,通过根据第一细化贴图和第二细化贴图对纹理过滤的影响改变对第一细化贴图执行的计算的精度和对第二细化贴图执行的计算的精度,3d图形的质量可被保持,纹理处理单元的区域可减小,纹理处理单元的计算量和功耗可减小。

计算机可读记录介质可为可被计算机访问的任意可用介质,其示例包括所有易失性和非易失性介质以及可分离的和不可分离的介质。此外,计算机可读记录介质的示例可包括计算机存储介质和通信介质。计算机存储介质的示例包括已通过任意方法或技术实现的用于存储信息(诸如,计算机可读命令、数据结构、程序模块和其他数据)的所有易失性和非易失性介质以及可分离的和不可分离的介质。通信介质通常包括计算机可读命令、数据结构、程序模块、调制的数据信号的其他数据或另一传输机制,其示例包括任意信息传输介质。

本发明构思的至少一些示例实施例可被执行存储在计算机可读介质上的计算机可执行代码的处理器实现。包括用于使处理器执行根据至少一些示例实施例的操作的计算机可执行指令的程序代码可被存储在非暂时性计算机可读存储介质上,诸如,随机存取存储器(ram)、只读存储器(rom)、永久性大容量存储装置(诸如磁盘驱动器)和/或能够存储并记录数据的任何其他相似的数据存储机制。非暂时性计算机可读存储介质的示例包括(但不限于)闪存、蓝光盘、dvd、cd、软盘、硬盘驱动器(hdd)、固态驱动器(ssd)、动态ram(dram)、同步dram(sdram)以及静态ram(sram)。

本发明构思的示例实施例已如此被描述,将明显的是,本发明构思的示例实施例可以以许多方式来改变。这样的改变将不被视为脱离于本发明构思的示例实施例的意图的精神和范围,并且如对于本领域技术人员而言明显的是,所有这样的修改意在包括在权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1