用于处理纹理的方法和设备与流程

文档序号:11953657阅读:279来源:国知局
用于处理纹理的方法和设备与流程

技术领域

以下描述涉及用于处理映射到形成帧的像素的纹理的方法和设备。



背景技术:

三维(3D)图形应用程序接口(API)标准的示例是OpenGL、OpenGL ES、Direct 3等。API标准中的每个标准都包括渲染3D图形中的每帧并显示图像的方法。当3D图形中的每帧被渲染时,执行大量计算,因此功耗较大。因此,有必要减少用于渲染3D图形中的每帧的计算量和图形处理单元对外部存储器的访问次数。



技术实现要素:

提供该发明内容以按照简化形式介绍构思的选择,下面将在具体实施方式中进一步描述所述构思。该发明内容不意图确认要求保护的主题的关键特征或必要特征,也不意图用作帮助确定要求保护的主题的范围。

其它方面将在下面的描述中部分地阐明,并且部分地将从所述描述而明显可知,或者可通过呈现的示例的实施被了解。

根据示例性实施例的一方面,一种处理纹理的方法包括:获取与像素地址相应的纹理地址和纹理的频率信息;根据纹理的频率信息确定将被用于纹理过滤的纹理元素的数量;基于纹理地址读取与确定的纹理元素的数量相应的纹理元素值;通过使用读取的纹理元素值来执行纹理过滤。

确定纹理元素的数量的步骤可包括:响应于纹理的频率信息指示比与纹理元素值改变率相关的参考值更低的频率,确定将被用于纹理过滤的纹理元素的最小数量。

读取纹理元素值的步骤可包括:基于纹理地址接收对存储在纹理高速缓冲存储器中的纹理的纹理元素值的请求;确定针对纹理高速缓冲存储器中被请求的纹理元素值的高速缓冲存储器命中的数量;根据将针对被请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送与纹理元素的最小数量相应的纹理元素值。

接收对存储在纹理高速缓冲存储器中的纹理的纹理元素值的请求的步骤可包括:接收对与纹理元素的最小数量相应的纹理元素值的请求。

发送纹理元素值的步骤可包括:当高速缓冲存储器命中的数量小于将被用于纹理过滤的纹理元素的最小数量时,向外部存储器请求与高速缓冲存储器未命中的数量相应的纹理元素值;将从外部存储器接收的至少一个纹理元素值补偿到高速缓冲存储器命中纹理元素值,并同时发送与纹理元素的最小数量相应的纹理元素值。

发送纹理元素值的步骤可包括:响应于高速缓冲存储器命中的数量大于或等于将被用于纹理过滤的纹理元素的最小数量,发送与纹理元素的最小数量相应的纹理元素值。

读取纹理元素值的步骤可包括:在发送与纹理元素的最小数量相应的纹理元素值之后,向外部存储器请求与高速缓冲存储器未命中的数量相应的至少一个纹理元素值;将从外部存储器接收的所述至少一个纹理元素值存储在纹理高速缓冲存储器中。

确定纹理元素的数量的步骤可包括:响应于纹理的频率信息指示比与纹理元素值改变率相关的参考值更高的频率,确定将被用于纹理过滤的纹理元素的最大数量。

纹理的频率信息可基于从压缩的纹理的头文件提取的信息。

根据另一示例性实施例的一方面,一种非暂时性计算机可读记录介质,其上记录有用于执行处理纹理的方法的计算机可读程序。

根据另一示例性实施例的一方面,一种用于处理纹理的设备包括:控制单元,被配置为获取与像素地址相应的纹理地址和纹理的频率信息,并根据纹理的频率信息确定将被用于纹理过滤的纹理元素的数量;纹理高速缓冲存储器,被配置为基于纹理地址读取与确定的纹理元素的数量相应的纹理元素值;纹理过滤器,被配置为通过使用读取的纹理元素值来执行纹理过滤。

控制单元还可响应于纹理的频率信息指示比与纹理元素值改变率相关的 参考值更低的频率,确定将被用于纹理过滤的纹理元素的最小数量。

纹理高速缓冲存储器还可基于纹理地址接收对存储在纹理高速缓冲存储器中的纹理的纹理元素值的请求,确定针对被请求的纹理元素值的高速缓冲存储器命中的数量,并根据将针对被请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送与纹理元素的最小数量相应的纹理元素值。

纹理高速缓冲存储器可接收对与纹理元素的最小数量相应的纹理元素值的请求。

在高速缓冲存储器命中的数量小于将被用于纹理过滤的纹理元素的最小数量时,纹理高速缓冲存储器可向外部存储器请求与高速缓冲存储器未命中的数量相应的纹理元素值,将从外部存储器接收的至少一个纹理元素值补偿到高速缓冲存储器命中纹理元素值,并同时发送与纹理元素的最小数量相应的纹理元素值。

