图形流水线中的索引的压缩和解压缩制造技术

技术编号:24505896 阅读:173 留言:0更新日期:2020-06-13 08:01
一种计算单元(111至114),访问表示图形图元的顶点的索引的位的组块(310)。所述计算单元设置第一位(420)的值以指示所述组块是单调的还是普通的,设置第二位(425)的值以定义基于所述组块中的索引的值来确定的偏移,并且设置第三位(430)的集合的值,所述第三位的集合的所述值基于由所述第二位定义的所述偏移来确定所述组块中的所述索引的值。所述计算单元将由所述第一位、所述第二位和所述第三位的集合表示的被压缩组块(315)写入存储器(115)。所述被压缩组块基于元数据(605)来解压缩,所述元数据包括基于所述索引的值来确定的偏移和指示所述索引的特性的位字段,并且所述解压缩的索引被写入索引缓冲器(206)。

Compression and decompression of index in graphics pipeline

【技术实现步骤摘要】
【国外来华专利技术】图形流水线中的索引的压缩和解压缩
技术介绍
图形处理器使用图形流水线生成图像以用于显示,该图形流水线包括一系列可编程着色器和固定功能硬件块以基于场景的模型来渲染图像。例如,在帧中可见的对象的3-D模型由一组图元(诸如三角形、其他多边形或补片)表示,该组图元在图形流水线中进行处理以产生像素值来显示给用户。每个图元由在图元的顶点处的值表示,诸如红-绿-蓝(RGB)颜色。例如,三角形由在该三角形的三个顶点处的一组值表示。图形流水线使用标识顶点的索引来访问三角形的顶点。顶点的索引由典型地包括16位或32位的二进制数表示。一组三角形的索引按“组块”进行处理,这些组块包括预定数量的索引,诸如每一组块16个索引。在由图形流水线使用之前,组块被存储在索引缓冲器中。组块是普通组块或单调组块。普通组块顺序地列出组块中的每个三角形的三个顶点。单调组块利用了相邻的三角形共享两个顶点这一事实。例如,三角形的三条带网格包括一大部分的彼此相邻的三角形。单调组块通过仅添加不被相邻三角形共享的顶点的索引来表示连续相邻三角形。因此,单调组块不重复由两个连续三角形共享的顶点的索引。例如,如果第一三角形的顶点具有索引8、9、10,而第二三角形的顶点具有索引9、10、11,则单调组块中的第一三角形和第二三角形的表示将列出索引8、9、10和11。相比之下,普通组块将第一三角形和第二三角形表示为8、9、10、9、10、11。连续地分派的三角形并不总是相邻的,并且因此单调组块包括重新开始索引以指示下一索引标识不与该单调组块中的前一三角形共享顶点的三角形的顶点。附图说明<br>通过参考附图,可更好地理解本公开,并且本公开的许多特征和优点对本领域技术人员来说可显而易见。在不同附图中使用相同的参考符号表示类似或等同的项。图1是根据一些实施方案的包括用于生成旨在输出到显示器的视觉图像的图形处理单元(GPU)的处理系统的框图。图2描绘了根据一些实施方案的能够处理高阶几何图元以生成三维(3-D)场景的光栅化图像的图形流水线。图3是示出根据一些实施方案的处理系统的一部分的框图。图4是示出根据一些实施方案的压缩单调组块中的索引的方法的图。图5是示出根据一些实施方案的压缩普通组块中的索引的方法的图。图6是示出根据一些实施方案的生成被压缩组块的元数据的方法的图。图7是示出根据一些实施方案的压缩单调组块中的索引以支持索引的同时解压缩的方法的图。图8是示出根据一些实施方案的生成被压缩组块的元数据和被压缩索引的方法的图。具体实施方式通过使用第一位指示组块是单调组块还是普通组块并且使用第二位定义基于组块中的索引的值而确定的偏移来压缩索引的集合(在本文中被称为“组块”)以存储在索引缓冲器中。被压缩组块还包括第三位的集合,该第三位的集合基于由第二位定义的偏移来确定组块中的每个索引的值。然后将被压缩组块存储在存储器中并生成表示存储在存储器中的被压缩组块的起始地址的元数据。基于元数据从存储器(或相关的高速缓存)中获取被压缩组块。例如,解压缩单元使用存储在元数据中的起始地址来确定高速缓存的与被压缩组块重叠的行并然后获取重叠的高速缓存行。基于第一位、第二位和第三位的集合来确定组块中的索引的值。通过将第一位设置为指示组块是单调组块的值并将第二位设置为等于单调组块中的不是重新开始索引的第一索引的值的偏移值来压缩单调组块。将第三位的第一集合设置为指示单调组块中的重新开始索引的数量的值并将第三位的一个或多个附加集合设置为指示单调组块内的重新开始索引的位置的值。通过将第一位设置为指示组块是普通组块的值并将第二位设置为等于普通组块中的索引的最小索引值的偏移值来压缩普通组块。将第三位的第一集合设置为指示用于表示索引的值与最小索引值之间的差值的位数的值。第三位的第二集合用于指示对应的索引是唯一的并指示唯一索引相对于偏移的值。第三位的第三集合用于指示对应的索引是唯一索引的重复值并指示普通组块中的唯一索引的相对位置。在一些实施方案中,通过将标头位的集合存储在元数据中而不是将此信息存储在被压缩组块中来同时地或并行地将被压缩组块的索引解压缩。对于单调组块,第一位和第二位被包括在存储在元数据中的标头位的集合中。标头位还包括表示重新开始索引的位置的位字段。对于普通组块,第一位和第二位被包括在存储在元数据中的标头位的集合中。标头位还包括具有指示被压缩组块中的唯一索引的位置的位的值的位字段。普通组块的元数据还包括第三位的第一集合,该第三位的第一集合指示用于表示索引的值与最小索引值之间的差值的位数。基于存储在元数据中的位字段来选择性地启用用于将被压缩组块中的索引解压缩的通道,从而保留组块中的解压缩索引的顺序。图1是根据一些实施方案的包括用于生成旨在输出到显示器110的视觉图像的图形处理单元(GPU)105的处理系统100的框图。GPU105是多线程处理器,其包括多个计算单元111、112、113、114,这些计算单元在本文中统称为“计算单元111至114”。计算单元111至114被配置为同时地或并行地执行指令。计算单元111至114的一些实施方案被配置为实现相对小的运算集,诸如视频渲染所要求的基本数学运算。尽管为了清楚起见,图1中示出了四个计算单元111至114,但是GPU105的一些实施方案包括数十个或数百个或数千个计算单元。计算单元111至114的一些实施方案在多个数据集上同时地执行单个程序的多个实例(或波),例如作为单指令多数据(SIMD)波。例如,计算单元111至114被配置为在数据阵列或流上执行相同序列的操作。处理系统100包括存储器115。存储器115的一些实施方案被实现为动态随机存取存储器(DRAM)。然而,在其他实施方案中,使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其他类型的存储器来实现存储器115。在所示的实施方案中,GPU105通过总线120与存储器115通信。然而,GPU105的一些实施方案通过直接连接或经由其他总线、桥、开关、路由器等与存储器115通信。GPU105执行存储在存储器115中的指令,并且GPU105将信息(诸如执行的指令的结果)存储在存储器115中。例如,存储器115存储来自将由GPU105中的计算单元111至114执行的程序代码的指令的副本125。处理系统100包括用于执行指令的中央处理单元(CPU)130。CPU130的一些实施方案包括被优化用于顺序串行处理的多个处理器核心131、132、133、134(在本文中统称为“处理器核心131至134”)。处理器核心131至134实现使得CPU130能够执行在处理系统100中执行的应用程序所要求的全套计算的相对大的指令集(例如,相对于由计算单元111至114实现的小指令集而言)和大的特征集。CPU130的一些实施方案能够使用处理器核心131至134来实现多个流水线。CPU130还连接到总线120并因此经由总线120与GPU105和存储器115通信。CPU130执行存储在存储器115中的指令,诸如程序代码135,并且CPU130将信息(诸如执行的本文档来自技高网...

【技术保护点】
1.一种设备,所述设备包括:/n计算单元,所述计算单元被配置为:/n访问表示要由图形流水线处理的图元的多个顶点的索引的位的组块;/n设置第一位的值以指示所述组块是单调的还是普通的;/n设置第二位的值以定义基于所述组块中的索引的值来确定的偏移;/n设置第三位的集合的值,所述第三位的集合的所述值基于由所述第二位定义的所述偏移来确定所述组块中的所述索引的值;以及/n将由所述第一位、所述第二位和所述第三位的集合表示的被压缩组块写入存储器。/n

【技术特征摘要】
【国外来华专利技术】20171102 US 62/580,795;20171205 US 15/832,1311.一种设备,所述设备包括:
计算单元,所述计算单元被配置为:
访问表示要由图形流水线处理的图元的多个顶点的索引的位的组块;
设置第一位的值以指示所述组块是单调的还是普通的;
设置第二位的值以定义基于所述组块中的索引的值来确定的偏移;
设置第三位的集合的值,所述第三位的集合的所述值基于由所述第二位定义的所述偏移来确定所述组块中的所述索引的值;以及
将由所述第一位、所述第二位和所述第三位的集合表示的被压缩组块写入存储器。


2.如权利要求1所述的设备,其中所述计算单元被配置为:
生成表示存储在索引缓冲器中的所述被压缩组块的起始地址的元数据;以及
将所述元数据写入所述存储器。


3.如权利要求2所述的设备,其中所述组块是通过将不被相邻三角形共享的顶点的索引添加到所述组块的所述位来表示连续相邻图元的单调组块,并且其中所述计算单元被配置为将所述第一位的所述值设置为第一值以指示所述组块是单调的。


4.如权利要求3所述的设备,其中所述计算单元被配置为将所述第二位的所述值设置为等于所述组块中的不是重新开始索引的第一索引的值的偏移值,所述重新开始索引指示后一图元与表示在所述重新开始索引之前的索引的前一图元不相邻。


5.如权利要求4所述的设备,其中所述计算单元被配置为设置所述第三位的第一集合的值以指示所述组块中的重新开始索引的数量并设置第三位的至少一个附加集合以指示所述组块内的至少一个重新开始索引的至少一个位置。


6.如权利要求4所述的设备,其中所述计算单元被配置为生成元数据,所述元数据包括指示所述组块中的重新开始索引的位置的位字段,并且其中所述计算单元被配置为将包括所述第一位、所述第二位和所述位字段的所述元数据写入所述存储器。


7.如权利要求2所述的设备,其中所述组块是使用图元的所有所述顶点的索引来表示所述图元的普通组块,并且其中所述计算单元被配置为将所述第一位的所述值设置为第二值以指示所述组块是普通的。


8.如权利要求7所述的设备,其中所述计算单元被配置为将所述第二位的所述值设置为等于所述组块中的所述索引的最小值的偏移值。


9.如权利要求8所述的设备,其中所述计算单元被配置为:
设置第三位的第一集合的值以指示用于表示所述索引的所述值与所述偏移值之间的差值的位数;
设置第三位的至少一个第二集合的值以指示所述索引中的一个是唯一的并指示所述唯一索引与所述偏移值之间的差值;以及
设置第三位的至少一个第三集合的值以指示所述索引中的至少一个是唯一索引的重复值并指示所述组块中的所述唯一索引的相对位置。


10.如权利要求8所述的设备,其中所述计算单元被配置为生成元数据,所述元数据包括指示用于将所述被压缩组块中的索引解压缩的通道的位字段,并且其中所述计算单元被配置为将包括所述第一位、所述第二位、第三位的第一集合和所述位字段的所述元数据写入所述存储器,所述第三位的第一集合用以指示用于表示所述索引的所述值与所述偏移值之间的差值的位数。


11.一种设备,所述设备包括:
索引缓冲器,所述索引缓冲器被配置为存储由图形流水线处理的图元的顶点的索引;以及
计算单元,所述计算单元被配置为:

【专利技术属性】
技术研发人员:尤萨姆·赛兰杨永仁托德·马丁维妮特·戈埃尔
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1