CN101122997A - 图形处理系统及在图形处理系统中储存纹理图数据的方法 - Google Patents

图形处理系统及在图形处理系统中储存纹理图数据的方法 Download PDF

Info

Publication number
CN101122997A
CN101122997A CNA2007101233244A CN200710123324A CN101122997A CN 101122997 A CN101122997 A CN 101122997A CN A2007101233244 A CNA2007101233244 A CN A2007101233244A CN 200710123324 A CN200710123324 A CN 200710123324A CN 101122997 A CN101122997 A CN 101122997A
Authority
CN
China
Prior art keywords
texture
tile
texture tile
grade
mip
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
CNA2007101233244A
Other languages
English (en)
Other versions
CN100578542C (zh
Inventor
徐建明
约翰·柏拉勒斯
邵瑾
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101122997A publication Critical patent/CN101122997A/zh
Application granted granted Critical
Publication of CN100578542C publication Critical patent/CN100578542C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种图形处理系统及在图形处理系统中储存纹理图数据的方法,特别涉及用于图形数据管理的系统以及方法。本发明的一实施例包括图形处理系统,图形处理系统包括一根据以纹理片为主的格式组织纹理图数据的纹理管理单元,其中纹理贴图数据跨越至少一个mip等级。此外,图形处理系统包括一纹理快取存储器,其中纹理快取存储器耦接至纹理管理单元,且用以接收来自纹理管理单元的经重组过的纹理图数据。

Description

图形处理系统及在图形处理系统中储存纹理图数据的方法
技术领域
本发明是关于图形处理,且特别是关于图形数据管理的系统以及方法。
背景技术
如已知的背景技术,计算机图形处理系统需处理大量数据,其中包括纹理(texture)数据。纹理为具有一(u,v)坐标空间的数位影像(通常为矩形的)。纹理的最小可定址单元为纹理元素(texel),根据其位置而被指派一特定(u,v)坐标。在纹理映射(mapping)运算中,纹理被映射至图解模型的表面来呈现模型以建立目的影像。在目的影像中,纹理元素位于(x,y)坐标系统中的特定坐标处。纹理映射的目的为在物件的表面上提供实际外观。
纹理数据通常内存在系统存储器中,系统存储器为共用资源。在许多计算机系统中,其他元件可能尝试存取由图形处理系统使用的数据或利用共用的系统总线,两种情形可能会导致图形处理系统的数据存取时间增加。此外,请求来自系统存储器的数据出于其他原因可能会花费过量的时间。因此,存取系统存储器可能会对图形处理系统具有效能抑制效应。
在现代计算机图形中,纹理处理可包括许多不同类型的纹理映射技术,包括立方映射(cubic mapping)、mip映射(mipmapping),以及各种异性(anisotropic)映射。由于执行纹理处理所需的算术以及逻辑运算十分复杂以及大量,使得除了用于其他图形处理运算的电路之外,纹理处理专用电路的使用成为必要。因此,此等纹理处理专用电路可包括显着百分比的构成图形处理单元的硬件门(gate)。
纹理映射在计算与存储器存取上须需付出昂贵的代价。改良数据可存取性的一种技术为经由专用于储存纹理数据的纹理快取存储器,在数据需要进行纹理处理之前,将纹理数据自系统存储器提供给纹理快取存储器,借此提供图形系统所需的纹理数据,且减少对存取系统存储器的需要。此方式又可减少与存储器延迟(latency)相关的问题。然而,由于对纹理数据的管理以及储存并非十分有效率,所以即使使用纹理快取存储器,存储器延迟仍继续成为问题。因此,产业中存在对纹理像砖(tile)数据于存储器储存中改良的需要。
发明内容
本发明揭露的实施例提供用于以纹理片为主的格式(slice-major format)压缩并储存纹理图数据(texture map data)的系统以及方法。
本发明的一个实施例包括图形处理系统,其包括根据以纹理片为主的格式组织纹理图数据的纹理管理单元,其中纹理图数据至少跨越一个mip等级(mip level)。此外,图形处理系统还包括纹理快取存储器,其中纹理快取存储器耦接至纹理管理单元,且用以接收来自纹理管理单元的经重组的纹理图数据。
本发明的另一实施例包括在图形处理器中储存纹理图数据的方法,且所述方法可通过以下步骤大致加以概括:根据mip等级将纹理图数据的纹理片分组在一起;根据模式标志将多个纹理片排列在同一像砖中;计算关于每一mip等级的每一纹理片的参数;根据前一步骤所计算的参数计算纹理图数据内的每一纹理片的存储器地址;以及将经重组的纹理片储存在纹理快取存储器中。
本发明的又一实施例包括在图形处理器中储存纹理图数据的方法,且所述方法可通过以下步骤大致加以概括:用以纹理片为主的格式重组纹理图数据的纹理片,其中具有相同细节等级的纹理片被分组在一起;若具有相同细节等级的所有纹理片的总量小于像砖的大小,则将具有相同细节等级的纹理片储存在同一像砖内;计算关于每一纹理片的参数,其中这些参数是针对每一细节等级来计算;基根据所计算的参数计算纹理图数据内的每一纹理片的新存储器地址;以及将经重组的纹理片以及新存储器地址储存在纹理快取存储器中。
在检查以下图式以及实施方式时,本发明的其他系统、方法、特征以及益处将对于本领域技术人员为显而易见的或变得显而易见。所有此等额外系统、方法、特征以及益处是意图被包括在此描述内,在本发明的范畴内,且通过随附权利要求书加以保护。
附图说明
图1为多图形处理器系统的实施例的方块图。
图2说明计算机图形系统内的纹理数据管理的某些基本元件。
图3为说明例示性L2快取存储器组织格式的方块图。
图4说明例示性32位纹理像砖。
图5描绘用于执行像砖纹理数据的以纹理片为主的压缩方法的实施例的流程图。
图6A说明用于图5中的实施例的模式0。
图6B说明用于图5中的实施例的模式1。
图7描绘用以纹理片为主的格式将体积纹理贴图储存在纹理快取存储器内的实施例。
图8描绘用于执行像砖纹理数据的以纹理片为主的压缩方法的另一实施例的流程图。
具体实施方式
在概括了本发明的各种观点之后,现将详细参看如图式中所说明的本发明的描述。虽然将结合此等图式来描述本发明,但是不意欲将本发明限制于本文所揭露之一或多个实施例。而是意欲涵盖包括在由随附申请专利范围界定的本发明的精神以及范畴内的所有替代、修改以及均等物。
本发明所揭露的系统以及方法可用于有效地管理并组织纹理数据,以使(例如)纹理过滤器处理时所需的任何纹理数据在图形处理系统中可易于撷取。通常,自系统存储器接收众多不同格式以及大小的纹理数据,若未虑及此数据的大小或组成方式可能会导致纹理快取存储器资源的使用上较无效率。此种无效率的导因之一为在撷取纹理数据时存在过多延迟。可理解地,撷取纹理像砖数据(texture tiling data)的延迟导致在处理此数据中的延迟。因此存在更有效率地储存纹理像砖数据的系统以及方法的需要,以达到在计算机图形环境中快速处理图形数据。
因此,本发明揭露根据以纹理片为主的格式压缩并储存纹理图数据的系统以及方法。mip贴图(mipmap)通常是指伴随主要纹理的影像的预定聚集。此等影像的预定聚集仅为主要纹理较低解析度的复本。当自一距离观察特定物件以致物件以及周围纹理变得更小时,mip贴图为有用的。当观察物件的较小版本时,可基于解析度等级来切换至一适合的mip贴图影像,以呈现适合等级的纹理解析度。与即时计算相比,由于仅需简单地查找预定影像,所以使用mip贴图减少了再现物件所需的时间。
mip贴图链内的每一mip等级皆被指派一细节等级(level ofdetail,LOD)值,以指示解析度等级。LOD值越高,影像越小且解析度越低。意即,随着物件距离观察者越来越远,物件的复杂度随之(例如在纹理中)变小。出于本发明所使用的命名法的目的,术语“细节等级”以及术语“mip等级”之间可互换地使用。对于给定显示,可能必须储存多个表面。此等表面的每一者以连续方式加以储存。此外,此等表面的纹理图数据可以若干方法加以储存。举一非限制性实例,可根据“以mip为主”的格式储存纹理数据。亦即,纹理数据的纹理片的组织方式是将每一mip等级的第一个纹理片(例如,纹理片0)储存在一起。因此,mip等级1的纹理片0、mip等级2的纹理片0、mip等级3的纹理片0等皆以连续方式储存在一起。此过程延续至所有mip等级的下一纹理片(例如纹理片1),等等。或者,可根据mip等级或用“以纹理片为主”的格式储存纹理数据。因此,mip等级1的纹理片0、mip等级1的纹理片1、mip等级1的纹理片2等皆储存在一起。意即,具有相同mip等级的所有纹理片皆以连续的方式储存在一起。此过程延续至下一最高mip等级的所有纹理片,等等。
通常纹理图数据是根据以mip为主的格式来储存。本发明的实施例集中在用“以纹理片为主”的格式储存纹理数据的方法上。如本文进一步描述,本发明的实施例通过将数据“挤压”或压缩在一起,以使得较小的纹理片不占据纹理快取存储器内的整个纹理像砖,进而增加了撷取纹理数据的效率,借此避免浪费存储器空间。
通常,纹理片是指用于再现3D物件的2D影像。纹理元素(texel)为影像中的2D点,且为用于图形处理的纹理空间的基础构建块(building block)。纹理元素通常通过两个坐标(u以及v)来定址。纹理通常通过纹理元素的阵列来表示。在纹理映射过程中,会进行纹理寻找以找出每一纹理元素中心落在纹理上的何处。因为纹理化表面相对于观察者可能在任意距离以及方位处,所以一像素通常不直接对应于一纹理元素,必须应用某种过滤形式来确定像素的最佳色彩,然而无效或不正确的过滤将呈现出如加工过的影像。
通常,在讨论体积(volume)纹理映射机制时,若干属性为常见的。首先,当再现体积纹理时,通常在逐片的基础上各别地再现每一纹理片。当读取一体积纹理时,通常以随机方式执行关于纹理表面的移动方向。当指定纹理样本时,将三个坐标指派给3D(三维)纹理(亦即,体积纹理)。坐标在三个维度的每一者中的改变在机率上通常相等。因此,物件移动穿过一给定纹理片的机率通常与物件在同一纹理片内移动的机率相同。作为说明,假设一3D纹理通过(u,v,r)坐标空间来界定,u以及v方向上的改变会导致需在给定纹理片内作采样,而r方向上的改变会导致需横跨多个纹理片作采样。因此,将处于相同mip等级的邻接的纹理片彼此尽可能紧密地储存在快取存储器内为较佳的作法,以便允许更有效的数据撷取。理想地,此等邻接纹理片会储存在纹理快取存储器内的同一快取页(page)中,且甚至在同一快取线(line)内。通常,特定纹理表面的不同视图将涵盖某数量的纹理片以及mip等级。因此,一视图的产生可通过包括跨越某数目的mip等级的纹理片的再现目标阵列来建立。作为非限制性实例,某一视图可能包括纹理片0至纹理片5以及mip等级1至3。因此,此视图涵盖在六个纹理片且跨越三个不同的mip等级。为帮助确保可通过某整数的纹理片以及某整数的mip等级截取特定视图,纹理数据会储存为2D(二维)mip贴图的阵列。此外,纹理数据会整理为根据mip等级将纹理片分组在一起且加以储存。因此,处于某一给定mip等级的所有纹理片会储存在一起,且处于下一较低mip等级的所有纹理片也会被分组并储存在一起。以此方式,用“以纹理片为主”的格式储存纹理片。虽然三个维度(x,y,z)上所包括的纹理片以及所跨越的mip等级的数目为任意,但是经mip映射的体积纹理通常为2维的某次幂(power)。作为实例,体积纹理图可能为2048×2048×2048,或211×211×211像素。本文所描述的某些实施例的至少一个益处为纹理数据根据以上所论述的特性可受到较佳的管理以及储存。
现参看图1,其说明计算机系统100的简化方块图。计算机系统100包括CPU102、系统存储器104以及图形处理系统110。CPU102可执行各种功能,包括确定可产生图形显示的信息(诸如观察点位置)。系统存储器104储存各种数据,包括诸如纹理数据106之类的图形显示数据。基于CPU102所确定的信息以及在系统存储器104中所储存的数据,图形处理系统110产生用于显示装置130(诸如,监视器)的显示数据。纹理映射用于对物件添加纹理。图形处理系统110再现3D物件的纹理片,纹理片基本上经“堆叠”起来以形成物件。一旦建立了3D纹理,便将纹理添加至物件以形成影像,借此使物件得以纹理化。
CPU102经由系统接口108向图形处理系统110提出请求,包括处理并显示图形信息的请求。来自CPU102的图形请求由图形处理系统110接收并提供给前端(front end)处理器112,前端处理器112产生含有像素坐标的像素流。
前端处理器112产生的关于像素坐标的信息经由纹理数据管理单元114以及纹理快取存储器系统116提供至纹理过滤器118。纹理数据管理单元114自前端处理器112接收信息,且在将数据发送至纹理快取存储器系统116以在储存之前组织数据。
纹理过滤器118随后通过执行(例如)双线性过滤、三线性过滤或其组合来过滤信息且产生每一像素的纹理数据。除已知纹理过滤器元件(诸如线性内插器以及累加器)之外,纹理过滤器118亦包括可程序化表过滤器(table filter)以结合其他纹理过滤器元件来提供特定过滤操作。纹理数据为发送至帧缓冲器120的最终色彩数据的分量,其用于在显示装置130上产生显示影像。
纹理快取存储器系统116可包括多个快取存储器,包括(例如)等级1(L1)快取存储器以及等级2(L2)快取存储器。纹理信息是以个别纹理元素而加以储存,纹理元素在图形处理期间用于界定在像素坐标处显示的色彩数据。纹理数据自系统存储器104流至纹理数据管理单元114,且随后流至纹理快取存储器系统116,再流至纹理过滤器118。应注意对于某些实施例,纹理数据管理单元114可整合在纹理快取存储器系统116中。
现参看图2,其说明计算机图形系统内的纹理数据管理单元的某些基本元件。应注意出于简要的目的省略了对于描述纹理数据管理单元非必要的某些元件。计算机图形系统210包括用以接收纹理数据106的纹理数据管理单元212,数据在转发至纹理快取存储器系统116之前经压缩并重组。对于某些实施例,纹理数据管理单元212包括纹理数据格式器218、参数计算逻辑模块220,以及地址计算逻辑模块214。
简要参看图3,其为一实施例的L2快取存储器组织格式的方块图。如以上所述,纹理快取存储器系统116可包括多个快取存储器,包括(例如)L1快取存储器以及L2快取存储器。L2快取存储器310可包括多个L2页315,每一页315可分为多个L2数据线320,每一L2数据线320进一步分为偶数区块340以及奇数区块330。偶数区块340用于处理来自偶数管线或快取线的纹理数据,而奇数区块330用于处理来自奇数管线或快取线的纹理数据。在区块330、340中的每一者内,L2再分割为存储库(bank)350。尽管所揭示为每一区块包括两个存储库,但本领域技术人员应了解快取存储器可包括更多或更少的存储库。应注意尽管所示的L2数据线320包括2个区块、4个存储库以及8个页,但本领域技术人员应了解与给定实例具有不同架构的区块、存储库、页以及通道的快取存储器仍在本揭露内容的范畴内。此外,L2快取存储器310可包括多个L2数据线320,包括(例如)64个、128个、256个,或512个。此外,每一L2数据线320可具有变化的宽度,包括(例如)128个、256个、512个、1024个或2048个位的宽度。
现参看图4,其为一实施例的32BPP(位/像素)的纹理像砖(以下简称像砖)。图4中的每一页360进一步被分为多个像砖。以实例说明的,图4中展示的每一像砖420为16kB,每一像砖420进一步再被分为复数个通道。在所展示的实例中,像砖420包括8×8的通道排列,共64个通道,编号为Ch0至Ch63。最后,每一通道430进一步再被分为个别纹理元素。在所展示的实例中,每一通道430包括总共64个纹理元素的8×8的纹理元素排列。对于本文所揭露的实施例而言,纹理图数据内的纹理片储存在像砖420内。
再参看图2,纹理数据格式器218接收纹理数据106且以有利于对数据将来撷取更有效的方法来组织纹理。纹理数据格式器218排列纹理数据内的纹理片,以使处于相同mip等级的纹理片分组在一起。纹理片根据渐增的mip等级(亦即,渐减的解析度等级)加以排列。以此方法,纹理片根据“以纹理片为主”的格式加以排列。此外,以此方式将纹理数据的纹理片“挤压”或压缩在像砖内,以使得小于像砖大小的个别纹理片不占据个别像砖且留下未使用的存储器空间。因此,若一给定mip等级的所有纹理片可容纳至单一像砖,则仅将一像砖用来储存被压缩的该mip等级的所有纹理片。
若用以纹理片为主的格式重组纹理数据且将其压缩在一起,便可通过参数计算逻辑模块220确定与每一mip等级内的每一纹理片相关的参数。此等参数稍后用于确定经重组排列的纹理数据内的每个纹理片的地址,以使得信息在将来可自纹理快取存储器撷取。参数计算逻辑模块220对所有mip等级计算以下参数的每一者:所有纹理片大小、纹理宽度、纹理高度、纹理片索引数(index,N)、第一个纹理片(亦即,纹理片0)的x以及y偏移,以及x跨步值(stride value)。所有纹理片大小的值为储存具有相同细节等级的所有纹理片所需的像砖的数目。在某一给定mip等级的所有纹理片可被“挤压”或压缩至单一像砖的情况下,将所有纹理片大小值设定为零以便指示此种组态。一旦所有参数的值计算完毕后,便将值传发至地址计算逻辑模块214。地址计算逻辑模块214接收这些值并计算包括纹理数据的所有纹理片的地址,以使得此数据在将来可自纹理快取存储器系统116提取。
地址计算逻辑模块214计算以下参数:剩余纹理片的x以及y偏移、每一mip等级的每一纹理片的(x,y)坐标,以及储存纹理图数据内的所有纹理片所需的像砖的总数目。一旦已重排所有纹理数据且已确定新地址信息,便準备储存纹理数据。与每一mip等级相关的新(x,y)坐标以及像砖的总数目会被传发至纹理快取存储器系统116。纹理数据管理单元114耦接至纹理快取存储器系统116。应了解储存在纹理快取存储器中的纹理数据现需用以纹理片为主的格式压缩并组织,以便减少存取时间以及最终地减少存储器延迟。
此外,由于纹理数据在存储器中的有效储存,撷取数据所需的计算资源量得以减少。亦应了解因为纹理片与适当的存储器地址对准,所以撷取数据所需的地址计算逻辑模块得以简化。最终,本发明揭露一种替代体积纹理贴图格式,其可使用由本领域技术人员已知的用于体积纹理贴图的相同参数加以实施。此替代纹理贴图格式的格式是基于以纹理片为主的格式的。
图5描绘用于执行纹理像砖数据的以纹理片为主的压缩方法的实施例的流程图。在以下步骤中,可确定各种参数,所述参数随后用于计算根据某些实施例用以纹理片为主的拼贴(tiling)格式储存的每一纹理片的地址。以此方法可有效地储存纹理片,以便提供较有效率的数据存取。某些实施例中最大体积纹理大小可设定为尺寸2k×2k×2k。对于某些实施例,可通过将mip等级的最大数目设定为一预定数目(诸如12)来进一步简化地址计算。对于以下参数是针对每一mip等级来计算参数。出于本文所使用的命名法的目的,索引数N是用来指示纹理片的数目。此外,索引数d是用来指示mip等级。作为非限制性实例,Slice[0][d]是指处于mip等级d的纹理片[0]。
像砖的宽度以及高度是以像素来量测,且按照BPP(bit perpixel,每像素的位)来量测解析度。出于本文所使用的命名法的目的,术语BPP可与术语BPE(bit per element,每元素的位)互换地使用。每一BPP值将具有对应的像砖宽度以及像砖高度。作为非限制性实例,32的BPP值(位/像素)对应于六十四个像素的像砖宽度(TileWidth)以及六十四个像素的像砖高度(TileHeight)。以下表1说明对于各种BPP值的不同像砖宽度以及高度:
表1对于各种BPE值的TileWidth以及TileHeight值
  BPE   TileWidth   eTW   TileHeight   eTH
  128   32   5   32   5
  64   64   6   32   5
  32   64   6   64   6
  16   128   7   64   6
  8   128   7   128   7
  4   256   8   128   7
  1   512   9   256   8
表1中的参数eTW对应于表示TileWidth所需的位数。举例而言,需要5位以储存TileWidth值32。同样,参数eTH对应于表示TileHeight所需的位数。如以下进一步论述,参数eTW以及eTH用于逐位运算(bit-wise operation)。应注意对于本文所揭露的实施例,BPE值将为特定的。基于此值,便可知道对应的像砖宽度以及高度。
方法开始于步骤510,根据mip等级将纹理图内的纹理片分组。接着,在步骤520中,根据模式标志将多个纹理片排列在同一像砖中。在步骤530中,针对每一mip等级计算关于每一纹理片的参数:所有纹理片大小(以像砖数目表示)、纹理宽度、纹理高度,以及纹理片索引数。纹理片大小的值为零表示所有纹理片的大小是小于像砖的大小。在此情况下,像砖纹理数据的储存可进一步“挤压”或压缩至单一像砖中,使纹理片不单独地占据整个像砖,且也不留下未使用的存储器空间,所以此处理为较佳的。若某一mip等级的所有纹理片的总和大于一个像砖,则将彼等纹理片与像砖对准,且计算储存此等纹理片所需的像砖的数目。否则,若确定所有纹理片的总和小于一个像砖,则纹理宽度以及高度值与二的幂数(power)对准,且将所有纹理片大小的值设定为零,以指示可将多个纹理片储存或“挤压”于单一像砖中。以上参数会针对每一mip等级来计算,mip等级的数目将视体积纹理贴图的尺寸而定。作为非限制性实例,假设将体积纹理大小设定为2k×2k×2k的尺寸,则会针对d=0至11,共12个mip等级,计算以上所描述的参数。
随后计算以下参数:slice[0](亦即,每一mip等级的第一个纹理片)的x偏移、slice[0]的y偏移,以及x跨步值。应注意此等参数的值将视选择何种模式而定。在图5的实施例中,两种主要模式可用于执行纹理像砖数据的以纹理片为主的储存,如通过模式标志所指示。在第一模式(亦即,模式=0)中,每一mip等级d的第一个纹理片(亦即,slice[0])未与零对准。意即,每一mip等级的slice[0]未与储存纹理片的像砖的最左边界对准。在第二模式(亦即,模式=1)中,每一mip等级d的第一个纹理片(亦即,slice[0])与零对准。意即,每一mip等级的slice[0]与储存纹理片的像砖的最左边界对准。简要地参看图6A以及6B,其说明用于图5中的实施例的两种模式。在图6A中所展示,像砖片610内每一mip等级的第一个纹理片(亦即,slice[0])未与像砖610的最左边界对准。此情形对应于模式0。相反,图6B展示每一mip等级的第一个纹理片与像砖620的最左边界对准。此情形对应于模式1。应了解可视再现物件所需的纹理片以及mip等级的数目而使用更多或更少的纹理片。
再参看图5,x跨步值是视何模式(模式0或模式1)当前正用于纹理像砖数据的以纹理片为主的储存而计算。若利用模式0,则基于以下关系式使用x偏移(通过XoffsetMipSlice[0][d]表示)以及像砖宽度、eTW来计算x跨步(通过以下XStrideMip[d]表示)的值:
XStrideMip[d]=(1<<eTW)-XOffsetMipSlice[0][d];模式0
运算子“<<”表示逐位左移运算。若利用模式1(亦即,其中每一mip等级的slice[0]与像砖的最左边界对准),则值XStrideMip[d]仅等于像砖宽度(TileWidth)的值(见于以上表1中)。
参数XOffsetMipSlice[0][d]表示某一mip等级d的第一个纹理片(亦即slice[0])在X方向上的偏移。此外,值YOffsetMipSlice[0][d]表示某一mip等级d的slice[0]在Y方向上的偏移。在使用每一mip等级的slice[0](第一个纹理片)与像素砖的最左边界对准的模式1的情况下,x偏移的值被设定为零;否则,使用先前所计算的x跨步值来计算x偏移的值。此外,若x偏移的值不是二的幂数个纹理像素,则将值四舍五入至最接近二的幂数值。对于x偏移的值,随后基于以下关系式计算XOffsetMipSlice[0][d]:
对于模式1,XOffsetMipSlice[0][d]=0
对于模式0,XOffsetMipSlice[0][d]=
XOffsetMipSlice[0][d]-1+(N[d-1]<<ew[d-1])&((1<<eXStrideMip[d]-1)-1)
亦考虑对准模式是模式0或是模式1来计算值YOffsetMipSlice[d]。若利用模式1,则通过以下关系式来确定值YOffsetMipSlice[d]:
对于模式1,YOffsetMipSlice[0][d]=
YOffsetMipSlice[0][d-1]+(((N[d-1]<<ew[d-1])+(1<<eTW)-1)>>eTW)<<eh[d-1]
对于模式0,YOffsetMipSlice[0][d]=
YOffsetMipSlice[0][d]=YOffsetMipSlice[0][d-1]+(n[d-1]<<(ew[d-1]+eh[d-1]-eXStrideMip[d-1]))
在步骤540中,基于以上所计算的参数来计算纹理图内的每一纹理片的存储器地址。随后针对x与y方向计算某一mip等级的每一纹理片N的偏移。如以上所论述的,参数XOffsetMipSlice[N]指示某一mip等级的纹理片N在X方向上的偏移。此外,值YOffsetMip Slice[N]为某一mip等级的纹理片N在Y方向上的偏移。此等偏移用于计算每一纹理片的新(x,y)坐标。使每一mip等级的slice[0]在x与y方向上的偏移与存储器地址零或为二的幂数的地址对准。对于x方向上的偏移为零的实施例,(每一mip等级的)slice[0]将总是与像砖的左边界对准。此外,x跨步值将等于像砖宽度TileWidth。最终,应注意若多个纹理片的大小小于一个像砖,则将彼等纹理片“挤压”或压缩于单一像砖中,以使得个别纹理片各自不会占据整个像砖。用以纹理片为主的方式执行压缩,其中将具有相同mip等级值的纹理片分组在一起。最终,在步骤550中,将经重排的纹理片储存在纹理快取存储器中以用于将来的撷取。
参看图6A,其说明用于计算处于不同mip等级的每一纹理片的地址的不同参数。每一mip等级的slice[0]的偏移可与零对准或与为二的幂数的地址值对准。具体言之,可指示两种不同模式以用于储存的目的。模式0可用于指示每一mip等级的slice[0]未与零对准(亦即,未与像砖的最左边界对准)。
现参看图7,其描绘用于将体积纹理贴图用以纹理片为主的格式储存在纹理快取存储器内的实施例。如所展示的,用以纹理片为主的格式储存纹理片,其中处于相同mip等级的纹理片以连续的方式储存在一起。亦应了解将纹理片“挤压”或压缩在一起,以致小于一像砖的个别纹理片不会占据整个像砖,从而留下浪费的存储器空间。如图6中所描绘的,纹理片亦储存在纹理快取存储器内的连续页面(页面N至页面(N+2))中。如较早所论述的,在存储器中将处于相同mip等级的纹理片紧密地储存在一起通常为有益的,纹理片最好可储存在同一快取页面中且甚至储存在同一快取线内(若可能),如此可加快数据存取且最终导致存储器延迟的减少。
图8描绘用于执行像砖纹理数据的以纹理片为主的压缩方法的另一实施例的流程图。方法开始于步骤810,将纹理图数据内的纹理片根据以纹理片为主的格式重排。接着,在步骤820中,若具有相同细节等级的所有纹理片的大小总和小于一像砖大小,则将具有相同细节等级的纹理片储存在一像砖内。在步骤830中,计算关于每一纹理片的参数。随后在步骤840中根据步骤830中所计算的参数计算纹理图数据内的每一纹理片的新存储器地址。最终,在步骤850中,将经重排的纹理片连同新的存储器地址储存在纹理快取存储器中。
如本领域技术人员所能了解的,流程图中的任何处理描述或步骤应理解为表示包括实施特定逻辑功能之一或多个可执行指令的逻辑、程序码的片段或部分,且替代实施例包括在本发明的较佳实施例的范畴内,其中可视所包括的功能性而以不同于所展示或所论述的次序执行功能(包括实质上同时或逆序执行)。
此外,应强调以上所描述的实施例仅为可能实施例的实例。在不背离本发明的原则的情况下可对以上所描述的实施例进行许多变化以及修改。所有此等修改以及变化在本文中意欲包括在本发明的范畴内且通过权利要求书保护。
举例而言,基于本发明所提供的描述,本领域技术人员应了解实施例包括图形处理单元,图形处理单元包括纹理管理单元,纹理管理单元用以根据以纹理片为主的格式来组织纹理图数据,其中纹理图数据跨越至少一个mip等级。此外,图形处理系统包括纹理快取存储器,其中纹理快取存储器耦接至纹理管理单元,并用以接收来自纹理管理单元的经重组的纹理图数据。
在某些实施例中,图形处理单元更包括纹理数据格式器,其根据以纹理片为主的格式排列纹理图数据内的纹理片;参数计算逻辑模块,其用以针对纹理图数据内的每一纹理片计算参数;以及地址计算逻辑模块,其用以使用所计算的参数来确定纹理图数据内的每一纹理片的快取存储器地址。
在其他实施例中,纹理数据格式器进一步可用以在纹理片小于一像砖的情况下将多个纹理片储存在同一像砖内。在其他实施例中,纹理数据格式器可根据模式0或模式1排列纹理图数据内的纹理片,其中模式0指示每一mip等级的第一个纹理片与储存纹理片的像砖的最左边界对准,且其中模式1指示每一mip等级的第一个纹理片不与储存纹理片的像砖的最左边界对准。
在其他实施例中,参数包括以像砖数目来表示的纹理片大小、纹理宽度、纹理高度,以及每一纹理片的纹理片索引数。对于某些实施例,参数更包括纹理片0的x偏移,其指示每一mip等级的第一个纹理片在x方向上的地址偏移;纹理片0的y偏移,其指示每一mip等级的第一个纹理片在y方向上的偏移;以及x跨步值,其指示每一mip等级的纹理片的每一集合的总宽度。对于某些实施例而言,是针对每个mip等级计算参数。对于某些实施例,若模式为1,则将第一个纹理片的x偏移设定为0。对于某些实施例,若模式为0,则将第一个纹理片的x偏移四舍五入为二的幂数。对于某些实施例,纹理图数据内的每一纹理片的快取存储器地址包括新值x,其指示每一纹理片的x坐标;新值y,其指示每一纹理片的y坐标;以及像砖索引数,其指示储存纹理图数据内的所有纹理片所需像砖的总数目。
根据本发明的其他实施例,提供用于在图形处理器中储存纹理图数据的方法,且方法可通过以下步骤大致加以概括:根据mip等级将纹理图数据的纹理片分组在一起;根据模式标志将多个纹理片排列在同一像砖中;计算关于每一mip等级的每一纹理片的参数;根据所计算的参数计算纹理图数据内的每一纹理片的存储器地址;以及将经重排的纹理片储存在纹理快取存储器中。
在某些实施例中,排列纹理片更包括在模式标志设定为1的情况下,沿储存纹理片的像砖的最左边界对准每一mip等级的第一纹理片。对于某些实施例中,排列纹理片的方式更包括在模式标志设定为0的情况下,沿下一较低mip等级中的最后纹理片的最右边界对准每一mip等级的第一个纹理片。在某实施例中,计算参数包括计算纹理宽度;计算纹理高度;计算每一像砖的纹理片大小;计算每一纹理片的纹理片索引数;计算纹理片0的x偏移,其指示每一mip等级的第一个纹理片在x方向上的地址偏移;计算纹理片0的y偏移,其指示每一mip等级的第一个纹理片在y方向上的地址偏移;以及计算x跨步值,其指示每一mip等级的纹理片的每一集合的总宽度。对于某些实施例,计算纹理图数据内的每一纹理片的存储器地址包括计算新值x,其指示每一纹理片的x坐标;计算新值y,其指示每一纹理片的y坐标;以及计算像砖指数,其指示储存纹理图数据内的所有纹理片所需的像砖的总数目。
根据本发明的其他实施例,提供用于在图形处理器中储存纹理图数据的方法,且方法可通过以下步骤大致加以概括:用以纹理片为主的格式重排纹理图数据的纹理片,其中具有相同细节等级的纹理片得以分组在一起;若具有相同细节等级的所有纹理片的总和小于一像砖的大小,则将具有相同细节等级的纹理片储存在一像砖内;针对每一细节等级计算关于每一纹理片的参数;根据所计算的参数计算纹理图数据内的每一纹理片的新存储器地址;以及将经重排的纹理片以及新存储器地址储存在纹理快取存储器中。
对于某些实施例,计算关于每一纹理片的参数包括计算储存具有相同细节等级的所有纹理片所需像砖的数目;计算纹理的尺寸;计算每一纹理片的纹理片索引数;计算纹理片0的x偏移,其指示每一细节等级的第一个纹理片在x方向上的地址偏移;计算纹理片0的y偏移,其指示每一细节等级的第一个纹理片在y方向上的地址偏移;以及计算x跨步值,其指示每一细节等级的纹理片的每一集合的总宽度。对于某些实施例,将具有相同细节等级的纹理片储存在一像砖内更包括沿像砖的最右边界对准每一细节等级的第一个纹理片。对于某些实施例,将具有相同细节等级的纹理片储存在一像砖内更包括:对准每一细节等级的第一个纹理片紧跟在下一较低细节等级的最后纹理片之后。对于某些实施例,计算新存储器地址包括计算每一mip等级的每一经重排纹理片的(x,y)坐标,以及计算储存纹理图数据内的所有纹理片所需的像砖的总数目。
附图中符号的简单说明如下:
100:计算机系统
102:CPU
104:系统存储器
106:纹理数据
108:系统接口
110:图形处理系统
112:前端处理器
114:纹理数据管理单元
116:纹理快取存储器系统
118:纹理过滤器
120:帧缓冲器
130:显示装置
210:计算机图形系统
212:纹理数据管理单元

Claims (13)

1.一种图形处理系统,其特征在于,其包括:
纹理管理单元,用以根据以纹理片为主的格式组织纹理图数据,其中所述纹理图数据跨越至少一个mip等级;以及
纹理快取存储器,其中所述纹理快取存储器耦接至所述纹理管理单元,且用以接收来自所述纹理管理单元的所述经组织后的纹理图数据。
2.根据权利要求1所述的图形处理系统,其特征在于,所述纹理管理单元更包括:
纹理数据格式器,用以根据以纹理片为主的格式排列所述纹理图数据内的纹理片;
参数计算逻辑模块,用以计算所述纹理图数据内的每一纹理片的参数;以及
地址计算逻辑模块,用以使用所述的参数来计算所述纹理图数据内的每一纹理片的快取存储器地址;
其中所述纹理数据格式器进一步用以在所述纹理片小于一像砖的情况下将多个纹理片储存在所述像砖内。
3.根据权利要求2所述的图形处理系统,其特征在于,所述纹理数据格式器根据一模式0或一模式1排列所述纹理图数据内的纹理片,
其中所述模式0表示所述每一mip等级的第一个纹理片与储存所述纹理片的所述像砖的最左边界对准;且
其中所述模式1表示所述每一mip等级的所述第一个纹理片未与储存所述纹理片的所述像砖的所述最左边界对准。
4.根据权利要求2所述的图形处理系统,其特征在于,所述参数包括:
以所述像砖的数目而计算的纹理片大小;
纹理宽度;
纹理高度;
所述每一纹理片的纹理片索引数;
纹理片0的x偏移,其指示所述每一mip等级的第一个纹理片在x方向上的地址偏移;
纹理片0的y偏移,其指示所述每一mip等级的所述第一个纹理片在y方向上的地址偏移;以及
x跨步值,其指示所述每一mip等级的纹理片的每一集合的总宽度;
其中所述参数是针对所述每个mip等级而加以计算。
5.根据权利要求2所述的图形处理系统,其特征在于,所述纹理图数据内的每一纹理片的所述快取存储器地址包括:
新值x,其指示所述每一纹理片的x坐标;
新值y,其指示所述每一纹理片的y坐标;以及
像砖索引数,其指示储存所述纹理贴图数据内的所有所述纹理片所需的像砖的总数目。
6.一种在图形处理器中储存纹理图数据的方法,其特征在于,其包括:
根据mip等级将纹理图数据的纹理片分组在一起;
根据模式标志将多个所述纹理片排列在同一像砖中;
针对每一mip等级计算所述每一纹理片的参数;
根据所述参数计算所述纹理图数据内的每一纹理片的存储器地址;以及
将所述经排列后的纹理片储存在一纹理快取存储器中。
7.根据权利要求6所述的在图形处理器中储存纹理图数据的方法,其特征在于,排列纹理片更包括在所述模式标志设定为1的情况下,沿储存所述纹理片的所述像砖的最左边界对准每一mip等级的第一纹理片;在所述模式标志设定为0的情况下,沿下一较低mip等级中的最后纹理片的最右边界对准每一mip等级的第一个纹理片。
8.根据权利要求6所述的在图形处理器中储存纹理图数据的方法,其特征在于,计算参数包括:
计算纹理宽度;
计算纹理高度;
计算以像砖的数目表示的纹理片大小;
计算每一纹理片的纹理片索引数;
计算纹理片0的x偏移,其指示每一mip等级的第一个纹理片在x方向上的地址偏移;
计算纹理片0的y偏移,其指示每一mip等级的所述第一个纹理片在y方向上的地址偏移;以及
计算x跨步值,其指示每一mip等级的纹理片的每一集合的总宽度。
9.根据权利要求6所述的在图形处理器中储存纹理图数据的方法,其特征在于,计算所述纹理图数据内的每一纹理片的存储器地址包括:
计算新值x,其指示每一纹理片的x坐标;
计算新值y,其指示每一纹理片的y坐标;以及
计算像砖索引数,其指示储存所述纹理图数据内的所有所述纹理片所需的像砖的总数目。
10.一种在图形处理器中储存纹理贴图数据的方法,其特征在于,其包括:
根据以纹理片为主的格式排列纹理图数据内的纹理片,其中具有相同细节等级的纹理片被分组在一起;
若具有所述相同细节等级的所有所述纹理片的总和小于一像砖的大小,则将具有所述相同细节等级的所述纹理片储存在所述像砖内;
计算关于每一纹理片的参数,其中所述参数是针对每一细节等级来计算;
根据所述参数计算所述纹理图数据内的每一纹理片的新存储器地址;以及
将所述经排列的纹理片以及新存储器地址储存在纹理快取存储器中。
11.根据权利要求10所述的在图形处理器中储存纹理贴图数据的方法,其特征在于,计算关于每一纹理片的参数包括:
计算储存具有所述相同细节等级的所有纹理片所需的像砖的数目;
计算所述纹理图数据的尺寸;
计算每一纹理片的纹理片索引数;
计算纹理片0的x偏移,其指示每一细节等级的第一个纹理片在x方向上的地址偏移;
计算纹理片0的y偏移,其指示每一细节等级的所述第一个纹理片在y方向上的地址偏移;以及
计算x跨步值,其指示每一细节等级的纹理片的每一集合的总宽度。
12.根据权利要求10所述的在图形处理器中储存纹理贴图数据的方法,其特征在于,将具有所述相同细节等级的所述纹理片储存在所述像砖内更包括下列方式其中之一:
沿所述像砖的最右边界对准每一细节等级的第一个纹理片;以及
对准每一细节等级的第一个纹理片紧跟在下一较低细节等级的最后纹理片之后。
13.根据权利要求10所述的在图形处理器中储存纹理贴图数据的方法,其特征在于,计算新存储器地址包括:
计算每一mip等级的每一经排列的纹理片的x、y坐标;以及
计算储存所述纹理图数据内的所有所述纹理片所需的像砖的总数目。
CN200710123324A 2006-06-20 2007-06-20 图形处理系统及在图形处理系统中储存纹理图数据的方法 Active CN100578542C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81505306P 2006-06-20 2006-06-20
US60/815,053 2006-06-20

Publications (2)

Publication Number Publication Date
CN101122997A true CN101122997A (zh) 2008-02-13
CN100578542C CN100578542C (zh) 2010-01-06

Family

ID=39022707

Family Applications (3)

Application Number Title Priority Date Filing Date
CNA2007101120142A Pending CN101145239A (zh) 2006-06-20 2007-06-19 绘图处理单元及处理边框颜色信息的方法
CN200710123324A Active CN100578542C (zh) 2006-06-20 2007-06-20 图形处理系统及在图形处理系统中储存纹理图数据的方法
CN2007101233278A Active CN101114376B (zh) 2006-06-20 2007-06-20 减少存储库碰撞的方法及处理图形的计算机系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2007101120142A Pending CN101145239A (zh) 2006-06-20 2007-06-19 绘图处理单元及处理边框颜色信息的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007101233278A Active CN101114376B (zh) 2006-06-20 2007-06-20 减少存储库碰撞的方法及处理图形的计算机系统

Country Status (2)

Country Link
CN (3) CN101145239A (zh)
TW (3) TWI341976B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426259A (zh) * 2014-09-16 2016-03-23 辉达公司 用于传递api中的依赖关系的技术
WO2017067416A1 (zh) * 2015-10-22 2017-04-27 阿里巴巴集团控股有限公司 一种在纹理内存中存储图像的方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8368701B2 (en) * 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment
TWI474280B (zh) * 2010-04-21 2015-02-21 Via Tech Inc 增進繪圖處理單元之總處理量的方法與系統
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
CN112381715B (zh) * 2020-11-16 2024-04-09 航天科工(北京)空间信息应用股份有限公司 海量遥感影像并行生成地图瓦片的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765182A (en) * 1995-04-13 1998-06-09 Lsi Logic Corporation Interleaving memory on separate boards
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
AU5686199A (en) * 1998-08-20 2000-03-14 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6300953B1 (en) * 1998-10-15 2001-10-09 Nvidia Apparatus and method for grouping texture cache requests
US6266733B1 (en) * 1998-11-12 2001-07-24 Terarecon, Inc Two-level mini-block storage system for volume data sets
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
US6650333B1 (en) * 1999-06-09 2003-11-18 3Dlabs Inc., Ltd. Multi-pool texture memory management
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
WO2003065308A2 (en) * 2002-02-01 2003-08-07 Koninklijke Philips Electronics N.V. Stepless 3d texture mapping in computer graphics
TWI249144B (en) * 2003-02-21 2006-02-11 Via Tech Inc Single level MIP filtering algorithm for anisotropic texturing
US7053904B1 (en) * 2003-12-15 2006-05-30 Nvidia Corporation Position conflict detection and avoidance in a programmable graphics processor
CN1273940C (zh) * 2004-04-12 2006-09-06 浙江大学 一种分级层次化组装式深度拼图集的快速绘制森林方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426259A (zh) * 2014-09-16 2016-03-23 辉达公司 用于传递api中的依赖关系的技术
CN105426259B (zh) * 2014-09-16 2019-08-06 辉达公司 用于传递api中的依赖关系的方法和介质
WO2017067416A1 (zh) * 2015-10-22 2017-04-27 阿里巴巴集团控股有限公司 一种在纹理内存中存储图像的方法及装置
US10719908B2 (en) 2015-10-22 2020-07-21 Alibaba Group Holding Limited Method and apparatus for storing image in texture memory

Also Published As

Publication number Publication date
CN100578542C (zh) 2010-01-06
CN101145239A (zh) 2008-03-19
TWI395152B (zh) 2013-05-01
TW200809691A (en) 2008-02-16
CN101114376A (zh) 2008-01-30
TWI367455B (en) 2012-07-01
TW200821988A (en) 2008-05-16
TW200819987A (en) 2008-05-01
CN101114376B (zh) 2010-06-23
TWI341976B (en) 2011-05-11

Similar Documents

Publication Publication Date Title
US7965296B2 (en) Systems and methods for storing texture map data
US20080079744A1 (en) Systems and Methods for Performing a Bank Swizzle Operation to Reduce Bank Collisions
US8970583B1 (en) Image space stylization of level of detail artifacts in a real-time rendering engine
JP2637931B2 (ja) テクスチャ・マッピングを行うコンピュータ・システム
CN100578542C (zh) 图形处理系统及在图形处理系统中储存纹理图数据的方法
US7999819B2 (en) Systems and methods for managing texture descriptors in a shared texture engine
US7042462B2 (en) Pixel cache, 3D graphics accelerator using the same, and method therefor
JP5163981B2 (ja) テクスチャ詳細レベル計算のための装置と方法
US7589741B1 (en) Processing high numbers of independent textures in a 3-D graphics pipeline
US7439983B2 (en) Method and apparatus for de-indexing geometry
CN111179394A (zh) 点云场景渲染方法、装置和设备
US20110254852A1 (en) Demand based texture rendering in a tile based rendering system
US7483035B2 (en) Texture cache control using a data dependent slot selection scheme
CN101103381B (zh) 用于呈现三维图形的方法及装置
US20110164038A1 (en) Apparatus and method for tile-based rendering
US20060250408A1 (en) Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment
US20110169850A1 (en) Block linear memory ordering of texture data
CN103377486A (zh) 三维贴图处理方法以及装置
EP1026636A2 (en) Image processing
KR100550240B1 (ko) 타일형 그래픽스 아키텍쳐
EP1037168A2 (en) Apparatus and method for three-dimensional graphics drawing through occlusion culling
JP4624995B2 (ja) 三次元コンピュータグラフィック画像のテクスチャリング
KR101433951B1 (ko) 2의 비멱 텍스쳐 맵을 위한 좌표 산출
CN112686992A (zh) 用于智慧城市occ树的几何图形视锥体实现方法、装置及存储介质
CN101620743A (zh) 用隐藏面消除的图形处理

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