纹理高速缓冲存储器可响应于高速缓冲存储器命中的数量大于或等于将被用于纹理过滤的纹理元素的最小数量,发送与纹理元素的最小数量相应的纹理元素值。

纹理高速缓冲存储器可在发送与纹理元素的最小数量相应的纹理元素值之后,向外部存储器请求与高速缓冲存储器未命中的数量相应的至少一个纹理元素值,并存储从外部存储器接收的所述至少一个纹理元素值。

控制单元可响应于纹理的频率信息指示比与纹理元素值改变率相关的参考值更高的频率,确定将被用于纹理过滤的纹理元素的最大数量。

所述设备还可包括解压缩器,被配置为对从外部存储器接收的压缩的纹理进行解压缩,其中,控制单元从解压缩器获取纹理的频率信息,其中,纹理的频率信息基于从压缩的纹理的头文件提取的信息而被确定。

可基于从头文件提取的压缩的纹理的压缩率信息确定纹理的频率信息。

从以下详细描述、附图和权利要求中,其它特征和方面将是清楚的。

附图说明

图1是示出图形处理单元(GPU)的示例的框图;

图2示出在图1的GPU中对三维(3D)图形进行处理的过程的示例;

图3是示出纹理处理单元的示例的框图;

图4示出图3的纹理处理单元的操作的示例;

图5示出图3的纹理处理单元的操作的另一示例;

图6示出图3的纹理处理单元的操作的另一示例;

图7是纹理处理方法的示例的流程图;

图8是在图7的纹理处理方法中确定将被用于纹理过滤的纹理元素的数量的操作的示例的流程图;

图9是在图7的纹理处理方法中读取与针对低频率纹理确定的纹理元素的数量相应的纹理元素值的操作的示例的流程图;

图10是图9的操作中根据将高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果来发送与纹理元素的最小数量相应的纹理元素值的操作的示例的流程图;

图11是在图7的纹理处理方法中读取与针对高频率纹理确定的纹理元素的数量相应的纹理元素值的操作的示例的流程图;

图12是图11的操作中根据将高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果来发送与纹理元素的最大数量相应的纹理元素值的操作的示例的流程图。

具体实施方式

提供以下具体实施方式以帮助读者全面理解在此描述的方法、设备和/或系统。然而,在此描述的系统、设备和/或方法的各种改变、修改和等同物对本领域普通技术人员来说将是显而易见的。例如,这里描述的操作的顺序仅为示例,除非操作必须按照特定顺序发生,否则操作的顺序不限于在此阐述的顺序,而可如本领域普通技术人员将清楚的那样改变。此外,为了更加清楚和简明,可省略对本领域普通技术人员来说公知的功能和结构的描述。

贯穿附图和详细描述,相同的标号指示相同的元件。附图可以不按比例绘制,并且为了清楚、说明和方便起见,可夸大附图中的元件的相对尺寸、比例和描绘。

在此描述的特征可以以不同的形式被实施,而不应被解释为受在此描述的示例所限制。相反,提供在此描述的示例将使本公开彻底和完整,并将本公开的完整范围传达给本领域普通技术人员。

将理解,当术语“包括”和/或“包含”在说明书中被使用时,指定存在所陈 述的组件和/或步骤,但是不排除以下情形:不包括陈述的组件和/或步骤中的一些或者存在或添加一个或更多个其它组件和/或步骤。

虽然诸如“第一”和“第二”的术语在说明书中被使用时可用于描述各种元件,但是这些元件不应该被这些术语所限制。这些术语可用于将特定元件与另一元件进行区分。

如这里所使用的,术语“和/或”包括一个或更多个相关列出的项的任何组合和所有组合。

图1是图形处理单元(GPU)的示例的框图。本领域普通技术人员将理解,还可包括除图1中示出的组件之外的通用组件。

参照图1,GPU 100包括光栅化器110、着色器核120、纹理处理单元130、像素处理单元140和并行块(tile)缓冲器150。然而,应注意,GPU 100可包括比以上列出的项更多的项或更少的项。相似地,虽然图1示出GPU 100包括包含在GPU 100中的光栅化器110、着色器核120、纹理处理单元130、像素处理单元140和并行块缓冲器150,但是所述元件可被实现为单独的硬件。此外,GPU 100经由总线300将数据发送到外部存储器200或从外部存储器200接收数据。

图1中示出的GPU 100是用于处理三维(3D)图形的设备并可使用参照图1所述的基于并行块的渲染(TBR)方法。换言之,GPU 100通过使用光栅化器110、着色器核120和像素处理单元140来处理按照恒定尺寸划分的多个并行块以产生与一帧相应的3D图形,并将处理结果存储在并行块缓冲器150中。GPU 100通过使用多个通道来并行处理所有并行块,其中,每个通道都包括光栅化器110、着色器核120和像素处理单元140。当与一帧相应的多个并行块被处理时,GPU 100将存储在并行块缓冲器150中的处理结果发送到外部存储器200中的帧缓冲器(未示出)。

着色器核120包括像素着色器。着色器核120还可包括顶点着色器。可选择地,着色器核120可包括集成了顶点着色器和像素着色器的集成着色器。当着色器核120执行顶点着色器的功能时,着色器核120产生指示对象的图元(primitive)并将图元发送到光栅化器110。此外,着色器核120从光栅化器110接收光栅化的图元并对光栅化的图元执行像素着色。

光栅化器110在进行几何变换处理之后,将由顶点着色器产生的图元光栅化。

着色器核120对光栅化的图元执行像素着色以确定形成包括光栅化的图元的片元(fragment)的并行块的所有像素的颜色。在像素着色处理中,着色器核120使用利用纹理产生的像素值来产生立体且逼真的3D图形。

当着色器核120请求纹理处理单元130发送与期望的像素相应的像素值时,纹理处理单元130发送通过处理预先准备的纹理而产生的像素值。纹理可被存储在纹理处理单元130的预定空间中或被存储在外部存储器200中。当用于产生从着色器核120请求的像素值的纹理不在纹理处理单元130的预定空间中时,纹理处理单元130从外部存储器200读取纹理并使用从外部存储器200读取的纹理。

像素处理单元140确定与一个并行块相应的所有像素值,从而通过诸如深度测试等的处理来确定将用于与所述一个并行块中的相同位置相应的像素的像素值。

并行块缓冲器150存储从像素处理单元140发送的与一个并行块相应的所有像素值。如果对形成一帧的所有并行块的图形处理过程完成,则存储在并行块缓冲器150中的处理结果被发送到外部存储器200中的帧缓冲器。

现在将参照图2更详细地描述对3D图形进行处理的过程。

图2示出在GPU中对3D图形进行处理的过程的示例。

参照图2,通过操作11至17来执行对3D图形进行处理的过程。对3D图形进行处理的过程可大致划分为几何变换、光栅化和像素着色这三个操作,现在将通过将对3D图形进行处理的过程划分为更详细的操作来描述对3D图形进行处理的过程。

在操作11,产生顶点以指示包括在3D图形中的对象。

在操作12,对产生的顶点进行着色。顶点着色器可通过分配在操作11中产生的顶点的位置来对顶点进行着色。

在操作13,产生图元。图元指示使用至少一个顶点形成的点、线、多边形等。例如,图元可指示连接顶点所形成的三角形。

在操作14,将顶点光栅化。将图元光栅化指示将图元划分为片元。片元是用于对图元进行图形处理的基本单元。由于图元仅包括关于顶点的信息,因此在光栅化中产生顶点之间的片元以帮助对3D图形进行图形处理。

在操作15,对像素进行着色。在光栅化中产生的形成图元的片元可以是形成并行块的像素。可根据情况而选择性地使用术语“片元”和“像素”。例如, 像素着色器可被片元着色器替换。通常,用于形成图元的图形处理中的基本单元可被称为片元,之后,用于像素着色的图形处理中的基本单元可被称为像素。在像素着色中,可确定像素的颜色。

在操作16,执行纹理分析以确定像素的颜色。纹理分析指示通过使用先前准备的图像来确定像素的颜色,即纹理。如果计算和确定每个像素的颜色以表现真实世界中的各种颜色和图案,则图形处理所需的数据量和图形处理时间大大增加,因此,使用先前准备的纹理来确定像素的颜色。例如,可通过以下操作来确定像素的颜色:将对象的表面颜色存储为称为纹理的单独的2D图像,并根据对象在屏幕上的位置和尺寸而放大或缩小存储的纹理,或使用具有各种分辨率的纹理来混合纹理元素值。

在操作17,执行测试和混合。通过确定经由针对与并行块中的相同位置相应的像素的诸如深度测试等的处理最终显示的像素值来确定与一个并行块相应的像素值。通过将经由上述操作产生的多个并行块混合来产生与一帧相应的3D图形。

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

以上已描述了在像素着色期间使用先前准备的纹理产生的像素值以进行快速的3D图形处理。在这种情况下,预先准备具有不同分辨率的多个纹理以便自适应地处理对象的尺寸,并通过对多个纹理进行组合来产生像素值。这里,先前准备的具有与所述多个纹理中的其它纹理不同的分辨率的纹理被称为细化贴图(mipmap)。例如,可通过从两个细化贴图提取对象中的相应位置处的纹理元素并对提取的纹理元素值进行过滤,来产生具有两个先前准备的细化贴图的中间分辨率的对象的像素值。

然而,由于与各种对象相应的所有纹理和与每个纹理相应的细化贴图不能全部被存储在纹理处理单元130的预定空间中,因此如果需要未被存储在纹理处理单元130的预定空间中的纹理,则需要访问GPU 100的外部存储器200。此外,如果在使用纹理/细化贴图的纹理处理期间用于进行纹理过滤的纹理元素的数量增加,则对外部存储器200的访问频率也增加,因此,可能难以进行快速图形处理。

现在将描述一种纹理处理方法和设备,该纹理处理方法和设备在使用纹理/细化贴图的纹理处理中能够通过改变用于根据纹理的类型进行纹理过滤 的纹理元素的数量执行快速图形处理,以减小对GPU 100的外部存储器200的访问频率。

图3是示出包括在GPU中的纹理处理单元的示例的框图。

参照图3,纹理处理单元130包括控制单元131、解压缩器133、纹理高速缓冲存储器135和纹理过滤器137。

当纹理处理单元130从GPU 100的外部存储器200接收到压缩的纹理时,解压缩器133对压缩的纹理进行解压缩。解压缩的纹理被存储在纹理高速缓冲存储器135中。

纹理高速缓冲存储器135存储在图形处理中使用的纹理并且还存储针对一个纹理具有各种方案的细化贴图。纹理高速缓冲存储器135提取对由着色器核120请求的像素值进行处理所需的纹理元素值并将提取的纹理元素值发送到纹理过滤器137。

纹理过滤器137通过对从纹理高速缓冲存储器135发送的纹理元素值进行过滤来产生一个像素值。对纹理元素值进行过滤是指通过将纹理元素值混合来获得与像素相应的颜色值。例如,通过对包括在纹理空间的部分区域中的纹理元素值取平均来获得与像素相应的颜色值,其中,所述纹理空间包括从像素地址转换的纹理地址。由纹理过滤器137产生的像素值是作为对于着色器核120的像素值请求的响应而进行了预定计算并被发送到着色器核120的过滤的纹理元素值。

控制单元或控制器131负责纹理处理单元130的总体控制。控制单元131通过执行控制纹理处理单元130所需的计算或通过控制解压缩器133、纹理高速缓冲存储器135和纹理过滤器137来控制纹理处理单元130。

控制单元131通过与将由着色器核120处理的像素的像素地址相应的纹理地址从着色器核120接收对与将由着色器核120处理的像素相应的像素值的请求。为了响应于请求而发送产生的像素值,控制单元131通过控制纹理处理单元130使用纹理/细化贴图来执行纹理处理。

控制单元131获得与将由着色器核120处理的像素相应的纹理的频率信息,以便使用纹理/细化贴图来执行纹理处理。这是为了根据纹理的频率信息来确定用于产生由着色器核120请求的像素值的纹理处理的水平。在一个示例中,纹理的频率信息指示形成纹理的纹理元素的纹理元素值改变率。纹理的低空间频率指示低纹理元素值改变率,低纹理元素值改变率指示形成纹理 的邻近纹理元素具有相同或非常近似的纹理元素值。换言之,纹理的低空间频率指示纹理的空间相关性高或者纹理光滑。

纹理处理单元130从纹理/细化贴图提取多个纹理元素值并使用多个纹理元素值以产生由着色器核120请求的像素值。此外,低频率纹理指示低纹理元素值改变率,因此,即使没有使用原则上本应用于纹理过滤以产生请求的像素值的所有纹理元素值,也可产生与请求的像素值非常近似的像素值。另一方面,高频率纹理指示高纹理元素值改变率,因此,如果没有使用原则上本应用于纹理过滤以产生请求的像素值的所有纹理元素值,则可产生与请求的像素值非常不同的像素值。因此,对于高频率纹理,可通过在收集原则上本应用于纹理过滤以产生请求的像素值的所有纹理元素值之后执行纹理过滤,产生与请求的像素值相应的像素值。在这种情况下,通过纹理过滤方法来确定原则上本应用于纹理过滤的纹理元素值的总数。

控制单元131从解压缩器133获取纹理的频率信息,其中,解压缩器133已对从外部存储器200接收的压缩的纹理进行解压缩。解压缩器133基于从压缩的纹理的头文件提取的信息确定纹理的频率信息并将确定的纹理的频率信息发送到控制单元131。

基于纹理的压缩率信息来确定纹理的频率信息。例如,当纹理的压缩率高时,纹理的空间频率低,而当纹理的压缩率低时,纹理的空间频率高。通过将用于识别是低频率还是高频率的预定参考与纹理的压缩率进行比较来确定纹理的频率信息。用于识别纹理的频率信息是高频率还是低频率的预定参考在数量上至少是一个,当预定参考的数量是多个时,通过将纹理的频率信息的格式分为更多个来确定像素值的近似水平。

控制单元131通过获取纹理的频率信息来确定纹理处理水平。控制单元131确定由着色器核120请求的像素值是被近似计算还是被精确计算。详细地,控制单元131确定将被用于纹理过滤的纹理元素的数量。对于低频率纹理,控制单元131使将被用于纹理过滤的纹理元素的数量最小化以减少高速缓冲存储器未命中的数量或对GPU 100的外部存储器200的访问频率,从而减少图形处理时间。

总体上,根据纹理过滤方法确定将被用于获得像素值的纹理元素的数量。然而,在本示例中,可根据纹理的频率信息另外确定将被用于纹理过滤的纹理元素的数量。

例如,在三线性过滤方法中,纹理处理单元130通过使用八个纹理元素值来执行纹理过滤以获得一个像素值。然而,对于低频率纹理,纹理处理单元130通过使用比八个纹理元素值的数量更少的纹理元素值来执行纹理过滤。换言之,当纹理具有低频率时,纹理元素值改变率低,从而即使在纹理处理单元130通过使用比用于获得由着色器核120请求的像素值的基本数量的纹理元素值的数量更少的纹理元素值来执行纹理过滤时,纹理处理单元130也产生与请求的像素值非常近似的像素值并将产生的像素值发送到着色器核120。控制单元131通过确定将被用于针对低频率纹理的纹理过滤的纹理元素的最小数量并通过仅使用与确定的纹理元素的最小数量相应的像素值,使图形处理时间的减少最大化。将被用于纹理过滤的纹理元素的最小数量根据将被执行的纹理过滤方法被不同地确定,或被确定为预定值。

同时,当纹理具有高频率时,纹理元素值改变率高,从而纹理处理单元130通过使用根据纹理过滤方法确定的那么多的纹理元素来执行纹理过滤以获得由着色器核120请求的像素值。纹理处理单元130通过执行纹理过滤来产生与请求的像素值相应的像素值并将产生的像素值发送到着色器核120。控制单元131通过确定将被用于纹理过滤的纹理的最大数量并使用与确定的纹理元素的最大数量相应的纹理元素值来保持针对高频率纹理的像素值的精度。也就是说,当纹理具有高频率时将被用于纹理过滤的纹理元素的数量可与根据纹理过滤方法确定的纹理元素的数量相同。

现在将参照图4至图6详细描述当由纹理处理单元130处理映射到形成帧的像素的纹理时,尤其是当将被用于纹理过滤的纹理是低频率纹理时,纹理处理单元130的操作。

图4示出纹理处理单元130的操作的示例。为了便于描述,假设由纹理过滤器137执行的纹理过滤方法是三线性过滤方法,但是本实施例不限于此。

纹理处理单元130可通过与将由着色器核120处理的像素的像素地址相应的纹理元素地址,从着色器核120接收对将由着色器核120处理的像素进行纹理处理的请求。

纹理处理单元130的控制单元131可获取与将由着色器核120处理的像素相应的纹理的频率信息,以便获得由着色器核120请求的像素值。当获取的频率信息指示比与纹理元素值改变率相关的预定参考值更低的频率时,控制单元131可确定将被用于纹理过滤的纹理元素的最小数量。如图4中所示, 当确定的纹理元素的最小数量是6时,控制单元131可向纹理高速缓冲存储器135通知确定的纹理元素的最小数量是6。此外,控制单元131还将关于确定的纹理元素的最小数量的信息发送到纹理过滤器137。

当由纹理过滤器137根据三线性过滤方法执行纹理过滤时,八个纹理元素值被用于获得一个像素值,因此,纹理处理单元130的控制单元131向纹理高速缓冲存储器135请求八个纹理元素值。例如,控制单元131可向纹理高速缓冲存储器135请求包括在已使用从着色器核120接收的纹理地址计算出的至少一个纹理/细化贴图空间的部分区域中的纹理元素值。

纹理高速缓冲存储器135读取与已由控制单元131确定的纹理元素的数量相应的纹理元素值。纹理高速缓冲存储器135通过查看由控制单元131请求的纹理元素值中的每个是否被存储在纹理高速缓冲存储器135中来确定高速缓冲存储器命中和/或高速缓冲存储器未命中,并根据将针对请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送已从控制单元131接收的与纹理元素的最小数量相应的纹理元素值。如果高速缓冲存储器命中的数量少于将被用于纹理过滤的纹理元素的最小数量,则纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的纹理元素值,将从外部存储器200接收的至少一个纹理元素值补偿到高速缓冲存储器命中纹理元素值,并同时将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137。

如图4中所示,当由控制单元131请求的八个纹理元素值中仅五个纹理元素值是高速缓冲存储器命中的时,高速缓冲存储器命中的数量少于六(已由控制单元131确定的纹理元素的最小数量),因此,纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的三个纹理元素值。纹理高速缓冲存储器135从外部存储器200接收与高速缓冲存储器未命中的数量相应的三个纹理元素值,将接收的三个纹理元素值中的一个补偿到高速缓冲存储器命中纹理元素值,并同时将与纹理元素的最小数量相应的六个纹理元素值发送到纹理过滤器137。从外部存储器200接收的纹理元素值被存储在纹理高速缓冲存储器135中并在将来被使用。

纹理过滤器137通过使用从纹理高速缓冲存储器135接收的六个纹理元素值执行纹理过滤来产生与由着色器核120请求的像素值相应的像素值,并将产生的像素值发送到着色器核120。这里,发送到着色器核120的像素值 与近似的颜色值相应而具有非常小的误差,因此,不显著影响3D图形的质量。

图5示出纹理处理单元的操作的另一示例。为了便于描述,假设由纹理过滤器137执行的纹理过滤方法是三线性过滤方法,但是本实施例不限于此。

纹理处理单元130可通过与将由着色器核120处理的像素的像素地址相应的纹理元素地址,从着色器核120接收对将由着色器核120处理的像素进行纹理处理的请求。

纹理处理单元130的控制单元131获取与将由着色器核120处理的像素相应的纹理的频率信息,以便获得由着色器核120请求的像素值。此时,当获取的频率信息指示比与纹理元素值改变率相关的预定参考值更低的频率时,控制单元131确定将被用于纹理过滤的纹理元素的最小数量。如图5中所示,当确定的纹理元素的最小数量是6时,控制单元131可向纹理高速缓冲存储器135通知确定的纹理元素的最小数量是6。此外,控制单元131还将关于确定的纹理元素的最小数量的信息发送到纹理过滤器137。

纹理处理单元130的控制单元131向纹理高速缓冲存储器135请求与确定的纹理元素的最小数量相应的八个纹理元素值。如图5中所示,控制单元131向纹理高速缓冲存储器135请求与包括在已使用从着色器核120接收的纹理地址计算出的至少一个纹理/细化贴图空间的部分区域中的六个纹理元素相应的纹理元素值。

纹理高速缓冲存储器135读取与已由控制单元131确定的纹理元素的数量相应的纹理元素值。纹理高速缓冲存储器135通过查看由控制单元131请求的纹理元素值中的每个是否被存储在纹理高速缓冲存储器135中来确定高速缓冲存储器命中和/或高速缓冲存储器未命中,并根据将针对请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送已从控制单元131接收的与纹理元素的最小数量相应的纹理元素值。如果高速缓冲存储器命中的数量少于将被用于纹理过滤的纹理元素的最小数量,则纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的纹理元素值,将从外部存储器200接收的至少一个纹理元素值补偿到高速缓冲存储器命中纹理元素值,并同时将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137。

如图5中所示,当由控制单元131请求的六个纹理元素值中仅四个纹理 元素值是高速缓冲存储器命中时,高速缓冲存储器命中的数量少于六(已由控制单元131确定的纹理元素的最小数量),因此,纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的两个纹理元素值。纹理高速缓冲存储器135从外部存储器200接收与高速缓冲存储器未命中的数量相应的两个纹理元素值,将接收的两个纹理元素值补偿到高速缓冲存储器命中纹理元素值,并同时将与纹理元素的最小数量相应的六个纹理元素值发送到纹理过滤器137。然而,纹理元素值的发送不限于此,纹理高速缓冲存储器135可顺序地发送纹理元素值。

纹理过滤器137通过使用从纹理高速缓冲存储器135接收的六个纹理元素值执行纹理过滤来产生与由着色器核120请求的像素值相应的像素值,并将产生的像素值发送到着色器核120。这里,发送到着色器核120的像素值与近似的颜色值相应而具有非常小的误差,因此,不显著影响3D图形的质量。

图6示出纹理处理单元的操作的另一示例。为了便于描述,假设由纹理过滤器137执行的纹理过滤方法是三线性过滤方法,但是本实施例不限于此。

纹理处理单元130可通过与将由着色器核120处理的像素的像素地址相应的纹理元素地址,从着色器核120接收对将由着色器核120处理的像素进行纹理处理的请求。

纹理处理单元130的控制单元131获取与将由着色器核120处理的像素相应的纹理的频率信息,以便获得由着色器核120请求的像素值。此时,当获取的频率信息指示比与纹理元素值改变率相关的预定参考值更低的频率时,控制单元131确定将被用于纹理过滤的纹理元素的最小数量。如图6中所示,当确定的纹理元素的最小数量是5时,控制单元131向纹理高速缓冲存储器135通知确定的纹理元素的最小数量是5。此外,控制单元131还将关于确定的纹理元素的最小数量的信息发送到纹理过滤器137。

当由纹理过滤器137根据三线性过滤方法执行纹理过滤时,八个纹理元素值被用于获得一个像素值,因此,纹理处理单元130的控制单元131向纹理高速缓冲存储器135请求八个纹理元素值。例如,控制单元131可向纹理高速缓冲存储器135请求包括在已使用从着色器核120接收的纹理地址计算出的至少一个纹理/细化贴图空间的部分区域中的纹理元素值。

纹理高速缓冲存储器135读取与已由控制单元131确定的纹理元素的数 量相应的纹理元素值。纹理高速缓冲存储器135通过查看由控制单元131请求的纹理元素值中的每个是否被存储在纹理高速缓冲存储器135中来确定高速缓冲存储器命中和/或高速缓冲存储器未命中,并根据将请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送已从控制单元131接收的与纹理元素的最小数量相应的纹理元素值。如果高速缓冲存储器命中的数量大于或等于将被用于纹理过滤的纹理元素的最小数量,则纹理高速缓冲存储器135将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137。

在将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137之后,纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的至少一个纹理元素值,并存储从外部存储器200接收的至少一个纹理元素值。因此,纹理高速缓冲存储器135增加之后将被着色器核120请求的像素值的高速缓冲存储器命中概率,从而执行快速图形处理。

如图6中所示,当由控制单元131请求的八个纹理元素值中仅五个纹理元素值是高速缓冲存储器命中时,高速缓冲存储器命中的数量等于五个(已由控制单元131确定的纹理元素的最小数量),从而纹理高速缓冲存储器135将与纹理元素的最小数量相应的五个纹理元素值发送到纹理过滤器137。之后,纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的三个纹理元素值,并接收和存储从外部存储器200接收的三个纹理元素值。因此,纹理高速缓冲存储器135增加之后将被着色器核120请求的像素值的高速缓冲存储器命中概率,从而执行快速图形处理。

纹理过滤器137通过使用从纹理高速缓冲存储器135接收的五个纹理元素值执行纹理过滤来产生与由着色器核120请求的像素值相应的像素值,并将产生的像素值发送到着色器核120。这里,发送到着色器核120的像素值与近似的颜色值相应而具有非常小的误差,因此,不显著影响3D图形的质量。

图7是纹理处理的示例的流程图。虽然以下省略,但是纹理处理单元130的以上描述也可应用于纹理处理方法。

在操作S710,纹理处理单元130获取与像素地址相应的纹理地址和纹理的频率信息。详细地,纹理处理单元130从着色器核120获取与像素地址相应的纹理地址。此外,纹理处理单元130可从解压缩器133获取纹理的频率 信息,其中,压缩器133对从外部存储器200接收的压缩的纹理进行解压缩。纹理的频率信息可基于从压缩的纹理的头文件提取的信息。

在操作S720,纹理处理单元130根据纹理的频率信息确定用于纹理过滤的纹理元素的数量。详细地讲,纹理处理单元130根据将被用于计算由着色器核120请求的像素值的纹理是低频率纹理还是高频率纹理,不同地确定将被用于纹理过滤的纹理元素的数量。以下将参照图8对此进行详细描述。

图8是在纹理处理方法中确定将被用于纹理过滤的纹理元素的数量的操作的示例的详细流程图。

在操作S810,纹理处理单元130确定纹理的频率信息是否指示比与纹理元素值改变率相关的预定参考值更低的频率。

如果纹理的频率信息指示比与纹理元素值改变率相关的预定参考值更低的频率,则在操作S820,纹理处理单元130确定将被用于纹理过滤的纹理元素的最小数量。

相反地,如果纹理的频率信息指示比与纹理元素值改变率相关的预定参考值更高的频率,则在操作S830,纹理处理单元130确定将被用于纹理过滤的纹理元素的最大数量。

参照回图7,在操作S730,纹理处理单元130基于纹理地址读取与确定的纹理元素的数量相应的纹理元素值。以下将参照图9至图12对此进行详细描述。当用于计算由着色器核120请求的像素值的纹理是低频率纹理时,参照图9和图10,而当用于计算由着色器核120请求的像素值的纹理是高频率纹理时,参照图11和图12。

图9是在纹理处理方法中读取与针对低频率纹理确定的纹理元素的数量相应的纹理元素值的操作的示例的流程图。

在操作S910,纹理处理单元130的纹理高速缓冲存储器135基于纹理地址接收对存储在纹理高速缓冲存储器135中的纹理的纹理元素值的请求。此时,可请求与已在图8的操作S820中确定的将被用于纹理过滤的纹理元素的最小数量相应的纹理元素值。

在操作S920,纹理处理单元130的纹理高速缓冲存储器135确定针对请求的纹理元素值中的每个的高速缓冲存储器命中。

在操作S930,纹理处理单元130的纹理高速缓冲存储器135根据将针对请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最小数量进行 比较的结果,发送与纹理元素的最小数量相应的纹理元素值。

图10是根据将高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果来发送与纹理元素的最小数量相应的纹理元素值的操作的示例的流程图。

在操作S1010,纹理处理单元130的纹理高速缓冲存储器135将针对请求的纹理元素值的高速缓冲存储器命中的数量与已在图8的操作S820中确定的纹理元素的最小数量进行比较。

如果高速缓冲存储器命135中的数量小于已在图8的操作S820中确定的将被用于纹理过滤的纹理元素的最小数量,则在操作S1020,纹理处理单元130的纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的纹理元素值。

在操作S1030,纹理处理单元130的纹理高速缓冲存储器135将从外部存储器200接收的至少一个纹理元素值补偿到高速缓冲存储器命中像素值,并同时将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137。然而,应注意纹理元素值的发送不限于此,因此还可顺序地发送纹理元素值。

相反地,如果高速缓冲存储器命中的数量大于或等于已在图8的操作S820中确定的将被用于纹理过滤的纹理元素的最小数量,则在操作S1040,纹理处理单元130的纹理高速缓冲存储器135将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137。在将与纹理元素的最小数量相应的纹理元素值发送到纹理过滤器137之后,纹理处理单元130的纹理高速缓冲存储器135可向外部存储器200请求与高速缓冲存储器未命中的数量相应的至少一个纹理元素值,并存储从外部存储器200接收的至少一个纹理元素值。

图11是在纹理处理方法中读取与针对高频率纹理确定的纹理元素的数量相应的纹理元素值的操作的示例的流程图。

在操作S1110,纹理处理单元130的纹理高速缓冲存储器135基于纹理地址接收对存储在纹理高速缓冲存储器135中的纹理的纹理元素值的请求。此时,可请求与已在图8的操作S830中确定的将被用于纹理过滤的纹理元素的最大数量相应的纹理元素值。

在操作S1120,纹理处理单元130的纹理高速缓冲存储器135确定针对请求的纹理元素值中的每个的高速缓冲存储器命中。

在操作S1130,纹理处理单元130的纹理高速缓冲存储器135根据将针 对请求的纹理元素值的高速缓冲存储器命中的数量与纹理元素的最大数量进行比较的结果,发送与纹理元素的最大数量相应的纹理元素值。现在将参照图12对此进行详细描述。

图12是根据将高速缓冲存储器命中的数量与纹理元素的最小数量进行比较的结果,发送与纹理元素的最大数量相应的纹理元素值的操作的流程图。

在操作S1210,纹理处理单元130的纹理高速缓冲存储器135将针对请求的纹理元素值的高速缓冲存储器命中的数量与已在图8的操作S830中确定的纹理元素的最大数量进行比较。

如果高速缓冲存储器命中的数量小于已在图8的操作S830中确定的将被用于纹理过滤的纹理元素的最大数量,则在操作S1220纹理处理单元130的纹理高速缓冲存储器135向外部存储器200请求与高速缓冲存储器未命中的数量相应的纹理元素值。

在操作S1230,纹理处理单元130的纹理高速缓冲存储器135将从外部存储器200接收的至少一个纹理元素值补偿到高速缓冲存储器命中像素值,并同时将与纹理元素的最大数量相应的纹理元素值发送到纹理过滤器137。然而,应注意纹理元素值的发送不限于此,因此还可顺序地将纹理元素值发送到纹理过滤器137。

相反地,如果高速缓冲存储器命中的数量等于已在图8的操作S830中确定的将被用于纹理过滤的纹理元素的最大数量,则在操作S1240纹理处理单元130的纹理高速缓冲存储器135将与纹理元素的最大数量相应的纹理元素值发送到纹理过滤器137。

参照回图7,在操作S740,纹理处理单元130通过使用读取的纹理元素值来执行纹理过滤。使用纹理过滤产生的像素值可被发送到着色器核120。

如上所述,根据以上实施例中的一个或更多个,可通过减少处理纹理所花费的时间来减少处理图形所花费的时间。

此外,还可通过非暂时性介质(例如,非暂时性计算机可读记录介质)中/上的计算机可读代码/指令来实现其它实施例以控制至少一个处理元件实现上述任何实施例。所述非暂时性介质可相应于允许存储和/或传输计算机可读代码的任何非暂时性介质/媒介。

计算机可读代码可以以各种方式被记录/传输到介质上,其中,介质的示例包括诸如磁存储介质(例如,ROM、软盘、硬盘等)和光学记录介质(例 如,CD-ROM或DVD)的记录介质以及诸如互联网传输介质的传输介质。因此,根据一个或更多个示例性实施例,非暂时性介质可以是包括或运载信号或信息的定义的且可测量的结构,诸如运载比特流的装置。介质还可以是分布式网络,使得计算机可读代码以分布方式被存储/传输和执行。此外,处理元件可包括处理器或计算机处理器,并且处理元件可以分布和/或包括在单个装置中。

应理解,这里描述的实施例应仅被考虑为描述性意义而不是为了限制的目的。对每个实施例中的特征或方面的描述通常应被考虑为可用于其它示例性实施例中的其它相似特征或方面。

虽然该公开包括特定示例,但是本领域的普通技术人员应该清楚,在不脱离权利要求及其等同物的精神和范围的情况下,在这些示例中,可以在形式和细节上进行许多改变。这里描述的示例应仅被考虑为描述性意义而不是为了限制的目的。对每个示例中的特征或方面的描述应被考虑为可用于其它示例中的相似特征或方面。如果以不同的顺序执行描述的技术,和/或如果以不同的方式组合和/或用其它组件或它们的等同物来替代或补充在描述的系统、架构、装置或电路中的组件,则可同样得到适当的结果。因此,本公开的范围不是由详细描述限定而是由权利要求及其等同物限定,在权利要求及其等同物的范围内的所有改变应被解释为包括在本公开中。

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